I have an STM32429I-EVAL1 board. I have these working happily:
* microSD at 25MHz with 4-bit interface, using DMA
* USB OTG HS as an MSC device
* FatFs talking to SDIO with 8-10 MB/s throughput (write/read)
* USB (from Windows PC) talking to SDIO with 6-8 MB/s throughput (write/read)
I started with STM32CubeMX (4.21.0, with all updates), selecting my EVAL1 board and initializing all peripherals to their defaults for the board, then adding DMA / IRQ support for SDIO and fixing the interrupt priorities so that HAL_Delay() doesn't lock up.
The above data rates are pretty good, but I think they can be better - especially if I can [roughly] halve the time it takes to stream bytes to and from the SD card.
Do the HAL and/or BSP support for SDIO automagically increase the clock rate to 50MHz if the SD card can support that rate? If not, is there an "easy" place to hook into?