一、环境变量bootcmd 和bootargs 加载:如果 EMMC 或者 NAND 中没有保存 bootcmd 的值,那么 uboot 就会使用默认的值,板子第一次运行 uboot 的时候都会使用默认值来设置 bootcmd 环境变量,位置为include/env_default.h,保存环境变量在default_environment中 #ifdef CONFIG_BOOTARGS "bootargs=" CONFIG_BOOTARGS "\0...
我们以bootargs为例: 在default_environment[]数组里,若CONFIG_BOOTARGS宏有值,便会组成一串字符串"bootargs=... ..." 比如在以前的uboot里,可以看到: bootargs=noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0//root:指定文件系统位置//init:指定内核启动后执行的第一个应用程序//console:指定使...
"bootargs="CONFIG_BOOTARGS"\0" #endif #ifde fCONFIG_BOOTCOMMAND "bootcmd="CONFIG_BOOTCOMMAND"\0" #endif #ifdef CONFIG_MTDPARTITION "mtdpart="CONFIG_MTDPARTITION"\0" #endif #ifdef CONFIG_RAMBOOTCOMMAND "ramboot="CONFIG_RAMBOOTCOMMAND"\0" #endif #ifdef CONFIG_NFSBOOTCOMMAND "nfsboot="CONF...
这里我们以其中的baudrate为例,CONFIG_BAUDRATE在smdk2440.h(include/configs/smdk2440.h)中定义: #defineCONFIG_BAUDRATE 115200 此外还有一个比较重要的宏配置,是用来启动linux内核的,这里我们没有配置,但是有必要介绍一下,CONFIG_BOOTARGS,搜索 bootargs 字样,可以在其它单板中看到有类似这样的定义: #defineCONFIG_...
uboot通过cmdline参数中CONFIG_BOOTARGS传给内核; 内核镜像文件跳转地址如下(内核镜像文件见之前文章UBIFS文件系统镜像的制作): Loader: * bootelf:从内存中直接启动 ELF 文件 exg: 下载ELF文件到地址0x200000,输入命令 bootelf 0x200000即可执行ELF 格式的 kernel ...
这些都是环境参数,比如"bootargs="(环境变量里最重要的一个),里面会保存文件系统位置,控制台console等等 我们以bootargs为例: 在default_environment[]数组里,若CONFIG_BOOTARGS宏有值,便会组成一串字符串"bootargs=... ..." 比如在以前的uboot里,可以看到: ...
#define CONFIG_BOOTCOMMAND "mmc dev 1;" "fatload mmc 1:1 0x80800000 zImage;"\ "fatload mmc 1:1 0x83000000 imx6ull-14x14-evk.dtb"\ "bootz 0x80800000 - 0x83000000;"\ 环境变量 bootargs bootargs保存着uboot传递给linux内核的参数,该变量是由mmcargs设置的 ...
#ifdef CONFIG_SYS_REDUNDAND_ENVIRONMENT unsigned char flags; /* active/obsolete flags */ #endif unsigned char data[ENV_SIZE]; /* Environment data */ } env_t; 这两个类型变量记录了刚启动时的信息,还将记录作为引导内核和文件系统的参数,如 bootargs 等,并且将来还会在启动内核时,由 uboot 交由 ...
dtb-$(CONFIG_yyy) +=xxx.dtb 其中yyy为使用该dts的目标板 如何为目标板选择dts文件 uboot的设备树文件位于arch//dts目录下,可通过以下选项为目标板选择一个默认的dts文件: CONFIG_DEFAULT_DEVICE_TREE="xxx” 这是因为与内核不一样,uboot最终的镜像会和dtb打包在一个镜像文件中,因此在编译流程中就需要知道最...