飞腾uboot命令简单介绍

原文在我公众号上:
https://mp.weixin.qq.com/s/qT-ymrp4e_jR_niAfAP65Q

飞腾uboot和开源uboot并无大差异,故飞腾uboot固件命令可以直接从网上搜索开源uboot相关命令。这里为了便于大家调试,将一些可能用到的命令说明一下。在 Uboot 命令行下,输入 help 将打印所有的可用命令,复杂命令操作,通过命令 help 的方式获取具体说明。
1.help命令
输入 help,可以得到命令简易说明。
输入:命令 help,可以得到命令的具体说明。

2.环境变量命令
举例:查看当前环境变量后,修改 server ip 地址,然后在保存
1)查看当前环境变量

2)修改地址和保存
修改就是重置,就是用setenv给变量重新赋值,新值需要用英文单引号’引起来。

3.开关机等操作命令
4.加载命令
启动 Image 文件使用 booti;
启动 uImage 文件,使用 bootm

booti 0x90100000 -:- 0x90000000 解释:引导 OS 的命令,booti参数一是加载的内核镜像文件,这里是从0x90100000 地址加载;参数二是文件系统,这里写成“-:-”表示不用加载,表示使用默认的文件系统;参数三是设备树文件,这里是从 0x90000000 地址加载。
那这个内核镜像、设备树是什么时候放到0x90100000 、0x90000000 地址呢?
是靠加载命令进去的。这个加载命令是后面要说的,它根据不同的存储介质是不一样的。
当前示例环境变量是从sata盘读取,加载到内存0x90100000 、0x90000000 地址的。
如图:

当uboot去启动系统的时候,最先执行的环境变量为bootcmd。
通过上面可以看出,bootcmd是要去执行distro_bootcmd。distro_bootcmd又去执行boot_ft。
boot_ft调用了load_fdt_ft、load_kernel_ft。
load_fdt_ft用ext4load命令从sata盘(scsi就是sata接口)将dtb设备树加载到了0x90000000内存地址。
load_kernel_ft用ext4load命令从sata盘uImage内核镜像加载到了0x90100000内存地址。
之后再去按上面说的bootm,booti就可以了。
提示一句,加载的设备树是硬盘里存的,名字是啥就填啥,不是都叫图里的名字。
5.PCI(PCIe)相关命令
输入 pci help 会有所有命令说明

1)查看 PCIE 控制器情况以及扫到外设情况,例如 pci 3中3代表BUS号,

2)查看外设配置空间
"pci d"命令用于显示PCI设备的配置空间信息。"03.00.00" 是一个由三个部分组成的地址,分别表示 PCI 设备的总线号(bus number)、设备号(device number)和功能号(function number)。
"pci d 03.00.00" 的意思是在第三条总线上的第一个插槽中的第一个功能的 PCI 设备的配置空间信息。
执行该命令后,u-boot 将显示与该设备相关的详细信息,例如厂商ID、设备ID、设备类别等。通常情况下,这些信息以十六进制格式显示,以便更精确地表示数据。对于一些常见的字段,如厂商ID和设备ID,可以使用 PCI 数据库或其他参考资料将其转换为对应的字符串,以便更容易理解。

3)查看外设信息
"pci h"命令用于在PCI设备上执行总线控制器的操作。它可以用于扫描PCI总线,探测和配置PCI设备,设置中断路由等。这个命令可以用于操作和管理PCI总线上的设备。

6.USB命令
其中常用命令如下:
1)usb start 为加载 usb 驱动,寻找 usb 控制器

2)usb reset 为复位 usb 控制器

3)usb info 为显示扫描到 usb 外设

7.scsi(sata)命令
其中常用如下:
1)查询 SATA 控制下有几个 device 设备,示例硬件中连接一个 SATA 盘

2)显示 SATA 控制下有几个 device 设备,示例硬件中连接一个 SATA 盘


"scsi device" 和 "scsi info" 是两个不同的命令,它们的作用和显示的信息有一些差别:
"scsi device" 命令用于设置当前的 SCSI 设备。它接受一个参数,该参数表示要选择的 SCSI 设备的索引号。索引号从 0 开始,代表第一个 SCSI 设备。该命令可以用于在多个 SCSI 设备之间进行切换,以便执行针对特定设备的操作。一旦设置了当前设备,后续的 SCSI 命令将应用于该设备。
"scsi info" 命令用于显示 SCSI 控制器和已连接的 SCSI 设备的信息。它会列出每个 SCSI 设备的详细信息,如设备号、设备类型、厂商等。此命令不需要参数,并且会显示当前系统中所有可用的 SCSI 设备的信息。
总的来说"scsi device" 命令用于设置当前的 SCSI 设备,而 "scsi info" 命令用于显示系统中所有 SCSI 设备的详细信息。
8.操作SATA 盘中文件的命令
用于启动系统,具体可见环境变量中的设置。
示例如下:
第一步,首先查看有几个 SATA 盘,device0 为 FAT 格式容量 250G,device1 为
ext4 格式容量为 1G;
第二步,查看 device0 中的文件;
第三步,加载 device0 中设备树;
第四步,查看 device1 中的文件;
第五步,加载 device1 中的 image 文件。

9.nvme 命令
命令的用法与 scsi 相似。
10.mii命令
mii命令请查看文章:


个人资料推广:
最近将多年来收集到的教学视频、国内外图书、源码等整理整合拿出来,
涉及 arm、Linux、python、信号完整性、FPGA、DSP、算法、stm32、
单片机、制图、电子模块、kali、出版社图书等。
资料目前约 1.5TB+。初、中、高不同阶段工程师,都能有提升自己的资料。


分享,让技术更伟大!欢迎转发!
欢迎飞腾爱好者加入微信交流群。
群内大家可以畅所欲言。在群内不需要表露自己的公司和身份,可以群内交流遇到的问题,分享自己的调试心得。
希望大家共建飞腾友谊!
