1.1:bootcmd 保存着 uboot 默认命令,uboot 倒计时结束以后就会执行 bootcmd 中的命令。这些命令一般都是用来启动 Linux 内核的,比如读取 EMMC 或者 NAND Flash 中的 Linux 内核镜像文件和设备树文件到 DRAM 中,然后启动 Linux 内核;板子第一次运行 uboot 的时候都会使用默认值来设置 bootcmd,环境变量。在 include/env_default.h看下默认值
env_t environment __PPCENV__ = { ENV_CRC, /* CRC Sum */ 1, /* Flags: valid */ const uchar default_environment[] = { "bootargs=" CONFIG_BOOTARGS "\0" "bootcmd=" CONFIG_BOOTCOMMAND "\0"
............ }
1.2:CONFIG_BOOTCOMMAND的定义用如下脚本语言定义:找设备树文件;切换到emmc上;再扫描是否有mmc设备(没有的话从网络启动),运行loadbootscript环境变量若能加载到boot.src,则运行bootscript环境变量;否则运行loadimage环境变量(loadimage=fatload mmc 1:1 0x80800000 zImage),再运行mmcboot,否则运行netboot
#define CONFIG_BOOTCOMMAND \ "run findfdt;" \ //找设备树文件
"mmc dev ${mmcdev};" \ //切换到emmc上
"mmc dev ${mmcdev}; if mmc rescan; then " \ //再扫描是否有mmc设备 "if run loadbootscript; then " \ //运行loadbootscript环境变量若能加载到boot.src "run bootscript; " \ //则运行bootscript环境变量 "else " "if run loadimage; then " \ //运行loadimage环境变量, "run mmcboot; " \ //加载镜像成功后再运行mmcboot
"else run netboot; " \ //否则运行netboot
"fi; " \
"fi; " \
"else run netboot; fi" //没有的话从网络启动
1.3:mmcboot如下
"mmcboot=echo Booting from mmc ...; " "run mmcargs; " \ //设置bootargs "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ //boot_fdt = try "if run loadfdt; then " \ //加载设备树文件,loadfdt=fatload mmc 1:1 0x83000000 imx6ull-14x14-evk.dtb
"bootz ${loadaddr} - ${fdt_addr}; " \ //加载成功的话,就通过bootz启动linux "else " "if test ${boot_fdt} = try; then " "bootz; " "else " "echo WARN: Cannot load the DT; " "fi; " "fi; " "else " "bootz; " "fi;\0"
以上脚本总结一下就是如下内容
mmc dev 1 //切换到 EMMC fatload mmc 1:1 0x80800000 zImage //读取 zImage 到 0x80800000 处 fatload mmc 1:1 0x83000000 imx6ull-14x14-evk.dtb //读取设备树到 0x83000000 处 bootz 0x80800000 - 0x83000000 //启动 Linux
2.1:上面说到bootargs是由mmcargs设置的,console用来与linux交互,一般是串口;buadrate就是串口的波特率,root是根文件系统的位置,rootwait 表示等待 mmc 设备初始化完成以后再挂载,rw 表示根文件系统是可以读写的
mmcargs=setenv bootargs console=${console},${baudrate} root=${mmcroot}
mmcargs=setenv bootargs console= ttymxc0, 115200 root= /dev/mmcblk1p2 rootwait rw
原文:https://www.cnblogs.com/lzd626/p/11938577.html