1,理清现在所使用的uboot相关配置文件:
如果是使用全自动编译脚本build.sh,截取相关信息:
两个关键信息:UBOOT_DEFCONFIG=rk3399pro_defconfig ./make.sh rk3399pro
在uboot下的make.sh中,截取:
解析后即为make rk3399pro_defconfig。
2,本地化xxx_defconfig文件:
上面所用到的rk3399pro_defconfig文件,位于/u-boot/configs/目录下,这里我cp一份并改名为rk3399pro_stones_defconfig,要让全自动编译脚本调用的话,需要修改下:
如果不使用全自动编译脚本而是在uboot下单独编译的话,需要使用./make.sh rk3399pro_stones,另外修改下脚本中的-h提示信息,添加一行更方便:
3,本地化uboot所使用的设备树文件:
uboot所使用的设备树文件位于u-boot/arch/arm/dts/目录下,具体使用哪一个,在xxx_defconfig文件中定义,比如uboot所使用的rk3399pro_stones_defconfig:
因此需要做以下修改:
a:cp一份rk3399-evb.dts,改名为rk3399pro_stones.dts;
b:修改rk3399pro_stones_defconfig中的CONFIG_DEFAULT_DEVICE_TREE为rk3399pro_stones;
c:修改rk3399pro_stones.dts中的model = "Rockchip RK3399pro_stones Evaluation Board",到时候uboot打印信息可以确认使用到了该设备树文件;
d:rk3399pro_stones_defconfig还要修改几个选项,CONFIG_BAUDRATE=115200,CONFIG_BOOTDELAY=5
注1:make xxx_defconfig最终是将配置导入到.config文件中,经过对比,xxx_defconfig的内容相比于make menuconfig直接生成的.config要少不少,所以最好还是make menuconfig之后,做相应的修改,然后拷贝到u-boot/configs/目录下,将其改名替换,下次脚本调用make xxx_defconfig的时候可以重新生效;
注2:我自己的开发板设置了CONFIG_BOOTDELAY=5后,按ctl+c不能打断进入命令行模式,还在排查问题;