History log of /src/sys/arch/evbppc/conf/WII
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.13 08-Dec-2025 jmcneill

wii: Add support for GameCube controller sockets.

A new driver is introduced for the Serial Interface that exposes the four
GameCube controller sockets as uhid(4) devices. The report format and HID
usages of these devices attempts to mimic the official USB GameCube
controller adapter.

wii$ usbhidctl -f /dev/uhid0 -r
Report descriptor:
Collection page=Generic_Desktop usage=Game_Pad
Input size=1 count=1 page=Button usage=Button_3, logical range 0..1
Input size=1 count=1 page=Button usage=Button_1, logical range 0..1
Input size=1 count=1 page=Button usage=Button_2, logical range 0..1
Input size=1 count=1 page=Button usage=Button_4, logical range 0..1
Input size=1 count=1 page=Button usage=Button_11, logical range 0..1
Input size=1 count=1 page=Button usage=Button_12, logical range 0..1
Input size=1 count=1 page=Button usage=Button_10, logical range 0..1
Input size=1 count=1 page=Button usage=Button_9, logical range 0..1
Input size=1 count=1 page=Button usage=Button_8, logical range 0..1
Input size=1 count=1 page=Button usage=Button_6, logical range 0..1
Input size=1 count=1 page=Button usage=Button_7, logical range 0..1
Input size=1 count=1 page=Button usage=Button_5, logical range 0..1
Collection page=Generic_Desktop usage=Pointer
Input size=8 count=1 page=Generic_Desktop usage=X, logical range 0..255
Input size=8 count=1 page=Generic_Desktop usage=Y, logical range 0..255
End collection
Collection page=Generic_Desktop usage=Pointer
Input size=8 count=1 page=Generic_Desktop usage=Z, logical range 0..255
Input size=8 count=1 page=Generic_Desktop usage=Rz, logical range 0..255
End collection
Input size=8 count=1 page=Generic_Desktop usage=Rx, logical range 0..255
Input size=8 count=1 page=Generic_Desktop usage=Ry, logical range 0..255
Total input size 9 bytes
Total output size 0 bytes
Total feature size 0 bytes


# 1.12 04-Dec-2025 nia

Enable PaX features in WII kernel configuration.

Seems to work fine, with mmap addresses being randomized per-process
and (PROT_WRITE | PROT_EXEC) resulting in a segfault.


# 1.11 15-Nov-2025 jmcneill

wii: Add support for using a USB Gecko as serial console.

The USB Gecko is a Wii/Gamecube development tool which connects to the
GameCube memory slot of the Wii and a USB port of a computer. The USB
port exposes an FTDI serial port on the computer side of the connection.

EXI commands sent from the Wii to the USB Gecko can read and write bytes.
Wire this up to form a simple serial console when the device is detected.
Use WSDISPLAY_MULTICONS to allow for simultaneous use of the USB Gecko
and the framebuffer console.


# 1.10 11-Nov-2025 jmcneill

wii: Add support for hardware AES engine and cgd(4) to the WII kernel.

Add a driver for the Nintendo Wii's AES engine. The driver registers an
AES implementation for kernel use via aes_md_init(). AES-128 requests are
accelerated by hardware and all other requests are passed through to the
default (BearSSL aes_ct) implementation.

Add cgd(4) to the Wii kernel to enable disk encryption support.

Tested performance with cgd(4) and AES-128-CBC on a USB flash drive:

hwaes: 33513984 bytes transferred in 2.245 secs (14928277 bytes/sec)
bear: 33513984 bytes transferred in 7.581 secs (4420786 bytes/sec)

Many thanks to Taylor Campbell who walked me through implementing support
for non-CBC modes.


Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base
# 1.9 17-Feb-2025 jmcneill

branches: 1.9.2;
wii: Remove some options to save memory.


# 1.8 12-Feb-2025 jmcneill

wii: Add support for Wii DVD drive.

This adds a virtual SCSI HBA driver that is able to read DVD video discs
inserted in the Wii.


# 1.7 19-Jan-2025 jmcneill

bwi(4): Add support for Nintendo Wii WLAN.

Adapt the bwi(4) driver to support SDIO attachment and driving TX/RX using
PIO instead of DMA since the latter is not supported on SDIO busses.


# 1.6 22-Sep-2024 jmcneill

wii: Enable ohci(4) driver.

This seems to be stable now, let's enable support for plugging in LS/FS
devices directly into the system without a hub.


# 1.5 17-Sep-2024 jakllsch

Add DKWEDGE_AUTODISCOVER and DKWEDGE_METHOD_GPT to WII

From Guilherme Janczak in PR 58676


Revision tags: perseant-exfatfs-base-20240630 perseant-exfatfs-base
# 1.4 25-Jan-2024 jmcneill

branches: 1.4.2; 1.4.4;
wii: Add External interface bus and RTC support


# 1.3 23-Jan-2024 jmcneill

wii: Add GPIO, I2C, and basic A/V encoder driver.


# 1.2 22-Jan-2024 jmcneill

wii: Add drivers for Broadway DSP and Audio interface.

0: [*] audio0 @ bwdsp0: Broadway DSP
playback: 16, 2ch, 48000Hz
record: unavailable
(P-) slinear_be 16/16, 2ch, { 48000 }


# 1.1 20-Jan-2024 jmcneill

evbppc: Add initial support for the Nintendo Wii


# 1.12 04-Dec-2025 nia

Enable PaX features in WII kernel configuration.

Seems to work fine, with mmap addresses being randomized per-process
and (PROT_WRITE | PROT_EXEC) resulting in a segfault.


# 1.11 15-Nov-2025 jmcneill

wii: Add support for using a USB Gecko as serial console.

The USB Gecko is a Wii/Gamecube development tool which connects to the
GameCube memory slot of the Wii and a USB port of a computer. The USB
port exposes an FTDI serial port on the computer side of the connection.

EXI commands sent from the Wii to the USB Gecko can read and write bytes.
Wire this up to form a simple serial console when the device is detected.
Use WSDISPLAY_MULTICONS to allow for simultaneous use of the USB Gecko
and the framebuffer console.


# 1.10 11-Nov-2025 jmcneill

wii: Add support for hardware AES engine and cgd(4) to the WII kernel.

Add a driver for the Nintendo Wii's AES engine. The driver registers an
AES implementation for kernel use via aes_md_init(). AES-128 requests are
accelerated by hardware and all other requests are passed through to the
default (BearSSL aes_ct) implementation.

Add cgd(4) to the Wii kernel to enable disk encryption support.

Tested performance with cgd(4) and AES-128-CBC on a USB flash drive:

hwaes: 33513984 bytes transferred in 2.245 secs (14928277 bytes/sec)
bear: 33513984 bytes transferred in 7.581 secs (4420786 bytes/sec)

Many thanks to Taylor Campbell who walked me through implementing support
for non-CBC modes.


Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base
# 1.9 17-Feb-2025 jmcneill

branches: 1.9.2;
wii: Remove some options to save memory.


# 1.8 12-Feb-2025 jmcneill

wii: Add support for Wii DVD drive.

This adds a virtual SCSI HBA driver that is able to read DVD video discs
inserted in the Wii.


# 1.7 19-Jan-2025 jmcneill

bwi(4): Add support for Nintendo Wii WLAN.

Adapt the bwi(4) driver to support SDIO attachment and driving TX/RX using
PIO instead of DMA since the latter is not supported on SDIO busses.


# 1.6 22-Sep-2024 jmcneill

wii: Enable ohci(4) driver.

This seems to be stable now, let's enable support for plugging in LS/FS
devices directly into the system without a hub.


# 1.5 17-Sep-2024 jakllsch

Add DKWEDGE_AUTODISCOVER and DKWEDGE_METHOD_GPT to WII

From Guilherme Janczak in PR 58676


Revision tags: perseant-exfatfs-base-20240630 perseant-exfatfs-base
# 1.4 25-Jan-2024 jmcneill

branches: 1.4.2; 1.4.4;
wii: Add External interface bus and RTC support


# 1.3 23-Jan-2024 jmcneill

wii: Add GPIO, I2C, and basic A/V encoder driver.


# 1.2 22-Jan-2024 jmcneill

wii: Add drivers for Broadway DSP and Audio interface.

0: [*] audio0 @ bwdsp0: Broadway DSP
playback: 16, 2ch, 48000Hz
record: unavailable
(P-) slinear_be 16/16, 2ch, { 48000 }


# 1.1 20-Jan-2024 jmcneill

evbppc: Add initial support for the Nintendo Wii


# 1.11 15-Nov-2025 jmcneill

wii: Add support for using a USB Gecko as serial console.

The USB Gecko is a Wii/Gamecube development tool which connects to the
GameCube memory slot of the Wii and a USB port of a computer. The USB
port exposes an FTDI serial port on the computer side of the connection.

EXI commands sent from the Wii to the USB Gecko can read and write bytes.
Wire this up to form a simple serial console when the device is detected.
Use WSDISPLAY_MULTICONS to allow for simultaneous use of the USB Gecko
and the framebuffer console.


# 1.10 11-Nov-2025 jmcneill

wii: Add support for hardware AES engine and cgd(4) to the WII kernel.

Add a driver for the Nintendo Wii's AES engine. The driver registers an
AES implementation for kernel use via aes_md_init(). AES-128 requests are
accelerated by hardware and all other requests are passed through to the
default (BearSSL aes_ct) implementation.

Add cgd(4) to the Wii kernel to enable disk encryption support.

Tested performance with cgd(4) and AES-128-CBC on a USB flash drive:

hwaes: 33513984 bytes transferred in 2.245 secs (14928277 bytes/sec)
bear: 33513984 bytes transferred in 7.581 secs (4420786 bytes/sec)

Many thanks to Taylor Campbell who walked me through implementing support
for non-CBC modes.


Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base
# 1.9 17-Feb-2025 jmcneill

branches: 1.9.2;
wii: Remove some options to save memory.


# 1.8 12-Feb-2025 jmcneill

wii: Add support for Wii DVD drive.

This adds a virtual SCSI HBA driver that is able to read DVD video discs
inserted in the Wii.


# 1.7 19-Jan-2025 jmcneill

bwi(4): Add support for Nintendo Wii WLAN.

Adapt the bwi(4) driver to support SDIO attachment and driving TX/RX using
PIO instead of DMA since the latter is not supported on SDIO busses.


# 1.6 22-Sep-2024 jmcneill

wii: Enable ohci(4) driver.

This seems to be stable now, let's enable support for plugging in LS/FS
devices directly into the system without a hub.


# 1.5 17-Sep-2024 jakllsch

Add DKWEDGE_AUTODISCOVER and DKWEDGE_METHOD_GPT to WII

From Guilherme Janczak in PR 58676


Revision tags: perseant-exfatfs-base-20240630 perseant-exfatfs-base
# 1.4 25-Jan-2024 jmcneill

branches: 1.4.2; 1.4.4;
wii: Add External interface bus and RTC support


# 1.3 23-Jan-2024 jmcneill

wii: Add GPIO, I2C, and basic A/V encoder driver.


# 1.2 22-Jan-2024 jmcneill

wii: Add drivers for Broadway DSP and Audio interface.

0: [*] audio0 @ bwdsp0: Broadway DSP
playback: 16, 2ch, 48000Hz
record: unavailable
(P-) slinear_be 16/16, 2ch, { 48000 }


# 1.1 20-Jan-2024 jmcneill

evbppc: Add initial support for the Nintendo Wii