今天用正点原子阿尔法开发板,由于手欠,把bootdelay设置为0,导致启动后uboot直接跳转到linux,没法使用uboot了。
    
    一般做法是重新烧录uboot程序,然后才能用。
    
    我百度到了fw_printenv工具,可以在linux中查看,并修改保存uboot 的环境变量。
   
需要如下几步操作:
    
    
    1、修改fw_printenv的Makefile
   
    
    
    2、修改fw_env.config文件
   
    
    
    3、linux中修改uboot环境变量
   
具体操作如下:
    
    
    交叉编译fw_printenv
   
    需要修改uboot目录中tools/env/ 下的Makefile,指定目标target以及交叉工具链,如下图:
    
    
    
    然后回到uboot目录,执行”make env“
    
    如下图:
    
    
    
    将fw_printenv复制到开发板的任意目录,
    
    我个人复制到了/home/root 下。
   
    
    
    修改fw_env.config文件
   
    查看fw_env.config文件的内容,可以配置MTD, Nand, block device等存储器类型。我使用的是emmc的核心板,所以只需要修改block device即可。
    
    参数含义如下:
    
    其中device name, Device offset,Env size应该分别对应于uboot源码目录中include/configs/mx6ullevk.h文件中的
    
    #define CONFIG_ENV_OFFSET (12 * SZ_64K)
    
    #define CONFIG_ENV_SIZE SZ_8K
    
    
    
    所以fw_env.config修改后如下,然后复制到开发板的/etc 目录下
    
     
   
    
    
    linux中修改uboot环境变量
   
首先将fw_printenv复制一份,改名叫fw_setenv,否则没法设置uboot环境变量
cp fw_printenv fw_setenv
    
    
    然后修改bootdelay ,一定要查看下是否修改成功,否则可能不会被保存到mmc上。
   
./fw_setenv bootdelay 5
./fw_printenv bootdelay
     
   
 
