Difference between revisions of "EMMC Registers"

From 3dbrew
Jump to navigation Jump to search
Line 1: Line 1:
 +
=Registers=
 +
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
NAME
+
Old3DS
PHYSICAL ADDRESS
+
Name
WIDTH
+
Address
 +
!  Width
 +
!  Used by
 
|-
 
|-
| REG_SDCMD
+
| style="background: green" | Yes
 +
| EMMC_CMD
 
| 0x10006000
 
| 0x10006000
 
| 2
 
| 2
 +
|
 
|-
 
|-
| REG_SD???
+
| style="background: green" | Yes
 +
| ?
 
| 0x10006002
 
| 0x10006002
 
| 2
 
| 2
 +
|
 
|-
 
|-
| REG_SDCMDARG0
+
| style="background: green" | Yes
 +
| EMMC_CMDARG0
 
| 0x10006004
 
| 0x10006004
 
| 2
 
| 2
 +
|
 
|-
 
|-
| REG_SDCMDARG1
+
| style="background: green" | Yes
 +
| EMMC_CMDARG1
 
| 0x10006006
 
| 0x10006006
 
| 2
 
| 2
 +
|
 
|-
 
|-
| REG_SDSTOP
+
| style="background: green" | Yes
 +
| EMMC_STOP
 
| 0x10006008
 
| 0x10006008
 
| 2
 
| 2
 +
|
 
|-
 
|-
| REG_SDBLKCOUNT
+
| style="background: green" | Yes
 +
| EMMC_BLKCOUNT
 
| 0x1000600a
 
| 0x1000600a
 
| 2
 
| 2
 +
|
 
|-
 
|-
| REG_SDRESP0-7
+
| style="background: green" | Yes
 +
| EMMC_RESP0-7
 
| 0x1000600c
 
| 0x1000600c
 
| 2*8
 
| 2*8
 +
|
 
|-
 
|-
| REG_SDSTATUS0
+
| style="background: green" | Yes
 +
| EMMC_STATUS0
 
| 0x1000601c
 
| 0x1000601c
 
| 2
 
| 2
 +
|
 
|-
 
|-
| REG_SDSTATUS1
+
| style="background: green" | Yes
 +
| EMMC_STATUS1
 
| 0x1000601e
 
| 0x1000601e
 
| 2
 
| 2
 +
|
 
|-
 
|-
| REG_SD???
+
| style="background: green" | Yes
 +
| ?
 
| 0x10006020
 
| 0x10006020
 
| 2
 
| 2
 +
|
 
|-
 
|-
| REG_SD???
+
| style="background: green" | Yes
 +
| ?
 
| 0x10006022
 
| 0x10006022
 
| 2
 
| 2
 +
|
 
|-
 
|-
| REG_SDCLKCTL
+
| style="background: green" | Yes
 +
| EMMC_CLKCTL
 
| 0x10006024
 
| 0x10006024
 
| 2
 
| 2
 +
|
 
|-
 
|-
| REG_SDBLKLEN
+
| style="background: green" | Yes
 +
| EMMC_BLKLEN
 
| 0x10006026
 
| 0x10006026
 
| 2
 
| 2
 +
|
 
|-
 
|-
| REG_SDOPT
+
| style="background: green" | Yes
 +
| EMMC_OPT
 
| 0x10006028
 
| 0x10006028
 
| 2
 
| 2
 +
|
 
|-
 
|-
| REG_SDFIFO
+
| style="background: green" | Yes
 +
| EMMC_FIFO
 
| 0x10006030
 
| 0x10006030
 
| 2
 
| 2
 +
|
 
|-
 
|-
| REG_SDRESET
+
| style="background: green" | Yes
 +
| EMMC_RESET
 
| 0x100060E0
 
| 0x100060E0
 
| 2
 
| 2
 +
|
 
|}
 
|}
  

Revision as of 22:49, 19 March 2015

Registers

Old3DS Name Address Width Used by
Yes EMMC_CMD 0x10006000 2
Yes ? 0x10006002 2
Yes EMMC_CMDARG0 0x10006004 2
Yes EMMC_CMDARG1 0x10006006 2
Yes EMMC_STOP 0x10006008 2
Yes EMMC_BLKCOUNT 0x1000600a 2
Yes EMMC_RESP0-7 0x1000600c 2*8
Yes EMMC_STATUS0 0x1000601c 2
Yes EMMC_STATUS1 0x1000601e 2
Yes ? 0x10006020 2
Yes ? 0x10006022 2
Yes EMMC_CLKCTL 0x10006024 2
Yes EMMC_BLKLEN 0x10006026 2
Yes EMMC_OPT 0x10006028 2
Yes EMMC_FIFO 0x10006030 2
Yes EMMC_RESET 0x100060E0 2

The IO interface for SDMC/NAND seems to be very similar to the DSi; see libnds for sample code and documentation.

3DS SDMC/NAND IO registers are located at 0x10006000 and apparently mirrored at 0x10007000. It seems the 0x10007000 mirror is never used on retail units.