Changes

3,219 bytes added ,  00:59, 31 August 2015
no edit summary
Line 1: Line 1:  
SD_xxx is used to access onboard eMMC and external SD card slot (as selected via SD_CARD_PORT_SELECT).<br>
 
SD_xxx is used to access onboard eMMC and external SD card slot (as selected via SD_CARD_PORT_SELECT).<br>
 
SDIO_xxx is used to access the Atheros Wifi unit.
 
SDIO_xxx is used to access the Atheros Wifi unit.
 +
 +
== DSi SD/MMC I/O Map ==
 +
 +
  '''ARM7 DSi SD/MMC Registers for Memory Card access (SD Card and onboard eMMC)'''
 +
  4004800h 2    SD_CMD              Command and Response/Data Type
 +
  4004802h 2    SD_CARD_PORT_SELECT  (SD/MMC:020Fh, SDIO:010Fh)
 +
  4004804h 4    SD_CMD_PARAM0-1    Argument (32bit, 2 halfwords)
 +
  4004808h 2    SD_STOP_INTERNAL_ACTION
 +
  400480Ah 2    SD_DATA16_BLK_COUNT        "Transfer Block Count"
 +
  400480Ch 16  SD_RESPONSE0-7 (128bit, 8 halfwords)
 +
  400481Ch 4    SD_IRQ_STATUS0-1  ;IRQ Status  (0=ack, 1=req)
 +
  4004820h 4    SD_IRQ_MASK0-1    ;IRQ Disable (0=enable, 1=disable)
 +
  4004824h 2    SD_CARD_CLK_CTL Card Clock Control
 +
  4004826h 2    SD_DATA16_BLK_LEN  Memory Card Transfer Data Length
 +
  4004828h 2    SD_CARD_OPTION Memory Card Option Setup (can be C0FFh)
 +
  400482Ah 2    Fixed always zero?
 +
  400482Ch 4    SD_ERROR_DETAIL_STATUS0-1  Error Detail Status
 +
  4004830h 2    SD_DATA16_FIFO        Data Port  (SD_FIFO?)
 +
  4004832h 2    Fixed always zero?  ;(TC6371AF:BUF1 Data MSBs?)
 +
  4004834h 2    ? SD_TRANSACTION_CTL  Transaction Control
 +
  4004836h 2    ? SD_CARD_INTERRUPT_CONTROL ;4004A36h used in SDIO IRQ handler
 +
  4004838h 2    ? SD_CLK_AND_WAIT_CTL      ;4004A38h used in SDIO IRQ handler
 +
  400483Ah 2    Fixed always zero?  ;(SDCTL_SDIO_HOST_INFORMATION)
 +
  400483Ch 2    Fixed always zero?  ;(SDCTL_ERROR_CONTROL)
 +
  400483Eh 2    Fixed always zero?  ;(TC6387XB: LED_CONTROL)
 +
  4004840h 2    Fixed always 003Fh?
 +
  4004842h 2    Fixed always 002Ah?
 +
  4004844h 6Eh  Fixed always zerofilled?
 +
  40048B2h 2    Fixed always FFFFh?
 +
  40048B4h 6    Fixed always zerofilled?
 +
  40048BAh 2    Fixed always 0200h?
 +
  40048BCh 1Ch  Fixed always zerofilled?
 +
  40048D8h 2    SD_DATA_CTL
 +
  40048DAh 6    Fixed always zerofilled?
 +
  40048E0h 2    SD_SOFT_RESET  Software Reset (bit0=SRST=0=reset)
 +
  40048E2h 2    Fixed always 0009h?  ;(RESERVED2/9, TC6371AF:CORE_REV)
 +
  40048E4h 2    Fixed always zero?
 +
  40048E6h 2    Fixed always zero?  ;(RESERVED3, TC6371AF:BUF_ADR)
 +
  40048E8h 2    Fixed always zero?  ;(TC6371AF:Resp_Header)
 +
  40048EAh 6    Fixed always zerofilled?
 +
  40048F0h 2    Fixed always zero?  ;(RESERVED10)
 +
  40048F2h 2    ? Can be 0003h
 +
  40048F4h 2    ? Can be 0770h
 +
  40048F6h 2    ? Firmware tests bit0 (but, always 0?)      (RESERVED4)
 +
  40048F8h 2    Fixed always 0004h?  (nonzero, unlike SDIO) (RESERVED5)
 +
  40048FAh 2    ? Can be 0004h..0007h (nonzero, unlike SDIO) (RESERVED6)
 +
  40048FCh 2    ? Can be 0024h..00FFh?                      (RESERVED7)
 +
  40048FEh 2    ? Can be 0024h..00FFh?  (RESERVED8 / TC6371AF:Revision)
 +
  4004900h 2    SD_DATA32_IRQ
 +
  4004902h 2    Fixed always zero?
 +
  4004904h 2    SD_DATA32_BLK_LEN
 +
  4004906h 2    Fixed always zero?
 +
  4004908h 2    SD_DATA32_BLK_COUNT
 +
  400490Ah 2    Fixed always zero?
 +
  400490Ch 4    SD_DATA32_FIFO
 +
  4004910h F0h  Fixed always zerofilled?
 +
  '''ARM7 DSi SD/MMC Registers for SDIO access (for Atheros Wifi)'''
 +
  4004A00h 200h SDIO_xxx (same as SD_xxx at 4004800h..40049FFh, see there)
 +
  4004A02h 2    SDIO_CARD_PORT_SELECT (slightly different than 4004802h)
 +
  4004AF8h 2    Fixed always zero? (unlike SD_xxx at 40048F8h) (RESERVED5)
 +
  4004AFAh 2    Fixed always zero? (unlike SD_xxx at 40048FAh) (RESERVED6)
    
== DSi SD/MMC I/O Ports: Command/Param/Response/Data ==
 
== DSi SD/MMC I/O Ports: Command/Param/Response/Data ==
108

edits