NDMA Registers: Difference between revisions

Guiand (talk | contribs)
Add device to device modes
 
Line 1: Line 1:
3DS NDMA has 8 channels. The first 0x100-bytes of this IO mem is mirrored at 0x10002100, repeated every 0x100-bytes until the end of the 0x1000-byte IO mem. NDMA can access the ARM9 bootrom, including the protected part before it is locked out.
3DS NDMA has 8 channels. The first 0x100-bytes of this IO mem is mirrored at 0x10002100, repeated every 0x100-bytes until the end of the 0x1000-byte IO mem. NDMA can access the Arm9 bootrom, including the protected part before it is locked out.


= Registers =
= Registers =
Line 136: Line 136:
!  Bit
!  Bit
!  Description
!  Description
|-
|  4-0
|  Device to device startup mode
|-
|-
|  11-10
|  11-10
Line 168: Line 171:
|}
|}


== Startup modes (27-24) ==
== Startup modes (4-0) ==
{| class="wikitable" border="1"
{| class="wikitable" border="1"
!  Value
!  Value
Line 192: Line 195:
|-
|-
| 6
| 6
| MMC1
| SDIO1
|-
|-
| 7
| 7
| MMC2?
| SDIO3
|-
|-
| 8
| 8
Line 207: Line 210:
|-
|-
| 11
| 11
| SHA out ([[SHA_Registers#SHA_FIFO|INFIFO]])
| SHA out ([[SHA_Registers#SHA_FIFO|INFIFO]], source data readback mode)
|-
|-
| 12
| 12
| ?
| NTRCARD
|-
|-
| 13
| 13
Line 219: Line 222:
|-
|-
| 15
| 15
| Boot9 Uses this to copy from the AES out FIFO to the SHA in FIFO
| Device to device (subclassed by bits 4-0)
|}
 
== Device to device startup modes (4-0) ==
{| class="wikitable" border="1"
!  Value
!  Description
|-
| 0
| CTRCARD0 -> AES
|-
| 1
| CTRCARD1 -> AES
|-
| 2
| AES -> CTRCARD0
|-
| 3
| AES -> CTRCARD1
|-
| 4
| CTRCARD0 -> SHA
|-
| 5
| CTRCARD1 -> SHA
|-
| 6
| SHA -> CTRCARD0
|-
| 7
| SHA -> CTRCARD1
|-
| 8
| SDIO1 -> AES
|-
| 9
| SDIO3 -> AES
|-
| 10
| AES -> SDIO1
|-
| 11
| AES -> SDIO3
|-
| 12
| SDIO1 -> SHA
|-
| 13
| SDIO3 -> SHA
|-
| 14
| SHA -> SDIO1
|-
| 15
| SHA -> SDIO3
|-
| 16
| AES -> SHA
|-
| 17
| SHA -> AES
|}
|}