Hi @Brussl ,
RAM for sdMMC is the buffer you supply to subsequent functions. But using separate non-cacheable MPU region for their placement is not a good idea as it forces you to use static buffers at fixed address or dynamically reconfigure MPU. Both are not a good programming practices.
Actually buffers for reading and writing sdMMC may reside in any region reachable by the DMA of the sdMMC controller. When you read, just before using the buffer being read you should invalidate the cache for the memory region used by the buffer calling SCB_InvalidateDCache_by_Addr. When you write, you should call SCB_CleanDCache_by_Addr just before triggering the write.
With best regards,
Dmitry