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? |