Difference between revisions of "DSP Registers"
Line 9: | Line 9: | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
− | | DSP_PDATA | + | | [[#DSP_PDATA|DSP_PDATA]] |
| 0x10203000 | | 0x10203000 | ||
| 2 | | 2 | ||
Line 15: | Line 15: | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
− | | DSP_PADR | + | | [[#DSP_PADR|DSP_PADR]] |
| 0x10203004 | | 0x10203004 | ||
| 2 | | 2 | ||
Line 21: | Line 21: | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
− | | DSP_PCFG | + | | [[#DSP_PCFG|DSP_PCFG]] |
| 0x10203008 | | 0x10203008 | ||
| 2 | | 2 | ||
Line 27: | Line 27: | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
− | | DSP_PSTS | + | | [[#DSP_PSTS|DSP_PSTS]] |
| 0x1020300C | | 0x1020300C | ||
| 2 | | 2 | ||
Line 33: | Line 33: | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
− | | DSP_PSEM | + | | [[#DSP_PSEM|DSP_PSEM]] |
| 0x10203010 | | 0x10203010 | ||
| 2 | | 2 | ||
Line 39: | Line 39: | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
− | | DSP_PMASK | + | | [[#DSP_PMASK|DSP_PMASK]] |
| 0x10203014 | | 0x10203014 | ||
| 2 | | 2 | ||
Line 45: | Line 45: | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
− | | DSP_PCLEAR | + | | [[#DSP_PCLEAR|DSP_PCLEAR]] |
| 0x10203018 | | 0x10203018 | ||
| 2 | | 2 | ||
Line 51: | Line 51: | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
− | | DSP_SEM | + | | [[#DSP_SEM|DSP_SEM]] |
| 0x1020301C | | 0x1020301C | ||
| 2 | | 2 | ||
Line 57: | Line 57: | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
− | | DSP_CMD0 | + | | [[#DSP_CMD0|DSP_CMD0]] |
| 0x10203020 | | 0x10203020 | ||
| 2 | | 2 | ||
Line 63: | Line 63: | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
− | | DSP_REP0 | + | | [[#DSP_REP0|DSP_REP0]] |
| 0x10203024 | | 0x10203024 | ||
| 2 | | 2 | ||
Line 69: | Line 69: | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
− | | DSP_CMD1 | + | | [[#DSP_CMD1|DSP_CMD1]] |
| 0x10203028 | | 0x10203028 | ||
| 2 | | 2 | ||
Line 75: | Line 75: | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
− | | DSP_REP1 | + | | [[#DSP_REP1|DSP_REP1]] |
| 0x1020302C | | 0x1020302C | ||
| 2 | | 2 | ||
Line 81: | Line 81: | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
− | | DSP_CMD2 | + | | [[#DSP_CMD2|DSP_CMD2]] |
| 0x10203030 | | 0x10203030 | ||
| 2 | | 2 | ||
Line 87: | Line 87: | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
− | | DSP_REP2 | + | | [[#DSP_REP2|DSP_REP2]] |
| 0x10203034 | | 0x10203034 | ||
| 2 | | 2 | ||
Line 93: | Line 93: | ||
|} | |} | ||
− | == DSP_PDATA | + | == DSP_PDATA == |
− | + | Data (one stage of the 16-stage Read FIFO). | |
− | == | + | == DSP_PADR == |
− | + | Lower 16bit of Address in DSP Memory. Note: The upper 16bit of Address must be configued in the DMA register (inside of the DSP). | |
− | == | + | == DSP_PCFG - DSP Configuration (R/W) (16bit) == |
− | |||
− | |||
− | == | + | {| class="wikitable" border="1" |
− | + | ! Bits | |
− | + | ! Description | |
− | + | |- | |
− | + | | 0 | |
− | + | | DSP Reset (0=Release, 1=Reset) ;should be held "1" for 8 DSP clks | |
− | + | |- | |
− | + | | 1 | |
− | + | | Address Auto-Increment (0=Off, 1=On) | |
− | + | |- | |
− | + | | 2-3 | |
− | + | | DSP Read Data Length (0=1 word, 1=8 words, 2=16 words, 3=Free-Run) | |
− | + | |- | |
+ | | 4 | ||
+ | | DSP Read Start Flag (mem transfer via Read FIFO) (1=Start) | ||
+ | |- | ||
+ | | 5 | ||
+ | | Interrupt Enable Read FIFO Full (0=Off, 1=On) | ||
+ | |- | ||
+ | | 6 | ||
+ | | Interrupt Enable Read FIFO Not-Empty (0=Off, 1=On) | ||
+ | |- | ||
+ | | 7 | ||
+ | | Interrupt Enable Write FIFO Full (0=Off, 1=On) | ||
+ | |- | ||
+ | | 8 | ||
+ | | Interrupt Enable Write FIFO Empty (0=Off, 1=On) | ||
+ | |- | ||
+ | | 9 | ||
+ | | Interrupt Enable Reply Register 0 (0=Off, 1=On) | ||
+ | |- | ||
+ | | 10 | ||
+ | | Interrupt Enable Reply Register 1 (0=Off, 1=On) | ||
+ | |- | ||
+ | | 11 | ||
+ | | Interrupt Enable Reply Register 2 (0=Off, 1=On) | ||
+ | |- | ||
+ | | 12-15 | ||
+ | | DSP Memory Transfer (0=Data Memory, 1=MMIO Register, 5=Program Memory) | ||
+ | |} | ||
− | == DSP_PSTS | + | == DSP_PSTS == |
− | + | {| class="wikitable" border="1" | |
− | + | ! Bits | |
− | + | ! Description | |
− | + | |- | |
− | + | | 0 | |
− | + | | Read Transfer Underway Flag (0=No, 1=Yes/From DSP Memory) | |
− | + | |- | |
− | + | | 1 | |
− | + | | Write Transfer Underway Flag (0=No, 1=Yes/To DSP Memory) | |
− | + | |- | |
− | + | | 2 | |
− | + | | Peripheral Reset Flag (0=No/Ready, 1=Reset/Busy) | |
− | + | |- | |
− | + | | 3-4 | |
− | + | | Unused | |
+ | |- | ||
+ | | 5 | ||
+ | | Read FIFO Full Flag (0=No, 1=Yes) | ||
+ | |- | ||
+ | | 6 | ||
+ | | Read FIFO Not-Empty Flag (0=No, 1=Yes) ;ARM11 may read DSP_PDATA | ||
+ | |- | ||
+ | | 7 | ||
+ | | Write FIFO Full Flag (0=No, 1=Yes) | ||
+ | |- | ||
+ | | 8 | ||
+ | | Write FIFO Empty Flag (0=No, 1=Yes) | ||
+ | |- | ||
+ | | 9 | ||
+ | | Semaphore IRQ Flag (0=None, 1=IRQ) | ||
+ | |- | ||
+ | | 10 | ||
+ | | Reply Register 0 Update Flag (0=Was Written by DSP, 1=No) | ||
+ | |- | ||
+ | | 11 | ||
+ | | Reply Register 1 Update Flag (0=Was Written by DSP, 1=No) | ||
+ | |- | ||
+ | | 12 | ||
+ | | Reply Register 2 Update Flag (0=Was Written by DSP, 1=No) | ||
+ | |- | ||
+ | | 13 | ||
+ | | Command Register 0 Read Flag (0=Was Read by DSP, 1=No) | ||
+ | |- | ||
+ | | 14 | ||
+ | | Command Register 1 Read Flag (0=Was Read by DSP, 1=No) | ||
+ | |- | ||
+ | | 15 | ||
+ | | Command Register 2 Read Flag (0=Was Read by DSP, 1=No) | ||
+ | |} | ||
Unknown if/when bit10-15 get reset... maybe after reading the status? | Unknown if/when bit10-15 get reset... maybe after reading the status? | ||
− | == DSP_PSEM | + | == DSP_PSEM == |
− | + | DSP-to-ARM11 Semaphore 0..15 Flags (0=Off, 1=On). Reportedly these flags are sent in ARM11-to-DSP direction. Confusingly, the other DSP_Pxxx registers are for opposite direction? | |
− | Reportedly these flags are sent in ARM11-to-DSP direction. | ||
− | Confusingly, the other DSP_Pxxx registers are for opposite direction? | ||
− | == DSP_PMASK | + | == DSP_PMASK == |
− | + | DSP-to-ARM11 Semaphore 0..15 Interrupt Disable (0=Enable, 1=Disable) | |
− | == DSP_PCLEAR | + | == DSP_PCLEAR == |
− | + | DSP-to-ARM11 Semaphore 0..15 Clear (0=No Change, 1=Clear). Reportedly clears bits in DSP_PSEM. [that's probably nonsense, clearing bits in DSP_SEM would make more sense] | |
− | Reportedly clears bits in DSP_PSEM. [that's probably nonsense, clearing bits in DSP_SEM would make more sense] | ||
− | == DSP_SEM | + | == DSP_SEM == |
− | + | DSP-to-ARM11 Semaphore 0..15 Flags (0=Off, 1=On). Reportedly these flags are received in DSP-to-ARM11 direction. | |
− | Reportedly these flags are received in DSP-to-ARM11 direction. | ||
− | == DSP_CMDX | + | == DSP_CMDX == |
− | + | Command/Data to DSP. | |
− | == DSP_REPX | + | == DSP_REPX == |
− | + | Reply/Data from DSP. |
Revision as of 15:51, 20 March 2015
Registers
Old3DS | Name | Address | Width | Used by |
---|---|---|---|---|
Yes | DSP_PDATA | 0x10203000 | 2 | |
Yes | DSP_PADR | 0x10203004 | 2 | |
Yes | DSP_PCFG | 0x10203008 | 2 | |
Yes | DSP_PSTS | 0x1020300C | 2 | |
Yes | DSP_PSEM | 0x10203010 | 2 | |
Yes | DSP_PMASK | 0x10203014 | 2 | |
Yes | DSP_PCLEAR | 0x10203018 | 2 | |
Yes | DSP_SEM | 0x1020301C | 2 | |
Yes | DSP_CMD0 | 0x10203020 | 2 | |
Yes | DSP_REP0 | 0x10203024 | 2 | |
Yes | DSP_CMD1 | 0x10203028 | 2 | |
Yes | DSP_REP1 | 0x1020302C | 2 | |
Yes | DSP_CMD2 | 0x10203030 | 2 | |
Yes | DSP_REP2 | 0x10203034 | 2 |
DSP_PDATA
Data (one stage of the 16-stage Read FIFO).
DSP_PADR
Lower 16bit of Address in DSP Memory. Note: The upper 16bit of Address must be configued in the DMA register (inside of the DSP).
DSP_PCFG - DSP Configuration (R/W) (16bit)
Bits | Description |
---|---|
0 | DSP Reset (0=Release, 1=Reset) ;should be held "1" for 8 DSP clks |
1 | Address Auto-Increment (0=Off, 1=On) |
2-3 | DSP Read Data Length (0=1 word, 1=8 words, 2=16 words, 3=Free-Run) |
4 | DSP Read Start Flag (mem transfer via Read FIFO) (1=Start) |
5 | Interrupt Enable Read FIFO Full (0=Off, 1=On) |
6 | Interrupt Enable Read FIFO Not-Empty (0=Off, 1=On) |
7 | Interrupt Enable Write FIFO Full (0=Off, 1=On) |
8 | Interrupt Enable Write FIFO Empty (0=Off, 1=On) |
9 | Interrupt Enable Reply Register 0 (0=Off, 1=On) |
10 | Interrupt Enable Reply Register 1 (0=Off, 1=On) |
11 | Interrupt Enable Reply Register 2 (0=Off, 1=On) |
12-15 | DSP Memory Transfer (0=Data Memory, 1=MMIO Register, 5=Program Memory) |
DSP_PSTS
Bits | Description |
---|---|
0 | Read Transfer Underway Flag (0=No, 1=Yes/From DSP Memory) |
1 | Write Transfer Underway Flag (0=No, 1=Yes/To DSP Memory) |
2 | Peripheral Reset Flag (0=No/Ready, 1=Reset/Busy) |
3-4 | Unused |
5 | Read FIFO Full Flag (0=No, 1=Yes) |
6 | Read FIFO Not-Empty Flag (0=No, 1=Yes) ;ARM11 may read DSP_PDATA |
7 | Write FIFO Full Flag (0=No, 1=Yes) |
8 | Write FIFO Empty Flag (0=No, 1=Yes) |
9 | Semaphore IRQ Flag (0=None, 1=IRQ) |
10 | Reply Register 0 Update Flag (0=Was Written by DSP, 1=No) |
11 | Reply Register 1 Update Flag (0=Was Written by DSP, 1=No) |
12 | Reply Register 2 Update Flag (0=Was Written by DSP, 1=No) |
13 | Command Register 0 Read Flag (0=Was Read by DSP, 1=No) |
14 | Command Register 1 Read Flag (0=Was Read by DSP, 1=No) |
15 | Command Register 2 Read Flag (0=Was Read by DSP, 1=No) |
Unknown if/when bit10-15 get reset... maybe after reading the status?
DSP_PSEM
DSP-to-ARM11 Semaphore 0..15 Flags (0=Off, 1=On). Reportedly these flags are sent in ARM11-to-DSP direction. Confusingly, the other DSP_Pxxx registers are for opposite direction?
DSP_PMASK
DSP-to-ARM11 Semaphore 0..15 Interrupt Disable (0=Enable, 1=Disable)
DSP_PCLEAR
DSP-to-ARM11 Semaphore 0..15 Clear (0=No Change, 1=Clear). Reportedly clears bits in DSP_PSEM. [that's probably nonsense, clearing bits in DSP_SEM would make more sense]
DSP_SEM
DSP-to-ARM11 Semaphore 0..15 Flags (0=Off, 1=On). Reportedly these flags are received in DSP-to-ARM11 direction.
DSP_CMDX
Command/Data to DSP.
DSP_REPX
Reply/Data from DSP.