首先先说明一下一般怎么配bootcmd和bootargs,一般优先选择购买芯片厂商带的配置为主,在他们的基础上进行修改bootcmd和bootargs,因为他们写的是最适配的
nand read 7fc0 200000 1400000 7fc0目的地址 200000读取地址 1400000大小
bootm 7fc0 用于将内核镜像加载到内存的指定地址处7fc0
bootcmd=nand read 7fc0 200000 1400000;bootm 7fc0;
noinitrd mtd,ubi,etc....直接在内核中根据root=xxx挂根,并有内核启动init进程/sbin/init
root=/dev/mtdblock2 例如mtd分区uboot uboot_bak rootfs linux configs,则rootf在2分区
rootfstype 根文件系统类型yaffs2 速度更快,挂载时间很短,对内存的占用较小日志型文件系统
rootflags=inband-tags 使用in_bandtag的方式存储tag,不用单独烧写oob区域
console=ttyS0 调试使用串口0
rdinit=/sbin/init 从ramdisk中运行的第一个程序的绝对路径,默认为"/init"
mem=64M 指定内存的大小为64M
mtdparts=nand0:0x200000@0x0(u-boot),0x1400000@0x200000(kernel),-(user) mtd分区
ignore_loglevel 忽略内核日志等级的设置,向控制台输出所有内核消息。仅用于调试目的。
bootargs=noinitrd root=/dev/mtdblock2 rootfstype=yaffs2 rootflags=inband-tags console=ttyS0 rdinit=/sbin/init mem=64M mtdparts=nand0:0x200000@0x0(u-boot),0x1400000@0x200000(kernel),-(user) ignore_loglevel
console 115200【调试选择 串口 屏幕等等 波特率】
root 【根文件位置】
rootwait rw 【等待mmc设置初始化完成之后再挂载】
bootcmd=console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw
mmc dev 1 [切换为设备1]
fatload mmc 1:1 0x80800000 zImage
[从第1个存储设备的第1个分区的根目录读出uImage文件到内存地址0x80800000 拷贝镜像]
fatload mmc 1:1 0x83000000 imx6ull-alientek-emmc.dtb;
[从第1个存储设备的第1个分区的根目录读出uImage文件到内存地址0x83000000 拷贝设备树]
bootz 0x80800000 - 0x83000000;
[bootz ${kernel_load_address} - ${devicetree_load_address} 启动镜像位置 设备树位置]
bootargs=mmc dev 1;fatload mmc 1:1 0x80800000 zImage;fatload mmc 1:1 0x83000000 imx6ull-alientek-emmc.dtb;bootz 0x80800000 - 0x83000000;