SD/MMC/SDIO Registers: Difference between revisions
No edit summary |
|||
| Line 67: | Line 67: | ||
===4004800h/4004A00h - SD_CMD - Command and Response/Data Type (R/W)=== | ===4004800h/4004A00h - SD_CMD - Command and Response/Data Type (R/W)=== | ||
15 undoc Unknown/undoc (read/write-able) | 15 undoc Unknown/undoc (read/write-able) | ||
14 undoc Security Cmd | 14 undoc Security Cmd? (0=Normal, 1=Whatever/Security?) (sdio?) | ||
13 undoc Data Length (0=Single Block, 1=Multiple Blocks) | 13 undoc Data Length (0=Single Block, 1=Multiple Blocks) | ||
12 undoc Data Direction (0=Write, 1=Read) | 12 undoc Data Direction (0=Write, 1=Read) | ||
11 NTDT Data Transfer (0=No data, 1=With data) | 11 NTDT Data Transfer (0=No data, 1=With data) | ||
10-8 REP2-0 Response Type (0..2=Unknown/Reserved, 3=None, 4=48bit, | 10-8 REP2-0 Response Type (0=Auto, 1..2=Unknown/Reserved, 3=None, 4=48bit, | ||
5=48bit+Busy, 6=136bit, 7=48bitOcrWithoutCRC7) | 5=48bit+Busy, 6=136bit, 7=48bitOcrWithoutCRC7) | ||
7-6 CMD1-0 Command Type (0=CMD, 1=ACMD, 2..3=unknown, maybe GEN WR/RD?) | 7-6 CMD1-0 Command Type (0=CMD, 1=ACMD, 2..3=unknown, maybe GEN WR/RD?) | ||
5-0 CIX Command Index (0..3Fh, command index) | 5-0 CIX Command Index (0..3Fh, command index) | ||
Invalid values can cause ILA error (particulary on setting NTDT for CMD12, or for CMD's Response=None). ILA error will also occur if an old CMD is still busy. | Setting Command Type to "ACMD" is automatically sending an APP_CMD prefix prior to the command number. For Multiple Blocks, the hardware supports automatically sending STOP_TRANSMISSION after the last block.<br> | ||
DSi software is usually setting Response Type to "Auto", which is causing the hardware to use the correct response/data type for standard SD/MMC commands (bit11-13 are ignored/should be zero when using "Auto"; and maybe same for bit14-15?).<br> | |||
One exception is that the DSi firmware isn't using "Auto" for SDIO commands (maybe the hardware isn't aware of them; or it's unable to distinguish between read/write direction of CMD53, which would require examining the command's PARAM bits).<br> | |||
There might be subtle differences between some SD and MMC commands, unknown if/how "Auto" is working in that cases; unknown if there's a SD-or-MMC mode select bit for that purpose in some configuration register.<br> | |||
Invalid values can cause ILA error (particulary on setting NTDT for CMD12, or for CMD's Response=None). ILA error will also occur if an old CMD is still busy. | |||
===4004804h/4004A04h - SD_CMD_PARAM0-1 - Argument (32bit, 2 halfwords) (R/W)=== | ===4004804h/4004A04h - SD_CMD_PARAM0-1 - Argument (32bit, 2 halfwords) (R/W)=== | ||