移植新的uboot到正点原子imx6ull开发板遇到emmc的问题
这个凼啊
2022年05月27日 11:44
收录于文集
共1篇

由于正点原子给出的uboot版本是nxp/imx_v2016.03_4.1.15_2.0.0_ga的分支的版本,所以我想使用较新的uboot版本到这个开发板,新版本是使用设备树的版本,但是在移植过程中出现了一些问题,由于不熟悉设备树,找了好几天的问题

使用nxp官方新的uboot版本分支为imx_v2020.04_5.4.70_2.3.0的分支

nxp官方uboot链接

代码块
JavaScript
自动换行
复制代码
https://source.codeaurora.org/external/imx/uboot-imx
复制成功

按照流程配置编译器,配置uboot,编译

代码块
clike
自动换行
复制代码
make mx6ull_14x14_evk_emmc_defconfig
make 
复制成功

编译后将程序使用dd命令将uboot文件下载到SD卡上

代码块
clike
自动换行
复制代码
sudo dd iflag=dsync oflag=dsync if=u-boot-dtb.imx of=/dev/sdc seek=2
复制成功

问题:使用mmc dev 1命令无法切换到 mmc1上 ,还出现了 Card did not respond to voltage select! 的错误。

问题原因:emmc的复位脚,在设备树上没有配置,需要添加

解决方法:

1.在uboot的文件目录 arch/arm/dts/imx6ul-14x14-evk.dtsi 增加如下所示:

代码位置

代码块
clike
自动换行
复制代码
	reg_sd2_vmmc: regulator-sd2-vmmc {
		compatible = "regulator-fixed";
		regulator-name = "+V3.3";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		gpio = <&gpio4 10 GPIO_ACTIVE_HIGH>;
		off-on-delay-us = <20000>;
		enable-active-high;
	};
复制成功

2.在  arch/arm/dts/imx6ull-14x14-evk-emmc.dts 文件增加,如图所示:

增加位置

代码块
clike
自动换行
复制代码
vmmc-supply = <&reg_sd2_vmmc>;
复制成功

3. 都保存后,先清除所有原来编译的,再重新编译,下载就可以了

代码块
clike
自动换行
复制代码
make distclean
make mx6ull_14x14_evk_emmc_defconfig 
make
复制成功

4,识别成功

总结:自己对设备树不太熟悉,导致问题找了好久,还有就是调试的时候,记得打开调试信息打印....