User Tools

Site Tools


sdio

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
sdio [2024/10/20 10:19] – created arisoturasdio [2025/04/16 20:24] (current) arisotura
Line 50: Line 50:
 | 0xE00100FE | SD_HostControllerVersion | | 0xE00100FE | SD_HostControllerVersion |
  
-This SDIO host controller seems to almost be standards compliantwith a few exceptions.+There is also a register at 0xF0004800 that seems to control something related to the SDIO controller. The reset value for that register is 3any other value breaks SDIO functionality. Not known yet how this works in detail.
  
-For example, when setting the block size for a CMD53 transfer, the stock firmware sets bit 12-14 in SD_BlockSize to 7. The open-source BCM43xx drivers do not do this. It is not known what this changes implies, but DMA will not function correctly without it.+This SDIO host controller seems to be mostly standards compliant. Documentation: https://kuribo64.net/get.php?id=XwfZ1HYFrc4T2uAv 
 + 
 +When setting the block size for a CMD53 transfer, the stock firmware sets bit 12-14 in SD_BlockSize to 7. The open-source BCM43xx drivers do not do this. These bits are the SDMA buffer boundary: a DMA transfer stops when crossing the specified boundary (here configured to 512K). Writing a new address to SD_SysAddr will resume the DMA transfer. If not using fancy memory tricks, one can just write the current SD_SysAddr value back to continue the transfer where it stopped.
  
 Register SD_Capabilities reads as 0x69EF30B0. (TODO: document some of the other fixed registers) Register SD_Capabilities reads as 0x69EF30B0. (TODO: document some of the other fixed registers)
 +
sdio.1729419599.txt.gz · Last modified: 2024/10/20 10:19 by arisotura

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki