【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)
uboot的默认环境变量
在uboot阶段输入命令printenv, 可以查看到uboot的默认环境变量.
arch=arm
baudrate=115200
board=xxxxxx
board_name=xxxxxx
bootargs=mem=512M console=ttyAMA0,115200 rootwait root=/dev/mmcblk0p3 rootfstype=ext4 rw blkdevparts=mmcblk0:1M(boot),5M(kernel),2000M(rootfs)
bootcmd=mmc info;mmc read 0 0x82000000 0x800 0x32000;bootm 0x82000000
bootdelay=2
cpu=armv7
ethact=eth0
soc=xxxxxx
stderr=serial
stdin=serial
stdout=serial
vendor=hisilicon
verify=n
Environment size: 495/262140 bytes
上述环境变量定义在几个文件当中~
1. u-boot-2016.11\include\env_default.h
const uchar default_environment[] = {
......
"bootargs=" CONFIG_BOOTARGS "\0"
"bootcmd=" CONFIG_BOOTCOMMAND "\0"
"ipaddr=" __stringify(CONFIG_IPADDR) "\0"
"board=" CONFIG_SYS_BOARD "\0"
"cpu=" CONFIG_SYS_CPU "\0"
......
};
由上可见default_environment数组保存着uboot的环境变量, 且并非是直接给出, 而是由宏展开而来. 那么, 这些宏分别定义在哪呢?
2. .config
CONFIG_SYS_ARCH="arm"
CONFIG_SYS_CPU="armv7"
......
.config是uboot的总配置文件, 在其中获得了一些uboot的默认环境变量;
3. u-boot-2016.11\include\configs\xxxxx.h
#define CONFIG_BOOTARGS "console=ttyAMA0,115200n8 root=/dev/mtdblock2 rw"
#define CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS 2
xxxxx.h是特定板子的config文件, 也获得了一些uboot的环境变量.
我们通过修改上面的宏, 即可达到修改uboot的默认环境变量的结果.