uboot命令行启动kernel

本文介绍了如何在UBoot命令行环境下启动Linux内核。步骤包括:开机停留在UBoot界面,设置rootfs和kernel位置,加载kernel和设备树到内存,最后使用booti命令启动内核。重点关注bootargs参数配置,以及ext4loadmmc命令用于从存储设备加载内核和设备树。
摘要由CSDN通过智能技术生成

uboot命令行启动内核

1:开机停留在uboot界面,即uboot处于board_r.c中的run_main_loop()的死循环中
2:确保rootfs,kernel和dts已烧写在emmc或者sd卡
3:

setenv bootargs " CONFIG_BOOTARGS_LOGLEVEL \
		" root=${mmcroot} earlycon isolcpus=2,3" \

展开为setenv bootargs root=/dev/mmcblk0p1 rootwait rw earlycon isolcpus=2,3

  • bootargs
    主要用来传递参数给内核,主要是传递调试串口,根文件系统位置以及用户自定义的参数
  • root
    用来设置根文件系统的位置, root=/dev/mmcblk0p1表示根文件系统在/dev/mmcblk0p1中,必须指定root位置,否则无法正常启动
  • isolcpus
    用来设置CPU 2,3隔离
    4:ext4load mmc ${mmcdev}:${mmcpart_Startup_A} ${loadaddr} ${image}
    展开为:ext4load mmc 0:5 0x80080000 Image-ETH
    意思是从emmc 0号设备的第五分区加载名为Image-ETH的kernel至DDR 0x80080000位置,所以kernel应提前烧写至emmc第五分区中
    5:ext4load mmc ${mmcdev}:${mmcpart_Startup_A} ${fdt_addr} ${fdt_file}
    展开为ext4load mmc 0:5 0x83E00000 fsl-s32v234sbc-ETH.dtb
    意思是从emmc 0号设备的第五分区加载名为fsl-s32v234sbc-ETH.dtb的设备树至DDR 0x83E00000 位置,所以设备树应提前烧写至emmc第五分区中
    6:${boot_mtd} ${loadaddr} - ${fdt_addr}
    展开为:booti 0x80080000 - 0x83E00000
    意思为:启动Linux Kernel,运行完后则跳出uboot开始启动内核,完成uboot到内核的引导过程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值