I noticed that microSD R,W performance seems very slow. I don't belive its the card's issue - C10, V30, U3, A2.
The card under test is a SanDisk Extreme 64GB, marked V30 / U3 / A2. It is detected as mmcblk1:
mmc1: new high speed SDXC card at address aaaa
mmcblk1: mmc1:aaaa SN64G 59.5 GiB
EXT4-fs (mmcblk1p4): mounted filesystem
The debugfs MMC status shows:
clock: 50000000 Hz
actual clock: 49500000 Hz
vdd: 21 (3.3 ~ 3.4 V)
bus mode: 2 (push-pull)
bus width: 2 (4 bits)
timing spec: 2 (sd high-speed)
signal voltage: 0 (3.30 V)
driver type: 0 (driver type B)
In dmesg I also see the controller reported with "pio":
mmci-pl18x 58005000.sdmmc: mmc1: PL180 manf 53 rev1 at 0x58005000 irq 56,0 (pio)
My measured performance on /test, using diskspd-for-linux with O_DIRECT/O_SYNC, is approximately:
Sequential read: ~10.6 MiB/s
Sequential write: ~2.1 MiB/s
Random 4K read: ~898 IOPS
Random 4K write: ~81 IOPS
Could you please clarify:
1. The STM32MP157 SoC can support better SDMMC modes than plain 50 MHz SD High-Speed,
so do I undersand it correctly, the Olimex board microSD slot wired for fixed 3.3V SD High-Speed operation, it cannot do 1.8V / UHS-I?
2. Is DMA expected to be available for this SDMMC controller, or is PIO mode normal on this board/kernel configuration?
3. Are there any recommended device-tree or kernel settings required to enable the best supported SDMMC performance?
My kernel:
Linux stm32mp1-olinuxino-lime 5.10.180-olimex #075247 SMP Tue Jun 30 07:54:18 UTC 2026 armv7l GNU/Linux
And my enabled overlays are:
stm32mp1-hdmi.dtbo STM32MP1-OLinuXino Enable HDMI
stm32mp1-mmc3.dtbo Enable MMC3 extension
(So i tested both slots: on board, and through slot on the shield extension board, almost same results)