On Wed Jul 5, 2023 at 4:42 PM CEST, Christopher Obbard wrote: > There is some instablity with some eMMC modules on ROCK Pi 4 SBCs running > in HS400 mode. This ends up resulting in some block errors after a while > or after a "heavy" operation utilising the eMMC (e.g. resizing a > filesystem). An example of these errors is as follows: > > [ 289.171014] mmc1: running CQE recovery > [ 290.048972] mmc1: running CQE recovery > [ 290.054834] mmc1: running CQE recovery > [ 290.060817] mmc1: running CQE recovery > [ 290.061337] blk_update_request: I/O error, dev mmcblk1, sector 1411072 op 0x1:(WRITE) flags 0x800 phys_seg 36 prio class 0 > [ 290.061370] EXT4-fs warning (device mmcblk1p1): ext4_end_bio:348: I/O error 10 writing to inode 29547 starting block 176466) > [ 290.061484] Buffer I/O error on device mmcblk1p1, logical block 172288 > [ 290.061531] Buffer I/O error on device mmcblk1p1, logical block 172289 > [ 290.061551] Buffer I/O error on device mmcblk1p1, logical block 172290 > [ 290.061574] Buffer I/O error on device mmcblk1p1, logical block 172291 > [ 290.061592] Buffer I/O error on device mmcblk1p1, logical block 172292 > [ 290.061615] Buffer I/O error on device mmcblk1p1, logical block 172293 > [ 290.061632] Buffer I/O error on device mmcblk1p1, logical block 172294 > [ 290.061654] Buffer I/O error on device mmcblk1p1, logical block 172295 > [ 290.061673] Buffer I/O error on device mmcblk1p1, logical block 172296 > [ 290.061695] Buffer I/O error on device mmcblk1p1, logical block 172297 > > Disabling the Command Queue seems to stop the CQE recovery from running, > but doesn't seem to improve the I/O errors. Until this can be investigated > further, disable HS400 mode on the ROCK Pi 4 SBCs to at least stop I/O > errors from occurring. > > While we are here, set the eMMC maximum clock frequency to 1.5MHz to > follow the ROCK 4C+. > > Fixes: 1b5715c602fd ("arm64: dts: rockchip: add ROCK Pi 4 DTS support") > Signed-off-by: Christopher Obbard <chris.obbard@xxxxxxxxxxxxx> > --- > > arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi b/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi > index 907071d4fe80..95efee311ece 100644 > --- a/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi > +++ b/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi > @@ -645,9 +645,9 @@ &saradc { > }; > > &sdhci { > + max-frequency = <150000000>; > bus-width = <8>; > - mmc-hs400-1_8v; > - mmc-hs400-enhanced-strobe; > + mmc-hs200-1_8v; > non-removable; > status = "okay"; > }; Works as advertised on a RockPi 4b v1.3 with kernel 6.1.37. Tested-By: Folker Schwesinger <dev@xxxxxxxxxxxxxxxxxxxxx> Folker