TI中文支持网
TI专业的中文技术问题搜集分享网站

AM3354: eMMC @ MMC2 在Linux下不响应命令。

各位好!

AM3354 eMMC无法识别的问题,请求协助。谢谢!

主板概况:

我们自己定制的PCB,使用AM3354,连接3个Micron eMMC设备。mm0, mmc1及mmc2(在DTS文件中分别为mmc1, mmc2和mmc3)。eMMC型号为:MTFC64GAKAEEY4M。其中mmc0为4-bit, mm1和mm2为8-bit。

软件平台1:TI_Android_JB_4.2.2_DevKit_4.1.1, u-boot version: 2013-01-01, Linux version: 3.2.0.

软件平台2:ti-processor-sdk-linux-am335x-evm-03.01.00.06, u-boot version: 2016-05,Linux version: 4.4.19.

需要做一定的修改,可以从eMMC启动。

问题描述:

1. 在软件平台1上,可以正常访问eMMC0, eMMC1和eMMC2.在平台2上,可以正常访问eMMC0, eMMC1,但是eMMC2不响应任何命令。用示波器可以看到MMC_CLK信号。

问题资料:

1. dts描述:

mmc3_pins: pinmux_mmc3_pins {
pinctrl-single,pins = <
0x8c (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_clk.mmc2_clk */
0x88 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_csn3.mmc2_cmd */
0x30 (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ad12.mmc2_dat0 */
0x34 (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ad13.mmc2_dat1 */
0x38 (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ad14.mmc2_dat2 */
0x3c (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ad15.mmc2_dat3 */
0x20 (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ad8.mmc2_dat4 */
0x24 (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ad9.mmc2_dat5 */
0x28 (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ad10.mmc2_dat6 */
0x2c (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ad11.mmc2_dat7 */
>;
};

&mmc3 {
status = "okay";

vmmc-supply = <&vmmc_fixed>;
pinctrl-names = "default";
pinctrl-0 = <&mmc3_pins>;
bus-width = <8>;
ti,non-removable;
dmas = <&edma_xbar 12 0 1
&edma_xbar 13 0 2>;
dma-names = "tx", "rx";
};

2. 内核dmesg

[ 1.430513] omap_hsmmc 47810000.mmc: enabled
[ 1.430535] mmc2: mmc_rescan_try_freq: trying to init card at 400000 Hz
[ 1.437608] vdd_mpu: supplied by vbat
[ 1.441723] mmc2: starting CMD52 arg 00000c00 flags 00000195
[ 1.441828] mmc2: req done (CMD52): -110: 00000000 00000000 00000000 00000000
[ 1.441857] mmc2: starting CMD52 arg 80000c08 flags 00000195
[ 1.441929] mmc2: req done (CMD52): -110: 00000000 00000000 00000000 00000000
[ 1.441959] mmc2: clock 400000Hz busmode 2 powermode 2 cs 1 Vdd 21 width 0 timing 0
[ 1.443048] mmc2: starting CMD0 arg 00000000 flags 000000c0
[ 1.443120] mmc2: req done (CMD0): -110: 00000000 00000000 00000000 00000000
[ 1.444212] mmc2: clock 400000Hz busmode 2 powermode 2 cs 0 Vdd 21 width 0 timing 0
[ 1.445223] mmc2: starting CMD8 arg 000001aa flags 000002f5
[ 1.445297] mmc2: req done (CMD8): -110: 00000000 00000000 00000000 00000000
[ 1.446437] omap_rtc 44e3e000.rtc: setting system clock to 2000-01-01 00:03:12 UTC (946684992)
[ 1.455230] mmc2: starting CMD5 arg 00000000 flags 000002e1
[ 1.455331] mmc2: req failed (CMD5): -110, retrying…
[ 1.455409] mmc2: req failed (CMD5): -110, retrying…
[ 1.455484] mmc2: req failed (CMD5): -110, retrying…
[ 1.455554] mmc2: req done (CMD5): -110: 00000000 00000000 00000000 00000000
[ 1.455573] mmc2: starting CMD55 arg 00000000 flags 000000f5
[ 1.455645] mmc2: req done (CMD55): -110: 00000000 00000000 00000000 00000000
[ 1.455660] mmc2: starting CMD55 arg 00000000 flags 000000f5
[ 1.455729] mmc2: req done (CMD55): -110: 00000000 00000000 00000000 00000000
[ 1.455745] mmc2: starting CMD55 arg 00000000 flags 000000f5
[ 1.455816] mmc2: req done (CMD55): -110: 00000000 00000000 00000000 00000000
[ 1.455832] mmc2: starting CMD55 arg 00000000 flags 000000f5
[ 1.455902] mmc2: req done (CMD55): -110: 00000000 00000000 00000000 00000000
[ 1.455921] mmc2: clock 400000Hz busmode 1 powermode 2 cs 0 Vdd 21 width 0 timing 0
[ 1.455936] mmc2: starting CMD1 arg 00000000 flags 000000e1
[ 1.456004] mmc2: req done (CMD1): -110: 00000000 00000000 00000000 00000000
[ 1.456023] mmc2: clock 0Hz busmode 2 powermode 0 cs 0 Vdd 0 width 0 timing 0
[ 1.474086] net eth0: initializing cpsw version 1.12 (0)
[ 1.479465] net eth0: initialized cpsw ale version 1.4
[ 1.484680] net eth0: ALE Table size 1024

Richard Yang1:

回复 Denny%20Yang99373:

对应的寄存器反复检查了,也没有问题。如下:

赞(0)
未经允许不得转载:TI中文支持网 » AM3354: eMMC @ MMC2 在Linux下不响应命令。
分享到: 更多 (0)