U-boot的环境变量保存在存储器上,在U-boot启动时,从存储器加载到RAM中,环境变量用来配置对系统进行配置,决定着U-boot的行为。U-boot的环境变量分为两类:系统环境变量和用户环境变量。系统环境变量是U-boot默认定义的环境变量;用户变量是用户存放数据的环境变量。
U-boot系统环境变量
在U-boot中,有一些重要的环境变量,列举如下:
变量名 | 描述 |
---|---|
autoload | 是否自动加载Kernel镜像 |
autostart | |
bootargs | |
bootcmd | |
bootdelay | |
bootfile | |
ethaddr | |
ipaddr | |
mtdparts | |
serverip | |
serial |
这些是U-boot常见的一些环境变量。这些环境变量存放的值决定了U-boot的行为。
用户环境变量
除了系统环境变量,用户可以自定义环境变量,用于存放自定义的命令序列或中间值。
环境变量的默认值
当U-boot启动不受干预时,U-boot将根据bootargs和bootcmd的默认值加载kernel镜像,并传递参数。
默认值的由来
在U-boot中,与环境变量相关的源码目录是env。env目录中定义并实现了环境变量的存储和访问方式。
默认环境变量的值存储在include/env_default.h文件中,这里定义了一个全局变量default_environment。default_envrionment的定义如下:
#ifdef DEFAULT_ENV_INSTANCE_EMBEDDED
env_t environment __UBOOT_ENV_SECTION__(environment) = {
ENV_CRC, /* CRC Sum */
#ifdef CONFIG_SYS_REDUNDAND_ENVIRONMENT
1, /* Flags: valid */
#endif
{
#elif defined(DEFAULT_ENV_INSTANCE_STATIC)
static char default_environment[] = {
#else
const uchar default_en