提取的ISC3000-S U-Boot内置命令解释:
? - alias for 'help'
FSdel - del a file from the Flash MV FS
FSdir - ls the Flash MV FS
FSformat- format the Flash MV FS
FSrun - Load an exe file from the Flash MV FS and run it
FStftp - tftp a file to the Flash MV FS
FStftpe - tftp an exe file to the Flash MV FS
FStype - cat file from the Flash MV FS
autoscr - run script from memory
base - print or set address offset
bdinfo - print Board Info structure
boot - boot default, i.e., run 'bootcmd'
bootd - boot default, i.e., run 'bootcmd'
bootext2 dev:boot_part1,boot_part2 addr boot_image linux_dev_name
bootm - boot application image from memory
bootp - boot image via network using BootP/TFTP protocol
bubt - Burn an image on the Boot Flash.
cmp - memory compare
cmpm - Compare Memory
coninfo - print console devices and information
cp - memory copy
cpumap - Display CPU memory mapping settings.
crc32 - checksum calculation
date - get/set/reset date & time
dclk - Display the MV device CLKs.
ddimm - Display SPD Dimm Info
diskboot- boot from IDE device
dma - Perform DMA
doubleimage - creat double image
echo - echo args to console
eeprom - EEPROM sub-system
erase - erase FLASH memory
ext2load- load binary file from a Ext2 filesystem
ext2ls - list files in a directory (default /)
fi - Find value in the memory.
flinfo - print FLASH memory information
g - start application at cached address 'addr'(default addr 0x40000)
go - start application at address 'addr'
help - print online help
icrc32 - checksum calculation
ide - IDE sub-system
iloop - infinite loop on address range
imd - i2c memory display
iminfo - print header information for application image
imm - i2c memory modify (auto-incrementing)
imw - memory write (fill)
inm - memory modify (constant address)
iprobe - probe to discover valid I2C chip addresses
ir - reading and changing MV internal register values.
itest - return true/false on integer compare
loadb - load binary file over serial line (kermit mode)
loads - load S-Record file over serial line
loop - infinite loop on address range
map - Diasplay address decode windows
md - memory display
me - PCI master enable
mm - memory modify (auto-incrementing)
mp - map PCI BAR
mtest - simple RAM test
mw - memory write (fill)
nand - NAND sub-system
nand_burn - Burn an image on the Boot Nand Flash.
nboot - boot from NAND device
nfs - boot image via network using NFS protocol
nm - memory modify (constant address)
pci - list and access PCI Configuration Space
phyRead - Read PCI-E Phy register
pciePhyWrite - Write PCI-E Phy register
phyRead - Read Phy register
phyWrite - Write Phy register
ping - send ICMP ECHO_REQUEST to network host
printenv- print environment variables
protect - enable or disable FLASH write protection
rarpboot- boot image via network using RARP/TFTP protocol
reset - Perform RESET of the CPU
resetenv - Return all environment variable to default.
run - run commands in an environment variable
saveenv - save environment variables to persistent storage
se - PCI Slave enable
setenv - set environment variables
sflash - read, write or erase the external SPI Flash.
sg - scanning the PHYs status
sleep - delay execution for some time
sp - Scan PCI bus.
spdcpy - Copy Dimm 0 SPD to Dimm 1 SPD
tftpboot- boot image via network using TFTP protocol
version - print monitor version
基础交互类
| 命令 | 详细解释 |
|---|---|
? |
「help 命令的别名」,输入?等价于输入help,用于快速查询所有可用命令的简要说明。使用场景 :开发 / 调试时忘记命令功能,快速检索;示例 :输入?后,终端会列出所有命令 + 简短描述(如? - alias for 'help')。 |
help |
「在线帮助核心命令」,打印所有 / 指定命令的详细帮助信息。扩展用法 :help 命令名可查看单个命令的具体用法(如help bootm);核心价值:嵌入式终端无手册时,唯一的实时帮助入口。 |
Flash MV 文件系统操作类(MV=Marvell,常见于网络设备)
| 命令 | 详细解释 |
|---|---|
FSdel |
「删除 Flash MV 文件系统文件」,删除 Flash 中 Marvell 专属文件系统里的指定文件。使用场景 :清理 Flash 中无用的配置 / 镜像文件,释放空间;注意 :嵌入式 Flash 擦写有寿命限制,避免频繁删除;需指定文件路径(如FSdel /app/test.bin)。 |
FSdir |
「列出 Flash MV 文件系统内容」,等价于 Linux 的ls,列出 Flash MV 文件系统中指定目录的文件 / 子目录。默认行为 :无参数时列出根目录内容;使用场景:查看 Flash 中已存储的镜像、配置文件是否存在。 |
FSformat |
「格式化 Flash MV 文件系统」,对 Flash 中 Marvell 文件系统分区进行格式化(擦除原有数据 + 建立文件系统结构)。风险 :格式化会清空分区所有数据,需谨慎;使用场景:文件系统损坏、分区重构时执行。 |
FSrun |
「加载并运行 Flash MV 文件系统中的 exe 文件」,从 Flash MV 文件系统读取指定的可执行文件(exe,嵌入式定制格式)到内存,然后执行。核心逻辑 :先读Flash→内存,再跳转到内存地址执行;使用场景:运行存储在 Flash 中的应用程序、自定义脚本。 |
FStftp |
「通过 TFTP 传输文件到 Flash MV 文件系统」,从 TFTP 服务器下载指定文件,并写入 Flash 的 MV 文件系统中。前置条件 :需提前配置板卡 IP、TFTP 服务器 IP(如setenv serverip 192.168.1.100);使用场景:将 PC 端的配置文件、数据文件上传到 Flash 存储。 |
FStftpe |
「通过 TFTP 传输 exe 文件到 Flash MV 文件系统」,专用版 FStftp,仅用于传输可执行文件(exe)到 Flash MV 文件系统,做了针对性的格式校验(如校验 exe 文件头)。区别于 FStftp:普通 FStftp 可传任意文件,FStftpe 仅支持 exe,且传输后会验证文件完整性。 |
FStype |
「查看 Flash MV 文件系统文件内容」,等价于 Linux 的cat,打印 Flash MV 文件系统中指定文件的文本内容。使用场景 :查看配置文件(如FStype /config/ip.cfg)、日志文件,调试配置是否正确。 |
启动 / 引导类
| 命令 | 详细解释 |
|---|---|
autoscr |
「运行内存中的脚本」,执行已加载到内存中的脚本文件(如 U-Boot 脚本、shell 类脚本)。核心逻辑 :脚本先通过 TFTP / 串口加载到内存指定地址,再用autoscr 内存地址执行;使用场景:批量执行初始化命令(如配置 IP、挂载分区),替代手动逐条输入。 |
boot |
「默认启动」,执行环境变量bootcmd中定义的启动命令序列,是嵌入式系统最核心的启动命令。核心逻辑 :U-Boot 上电后会自动执行boot(等价于run bootcmd);示例 :若bootcmd=bootm 0x80000000,则boot会加载 0x80000000 地址的镜像并启动。 |
bootd |
「boot 命令的别名」,功能、用法完全等价于boot,属于历史兼容命令(早期 U-Boot 版本区分 boot/bootd,后期统一)。 |
bootext2 |
「从 Ext2 文件系统启动」,指定 IDE/SATA 设备的 Ext2 分区,加载 Linux 内核镜像并启动,需传入 4 个参数:bootext2 dev:boot_part1,boot_part2 addr boot_image linux_dev_name参数说明:- dev:存储设备(如 ide0);- boot_part1/2:Ext2 分区号;- addr:镜像加载到的内存地址;- boot_image:内核镜像文件名;- linux_dev_name:Linux 识别的设备名(如 sda1);使用场景:从硬盘 Ext2 分区启动 Linux 系统(嵌入式工控机常用)。 |
bootm |
「从内存启动应用镜像」,嵌入式最核心的启动命令,加载并执行内存中指定地址的镜像(支持 Linux 内核、U-Boot 镜像、应用程序)。核心逻辑 :1. 解析镜像头部(校验格式、大小、入口地址);2. 将镜像解压(若压缩)到指定内存区域;3. 跳转到镜像入口地址执行;示例 :bootm 0x80000000(启动 0x80000000 地址的镜像);使用场景:TFTP 加载镜像到内存后启动、Flash 读取镜像到内存后启动。 |
bootp |
「通过 BootP/TFTP 网络启动」,结合 BootP(自动获取 IP)和 TFTP(下载镜像),从网络加载镜像并启动。区别于 tftpboot :bootp 自动通过 BootP 协议获取 IP,无需手动配置;使用场景:无本地存储(如无 Flash)的设备、批量部署时统一从服务器启动。 |
diskboot |
「从 IDE 设备启动」,从 IDE 接口的存储设备(如 IDE 硬盘、CF 卡)加载并启动镜像。前置条件 :IDE 设备已分区并存储可启动镜像;使用场景:嵌入式设备从硬盘启动系统(替代 Flash 启动)。 |
nboot |
「从 NAND Flash 启动」,从 NAND Flash 指定分区 / 地址加载镜像并启动。核心适配 :针对 NAND Flash 的坏块管理、ECC 校验做了优化;使用场景:NAND Flash 为主存储的设备(如消费类嵌入式产品)启动系统。 |
nfs |
「通过 NFS 网络启动」,从 NFS 服务器挂载指定目录,加载其中的镜像并启动。优势 :NFS 支持大文件、实时更新镜像,调试时无需反复烧写 Flash;前置配置 :需设置ipaddr(板卡 IP)、serverip(NFS 服务器 IP)、rootpath(NFS 共享目录);使用场景:Linux 内核开发调试,快速测试不同版本内核。 |
rarpboot |
「通过 RARP/TFTP 网络启动」,结合 RARP(反向 ARP,获取 IP)和 TFTP(下载镜像)启动系统。区别于 bootp :RARP 仅解决 IP 获取,无其他配置(如网关);bootp 功能更全;使用场景:老旧网络环境、仅支持 RARP 的设备启动。 |
tftpboot |
「通过 TFTP 网络启动」,手动配置 IP 后,从 TFTP 服务器下载镜像到内存并启动。核心用法 :tftpboot 内存地址 镜像文件名(如tftpboot 0x80000000 uImage);使用场景:开发调试时最常用的网络启动方式,快速更新 / 测试镜像。 |
内存操作类
| 命令 | 详细解释 |
|---|---|
base |
「打印 / 设置地址偏移量」,用于简化内存地址输入,设置后其他内存命令可基于该偏移量计算地址。示例 :- base:打印当前偏移量(如Base Address: 0x00000000);- base 0x80000000:设置偏移量为 0x80000000,后续md 0x100等价于md 0x80000100;使用场景:频繁操作某一内存区域时,减少地址输入长度。 |
cmp |
「内存比较」,对比两个内存区域的内容是否一致,输出第一个不同的地址和数值。用法 :cmp 地址1 地址2 长度(如cmp 0x80000000 0x81000000 0x1000);使用场景:校验镜像加载是否完整(对比 Flash 和内存中的镜像)、检测内存数据是否被篡改。 |
cmpm |
「增强版内存比较」,功能与cmp一致,是针对 Marvell 芯片优化的内存比较命令,支持更大的内存范围、更快的比较速度(硬件层面优化)。 |
cp |
「内存拷贝」,将指定内存区域的数据复制到另一内存地址。用法 :cp 源地址 目标地址 长度(如cp 0x80000000 0x81000000 0x100000);使用场景:将 Flash 中的镜像复制到内存、内存数据备份、调整镜像加载位置。 |
fi |
「内存查找值」,在指定内存区域中查找指定数值(支持 8/16/32 位),输出所有匹配的地址。用法 :fi 起始地址 长度 查找值(如fi 0x80000000 0x1000 0x12345678);使用场景:调试时查找配置参数、定位程序崩溃时的关键寄存器值。 |
go |
「跳转到指定地址执行程序」,直接跳转到内存中指定地址,执行该地址的二进制代码(无镜像解析,仅跳转)。区别于 bootm :bootm会解析镜像头部(解压、校验),go仅简单跳转;示例 :go 0x40000(默认地址)、go 0x80000000;使用场景:运行无头部的裸机程序、调试程序入口地址。 |
g |
「go 命令的简化版」,跳转到缓存地址 执行程序,默认地址 0x40000(可指定其他地址)。核心区别 :g针对缓存地址优化(如 ARM 的 Cache),go直接访问物理地址;使用场景:调试开启 Cache 的程序,验证缓存对执行的影响。 |
iloop |
「内存地址范围无限循环」,对指定内存地址范围执行无限循环操作(如读 / 写循环),用于测试内存稳定性、硬件可靠性。用法 :iloop 起始地址 结束地址;使用场景:硬件测试阶段,验证内存是否存在偶发错误。 |
imd |
「I2C 内存显示」,读取 I2C 总线上挂载的设备(如 EEPROM、传感器)的内存 / 寄存器内容并打印。用法 :imd I2C地址 寄存器地址 长度;使用场景:调试 I2C 设备,查看传感器数据、EEPROM 配置是否正确。 |
iminfo |
「打印镜像头部信息」,解析内存中镜像的头部数据,输出镜像类型、大小、入口地址、校验和等信息。示例 :iminfo 0x80000000;使用场景:验证镜像是否完整、是否适配当前硬件(如内核镜像是否支持该 CPU)。 |
imm |
「I2C 内存修改(自动递增)」,修改 I2C 设备的内存 / 寄存器值,地址自动递增(可连续修改多个地址)。用法 :imm I2C地址 起始寄存器 数值1 数值2 ...;使用场景:调试 I2C 设备,手动配置寄存器参数。 |
imw |
「内存写入(填充)」,向指定内存地址写入指定数值,支持填充连续地址(等价于mw,部分版本别名)。用法 :imw 地址 数值 长度(如imw 0x80000000 0x0 0x1000,将 0x80000000 开始的 4KB 填充为 0)。 |
inm |
「内存修改(固定地址)」,修改指定内存地址的数值,地址不自动递增(每次仅修改一个地址)。区别于 mm :mm修改后地址 + 1,inm始终停留在指定地址;用法 :inm 地址,回车后输入新值;使用场景:微调单个内存地址的数值,调试时修改参数。 |
loop |
「内存地址范围循环」,与iloop功能类似,对指定内存范围执行循环操作,但可指定循环次数(非无限)。用法 :loop 起始地址 结束地址 次数;使用场景:内存稳定性测试,控制测试时长 / 次数。 |
md |
「内存显示」,打印指定内存地址的内容(默认 16 进制,支持指定格式 / 长度)。扩展用法 :- md 地址:默认显示 32 字节;- md.b 地址 长度:按字节显示;- md.w 地址 长度:按 16 位显示;- md.l 地址 长度:按 32 位显示;使用场景:调试时查看内存数据、验证镜像加载是否正确。 |
mm |
「内存修改(自动递增)」,修改指定内存地址的数值,修改后地址自动递增(可连续修改多个地址)。用法 :mm 地址,回车后输入新值,再次回车自动跳转到下一个地址;使用场景:连续修改内存区域(如配置参数块)。 |
mw |
「内存写入(填充)」,向指定内存地址写入指定数值,支持填充连续地址(嵌入式最常用的内存写命令)。示例 :mw 0x80000000 0xFF 0x200(将 0x80000000 开始的 512 字节填充为 0xFF);使用场景:内存初始化、清空数据、模拟硬件寄存器值。 |
mtest |
「简单内存测试」,对指定内存范围执行读写测试(写入随机值→读取校验),检测内存是否有坏块 / 错误。用法 :mtest 起始地址 结束地址;使用场景:硬件调试阶段,验证内存芯片是否正常工作。 |
nm |
「内存修改(固定地址)」,inm的别名,功能、用法完全一致(历史兼容命令)。 |
硬件配置 / 调试类
| 命令 | 详细解释 |
|---|---|
bdinfo |
「打印板卡信息结构体」,输出硬件板卡的核心信息,包括:- CPU 型号、主频;- 内存起始地址、大小;- 串口、网卡等外设地址;- Boot 参数地址;使用场景:调试时确认硬件配置是否正确、驱动是否匹配板卡。 |
bubt |
「烧写镜像到 Boot Flash」,将内存中的镜像烧写到 Boot Flash(启动分区),用于更新 U-Boot 自身镜像。风险 :烧写 Boot Flash 失败会导致设备无法启动,需严格校验镜像;使用场景:升级 U-Boot 固件、修复损坏的 Boot 分区。 |
cpumap |
「显示 CPU 内存映射设置」,打印 CPU 的内存映射表(物理地址→虚拟地址、缓存策略、权限等)。核心价值:调试内存访问异常(如地址越界、缓存未命中),确认内存映射是否符合预期。 |
crc32 |
「32 位 CRC 校验计算」,计算指定内存区域的 CRC32 校验和,用于验证数据完整性。用法 :crc32 起始地址 长度(如crc32 0x80000000 0x100000);使用场景:校验镜像传输 / 加载是否完整、检测 Flash 数据是否损坏。 |
date |
「获取 / 设置 / 重置系统时间」,嵌入式系统的 RTC(实时时钟)操作命令。用法 :- date:打印当前时间;- date 年月日时分秒:设置时间(如date 20251214100000);- date reset:重置 RTC 到默认时间;使用场景:日志时间戳校准、依赖时间的应用(如证书验证)。 |
dclk |
「显示 Marvell 设备时钟」,打印 Marvell 芯片各模块(CPU、网卡、DDR、PCIe)的时钟频率。使用场景:调试性能问题(如时钟频率过低导致网卡速率慢)、验证时钟配置是否正确。 |
ddimm |
「显示 SPD DIMM 信息」,读取 DDR 内存模块的 SPD(Serial Presence Detect)芯片数据,输出内存容量、频率、时序等信息。核心价值:确认内存硬件参数,调试内存兼容性问题。 |
dma |
「执行 DMA 操作」,触发 DMA(直接内存访问)控制器,完成内存→外设、外设→内存、内存→内存的高速数据传输。用法 :dma 源地址 目标地址 长度 设备;使用场景:调试 DMA 驱动、测试高速数据传输性能(如网卡、存储设备)。 |
doubleimage |
「创建双镜像」,在 Flash 中生成主 / 备两个镜像(通常是内核 / 应用),用于冗余备份。核心价值 :提高系统可靠性,主镜像损坏时自动切换到备镜像;使用场景:工业级设备(要求无停机)的固件部署。 |
echo |
「回显参数到控制台」,将输入的参数打印到终端,与 Linux 的echo功能一致。用法 :echo 字符串/变量(如echo hello、echo $ipaddr);使用场景:脚本中打印日志、验证环境变量是否设置正确。 |
eeprom |
「EEPROM 子系统操作」,对 EEPROM(电可擦除可编程只读存储器)进行读 / 写 / 擦除操作。子命令 :通常包含read(读)、write(写)、erase(擦除);使用场景:读写硬件配置参数(如 MAC 地址、板卡序列号)。 |
erase |
「擦除 Flash 内存」,擦除 Flash 指定地址范围的内容(Flash 写入前必须先擦除)。用法 :erase 起始地址 结束地址;注意 :Flash 擦除按扇区 / 块进行,地址需对齐;使用场景:烧写新镜像前擦除旧数据、清理 Flash 分区。 |
ext2load |
「从 Ext2 文件系统加载二进制文件」,从 Ext2 分区读取指定文件到内存。用法 :ext2load 设备 内存地址 文件名(如ext2load ide0 0x80000000 /uImage);使用场景:从硬盘 Ext2 分区加载内核镜像到内存。 |
ext2ls |
「列出 Ext2 文件系统目录」,等价于 Linux 的ls,列出 Ext2 分区指定目录的文件。默认行为 :无参数时列出根目录;使用场景:查看 Ext2 分区中的镜像、配置文件。 |
flinfo |
「打印 Flash 内存信息」,输出 Flash 的类型(NOR/NAND)、容量、分区表、扇区大小、擦写次数等信息。核心价值:确认 Flash 硬件参数,调试 Flash 读写失败问题。 |
icrc32 |
「增强版 32 位 CRC 校验」,功能与crc32一致,针对 Marvell 芯片做了硬件加速,计算速度更快。 |
ide |
「IDE 子系统操作」,对 IDE 设备(硬盘、光驱)进行检测、分区、读写等操作。子命令 :通常包含info(查看设备信息)、read(读数据)、write(写数据);使用场景:调试 IDE 设备驱动、读写硬盘数据。 |
iprobe |
「探测有效 I2C 芯片地址」,扫描 I2C 总线,输出所有响应的 I2C 设备地址。使用场景:确认 I2C 设备是否正常挂载、查找未知 I2C 设备的地址。 |
ir |
「读写 Marvell 内部寄存器」,读取 / 修改 Marvell 芯片的内部寄存器(如网卡、DDR、PCIe 控制器寄存器)。用法 :- ir 寄存器地址:读取寄存器值;- ir 寄存器地址 数值:写入寄存器值;使用场景:底层硬件调试,调整芯片工作模式、定位硬件故障。 |
itest |
「整数比较返回真假」,对两个整数进行比较(等于 / 不等于 / 大于 / 小于),返回 true(0)或 false(非 0),用于脚本条件判断。用法 :itest 数值1 操作符 数值2(如itest 10 -eq 10返回 0,itest 10 -gt 20返回 1);使用场景:自动化脚本中做条件分支(如判断内存大小是否满足要求)。 |
loadb |
「通过串口加载二进制文件(Kermit 模式)」,使用 Kermit 协议从串口接收二进制文件,写入指定内存地址。前置条件 :PC 端需开启 Kermit 协议(如 minicom);使用场景:无网络时,通过串口传输小镜像 / 配置文件。 |
loads |
「通过串口加载 S-Record 文件」,接收串口传输的 S-Record 格式文件(包含地址 + 数据),写入指定内存地址。S-Record :嵌入式常用的文本格式镜像,包含校验和,传输可靠性高;使用场景:串口传输程序镜像,烧写到 Flash。 |
map |
「显示地址解码窗口」,打印 CPU 的地址解码表(地址范围→外设 / 内存映射关系)。核心价值:调试地址访问错误(如访问未映射的地址导致崩溃)。 |
me |
「PCI 主设备使能」,开启 PCI 总线的主设备模式(允许 PCI 设备主动访问内存)。使用场景:调试 PCI 设备(如网卡、显卡),使其具备 DMA 能力。 |
mp |
「映射 PCI BAR」,将 PCI 设备的 BAR(Base Address Register)映射到 CPU 可访问的内存地址。核心逻辑 :PCI 设备通过 BAR 声明内存需求,mp完成地址映射后,CPU 才能访问 PCI 设备;使用场景:调试 PCI 设备驱动,访问 PCI 设备寄存器。 |
nand |
「NAND Flash 子系统操作」,对 NAND Flash 进行读 / 写 / 擦除 / 坏块管理等操作。子命令 :read(读)、write(写)、erase(擦除)、bad(查看坏块);核心适配 :处理 NAND Flash 的坏块、ECC 校验;使用场景:NAND Flash 的镜像烧写、数据读写。 |
nand_burn |
「烧写镜像到 Boot NAND Flash」,专用命令,将内存中的镜像烧写到 NAND Flash 的 Boot 分区(启动分区)。区别于 bubt :bubt针对 NOR Flash,nand_burn针对 NAND Flash;使用场景:升级 NAND Flash 中的 U-Boot 镜像。 |
pci |
「PCI 配置空间访问」,列出 PCI 总线上的设备,读取 / 修改 PCI 设备的配置空间寄存器。用法 :- pci:列出所有 PCI 设备(总线号、设备号、功能号);- pci read 总线:设备:功能 寄存器 长度:读取配置空间;使用场景:调试 PCI 设备,确认设备是否枚举成功、配置参数是否正确。 |
phyRead |
「读取 PHY 寄存器」,读取以太网 PHY 芯片(物理层)的寄存器值(如链路状态、速率、双工模式)。用法 :phyRead PHY地址 寄存器地址;使用场景:调试网络故障(如链路不通、速率不匹配),查看 PHY 芯片状态。 |
pciePhyWrite |
「写入 PCIe PHY 寄存器」,修改 PCIe PHY 芯片的寄存器值,调整 PCIe 链路参数(速率、宽度、均衡)。使用场景:调试 PCIe 设备兼容性问题(如链路协商失败)。 |
phyWrite |
「写入 PHY 寄存器」,修改以太网 PHY 芯片的寄存器值(如强制设置 1000M 全双工、关闭自动协商)。用法 :phyWrite PHY地址 寄存器地址 数值;使用场景:调试网络链路问题,手动配置 PHY 参数。 |
ping |
「网络连通性测试」,发送 ICMP Echo 请求到指定 IP,检测网络是否可达。用法 :ping 目标IP(如ping 192.168.1.1);前置配置 :需先设置板卡 IP(setenv ipaddr 192.168.1.10);使用场景:调试网络配置(如 IP、网关、网线),确认板卡与服务器 / 网关连通。 |
protect |
「启用 / 禁用 Flash 写保护」,对 Flash 指定区域设置写保护(禁止擦写)或取消保护。用法 :- protect on 起始地址 结束地址:开启保护;- protect off 起始地址 结束地址:取消保护;使用场景:保护 Boot 分区、配置分区不被误擦写,提高系统安全性。 |
reset |
「CPU 复位」,触发 CPU 硬复位(等价于按复位键),重启整个系统。核心逻辑 :清空寄存器、重置外设、重新执行 U-Boot;使用场景:系统卡死、配置修改后需重启生效。 |
resetenv |
「恢复环境变量默认值」,将所有环境变量(如 ipaddr、bootcmd)恢复到出厂默认值。风险 :会丢失自定义的环境变量配置;使用场景:环境变量配置错误导致系统无法启动,恢复默认后重新配置。 |
run |
「运行环境变量中的命令序列」,执行环境变量中存储的命令串(环境变量值为 U-Boot 命令)。示例 :- setenv testcmd 'ping 192.168.1.1';- run testcmd(执行 ping 命令);核心价值:批量执行命令、自定义启动脚本。 |
saveenv |
「保存环境变量到持久存储」,将当前修改的环境变量(如 ipaddr、bootcmd)写入 Flash(环境变量分区),断电后不丢失。注意 :修改环境变量后必须执行saveenv才会生效;使用场景:配置完成后保存参数(如固定 IP、启动命令)。 |
se |
「PCI 从设备使能」,开启 PCI 总线的从设备模式(允许 CPU 访问 PCI 设备的内存 / 寄存器)。使用场景:调试 PCI 设备,使 CPU 能读写 PCI 设备的数据。 |
setenv |
「设置环境变量」,定义 / 修改 U-Boot 环境变量。用法 :- setenv 变量名 变量值(如setenv ipaddr 192.168.1.10);- setenv 变量名(清空变量值);核心价值:定制系统行为(如启动命令、网络参数)。 |
sflash |
「操作外部 SPI Flash」,对 SPI 接口的 Flash 进行读 / 写 / 擦除操作。子命令 :read(读)、write(写)、erase(擦除);使用场景:读写 SPI Flash 中的配置、小镜像文件。 |
sg |
「扫描 PHY 状态」,批量扫描所有以太网 PHY 芯片的状态(链路、速率、双工、错误计数),输出汇总信息。使用场景:多网口设备调试,快速排查所有网口的链路问题。 |
sleep |
「延迟执行」,暂停指定时间(单位:秒)后继续执行后续命令。用法 :sleep 时长(如sleep 5,延迟 5 秒);使用场景:脚本中等待硬件初始化(如网卡、硬盘)、定时执行命令。 |
sp |
「扫描 PCI 总线」,遍历 PCI 总线,列出所有已枚举的 PCI 设备(总线号、设备号、功能号、厂商 ID、设备 ID)。使用场景:确认 PCI 设备是否被识别、排查 PCI 设备驱动问题。 |
spdcpy |
「复制 DIMM 0 SPD 到 DIMM 1」,将第一个 DDR 内存模块的 SPD 数据复制到第二个模块,用于内存兼容性调试。使用场景:双内存模块配置不一致时,统一 SPD 参数,解决内存启动失败问题。 |
version |
「打印监控程序版本」,输出 U-Boot(或其他监控程序)的版本号、编译时间、CPU 架构等信息。示例 :version可能输出U-Boot 2023.01 (Dec 14 2025 - 10:00:00) for Marvell ARMv7;使用场景:确认固件版本、排查版本兼容性问题。 |
核心总结
这份命令列表是Marvell 芯片适配版 U-Boot的典型命令集,核心分为六大类:
- 基础交互(?/help):辅助查询命令;
- 文件系统(FSxxx):操作 Flash 中的 Marvell 专属文件系统;
- 启动引导(boot/bootm/tftpboot 等):嵌入式系统最核心的启动流程控制;
- 内存操作(md/mw/cmp 等):调试、镜像加载的基础;
- 硬件调试(phyRead/ir/pci 等):底层硬件寄存器、外设调试;
- 系统配置(setenv/saveenv/date 等):定制系统参数、持久化配置。
这些命令是嵌入式开发 / 调试的核心工具,需结合具体硬件(Marvell 芯片、Flash 类型、内存配置)和场景(启动、调试、升级)灵活使用,且需注意嵌入式硬件的特殊性(如 Flash 擦写寿命、地址对齐、权限保护)。