引言
ZYNQ首次开机在uboot下启动linux时,一般需要先修改环境变量,要么使用setenv命令修改,要么加载uEnv.txt文件来修改,是必须输入命令的,如果要实现批量测试的话会比较麻烦,那么如何实现首次开机无指令直接启动呢?
一、修改uboot自启动指令
我们都知道,uboot在启动后会进入倒计时,在倒计时过程中按下任意按键会终止计时,停留在uboot环境下,如果不打断到计时呢?则会在倒计时结束后自动执行boot指令,boot指令的操作保存在环境变量bootcmd中。因此要直接启动的话,必须修改bootcmd。
bootcmd在uboot图形配置主页面就可以直接修改。
这里可以修改为(run uenvboot; run $modeboot || run distro_bootcmd),这样修改后,uboot会自动从外部mmc 0中加载uEnv.txt文件中的环境变量,只要你在uEnv.txt文件中将要修改的环境变量提前写好,可以无需再修改源码。但是如果你的uEnv.txt文件没有存放在mmc 0设备中,那么你就必须修改默认环境变量了(这里不清楚的可以看看我的另一篇介绍uEnv.txt的帖子:点击跳转)。
二、修改uboot默认环境变量
既然不想在uboot启动的时候修改,那么只要在uboot启动之前修改不就行了。
所以我们直接打开uboot源码目录下的include/configs/zynq-common.h文件,在/* Default environment */ 下面就是默认的环境变量了
在这里直接修改即可,修改时要注意环境变量的格式!!! |