首先我们要了解两个环境变量
1.环境变量bootcmd
bootcmd保存着uboot默认命令。uboot倒计时结束以后就会执行bootcmd命令。这些命令一般是用来启动linux内核的,比如读取EMMC或者NAND Flash中的Linux内核镜像文件和设备树文件到DRAM中,然后启动Linux内核。
可以在uboot启动后在命令行设置bootcmd的值
setenv bootcmd 'tftp 80800000 zImage; tftp 83000000 imx6ull-14x14-emmc-7-1024x600-c.dtb;
bootz 80800000 - 83000000'
2.环境变量bootargs
bootargs保存着uboot传递给Linux内核的参数。bootargs环境变量是由mmcargs设置的mmcargs=setenv bootargs console=${console},${baudrate} root=${mmcroot}
setenv bootargs 'console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw'
1.console用来设置linux终端,即通过什么设备来和linux交互
2.root 用来设置根文件系统的位置
3.rootfstyle
设置根文件系统类型
chosen子节点
chosen并不是一个真实的设备,chosen节点主要是未了uboot向linux内核传递数据。
uboot向内核传参是通过向设备树下的chosen节点添加需要向内核传的参数(包括跟文件系统路径与终端的选择等等)