日期:2022-09-30
版本号:V1.0
作者:snow
目录
一、基本概念
二、基本信息
2.1、环境变量读写
(1)打印环境变量:printenv/print
(2)设置环境变量:setenv env var
(3)保存环境变量:saveenv
2.2、常用环境变量
2.2.1 通信相关
2.2.1.1 串口
baudrate:串口波特率
2.2.1.2 本地以太网
ethaddr:网口MAC地址
ipaddr:网口IP地址
gatewayip:子网掩码
netmask:默认网关
2.2.1.3 远端服务主机
serverip:服务端网口地址
2.2.2 启动相关项
bootdelay:uboot启动后进入linux的自动倒数秒数,
boottargs:保存着uboot传递到linux内核的参数
bootcmd:保存着uboot默认的命令,uboot倒计时以后就会执行bootcmd命令
2.2.3 其他环境变量
mtdpart :boot使用环境mtdparts 来指定mtd分区
2.3、信息查询命令
(1)命令查询:help/?
(2)开发版信息:bdinfo
(3)uboot版本:version
三、数据操作
3.1、内存操作
3.1.1 读取内存
md[.b, .w, .l] address [num]
b w l分别代表1、2、4个字节,num代表要查看的数量(实际字节数为num*单个宽度)
3.1.2 修改内存
(1)单次修改
nm[.b, .w, .l] address
命令输入后uboot会显示当前值并提示用户输入更新值(按q退出)
(2)连续修改
mm[.b, .w, .l] address [可选 数量]
命令输入后uboot会显示当前值并提示用户输入更新值(按q退出)
(用户输入后会地址自增,并提示用户接着输入)
3.1.3 直接写入
mw[.b, .w, .l] address value [数量]
3.1.4 复制
cp[.b, .w, .l] source target count
3.1.5 比较
cmp[.b, .w, .l] addr1 addr2 count
3.1.6 内存测试
mtest 80000000 80001000
3.2、以太网通信&传输
uboot支持dhcp、ping、 nfs 和 tftpboot
3.2.1 ping
与常规用法一致
3.2.2 dhcp
与常规用法一致
3.2.3 nfs
nfs [loadAddress] [[hostIPaddr:]bootfilename]
3.2.4 tftp
nfs [loadAddress] [可选 hostIPaddr:] bootfilename
hostIPaddr默认为serverip, bootfilename不需要完整路径
3.3、flash操作
uboot支持EMMC和SD卡,使用mmc命令进行操作
3.3.1 设备操作
(1)扫描设备:mmc rescan
(2)切换设备:mmc dev 设备id [可选 :分区id,默认0]
(3)列出有效设备:mmc list
(4)复位设备:mmc rst
3.3.2 设备数据操作
(1)读取数据:mmc read
(2)写入数据:mmc write memaddr 起始扇区id 写入扇区数量
3.3.3 设备参数配置
(1)输出当前设备信息:mmc info
(2)扫描分区:mmc part
(3)设置分区:mmc hwpartition
(4)指定BOOT_BUS_WIDTH:mmc bootbus
(5)指定PARTITION_CONFIG:mmc partconf
(6)设定DSR寄存器:mmc setdsr
(7)指定BOOT分区大小:mmc bootpart
(8)指定ROMB分区大小:mmc bootpart
3.4、文件系统
3.4.1 文件系统基本操作
(1)查询文件系统格式:fstype 接口(如mmc) 设备id [可选 :分区id,默认0]
支持fat ext2/3/4等格式
3.4.2 格式文件操作
以fat格式文件为例,ext2\4等同理。
(1)查询文件系统信息:fatinfo 接口(如mmc) 设备id [可选 :分区id,默认0]
()查询目录与文件:fatls 接口 设备id [可选 :分区id,默认0]
()加载文件至内存:fatload 接口 设备id [可选 :分区id] 目标内存地址 路径名 [可选 读取数量,默认全部] [可选 偏移量,默认0]
()将内存数据写入文件:fatwrite 接口 设备id [可选 :分区id] 目标内存地址 路径名 [可选 读取数量,默认全部] [可选 偏移量,默认0]
四、内核引导
4.1 引导zimage
bootz addr initrd[:size] [可选 fdt]
addr代表zimage内核在ddr中的位置
initrd代表临时根文件系统位置(用于两阶段启动机制,若无此配置用-替代)
size临时根文件系统大小
fdt设备树在ddr中的位置
注(bootz还可以用于加载ext4文件系统)
4.2 引导uimage/ramdisk
bootm addr initrd[:size] [可选 fdt]
addr代表uimage内核在ddr中的位置
initrd代表临时根文件系统位置(用于两阶段启动机制,若无此配置用-替代)
size临时根文件系统大小
fdt设备树在ddr中的位置
注(bootm还可以用于加载ramdisk文件系统)
4.3 默认引导
boot
由boot会通过run执行环境变量bootcmd中的内容,bootcmd先通过各种方式将镜像文件拷贝至ddr,随后bootcmd通过bootz或者bootm引导内核镜像。