eMMC fails to initialize on custom imx8mm board based on IMX8MM EVK DDR4 Board

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

eMMC fails to initialize on custom imx8mm board based on IMX8MM EVK DDR4 Board

764 次查看
nishadkamdar
Contributor III

We have a custom board based on IMX8MM EVK DDR4 Board. We have connected an 4GB eMMC to it.

The eMMC fails to initialize in u-boot at CMD8.

error log with eMMC Debug messages enabled:

 

 

u-boot=> 
u-boot=> 
u-boot=> 
u-boot=> mmc dev 2
mmc@30b60000: No vmmc supply
mmc@30b60000: No vqmmc supply
mmc_get_op_cond [2823]

clock is disabled (0Hz)
mmc_power_cycle [2785] ret 0

mmc_power_cycle [2790] ret 0

mmc_power_on [2760] Cannot control power

mmc_set_signal_voltage [1682] signal_voltage 4

mmc_set_signal_voltage [1684] err 0

selecting mode MMC legacy (freq : 0 MHz)
clock is enabled (400000Hz)
CMD_SEND:0
		ARG			 0x00000000
esdhc_send_cmd_common - 487 USDHC 

		MMC_RSP_NONE
CMD_SEND:8
		ARG			 0x000001aa
esdhc_send_cmd_common - 487 USDHC 

		RET			 -110
mmc_send_if_cond [2680] err -110

CMD_SEND:55
		ARG			 0x00000000
esdhc_send_cmd_common - 487 USDHC 

		RET			 -110
mmc_get_op_cond [2868] err -110

CMD_SEND:0
		ARG			 0x00000000
esdhc_send_cmd_common - 487 USDHC 

		MMC_RSP_NONE
CMD_SEND:1
		ARG			 0x00000000
esdhc_send_cmd_common - 487 USDHC 

		MMC_RSP_R3,4		 0x00ff8080 
mmc_send_op_cond [677] err 0

CMD_SEND:1
		ARG			 0x40300000
esdhc_send_cmd_common - 487 USDHC 

		MMC_RSP_R3,4		 0x00ff8080 
mmc_send_op_cond [677] err 0

CMD_SEND:0
		ARG			 0x00000000
esdhc_send_cmd_common - 487 USDHC 

		MMC_RSP_NONE
CMD_SEND:1
		ARG			 0x40300000
esdhc_send_cmd_common - 487 USDHC 

		MMC_RSP_R3,4		 0x00ff8080 
mmc_complete_op_cond [707] err 0

CMD_SEND:1
		ARG			 0x40300000
esdhc_send_cmd_common - 487 USDHC 

		MMC_RSP_R3,4		 0xc0ff8080 
mmc_complete_op_cond [707] err 0

mmc_complete_op_cond [712] err 0

CMD_SEND:2
		ARG			 0x00000000
esdhc_send_cmd_common - 487 USDHC 

		MMC_RSP_R2		 0x11010030 
		          		 0x30344741 
		          		 0x30029a2d 
		          		 0xd21f2700 

					DUMPING DATA
					000 - 11 01 00 30 
					004 - 30 34 47 41 
					008 - 30 02 9a 2d 
					012 - d2 1f 27 00 
CMD_SEND:3
		ARG			 0x00010000
esdhc_send_cmd_common - 487 USDHC 

		MMC_RSP_R1,5,6,7 	 0x00000500 
CMD_SEND:9
		ARG			 0x00010000
esdhc_send_cmd_common - 487 USDHC 

		MMC_RSP_R2		 0xd05e0032 
		          		 0x0f5903ff 
		          		 0xffffffe7 
		          		 0x92400000 

					DUMPING DATA
					000 - d0 5e 00 32 
					004 - 0f 59 03 ff 
					008 - ff ff ff e7 
					012 - 92 40 00 00 
mmc_startup [2500] version 4

version 1074003968

selecting mode MMC legacy (freq : 25 MHz)
CMD_SEND:7
		ARG			 0x00010000
esdhc_send_cmd_common - 487 USDHC 

		MMC_RSP_R1,5,6,7 	 0x00000700 
mmc_send_status:: 219

mmc_send_status:: 224

CMD_SEND:13
		ARG			 0x00010000
esdhc_send_cmd_common - 487 USDHC 

		MMC_RSP_R1,5,6,7 	 0x00000900 
mmc_send_status:: 226 - err 0

mmc_send_status:: 228

CURR STATE:4
mmc_send_status:: 230

status = 0x900

CMD_SEND:8
		ARG			 0x00000000
esdhc_send_cmd_common - 487 USDHC 

		RET			 -70
mmc_init: -70, time 268
u-boot=> 
u-boot=> 
u-boot=> 

 

 

 

The eMMC schematic and device tree node is attached below:eMMC issue.png

 

 

 

pinctrl_usdhc3: usdhc3grp {
		fsl,pins = <
			MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK		0x190
			MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD		0x1d0
			MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0		0x1d0
			MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1		0x1d0
			MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2		0x1d0
			MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3		0x1d0
			MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4		0x1d0
			MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5		0x1d0
			MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6		0x1d0
			MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7		0x1d0
			MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE		0x190
		>;
	};

pinctrl_usdhc3_100mhz: usdhc3grp100mhz {
		fsl,pins = <
			MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK		0x194
			MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD		0x1d4
			MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0		0x1d4
			MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1		0x1d4
			MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2		0x1d4
			MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3		0x1d4
			MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4		0x1d4
			MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5		0x1d4
			MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6		0x1d4
			MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7		0x1d4
			MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE		0x194
		>;
	};

pinctrl_usdhc3_200mhz: usdhc3grp200mhz {
		fsl,pins = <
			MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK		0x196
			MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD		0x1d6
			MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0		0x1d6
			MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1		0x1d6
			MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2		0x1d6
			MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3		0x1d6
			MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4		0x1d6
			MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5		0x1d6
			MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6		0x1d6
			MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7		0x1d6
			MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE		0x196
		>;
	};

&usdhc3 {
	pinctrl-names = "default", "state_100mhz", "state_200mhz";
	pinctrl-0 = <&pinctrl_usdhc3>;
	pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
	pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
	bus-width = <8>;
	non-removable;
	status = "okay";
};

 

 

 

Pls suggest  possible solution to the same.

Thanks for the support.

Regards,

Nishad

0 项奖励
回复
0 回复数