SD/MMC/SDIO Registers: Difference between revisions
No edit summary |
|||
| Line 271: | Line 271: | ||
All other registers seem to be left unaffected (including the the extra IRQ flags in 4004900h); though there may be some further hidden effects (like aborting transfers or resetting internal registers).<br> | All other registers seem to be left unaffected (including the the extra IRQ flags in 4004900h); though there may be some further hidden effects (like aborting transfers or resetting internal registers).<br> | ||
Note: The DSi firmware does issue reset by toggling both bit0 and bit1, although bit1 does seem to be read-only (always 1), and trying to clear that bit doesn't seem to have any effect at all. | Note: The DSi firmware does issue reset by toggling both bit0 and bit1, although bit1 does seem to be read-only (always 1), and trying to clear that bit doesn't seem to have any effect at all. | ||
== DSi SD/MMC I/O Ports: Unknown/Unused Registers == | |||
===40048F6h/4004AF6h - Firmware tests bit0 (but, always 0?) (RESERVED4)=== | |||
15-1 Unknown (0) | |||
0 Unknown (tested by firmware) (usually 0) (R) | |||
===4004836h/4004A36h - SD_CARD_INTERRUPT_CONTROL ---- USED by SDIO=== | |||
4004A36h is used in SDIO IRQ handler.<br> | |||
On DSi, this register looks as so: | |||
15-2 Unknown (0) | |||
1 Unknown (gets set automatically after 2 seconds?) (and also R/W ?) | |||
0 Unknown (usually always 0) (tested by firmware?) (R?) | |||
Whilst old toshiba datasheets specify it as so: | |||
15-13 ? Unknown (zero on DSi) | |||
12 CINT0 SDIO Interrupt Flag (0=none/ack, 1=irq) (/IRQ aka Data1 pin) | |||
11-9 ? Unknown (zero on DSi) | |||
8 CIMSK0 SDIO Interrupt Mask (0=enable, 1=disable) (/IRQ aka Data1 pin) | |||
7-0 ? Unknown (zero on DSi) | |||
Acknowledge by writing CINT0=0, or CIMSK0=1 (uh, really?), or hard reset (unlike as for other SD/MMC interrupts, soft reset does not acknowlege this interrupt type?). | |||
===4004838h/4004A38h - SDCTL_CLK_AND_WAIT_CTL ---- USED by SDIO=== | |||
4004A38h is used in SDIO IRQ handler.<br> | |||
On DSi, this register looks as so (usually zero): | |||
15-14 Unknown (usually 0) (R/W) | |||
13-3 Unknown (0) | |||
2-0 Unknown (usually 0) (R/W) | |||
Whilst old toshiba datasheets specify it as so: | |||
15-0 Unknown (bit8 should be set after SD_CARD_CLK_CTL change?) | |||
Below registers don't seem to be used by existing software... | |||
===4004834h/4004A34h - SD_TRANSACTION_CTL - Transaction Control=== | |||
15-10 Unknown/unused (appears to be always zero) | |||
9-8 Unknown (R/W) | |||
7-3 Unknown/unused (appears to be always zero) | |||
2 Unknown (R/W) | |||
1 Unknown/unused (appears to be always zero) | |||
0 Unknown (R/W) | |||
===40048F2h/4004AF2h - Can be 0003h=== | |||
15-2 Unknown (0) | |||
1-0 Unknown (0..3) (R/W) | |||
===40048F4h/4004AF4h - Can be 0770h=== | |||
15-11 Unknown (0) | |||
10-8 Unknown (0..7) (R/W) | |||
7 Unknown (0) | |||
6-4 Unknown (0..7) (R/W) | |||
3-0 Unknown (0) | |||
===40048FAh - Can be 0004h..0007h (nonzero, unlike SDIO) (RESERVED6)=== | |||
15-3 Unknown (0) | |||
2 Unknown (usually set) (R) | |||
1-0 Unknown (0..3) (R/W? or rather R?) | |||
===40048FCh/4004AFCh - Can be 0024h..00FFh? (RESERVED7)=== | |||
===40048FEh/4004AFEh - Can be 0024h..00FFh? (RESERVED8 / TC6371AF:Revision)=== | |||
15-8 Unknown (0) | |||
7-0 Can be 24h..FFh parts (R) and parts (R/W)? | |||
===Unused Registers with Fixed value (all bits read-only, or write-only)=== | |||
400482Ah/4004A2Ah 2 Fixed always zero? | |||
4004832h/4004A32h 2 Fixed always zero? ;(TC6371AF:BUF1 Data MSBs?) | |||
400483Ah/4004A3Ah 2 Fixed always zero? ;(SDCTL_SDIO_HOST_INFORMATION) | |||
400483Ch/4004A3Ch 2 Fixed always zero? ;(SDCTL_ERROR_CONTROL) | |||
400483Eh/4004A3Eh 2 Fixed always zero? ;(TC6387XB: LED_CONTROL) | |||
4004840h/4004A40h 2 Fixed always 003Fh? | |||
4004842h/4004A42h 2 Fixed always 002Ah? | |||
4004844h/4004A44h 6Eh Fixed always zerofilled? | |||
40048B2h/4004AB2h 2 Fixed always FFFFh? | |||
40048B4h/4004AB4h 6 Fixed always zerofilled? | |||
40048BAh/4004ABAh 2 Fixed always 0200h? | |||
40048BCh/4004ABCh 1Ch Fixed always zerofilled? | |||
40048DAh/4004ADAh 6 Fixed always zerofilled? | |||
40048E2h/4004AE2h 2 Fixed always 0009h? ;(RESERVED2/9, TC6371AF:CORE_REV) | |||
40048E4h/4004AE4h 2 Fixed always zero? | |||
40048E6h/4004AE6h 2 Fixed always zero? ;(RESERVED3, TC6371AF:BUF_ADR) | |||
40048E8h/4004AE8h 2 Fixed always zero? ;(TC6371AF:Resp_Header) | |||
40048EAh/4004AEAh 6 Fixed always zerofilled? | |||
40048F0h/4004AF0h 2 Fixed always zero? ;(RESERVED10) | |||
40048F8h 2 Fixed always 0004h? (unlike SDIO) (RESERVED5) | |||
4004AF8h 2 Fixed always zero? (unlike SD) (RESERVED5) | |||
4004AFAh 2 Fixed always zero? (unlike SD) (RESERVED6) | |||
4004902h/4004B02h 2 Fixed always zero? | |||
4004906h/4004B06h 2 Fixed always zero? | |||
400490Ah/4004B0Ah 2 Fixed always zero? | |||
4004910h/4004B10h F0h Fixed always zerofilled? | |||