一、brandy路径下build.sh文件
原有的全志开发包中,已经将u-boot封装好,所以在实际使用的过程,不会涉及u-boot的编译,细心观察就会发现上次的brandy目录中执行build.sh文件中的
PLATFORM="sun8iw3p1"
而不是
PLATFORM="sun8iw5p1"
因为编译好u-boot后不需要再将u-boot打包了,所以修改为其他平台,在编译完成时就不会复制到打包路径下。
二、dragonboard路径build.sh文件分析
在实际开发中,dragonboard目录中的,可执行脚本build.sh文件,主要是用来编译Linux内核的(driver),其制作方法是buildroot方式,build.sh文件内容
#!/bin/bash
set -e
buildroot/scripts/mkcommon.sh $@
进入buildroot/scripts/mkcommon.sh文件中
vi buildroot/scripts/common.sh
在common.sh中,判断执行了,u-boot中的build.sh脚本
通过上述分析我们知道了,在实际开发过程中,我们可以,直接执行brandy目录的build.sh文件,就可以编译生成u-boot。
三、修改brandy路径下build.sh生成bin文件
1、在编译之前将build.sh中的PLATFORM修改为PLATFORM=“sun8iw5p1”
PLATFORM="sun8iw5p1"
2、然后,我们在读秒之前添加一项我们的输出打印信息,确认已经将u-boot编译打包进img文件中,就在读秒之前添加打印信息
grep 'sunxi_bmp_logo_display' *nR
brandy/u-boot-2011$
vi arch/arm/lib/board.c +767
添加测试,添加自己的打印信息
printf("my_test_hello_uboot\n")
3、重新编译u-boot,在brandy目录执行./build.sh
brandy$
./build.sh
执行完成,即可看见u-boot-sun8iw5p1.bin复制到了dragonboard/tools/pack/chips/sun8iw5p1/bin中
四、制作生成img文件
1、首先查看即将要制作的u-boot.bin文件的路径
全志的u-boot启动有两个阶段boot0和boot1段这个后面再说,我们在 实际的使用过程中只涉及到boot1,及u-boot-sun8iw5p1.bin
2、制作img文件,打包
进入dragonboard目录
执行`./build.sh pack 生成img文件
./build.sh pack
3、烧写测试
由此可见,修改的u-boot写入了emmc工作了。
五、修改u-boot启动参数,正常启动内核
img烧写到开发板中后,还需要查看启动参数是否匹配,如果不匹配,还需要修改相应的参数
1、print查看启动参数
print
重点关注,bootcmd,boot_normal,bootargs相关参数,如果与板子不匹配修改
我的开发板修改的参数有:
1)、
setenv bootdelay 6
2)、
setenv bootcmd run setargs_mmc boot_normal
保存
saveenv
复位重启开发板,用制作的u-boot成功引导内核和rootfs。