EMMC Registers: Difference between revisions

From 3dbrew
Jump to navigation Jump to search
No edit summary
No edit summary
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 23: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.