Hi Shigeaki Asai,

On 10/10/26 3:32 AM, Shigeaki Asai wrote:
vddio_c (RK818 LDO9) is the vqmmc supply of the SD card. Linux picks
3.0V for it, the lowest value in the allowed 3.0V-3.3V range, and the
value is kept across a warm reboot. U-Boot then finds the card at
3.0V: it initializes, but data reads at 40 MHz fail on some cards (a
SanDisk Ultra A1 64GB here), so the kernel cannot be loaded and the
board drops to the U-Boot prompt. A cold boot works since the PMIC
starts from its 3.3V default.

Changing the kernel would not help the kernels already in use, so set
vddio_c to 3.3V when U-Boot probes the regulator, which happens on
every boot.


I'll let Neil decide since he's the maintainer of that code, but I don't think this is necessarily correct? The spec specifically allows 2.7-3.6V, c.f. https://www.sdcard.org/developers/sd-standard-overview/.

Moreover, RK3399 Puma has 1.8-3.0V only, and it's been working fine for years now (though I haven't checked with that SD card specifically).

What happens if you do NOT use the SD in U-Boot at all and boot straight to the Linux kernel, is it also broken in the Linux kernel then? If not, then your issue is probably not what your tool output and we may have an issue elsewhere (possibly in the MMC subsystem for example).

Cheers,
Quentin

Reply via email to