uboot 中的 bootcmd & bootargs 理解

bootcmd & bootargs

uboot 中有两个重要的环境变量:bootcmd 和 bootargs,设置后保存在 emmc 中。

bootcmd :主要作用是'保存启动命令'。
          例如:下载内核、设备树 到 内存中,再启动 Linux 。
          uboot 启动倒计时结束后、会默认执行 bootcmd 变量。

bootargs:保存着'传递给内核的参数'

1.1 bootcmd

  # 将 mmc 中的 zImage 加载到 内存 0x60008000
  fatload mmc 0:1 0x60008000 zImage; 
  '从 /dev/mmcblk0p1 加载 zImage 到内存的 0x60008000'


  # 将 mmc 中的 vexpress-v2p-ca9.dtb 加载到 内存 0x61000000
  fatload mmc 0:1 0x61000000 vexpress-v2p-ca9.dtb;
  '从 /dev/mmcblk0p1 加载 dtb 到内存的 0x61000000'


  # bootz 用于加载 zImage 和 ext4文件系统
  bootz ${kernel_load_address} - ${devicetree_load_address}
  bootz 0x60008000 - 0x61000000;


  # bootm 用于加载 uImage 和 ramdisk
  bootm ${kernel_load_address} ${ramdisk_load_address} ${devicetree_load_address};

1.2 bootargs

# mmcargs 配置如下:
  mmcargs=setenv bootargs console=${console},${baudrate} root=${mmcroot} 

# 参数解析如下:
  console=tty0,baudrate=115200
  mmcroot=/dev/mmcblk0p2 rootwait rw

# mmcroot 是配置根文件系统的地方,配置形如:
  mmcroot=" CONFIG_MMCROOT " rootwait rw

  'rootwait 表示等待 mmc 设备初始化完成以后再挂载,'
  '否则 mmc 设备还没初始化完成就挂载根文件系统会出错的。'
  'rw 表示根文件系统是可以读写的,不加 rw 的话无法在根文件系统中进行写操作,只能读。'

# 使用 EMMC 启动 linux 后可能会存在以下这样的文件:

  /dev/mmcblk0        # 表示 mmc 设备 0
  /dev/mmcblk1        # 表示 mmc 设备 1

  /dev/mmcblk0p1      # 表示 mmc 设备 0 分区 1 (mmc 0:1)
  /dev/mmcblk0p2      # 表示 mmc 设备 0 分区 2 (mmc 0:2)

  /dev/mmcblk1p1      # 表示 mmc 设备 1 分区 1 (mmc 1:1)
  /dev/mmcblk1p2      # 表示 mmc 设备 1 分区 2 (mmc 1:2)

'### 通常 Linux 系统的 mmc 设备存储划分、如下所示 ###'

  '0 分区 存放 uboot'
  '1 分区 存放 内核及设备树'
  '2 分区 存放 根文件系统'

  • 16
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值