Uboot命令

U-boot指令

help:查看命令帮助

​ ? xxx或者help xxx查看命令的帮助

信息查询

bdinfo:查看板子信息

printenv:打印环境变量信息

version:查看uboot版本号

对环境变量操作

修改环境变量

setenv <环境变量名> <环境变量内容>:设置环境变量(没有则是新建,内容为空则是删除)

saveenv:保存环境变量

内存操作命令

  • md[.b, .w, .l] <要查看的首地址> <要查看的长度>:.b/w/l代表要以byte/word/long word为单位查看,首地址和长度均以16进制为准,但是不必写“0x”
  • nm [.b, .w, .l] <要修改的地址>
    • 回车后显示<要修改的地址> : <当前地址的数据> ?
    • 在?后输入修改后的数据回车即可 输入q回车退出
  • 与mm类似,使用mm的时候地址会自增 可以连续修改 而nm不自增
  • mw [.b, .w, .l] <要修改的地址> <要填充的数据> <填充个数>:批量修改数据
  • cp [.b, .w, .l] <要拷贝的源地址> <要拷贝的目的地址> <要拷贝的个数> :从源地址向目的地址拷贝对应个数的数据
  • cmp [.b, .w, .l] <要比较的源地址> <要比较的目的地址> <要比较的个数> : 对比源地址和目的地址对应个数的数据,返回相同的个数

网络操作命令

  • setenv ipaddr 192.168.1.188
    setenv ethaddr 00:04:9f:04:d2:35
    setenv gatewayip 192.168.1.1
    setenv netmask 255.255.255.0
    setenv serverip 192.168.1.119
    saveenv

  • ping 192.168.1.119

注意!只能在 uboot 中 ping 其他的机器,其他机器不能 ping uboot,因为 uboot 没有对 ping命令做处理,如果用其他的机器 ping uboot 的话会失败!

  • dhcp [loadAddress] [[hostIPaddr:]bootfilename]

DHCP 不单单是获取 IP 地址,其还会通过 TFTP 来启动 linux 内核

  • nfs(Network File System)网络文件系统

    nfs [loadAddress] [[hostIPaddr:]bootfilename]

    板子的nfs可能和Ubuntu的nfs版本不匹配 详见:https://blog.csdn.net/polaris_zgx/article/details/103571725

    同时要关闭防火墙!!!!!!sudo ufw disable然后重启

  • tftp 命令 tftpboot [loadAddress] [[hostIPaddr:]bootfilename]

    tftp文件夹和下属文件都要赋予777权限 不然不能使用

EMMC和SD卡操作命令

mmc info 输出 MMC 设备信息
mmc read 读取 MMC 中的数据。
mmc wirte 向 MMC 设备写入数据。
mmc rescan 扫描 MMC 设备。
mmc part 列出 MMC 设备的分区
mmc dev 切换 MMC 设备。
mmc list 列出当前有效的所有 MMC 设备。
mmc hwpartition 设置 MMC 设备的分区。
mmc bootbus…… 设置指定 MMC 设备的 BOOT_BUS_WIDTH 域的值。
mmc bootpart…… 设置指定 MMC 设备的 boot 和 RPMB 分区的大小。
mmc partconf…… 设置指定 MMC 设备的 PARTITION_CONFG 域的值
mmc rst 复位 MMC 设备
mmc setdsr 设置 DSR 寄存器的值。

FAT格式文件系统操作命令

  • fatinfo [<dev[:part]>] 用于查询指定 MMC 设置指定分区的文件系统信息
    • interface 表示接口,比如 mmc, dev 是查询的设备号, part 是要查询的分区。比如我们要查询 EMMC 分区 1 的文件系统信息
  • fatls [<dev[:part]>] [directory] 用于查询 FAT 格式设备的目录和文件信息
    • interface 是要查询的接口,比如 mmc,dev 是要查询的设备号,part 是要查询的分区,directory
      是要查询的目录
  • fstype : 用于查看 MMC 设备某个分区的文件系统格式
  • fatload [<dev[:part]> [ [ [bytes [pos]]]]] 用于将指定的文件读取到 DRAM 中
    • interface 为接口,比如 mmc, dev 是设备号, part 是分区, addr 是保存在 DRAM 中的起始地址, filename 是要读取的文件名字。
  • fatwrite <dev[:part]> 用于将 DRAM 中的数据写入到 MMC 设备中
    • interface 为接口,比如 mmc, dev 是设备号, part 是分区, addr 是要写入的数据在 DRAM
      中的起始地址, filename 是写入的数据文件名字, bytes 表示要写入多少字节的数据

EXT格式文件系统操作命令

ext2load、 ext2ls、 ext4load、 ext4ls 和 ext4write。这些命令的含义和使用与 fatload、 fatls 和 fatwrit一样,只是 ext2 和 ext4 都是针对 ext 文件系统的。

BOOT操作命令

  • bootz

    • bootz 命令用于自动 zImage 镜像文件, bootz 命令格式如下
      • bootz [addr [initrd[:size]] [fdt]]
      • addr 是 Linux 镜像文件在 DRAM 中的位置, initrd 是 initrd 文件在DRAM 中的地址,如果不使用 initrd 的话使用‘-’代替即可, fdt 就是设备树文件在 DRAM 中的地址
  • bootm

    • bootm 和 bootz 功能类似,但是 bootm 用于启动 uImage 镜像文件
      • bootm addr addr 是 uImage 镜像在 DRAM 中的首地址
      • 如果要使用设备树,那么 bootm 命令和 bootz 一样
  • boot

    • boot 命令也是用来启动 Linux 系统的,只是 boot 会读取环境变量 bootcmd 来启动 Linux 系统, bootcmd 是一个很重要的环境变量!

    • 比如我们要想使用 tftp 命令从网络启动 Linux 那么就可以设置 bootcmd 为

      • setenv bootcmd 'tftp 80800000 zImage; tftp 83000000 imx6ull-alientek-emmc.dtb; bootz 80800000 - 83000000'
        saveenv
        boot
        
    • 如果想从 EMMC 启动那就设置 bootcmd 为

      • setenv bootcmd 'fatload mmc 1:1 80800000 zImage; fatload mmc 1:1 83000000 imx6ullalientek_emmc.dtb; bootz 80800000 - 83000000'
        savenev
        boot
        

其他常用命令

  • reset:复位重启
  • go addr [arg ...] :用于跳到指定的地址处执行应用
  • run 命令用于运行环境变量中定义的命令,比如可以通过“run bootcmd”来运行 bootcmd 中的启动命令,但是 run 命令最大的作用在于运行我们自定义的环境变量。
  • mtest [start [end [pattern [iterations]]]] 是一个简单的内存读写测试命令,可以用来测试自己开发板上的 DDR
    • start是要测试的 DRAM 开始地址,end 是结束地址,比如我们测试 0X80000000~0X80001000这段内存,输入“mtest 80000000 80001000”
原文地址:https://www.cnblogs.com/zhaipanger/p/12985606.html