Other Parts Discussed in Thread: TS3A27518E, , TS3A27518
Dear Experts
We have an eMMC mount issue on customized board (DRA746). customer use an multiplexer(TS3A27518E) to select one of storage by eMMC1, block diagram as below.
default connection is MTFC8GACA (Micron)
When system try to mount MTFC8GACA, we found two main error message as below
(1) mmc0: switch to bus width 1 failed
(2) mmcblk0: error -84 transferring data, sector ?, nr 8, cmd response 0x900, card status 0xb00
2.610700] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[ 2.617392] [drm] No driver support for vblank timestamp query.
[ 2.634855] [drm] Enabling DMM ywrap scrolling
[ 2.639816] mmc0: MAN_BKOPS_EN bit is not set
[ 2.641501] mmc0: switch to bus width 1 failed
[ 2.641812] mmc0: new high speed MMC card at address 0001
[ 2.642285] mmcblk0: mmc0:0001 R1J55A 7.28 GiB
[ 2.652516] mmcblk0boot0: mmc0:0001 R1J55A partition 1 8.00 MiB
[ 2.662751] mmcblk0boot1: mmc0:0001 R1J55A partition 2 8.00 MiB
[ 2.663495] omap_hsmmc 4809c000.mmc: ADMA err: ST_TFR, desc at 0xfd441008 follows the erroneous one
[ 2.663557] mmcblk0: error -84 transferring data, sector 0, nr 8, cmd response 0x900, card status 0xb00
[ 2.663562] mmcblk0: retrying using single block read
[ 2.663786] mmcblk0: error -84 transferring data, sector 0, nr 8, cmd response 0x900, card status 0x0
[ 2.663793] blk_update_request: I/O error, dev mmcblk0, sector 0
[ 2.663975] mmcblk0: error -84 transferring data, sector 1, nr 7, cmd response 0x900, card status 0x0
[ 2.663980] blk_update_request: I/O error, dev mmcblk0, sector 1
[ 2.664159] mmcblk0: error -84 transferring data, sector 2, nr 6, cmd response 0x900, card status 0x0
[ 2.664164] blk_update_request: I/O error, dev mmcblk0, sector 2
[ 2.664345] mmcblk0: error -84 transferring data, sector 3, nr 5, cmd response 0x900, card status 0x0
[ 2.664350] blk_update_request: I/O error, dev mmcblk0, sector 3
[ 2.664684] mmcblk0: error -84 transferring data, sector 5, nr 3, cmd response 0x900, card status 0x0
[ 2.664689] blk_update_request: I/O error, dev mmcblk0, sector 5
[ 2.665022] mmcblk0: error -84 transferring data, sector 7, nr 1, cmd response 0x900, card status 0x0
[ 2.665027] blk_update_request: I/O error, dev mmcblk0, sector 7
[ 2.665032] Buffer I/O error on dev mmcblk0, logical block 0, async page read
[ 2.665256] omap_hsmmc 4809c000.mmc: ADMA err: ST_TFR, desc at 0xfd441008 follows the erroneous one
[ 2.665310] mmcblk0: error -84 transferring data, sector 0, nr 8, cmd response 0x900, card status 0xb00
[ 2.665313] mmcblk0: retrying using single block read
[ 2.665544] mmcblk0: error -84 transferring data, sector 0, nr 8, cmd response 0x900, card status 0x0
[ 2.665549] blk_update_request: I/O error, dev mmcblk0, sector 0
[ 2.665728] mmcblk0: error -84 transferring data, sector 1, nr 7, cmd response 0x900, card status 0x0
[ 2.665732] blk_update_request: I/O error, dev mmcblk0, sector 1
[ 2.665910] mmcblk0: error -84 transferring data, sector 2, nr 6, cmd response 0x900, card status 0x0
[ 2.665914] blk_update_request: I/O error, dev mmcblk0, sector 2
[ 2.666393] mmcblk0: error -84 transferring data, sector 5, nr 3, cmd response 0x900, card status 0x0
[ 2.666398] blk_update_request: I/O error, dev mmcblk0, sector 5
[ 2.666728] mmcblk0: error -84 transferring data, sector 7, nr 1, cmd response 0x900, card status 0x0
so, we try to check eMMC0 information, it seems DRA746 can detect MTFC8GACA
root@wnc-j6:~# cat /sys/kernel/debug/mmc*/ios
clock: 52000000 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: 2 (4 bits)
timing spec: 1 (mmc high-speed)
signal voltage: 0 (3.30 V)
driver type: 0 (driver type B)
device tree as below:
&mmc1 {
status = "okay";
vmmc-supply = <&evm_3v3_sd>;
vmmc_aux-supply = <&ldo1_reg>;
bus-width = <4>;
//cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>;
max-frequency = <192000000>;
pinctrl-names = "default", "hs";
pinctrl-0 = <&mmc1_pins_default>;
pinctrl-1 = <&mmc1_pins_hs>;
};
We reference E2E as below:
I believe (guess) it may be some problems on data line (D0~D3), because error happens when system try to switch bus width.
May any one can give us some debug direction? (include software and hardware)
Many Thanks
Gibbs