u-boot环境变量和常用命令 广州创龙电子科技有限公司 Guangzhou Tronlong Electronic Technology Co., Ltd
01 u-boot 环境变量 02 u-boot 常用命令 03 u-boot 添加命令
01 u-boot 环境变量 第 1 部分
u-boot 环境变量 环 境 变 量 解 释 说 明 baudrate 串口控制台的波特率 bootcmd 自动启动时执行命令 环 境 变 量 解 释 说 明 baudrate 串口控制台的波特率 bootcmd 自动启动时执行命令 bootdelay 执行自动启动的等候秒数 bootfile 默认的下载文件名 bootargs 传递给Linux内核的启动参数 console 控制台所用的串口波特率 mmcboot 从mmc(sd卡)启动的启动参数 serverip TFTP/NFS服务器端的IP地址 ipaddr 本地IP地址 netmask 以太网网络掩码 ethaddr 以太网MAC地址 04 广州创龙电子科技有限公司
02 u-boot 常用命令 第 2 部分
u-boot 常用命令 1. 帮助命令 help或者? 获取u-boot支持的命令 help <命令> 获取命令的详细帮助 06 1. 帮助命令 help或者? 获取u-boot支持的命令 help <命令> 获取命令的详细帮助 06 广州创龙电子科技有限公司
u-boot 常用命令 2. 环境变量命令 printenv 打印环境变量 setenv 设置环境变量 saveenv 保存环境变量 07 2. 环境变量命令 printenv 打印环境变量 setenv 设置环境变量 saveenv 保存环境变量 07 广州创龙电子科技有限公司
u-boot 常用命令 3. 网络命令 ping <ipaddr> 测试网络是否连通 dhcp 自动获取IP 08 3. 网络命令 ping <ipaddr> 测试网络是否连通 dhcp 自动获取IP 08 广州创龙电子科技有限公司
u-boot 常用命令 4. 以太网phy命令 mii device 查看当前所有phy设备 mii device <devname> 选中设备 mii info <phyaddr> 查看设备信息 mii read <phyaddr> <reg> 读取phy的寄存器 mii write <phyaddr> <reg> <data> 配置phy的寄存器 mii dump <phyaddr> <reg> 列举选中的寄存器的配置(具体到bit),只支持reg0-5 原理图查看MDIO接口 Mii就是通过MDIO来读写phy寄存器 Mii read <phyaddr> 0-1f 可以读取所有寄存器 09 广州创龙电子科技有限公司
u-boot 常用命令 5. SD卡(mmc)命令 mmc info 查看当前设备的信息 mmc rescan 重新查找设备 mmc dev [dev] 选中设备 mmc list 列举所有设备 mmc part 列举当前设备的分区情况 mmc read <addr> <blk#> <cnt> 读取mmc内容到内存 mmc write <addr> <blk#> <cnt> 将内存内容写入到mmc中 mmc read 0x10800000 600 10 命令分析:表示从mmc上第0x600个block开始处读取0x10个block的内容到内存0x10800000 处 表示从mmc上第blk#个block开始读取cnt个block的内容到内存addr处. 从内存addr开始,将cnt个block的内容写到mmc设备中的第blk#个block。 addr: 读取到内存的位置 blk#: 是mmc内的块号,这个位置是mmc的0地址的偏移量,16进制,block单位是512字节 cnt: 读取block个数,16进制 10 广州创龙电子科技有限公司
u-boot 常用命令 6. Nand Flash命令 nand info 查看可以使用的Nand Flash nand device [dev] 显示或设定当前使用的Nand Flash nand read <addr> <offset> <size> 从Nand 的 off 偏移地址处读取size字节 的数据到RAM的addr地址 nand write <addr> <offset> <size> 将RAM的 addr 地址处的size字节的数据 烧写到Nand的off偏移地址 nand erase <offset> <size> 擦除Nand Flash的off偏移地址处的size字节的数据 nand bad 显示Nand Flash的坏块 nand erase.chip 擦除整块Nand Flash中的数据 nand read 0x80008000 0x100000 0x100 nand erase 0x100000 0x100 11 广州创龙电子科技有限公司
u-boot 常用命令 7. SPI Flash命令 sf probe 选择spi flash sf read <addr> <offset> <len> 从spi flash的偏移地址offset开始读取len个字节的内容到内存addr处 sf write <addr> <offset> <len> 将内存addr开始的len个字节的内容写到spi flash的偏移地址offset处 sf erase <offset> <len> 擦除spi flash的偏移地址offset处开始的len个字节的数据 sf probe 0 0 0 SF: Detected N25Q128 with page size 256, total 16 MiB 16384 KiB N25Q128 at 0:0 is now current device sf erase 0 0x200000 sf read 0x08000000 0 100 12 广州创龙电子科技有限公司
u-boot 常用命令 8. USB命令 usb start 启动并扫描usb控制器 usb reset 重启usb控制器 usb stop 关闭usb控制器 usb tree 已连接的usb设备树 usb info [dev] 显示usb设备[dev]的信息 usb storage 显示已连接的usb存储设备 usb dev [dev] 显示和设置当前usb存储设备 usb part [dev] 显示usb存储设备[dev]的分区信息 usb read <addr> <blk#> <cnt> 读取usb存储设备数据 usb write <addr> <blk#> <cnt> 往usb存储设备写数据 usb read 0x80008000 6 6 13 广州创龙电子科技有限公司
u-boot 常用命令 9. 内存操作命令 nm [.b, .w, .l] <address> 修改内存值 (指定地址) 9. 内存操作命令 nm [.b, .w, .l] <address> 修改内存值 (指定地址) mm [.b, .w, .l] <address> 修改内存值 (地址自动加一) md [.b, .w, .l] <address> 显示内存值 mw [.b, .w, .l] <address> <value> [count] 用指定的数据填充内存 cp [.b, .w, .l] <source> <target> [count] 内存的拷贝 nm 0x80008000 80008000: 00000000 ? 0x12121212 //执行完nm命令,会打印80008000: 00000000 ? ,然后再问号后面输入要修改的值,然后回车,然后输入Y 80008000: 12121212 ? y md 0x80008000 mw 0x80008000 34 10 mw.b 0x80008000 34 10 .b和.l是不一样的 cp.b 0x80008000 0x80008010 10 点亮LED md 0x48322134 nm.w 0x48322134 48322134: fc7f ? c07f //将寄存器134h的bit10~13清零 md 0x48322194 nm.w 0x48322194 48322194: 0380 ? 3f80 //将寄存器194h的bit10~13置一 14 广州创龙电子科技有限公司
u-boot 常用命令 使用内存操作命令点亮LED 点亮TL437x_EVM的USER_LED0~3,引脚为gpio5_10、gpio5_11、gpio5_12、gpio5_13 执行命令如下: md 0x48322194 mw.w 0x48322194 3f80 //将GPIO5的寄存器194h的bit10~13置一 md 0x48322134 mw.w 0x48322134 c07f //点亮4个LED,将GPIO5的寄存器134h的bit10~13清零 mw.w 0x48322134 fc7f //熄灭4个LED,将GPIO5的寄存器134h的bit10~13置一 操作的地址就是实际的物理地址,上面AM437x的GPIO5的地址为0x4832 2000,具体要配置那几个寄存器才能点亮LED,请参考TRM,其他的平台同理。 点亮LED md 0x48322194 nm.w 0x48322194 48322194: 0380 ? 3f80 //将寄存器194h的bit10~13置一 md 0x48322134 nm.w 0x48322134 48322134: fc7f ? c07f //将寄存器134h的bit10~13清零 点亮 48322134: c07f? fc7f 熄灭 15 广州创龙电子科技有限公司
u-boot 常用命令 u-boot命令的使用技巧 (1)按“Tab”键可自动补全命令。 (3)使用命令时,可以使用开头的几个字母来代替。 (4)执行一个命令后,再次输入回车就可重复执行(前提:这个命令是可重复执行的)。 (5)u-boot接收的数据都是十六进制,输入时可直接输入数字,省略“0x”。 16 广州创龙电子科技有限公司
03 u-boot 添加命令 第 3 部分
u-boot 添加命令 1. 添加源码中已有的命令 在cmd/Kconfig中添加该命令的编译配置; 在menuconfig中选中该命令; 如果编译出错,根据提示,在include/configs/xxx_evm.h中增加相应的宏定义。 在include/config_cmd_all.h增加宏定义 18 广州创龙电子科技有限公司
u-boot 添加命令 2. 添加自己编写的命令 在cmd目录下增加源码; 在cmd/Makefile中添加该命令的编译; 在cmd/Kconfig中添加该命令的编译配置; 编译uboot。 在include/config_cmd_all.h增加宏定义 19 广州创龙电子科技有限公司
u-boot 添加命令 3. 旧版u-boot添加命令的方法 在include/config_cmd_all.h中查看该命令的宏定义; 将上述的宏定义复制到include/config_cmd_default.h 编译u-boot 在include/config_cmd_all.h增加宏定义 20 广州创龙电子科技有限公司
广州创龙电子科技有限公司 谢谢 官网:www.tronlong.com 论坛:51ele.net 微信公众号:广州创龙