Line 1: |
Line 1: |
− | These registers are used to access the system [[Flash_Filesystem|NAND]] and the inserted SD card. Both devices use the same interface. | + | These registers are used to access the system [[Flash_Filesystem|NAND]] and the inserted SD card. Both devices use the same interface. HCLK of the SDMMC controller is 67.027964 MHz (double of the DSi HCLK). |
| | | |
| =Registers= | | =Registers= |
Line 14: |
Line 14: |
| | 0x10006000 | | | 0x10006000 |
| | 2 | | | 2 |
− | | | + | | Boot9, NewKernel9Loader, Process9 |
| |- | | |- |
| | style="background: green" | Yes | | | style="background: green" | Yes |
− | | ? | + | | EMMC_PORTSEL |
| | 0x10006002 | | | 0x10006002 |
| | 2 | | | 2 |
− | | | + | | Port selection, 0 = SD card, 1 = NAND |
| |- | | |- |
| | style="background: green" | Yes | | | style="background: green" | Yes |
Line 53: |
Line 53: |
| |- | | |- |
| | style="background: green" | Yes | | | style="background: green" | Yes |
− | | EMMC_STATUS0 | + | | [[#EMMC_STATUS0|EMMC_STATUS0]] |
| | 0x1000601c | | | 0x1000601c |
| | 2 | | | 2 |
Line 108: |
Line 108: |
| |} | | |} |
| | | |
− | The IO interface for SDMC/NAND seems to be very similar to the DSi; see libnds for [https://github.com/devkitPro/libnds/blob/master/source/arm7/sdmmc.c sample code] and [https://github.com/devkitPro/libnds/blob/master/include/nds/arm7/sdmmc.h documentation], and GBATEK for [http://problemkaputt.de/gbatek.htm#dsisdmmcioportscommandparamresponsedata better documentation]. | + | The IO interface for SDMC/NAND seems to be very similar to the DSi; see libnds for [https://github.com/devkitPro/libnds/blob/master/source/arm7/sdmmc.twl.c sample code] and [https://github.com/devkitPro/libnds/blob/master/include/nds/arm7/sdmmc.h documentation], and GBATEK for [http://problemkaputt.de/gbatek.htm#dsisdmmcioportscommandparamresponsedata better 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. | | 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. |
Line 128: |
Line 128: |
| |- | | |- |
| |} | | |} |
| + | |
| + | ===SD card insertion status=== |
| + | Assertion happens around 250 ms after SD card insertion and/or enabling the EMMC hardware (delay could possibly be due to an SD bus timeout?). |