最近在研究A33主线相关的资源,目前主线uboot和内核都对A33有极好的支持了,所以现在把我在使用过程中遇到的问题和使用方法做个记录,首先是下载主线uboot源码,网址为https://ftp.denx.de/pub/u-boot/
,我下载的版本为2022.10版本的,如下图所示
下载完成后,直接解压到我们的开发机器上即可,我这里默认使用的是Sinlinx_SinA33_defconfig
配置文件,将此文件复制为我们的配置文件名字即可。
然后配置好交叉编译环境,使用如下命令进行编译即可。
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- Sinlinx_SinA33_defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j8
编译没问题后如下图文件即为我们所需要的文件
接着需要确保怎么让机器能运行uboot代码,首先是要执行git clone https://github.com/linux-sunxi/sunxi-tools
去下载sunxi-tools工具,下载完成后直接进入目录进行make
即可得到工具,然后将机器进入到fel模式,机器识别到Allwinner USB Devices即可进行烧录工作,./sunxi-tools/sunxi-fel uboot u-boot/u-boot-sunxi-with-spl.bin
即可,成功运行uboot截图如下。
补上一张烧录的截图,记得一定要sudo权限,或者root用户下执行,不然会提示权限问题。
接下来就是调试uboot外设了,首先会一直打印如下图所示的信息,挺烦人的,而我们又用不到usb启动,所以接下来看看在哪里可以关闭如下操作。
修改如下地方即可,只保留EMMC启动方式。
diff --git a/u-boot/include/configs/sunxi-common.h b/u-boot/include/configs/sunxi-common.h
index 0f0ef4f64..0def14927 100644
--- a/u-boot/include/configs/sunxi-common.h
+++ b/u-boot/include/configs/sunxi-common.h
@@ -266,11 +266,7 @@
#define BOOT_TARGET_DEVICES(func) \
func(FEL, fel, na)