U-boot boot命令

Uboot 的核心工作是引导 Linux内核,针对不同的内核镜像,Uboot 提供了不同的 boot 指令,如下:

命令 描述 内核镜像
boot 读取环境变量 bootcmd 来引导内核镜像
booti 引导 ARM64 内核镜像 Image
bootm 引导 u-boot自定义的内核镜像 uImage
bootz 引导 ARM 内核镜像 zImage
bootefi 引导 ARM64 压缩内核镜像 Image.gz

启动Linux内核之前,首先要将 Linux 内核镜像文件拷贝到 DDR内存 中,如果使用到设备树的话,设备树文件也要加载到内存中。可以从 EMMC 、 NAND 、U盘和硬盘等存储设备中将 Linux 镜像和设备树文件加载到内存中,也可以通过网络 nfs 或者 tftp 将 Linux 镜像文件和设备树文件下载到内存中。不管用那种方法,只要能将 Linux 内核镜像和设备树文件存到内存中就行,然后使用 上面的命令启动镜像文件。

bootm 命令

bootm 命令用来引导 Uboot 自定义的内核镜像 (uImage)。命令格式如下:

bootm  addr  [initrd[:size]]  [fdt]

参数说明:

  • addr:kernel Image文件所在的物理内存地址,必选
  • [initrd[:size]]:若使用了ramdisk,这个参数表示 initrd文件内存中的地址和大小size。若不指定,使用“-”代替即可
  • fdt: 设备树dtb文件在物理内存中的地址,在ARM64中,必选

booti 命令

booti 是 bootm 命令的一个子集,可用于执行位于内存中的ARM64 kernel Image(Image),其格式如下:

booti addr [initrd[:size]]  [fdt]

boot 命令

boot 命令也是用来启动 Linux 系统的,只是 boot 会读取环境变量 bootcmd 来启动 Linux 系统.
bootcmd 是一个很重要的环境变量,可以通过setenv/saveenv命令来进行设置,设置成功后,就可以通过boot直接启动系统了。