From WiiBrew
| Command Processor |
| Access |
|---|
| Broadway | Full |
|---|
| Starlet | None |
|---|
| Registers |
|---|
| Base | 0x0c000000 |
|---|
| Length | 0x80 |
|---|
| Access size | 16 bits |
|---|
| Byte order | Big Endian |
|---|
| IRQs |
|---|
| Broadway | 11 |
|---|
|
The Command Processor is a part of the Wii's GX system, and is responsible for handling all of the commands that draw to the EFB.
CP (command processor) Registers
| CP_FIFO_STATUS (0xCC000000)
|
|
| 15
| 14
| 13
| 12
| 11
| 10
| 9
| 8
| 7
| 6
| 5
| 4
| 3
| 2
| 1
| 0
|
| Access
| U
| R
| R
| R
| R
| R
|
| Field
|
| BPInt
| CmdIdle
| RdIdle
| UF
| OF
|
| Field
| Description
|
| BPInt
| Indicates status of Blitting Processor interrupt?
|
| CmdIdle
| 1: CP is not doing anything
|
| RdIdle
| 1: CP is not reading anything (??)
|
| UF
| FIFO underflow (Determined by watermark registers?
|
| OF
| FIFO overflow ("")
|
| CP_CONTROL (0xCC000002)
|
|
| 15
| 14
| 13
| 12
| 11
| 10
| 9
| 8
| 7
| 6
| 5
| 4
| 3
| 2
| 1
| 0
|
| Access
| U
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
|
| Field
|
| BPE
| GPLE
| UFInt
| OFInt
| CPInt
| FIFOE
|
| Field
| Description
|
| BPE
| breakpoint enable (default 0)
|
| GPLE
| FIFO link enable (YAGCD says CP->PE?) (default 1)
|
| UFInt
| FIFO underflow interrupt (default 0)
|
| OFInt
| FIFO overflow interrupt (default 1)
|
| CPInt
| Command Processor interrupt (default 0)
|
| FIFOE
| FIFO read enable (disable while setting up) (default 1)
|
| CP_CLEAR (0xCC000004)
|
|
| 15
| 14
| 13
| 12
| 11
| 10
| 9
| 8
| 7
| 6
| 5
| 4
| 3
| 2
| 1
| 0
|
| Access
| U
| R/W
| R/W
|
| Field
|
| Under
| Over
|
| Field
| Description
|
| Under
| Write 1 to clear FIFO underflow
|
| Over
| Write 1 to clear FIFO overflow
|
| CP_TOKEN (0xCC00000E)
|
|
| 150
|
| Access
| R
|
This register contains the last token that was read from the FIFO.
| CP_FIFO_START (0xCC000020)
|
|
| 310
|
| Access
| R/W
|
WARNING: This CP register is actually two 16 bit registers. Though it is big endian, a bug in the hardware means the two 16 bit halves will be swapped if you write to it 32-bit. You have been warned!
| CP_FIFO_END (0xCC000024)
|
|
| 310
|
| Access
| R/W
|
WARNING: This CP register is actually two 16 bit registers. Though it is big endian, a bug in the hardware means the two 16 bit halves will be swapped if you write to it 32-bit. You have been warned!
| CP_FIFO_WP (0xCC000034)
|
|
| 310
|
| Access
| R/W
|
WARNING: This CP register is actually two 16 bit registers. Though it is big endian, a bug in the hardware means the two 16 bit halves will be swapped if you write to it 32-bit. You have been warned!