OK, this took me a while to figure out. When no undervoltage limit is configured, I can reliably trigger the initialization bug upon boot. When the limit is set to 3.0V, it rarely occurs, but just after I send the v3 patch, I was able to reproduce... > Am 15.07.2022 um 19:12 schrieb Christian Kohlschütter <christian@xxxxxxxxxxxxxxxx>: > > mmc/SD-card initialization may fail on NanoPi R4S with > "mmc1: problem reading SD Status register" / > "mmc1: error -110 whilst initialising SD card" > either on cold boot or after a reboot. > > Moreover, the system would also sometimes hang upon reboot. > > This is prevented by setting an explicit undervoltage protection limit > for the SD-card-specific vcc3v0_sd voltage regulator. > > Set the undervoltage protection limit to 2.7V, which is the minimum > permissible SD card operating voltage. > > Signed-off-by: Christian Kohlschütter <christian@xxxxxxxxxxxxxxxx> > --- > arch/arm64/boot/dts/rockchip/rk3399-nanopi4.dtsi | 4 ++++ > 1 file changed, 4 insertions(+) > mode change 100644 => 100755 arch/arm64/boot/dts/rockchip/rk3399-nanopi4.dtsi > > diff --git a/arch/arm64/boot/dts/rockchip/rk3399-nanopi4.dtsi b/arch/arm64/boot/dts/rockchip/rk3399-nanopi4.dtsi > old mode 100644 > new mode 100755 > index 8c0ff6c96e03..669c74ce4d13 > --- a/arch/arm64/boot/dts/rockchip/rk3399-nanopi4.dtsi > +++ b/arch/arm64/boot/dts/rockchip/rk3399-nanopi4.dtsi > @@ -73,6 +73,10 @@ vcc3v0_sd: vcc3v0-sd { > regulator-always-on; > regulator-min-microvolt = <3000000>; > regulator-max-microvolt = <3000000>; > + > + // must be configured or SD card may fail to initialize occasionally > + regulator-uv-protection-microvolt = <2700000>; > + > regulator-name = "vcc3v0_sd"; > vin-supply = <&vcc3v3_sys>; > }; > -- > 2.36.1