eMMC errors on Khadas VIM2

Jerome Brunet jbrunet at baylibre.com
Tue Jan 23 10:25:08 PST 2018


On Tue, 2018-01-23 at 17:12 +0100, Martin Blumenstingl wrote:
> Hello,
> 
> I've been observing the following error on my Khadas VIM2 (with 16GiB eMMC):
> [    4.829411] mmc1: mmc_select_hs400 failed, error -84
> [    4.829444] mmc1: error -84 whilst initialising MMC card

I remember testing this quickly on the vim2 I have, but that was before we added
tx phase tunning.

I had a quick try and kvim2 indeed miserably fail on kevin's integ branch

I reverted 0a44697627d1, and it seems to be back to normal

I never really liked this tweak and amlogic mentioned to us that we should
probably not tune this and keep the default value ...

> 
> removing the "mmc-hs400-1_8v" property from the sd_emmc_c node results in:
> [    4.710491] mmc1: new HS200 MMC card at address 0001
> [    4.710844] mmcblk1: mmc1:0001 AJNB4R 14.6 GiB
> [    4.714424] mmcblk1boot0: mmc1:0001 AJNB4R partition 1 4.00 MiB
> [    4.720272] mmcblk1boot1: mmc1:0001 AJNB4R partition 2 4.00 MiB
> [    4.726176] mmcblk1rpmb: mmc1:0001 AJNB4R partition 3 4.00 MiB,
> chardev (240:0)

The input frequency of the controller is lower in hs200 (200Mhz vs 333Mhz)

> ...
> # dd if=/dev/mmcblk1 | sha1sum
> 30535680+0 records in
> 30535680+0 records out
> 912b9d765a0ffee2711f65f2bbbdc2bc7544e52c  -
> 15634268160 bytes (16 GB, 15 GiB) copied, 205.13 s, 76.2 MB/s
> (no CRC errors are shown in the kernel log)
> 
> since I was curious I added the "mmc-hs400-1_8v" property back and
> added "mmc-hs400-enhanced-strobe" to the sd_emmc_c node, which results
> in:
> [    4.227948] mmc1: new HS400 Enhanced strobe MMC card at address 0001
> [    4.230284] mmcblk1: mmc1:0001 AJNB4R 14.6 GiB
> [    4.254733] mmcblk1boot0: mmc1:0001 AJNB4R partition 1 4.00 MiB
> [    4.260559] mmcblk1boot1: mmc1:0001 AJNB4R partition 2 4.00 MiB
> [    4.407234] mmcblk1rpmb: mmc1:0001 AJNB4R partition 3 4.00 MiB,
> chardev (240:0)

Weird ! If I understand the code correctly, adding this caps should only trigger
the related "enhance-strobe" callback ... but meson-gx-mmc does not implement it
, so this should have no effect

Maybe I missed something



> ...
> # cat /sys/kernel/debug/mmc1/ios
> clock:          200000000 Hz
> actual clock:   166666667 Hz
> vdd:            21 (3.3 ~ 3.4 V)
> bus mode:       2 (push-pull)
> chip select:    0 (don't care)
> power mode:     2 (on)
> bus width:      3 (8 bits)
> timing spec:    10 (mmc HS400 enhanced strobe)
> signal voltage: 1 (1.80 V)
> driver type:    0 (driver type B)
> # dd if=/dev/mmcblk1 | sha1sum
> 30535680+0 records in
> 30535680+0 records out
> 912b9d765a0ffee2711f65f2bbbdc2bc7544e52c  -
> 15634268160 bytes (16 GB, 15 GiB) copied, 203.118 s, 77.0 MB/s
> (no CRC errors are shown in the kernel log)
> 
> @Jerome: is this something you have seen before?
> 
> 
> Regards
> Martin




More information about the linux-amlogic mailing list