iMX7 WD eMMC performance issues

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

iMX7 WD eMMC performance issues

1,201件の閲覧回数
igal_kagan
Contributor I

Hello.

In our products, we are using for a couple of years iMX7Solo device with Micron MTFC8GAMALBH-IT eMMC. We are using it in HS400 mode. We didn't have any problems with this memory - also validating our design with environmental testings etc.
Unfortunately,  Micron's eMMC is EOL and we trying to replace it with pin-compatible Western Digital SDINBDG4-8G-XI2. We faced a problem with this device in HS400 mode in a read operation.

(Linux kernel 5.4.24 for i.mx 7 NXP)

Here are some tests that we performed and results received:

//Information

root@VoqX:~# cat /sys/kernel/debug/mmc2/ios

clock:          200000000 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)

signal voltage: 1 (1.80 V)

driver type:    0 (driver type B)

 

//Succesufful write test:

root@VoqX:/media/sdx2# dd if=/dev/urandom of=test oflag=direct bs=1MiB count=100

100+0 records in

100+0 records out

104857600 bytes (105 MB, 100 MiB) copied, 7.32034 s, 14.3 MB/s

 

//Unsuccesfull read test:

root@VoqX:/media/sdx2# echo 3 > /proc/sys/vm/drop_caches

[  823.103248] sh (579): drop_caches: 3

dd if=test of=dev/null bs=1MiB count=100

 

[  885.607643] mmc2: Timeout waiting for hardware interrupt.

[  885.613061] mmc2: sdhci: ============ SDHCI REGISTER DUMP ===========

[  885.619507] mmc2: sdhci: Sys addr:  0x83659c00 | Version:  0x00000002

[  885.625951] mmc2: sdhci: Blk size:  0x00000200 | Blk cnt:  0x0000032a

[  885.632394] mmc2: sdhci: Argument:  0x0013c834 | Trn mode: 0x0000003b

[  885.638839] mmc2: sdhci: Present:   0x01f8820e | Host ctl: 0x00000031

[  885.645282] mmc2: sdhci: Power:     0x00000002 | Blk gap:  0x00000080

[  885.651725] mmc2: sdhci: Wake-up:   0x00000008 | Clock:    0x0000000f

[  885.658169] mmc2: sdhci: Timeout:   0x0000008f | Int stat: 0x00000000

[  885.664612] mmc2: sdhci: Int enab:  0x117f100b | Sig enab: 0x117f100b

[  885.671056] mmc2: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00000302

[  885.677500] mmc2: sdhci: Caps:      0x07eb0000 | Caps_1:   0x8000b407

[  885.683944] mmc2: sdhci: Cmd:       0x0000123a | Max curr: 0x00ffffff

[  885.690387] mmc2: sdhci: Resp[0]:   0x00000900 | Resp[1]:  0x303801c9

[  885.696831] mmc2: sdhci: Resp[2]:   0x44473430 | Resp[3]:  0x00000900

[  885.703273] mmc2: sdhci: Host ctl2: 0x00000088

[  885.707721] mmc2: sdhci: ADMA Err:  0x00000003 | ADMA Ptr: 0x8e0422d4

[  885.714162] mmc2: sdhci: ============================================

[  885.728200] sdhci-esdhc-imx 30b60000.usdhc: error -110 requesting status

[  885.735059] mmc2: cache flush error -110

[  895.847653] mmc2: Timeout waiting for hardware interrupt.

[  895.853069] mmc2: sdhci: ============ SDHCI REGISTER DUMP ===========

[  895.859514] mmc2: sdhci: Sys addr:  0x8175da00 | Version:  0x00000002

[  895.865958] mmc2: sdhci: Blk size:  0x00000200 | Blk cnt:  0x0000036b

[  895.872402] mmc2: sdhci: Argument:  0x0013c834 | Trn mode: 0x0000003b

[  895.878847] mmc2: sdhci: Present:   0x01f8820e | Host ctl: 0x00000031

[  895.885291] mmc2: sdhci: Power:     0x00000002 | Blk gap:  0x00000080

[  895.891734] mmc2: sdhci: Wake-up:   0x00000008 | Clock:    0x0000000f

[  895.898177] mmc2: sdhci: Timeout:   0x0000008f | Int stat: 0x00000000

[  895.904621] mmc2: sdhci: Int enab:  0x117f100b | Sig enab: 0x117f100b

[  895.911064] mmc2: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00000302

[  895.917508] mmc2: sdhci: Caps:      0x07eb0000 | Caps_1:   0x8000b407

[  895.923952] mmc2: sdhci: Cmd:       0x0000123a | Max curr: 0x00ffffff

[  895.930396] mmc2: sdhci: Resp[0]:   0x00000900 | Resp[1]:  0x303801c9

[  895.936840] mmc2: sdhci: Resp[2]:   0x44473430 | Resp[3]:  0x00000900

[  895.943282] mmc2: sdhci: Host ctl2: 0x00000088

[  895.947729] mmc2: sdhci: ADMA Err:  0x00000003 | ADMA Ptr: 0x8e042294

[  895.954171] mmc2: sdhci: ============================================

[  895.961893] sdhci-esdhc-imx 30b60000.usdhc: error -110 requesting status

[  895.968634] mmcblk2: recovery failed!

[  895.972497] blk_update_request: I/O error, dev mmcblk2, sector 1296436 op 0x0:(READ) flags 0x80700 phys_seg 127 prio class 0

[  895.984129] mmc2: cache flush error -110

[  895.988097] blk_update_request: I/O error, dev mmcblk2, sector 4563300 op 0x1:(WRITE) flags 0x20800 phys_seg 1 prio class 0

[  895.999268] Aborting journal on device mmcblk2p2-8.

[  896.004540] mmc2: mmc_hs400_to_hs200 failed, error -110

[  896.010229] sdhci-esdhc-imx 30b60000.usdhc: error -110 requesting status

[  896.016935] mmcblk2: recovery failed!

[  896.020920] mmc2: mmc_hs400_to_hs200 failed, error -110

[  896.026588] sdhci-esdhc-imx 30b60000.usdhc: error -110 requesting status

[  896.033476] mmc2: cache flush error -110

[  896.053545] blk_update_request: I/O error, dev mmcblk2, sector 1296436 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0

dd: error reading 'test': Input/output error

0+0 records in

0+0 records out

0 bytes copied, 20.6048 s, 0.0 kB/s

 

What can the issue?

I will appreciate any help with this issue.

 

Thanks.

Best regards,

Igor Kagan

0 件の賞賛
3 返答(返信)

1,170件の閲覧回数
ReinerS
Contributor I

Hi,
we are using the i.MX 7Dual MCIMX7D7DVM10SD in combination with the 8GByte Flash THGBMJG6C1LBAIL.
Even if we have set the clock frequency to 100 MHz, we also got the following quite similar errors.
cat /sys/kernel/debug/mmc2/ios
clock: 100000000 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)
signal voltage: 1 (1.80 V)
driver type: 0 (driver type B)

errors:
[25651.614041] sdhci-esdhc-imx 30b60000.usdhc: error -110 requesting status
[25651.621040] mmc2: cache flush error -110
[25777.579888] sdhci-esdhc-imx 30b60000.usdhc: error -110 requesting status
[25777.586993] mmc2: cache flush error -110
[26409.685601] sdhci-esdhc-imx 30b60000.usdhc: error -110 requesting status
[26409.692543] mmc2: cache flush error -110
[26535.690042] sdhci-esdhc-imx 30b60000.usdhc: error -110 requesting status
[26535.697686] mmc2: cache flush error -110
[26662.094408] sdhci-esdhc-imx 30b60000.usdhc: error -110 requesting status
[26662.101544] mmc2: cache flush error -110
[27105.629768] sdhci-esdhc-imx 30b60000.usdhc: error -110 requesting status
[27105.636687] mmc2: cache flush error -110
[27168.799767] sdhci-esdhc-imx 30b60000.usdhc: error -110 requesting status
[27168.807119] mmc2: cache flush error -110
[27295.383012] sdhci-esdhc-imx 30b60000.usdhc: error -110 requesting status
[27295.389954] mmc2: cache flush error -110
[27484.619314] sdhci-esdhc-imx 30b60000.usdhc: error -110 requesting status
[27484.626314] mmc2: cache flush error -110
[27988.892705] sdhci-esdhc-imx 30b60000.usdhc: error -110 requesting status
[27988.899626] mmc2: cache flush error -110
[28188.305530] mmc2: Timeout waiting for hardware interrupt.
[28188.310948] mmc2: sdhci: ============ SDHCI REGISTER DUMP ===========
[28188.317395] mmc2: sdhci: Sys addr: 0x9aa0fa00 | Version: 0x00000002
[28188.323841] mmc2: sdhci: Blk size: 0x00000200 | Blk cnt: 0x00000005
[28188.330286] mmc2: sdhci: Argument: 0x003d98fc | Trn mode: 0x00000023
[28188.336731] mmc2: sdhci: Present: 0x01f8810e | Host ctl: 0x00000031
[28188.343173] mmc2: sdhci: Power: 0x00000002 | Blk gap: 0x00000080
[28188.349614] mmc2: sdhci: Wake-up: 0x00000008 | Clock: 0x0000001f
[28188.356056] mmc2: sdhci: Timeout: 0x0000008f | Int stat: 0x00000000
[28188.362498] mmc2: sdhci: Int enab: 0x107f100b | Sig enab: 0x107f100b
[28188.368939] mmc2: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00000302
[28188.375381] mmc2: sdhci: Caps: 0x07eb0000 | Caps_1: 0x8000b407
[28188.381823] mmc2: sdhci: Cmd: 0x0000193a | Max curr: 0x00ffffff
[28188.388264] mmc2: sdhci: Resp[0]: 0x00000900 | Resp[1]: 0x423000cc
[28188.394706] mmc2: sdhci: Resp[2]: 0x30303847 | Resp[3]: 0x00110100
[28188.401146] mmc2: sdhci: Host ctl2: 0x00000088
[28188.405594] mmc2: sdhci: ADMA Err: 0x00000003 | ADMA Ptr: 0xac07720c
[28188.412034] mmc2: sdhci-esdhc-imx: ========= ESDHC IMX DEBUG STATUS DUMP =========
[28188.419605] mmc2: sdhci-esdhc-imx: cmd debug status: 0x2120
[28188.425266] mmc2: sdhci-esdhc-imx: data debug status: 0x2240
[28188.431013] mmc2: sdhci-esdhc-imx: trans debug status: 0x2340
[28188.436846] mmc2: sdhci-esdhc-imx: dma debug status: 0x2400
[28188.442506] mmc2: sdhci-esdhc-imx: adma debug status: 0x2594
[28188.448253] mmc2: sdhci-esdhc-imx: fifo debug status: 0x260c
[28188.454000] mmc2: sdhci-esdhc-imx: async fifo debug status: 0x2798
[28188.460267] mmc2: sdhci: ============================================
[28188.471703] sdhci-esdhc-imx 30b60000.usdhc: error -110 requesting status
[28188.478676] mmc2: cache flush error -110
[28304.819393] sdhci-esdhc-imx 30b60000.usdhc: error -110 requesting status
[28304.826301] mmc2: cache flush error -110
[28370.233068] sdhci-esdhc-imx 30b60000.usdhc: error -110 requesting status
[28370.240563] mmc2: cache flush error -110
[29066.049502] sdhci-esdhc-imx 30b60000.usdhc: error -110 requesting status
[29066.057031] mmc2: cache flush error -110
[29192.899427] sdhci-esdhc-imx 30b60000.usdhc: error -110 requesting status
[29192.906390] mmc2: cache flush error -110
[29252.815638] sdhci-esdhc-imx 30b60000.usdhc: error -110 requesting status
[29252.822709] mmc2: cache flush error -110
[29318.694081] sdhci-esdhc-imx 30b60000.usdhc: error -110 requesting status
[29318.701056] mmc2: cache flush error -110
[29379.198326] sdhci-esdhc-imx 30b60000.usdhc: error -110 requesting status
[29379.206176] mmc2: cache flush error -110
[131212.876907] sdhci-esdhc-imx 30b60000.usdhc: error -110 requesting status
[131212.884373] mmc2: cache flush error -110
[131907.611678] sdhci-esdhc-imx 30b60000.usdhc: error -110 requesting status
[131907.618797] mmc2: cache flush error -110
[132034.656195] sdhci-esdhc-imx 30b60000.usdhc: error -110 requesting status
[132034.663262] mmc2: cache flush error -110
[132157.625383] mmc2: cache flush error -110
[132157.629514] blk_update_request: I/O error, dev mmcblk2, sector 4032462 op 0x1:(WRITE) flags 0x20800 phys_seg 1 prio class 0
[132157.643625] Aborting journal on device mmcblk2p4-8.
[132157.649646] sdhci-esdhc-imx 30b60000.usdhc: error -110 requesting status
[132157.656720] mmc2: cache flush error -110
[132157.752498] EXT4-fs error (device mmcblk2p4): ext4_journal_check_start:61: Detected aborted journal
[132157.764666] EXT4-fs (mmcblk2p4): Remounting filesystem read-only
[132923.456227] sdhci-esdhc-imx 30b60000.usdhc: error -110 requesting status
[132923.463443] mmc2: cache flush error -110

I will appreciate any help with this issue.

Thanks.

Best regards,

Reiner

0 件の賞賛

1,141件の閲覧回数
ReinerS
Contributor I

In our case, the reason for the error was a short voltage dip in the flash chip supply. 

0 件の賞賛

1,183件の閲覧回数
igal_kagan
Contributor I

Hello.

Any help?

 

Thanks.

0 件の賞賛