In memory of Ben “bushing” Byer, who passed away on Monday, February 8th, 2016.

Hardware/DSP

From WiiBrew
< Hardware
Jump to navigation Jump to search
DSP
Access
BroadwayFull
StarletNone
Registers
Base0x0c005000
Length0x200
Access size16/32 bits
Byte orderBig Endian
IRQs
Broadway6
This box: view  talk  edit

These are mostly copied from YAGCD with some nice formatting glue.

As the Infobox states, the base of this is at physical address 0x0C005000 (software address 0xCC005000)

Registers

DSP_MAILBOX_IN_H (0xCC005000)
  15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Access R/W R/W
Field Set Data
Field Description
Set This must be set for the DSP to accept the data.
Data This, combined with the Data in DSP_MAILBOX_IN_L is the data being sent to the DSP.

DSP_MAILBOX_IN_L (0xCC005002)
  15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Access R/W
Field Data
Field Description
Data This, combined with the Data in DSP_MAILBOX_IN_H is the data being sent to the DSP.


DSP_MAILBOX_OUT_H (0xCC005004)
  15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Access R R
Field Set Data
Field Description
Set This must be set for the data to be valid.
Data This, combined with the Data in DSP_MAILBOX_OUT_L is the data being sent from the DSP.

DSP_MAILBOX_OUT_L (0xCC005006)
  15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Access R
Field Data
Field Description
Data This, combined with the Data in DSP_MAILBOX_OUT_H is the data being sent from the DSP.


DSP_CONTROL_STATUS (0xCC00500A)
  15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Access U W W W W R/W W R/W W R/W R/W R/W R/W
Field Reset ? DMAINT DMAINTMSK DSPINT ARINTMSK ARINT AIDINTMSK AIDINT HALT PIINT RES
Field Description
Reset Resets the DSP?
DMAINT DSP DMA Interrupt Status
DMAINTMSK DSP Interrupt Mask
DSPINT DSP Interrupt Status. When read, set means Interrupt is active. Clear is no interrupts. Writing 0 does nothing, while writing 1 clears interrupt.
ARINTMSK ARAM Interrupt Mask
ARINT ARAM Interrupt Status. When read, set means Interrupt is active. Clear is no interrupts. Writing 0 does nothing, while writing 1 clears interrupt.
AIDINTMSK AI Interrupt Mask
AIDINT AI Interrupt Status. When read, set means Interrupt is active. Clear is no interrupts. Writing 0 does nothing, while writing 1 clears interrupt.
HALT Halt DSP? When set, the DSP will halt. When cleared, the DSP will resume.
PIINT DSP Interrupt Assertion? Setting asserts the DSP Interrupt.
RES Writing 1 resets the DSP.


DSP_AR_SIZE (0xCC005012)
  15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Access R/?
Field Size
Field Description
Size I can only guess that it's the size of the ARAM.


DSP_AR_MODE (0xCC005016)
  15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Access ?/W
Field Mode
Field Description
Mode Some ARAM mode setting. Needs investigation.


DSP_AR_REFRESH (0xCC00501A)
  15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Access ?
Field Refresh
Field Description
Refresh Refreshes the ARAM?


DSP_AR_DMA_SRC_H (0xCC005020)
  15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Access ?/W
Field SRCADDR
Field Description
SRCADDR The High half-word of the DMA Source.

DSP_AR_DMA_SRC_L (0xCC005022)
  15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Access ?/W
Field SRCADDR
Field Description
SRCADDR The Low half-word of the DMA Source.

DSP_AR_DMA_DST_H (0xCC005024)
  15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Access ?/W
Field DSTADDR
Field Description
DSTADDR The High half-word of the DMA Destination in ARAM.

DSP_AR_DMA_DST_L (0xCC005026)
  15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Access ?/W
Field DSTADDR
Field Description
DSTADDR The Low half-word of the DMA Destination in ARAM.


DSP_AR_DMA_SIZE_H (0xCC005028)
  15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Access ?/W ?/W
Field Type Size
Field Description
Type The type of DMA transfer. If 0, Write to ARAM. If 1, Read from ARAM.
Size The High half-word of the size of the DMA.

DSP_AR_DMA_SIZE_L (0xCC00502A)
  15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Access ?/W
Field Size
Field Description
Size The Low half-word of the size of the DMA.


DSP_DMA_START_ADDR_H (0xCC005030)
  15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Access ?/W
Field ADDR
Field Description
ADDR Not exactly sure what this is for. Top halfword of the address.

DSP_DMA_START_ADDR_L (0xCC005032)
  15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Access ?/W
Field ADDR
Field Description
ADDR Not exactly sure what this is for. Bottom halfword of the address.


DSP_DMA_CONTROL_LENGTH (0xCC005036)
  15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Access ?/W ?/W
Field CTRL LENGTH
Field Description
CTRL If set, start playing the sample. If cleared, stop playing.
LENGTH Length of the sample divided by 32. The maximum value for this is 0x000FFFE0.

DSP_DMA_BYTES_LEFT (0xCC00503A)
  15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Access R/?
Field BYTES
Field Description
BYTES Count down to 0, counting how many bytes are left.