RK3576 PVT (Shenzhen) — SD Card Read/Write Test

2026-10-21 17:27 (UTC+7) · Author: Wilber Zheng · Verdict: PASS

Summary

An SD card was inserted into the Shenzhen PVT board because the EVT board's SD card had problems. The card is detected at full speed (SDR104), auto-mounts read-write, and a 64 MB random-data write and read-back matches byte for byte. The kernel log shows no MMC, I/O or filesystem errors before or after the test.

Device under test

BoardOptiSigns ProPlayer RK3576, PVT unit (vendor-flashed), located in Shenzhen
Portal screenrk_pvt_shenzhen (team testing10, production)
Device ID / UUID6ad8311bf16f6753eb64516a / 6ebb86096de8a20ba982d3ac78091817f789
MAC84:fc:14:24:d1:08
Imagedbg455, BUILD_ID 20261019T035857Z-243057817-b66382a24
Kernel / player6.1.99-dbg455 / 5.7.1-P31-RK
State during testUptime 2 h 06 m, player playing its playlist; no reboot, no network or pairing change
Internal storageeMMC mmcblk0, 58.3 GB

SD card

CardSDXC, product name SD64G, manufacturer ID 0x03, OEM ID 0x5344 ("SD"), manufactured 12/2024
Capacity59.5 GiB (124,735,488 sectors), not read-only
Bus modeUltra high speed SDR104, 198 MHz (requested 200 MHz), tuning phase 0 succeeded
Controllerdwmmc_rockchip 2a310000.mmc (mmc1)
Partition / filesystemmmcblk1p1, ext4
MountAuto-mounted read-write at /run/media/mmcblk1p1
Usage before test1.1 GB used, 55 GB free (pre-existing media: a 4K JPEG and two 4K MP4 files, left untouched)

Test environment

Board networkMobile hotspot (likely mobile data), about 110 ms RTT, jittery
Remote accessSSH over OptiSigns SecureLink (APAC), SecureLink IP 100.65.179.160
Test hostBench host in the test lab, driving the board through the device-harness Device SSH client (root via su)
Rigproplayer-rk-wilber-pvt-01 (no capture card, smart plug or serial console)

Steps and results

1. Status check (read-only)lsblk, /proc/mounts, card sysfs, kernel log: card detected, mounted rw, no errors
2. Write64 MB from /dev/urandom written to the card with dd conv=fsync: 2.8 s, 22.9 MB/s
3. Cache dropsync; echo 3 > /proc/sys/vm/drop_caches, so the read comes from the card
4. Read back64 MB in 0.8 s, 84.3 MB/s
5. VerifyMD5 source = MD5 read-back = 1c5d0744348beb6c86523fedff391d78 — match
6. Kernel log afterNo new MMC, I/O or ext4 messages; the last MMC event is the card insertion
7. CleanupTest file removed; existing card content unchanged

Player external storage (DEV-CTL-013)

ResultPASS with the case fix below, 26 s (run twice: temporary patch, then the committed fix)
What it checksPortal "Use External Storage" set to the SD mount /run/media/mmcblk1p1: the device record stores externalStorage=true and the path, and the player logs External storage... true within 30 s. The USB/SD path-change phase was skipped (only an SD card present).
Unmodified caseSKIPPED: "no removable USB/SD mounted". The RK kernel reports the SD card as RM=0 / HOTPLUG=0, so the case's removable-media detection does not see it.
Root causeThe board and the kernel are fine: the SD slot is enabled, and the card was detected the moment it was inserted. The problem was in the test. It looked for external storage by checking a "removable" label, and Linux never puts that label on SD cards, on any device. So the test never found the card.
Case fixThe case also accepts partitions of an mmc disk whose card type is SD (/sys/block/mmcblkN/device/type = SD; the eMMC reads MMC and stays excluded). USB detection unchanged. Branch fix/wilber/dev-ctl-013-sd-detect, commit 98f96e82 (local, not yet merged).
HistoryThe case passed on the EVT board on 2026-10-20 and 2026-10-21 (9-11 s), which can only have been through a USB stick. This is the first time it exercised an SD card on RK.
LimitConfiguration only: it does not prove the player writes its cache to the card.
State restorePortal state saved before the run (screen name, folder, external-storage setting, content, video player type). The case's setup renamed the screen to the bench convention; the name was written back and every saved field was verified equal afterwards. The external-storage setting was restored by the case itself.

Notes

The speeds are a single 64 MB pass, not a benchmark. Not covered: long-duration or full-capacity writes, and player cache writes to the card.