Olimex Support Forum

OLinuXino Android / Linux boards and System On Modules => STMP1 => Topic started by: dry on July 03, 2026, 04:18:02 PM

Title: STM32MP1-OLinuXino-LIME: supported microSD/SDMMC modes and expected throughput?
Post by: dry on July 03, 2026, 04:18:02 PM
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)