U-Boot环境变量保存位置

1 开发环境

    开发板:MIni2440

    U-Boot:2010.03

    引导系统:Linux

2 背景

    虽然U-Boot对分区的概念不重要[1],但是使用saveenv保存环境变量时若环境变量覆盖内核数据,那就大问题了,会导致内核无法启动[2][3]。因此需要根据内核的分区表设置U-Boot的环境变量保存位置,使得U-Boot的参数保存位置与内核分区表的参数保存位置一致(内核分区表参见《U-Boot烧写Linux系统到Nand Flash》)。

3 材料与方法

    要修改U-Boot的环境变量参数保存位置,必需修改U-Boot源码。

    下载Tekkaman移植的U-Boot源码,打开include/configs/mini2440.h头文件,将260行的0X60000改为0X40000:

//#define CONFIG_ENV_OFFSET 0X60000
#define CONFIG_ENV_OFFSET 0X40000
    然后根据《 Ubuntu14.04中编译U-Boot》的方法重新编译U-Boot即可。

参考资料

[1]关于NAND flash的MTD分区与uboot中分区的理解

[2][BootLoader] uboot的环境变量保存在哪?

[3]内核分区与uboot分区的关系



你可能感兴趣的:(U-Boot环境变量保存位置)