由于正点原子给出的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链接
https://source.codeaurora.org/external/imx/uboot-imx 按照流程配置编译器,配置uboot,编译
make mx6ull_14x14_evk_emmc_defconfig
make 编译后将程序使用dd命令将uboot文件下载到SD卡上
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 增加如下所示:

代码位置
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 文件增加,如图所示:

增加位置
vmmc-supply = <&reg_sd2_vmmc>; 3. 都保存后,先清除所有原来编译的,再重新编译,下载就可以了
make distclean
make mx6ull_14x14_evk_emmc_defconfig
make 4,识别成功

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