-
信息查询:
- bdinfo:查看板子信息
=> bdinfo boot_params = 0x0000000000000000 DRAM bank = 0x0000000000000000 -> start = 0x0000000080000000 -> size = 0x0000000080000000 flashstart = 0x0000000000000000 flashsize = 0x0000000000000000 flashoffset = 0x0000000000000000 baudrate = 115200 bps relocaddr = 0x00000000ffee2000 reloc off = 0x000000007f6e2000 Build = 64-bit current eth = ethernet@8000000port@1 ethaddr = f4:84:4c:f9:7d:05 IP addr = <NULL> fdt_blob = 0x00000000fdeb6e80 new_fdt = 0x00000000fdeb6e80 fdt_size = 0x000000000000af60 multi_dtb_fit= 0x0000000000000000 lmb_dump_all: memory.cnt = 0x1 memory.size = 0x0 memory.reg[0x0].base = 0x80000000 .size = 0x80000000 reserved.cnt = 0x2 reserved.size = 0x0 reserved.reg[0x0].base = 0x9e800000 .size = 0x1800000 reserved.reg[0x1].base = 0xfdeb5a80 .size = 0x214a580 arch_number = 0x0000000000000000 TLB addr = 0x00000000ffff0000 irq_sp = 0x00000000fdeb6e70 sp start = 0x00000000fdeb6e70 Early malloc usage: 2a08 / 8000
- printenv:输出环境变量
=> printenv addr_fit=0x90000000 arch=arm args_all=setenv optargs ${optargs} earlycon=ns16550a,mmio32,0x02800000 ${mtdparts} args_mmc=run finduuid;setenv bootargs console=${console} ${optargs} root=PARTUUID=${uuid} rw rootfstype=${mmcrootfstype} args_nand=setenv bootargs console=${console} ${optargs} ubi.mtd=${nbootpart} root=${nbootvolume} rootfstype=ubifs args_usb=run finduuid;setenv bootargs console=${console} ${optargs} root=PARTUUID=${uuid} rw rootfstype=${mmcrootfstype} baudrate=115200 board=am64x board_name=am64x_gpevm board_rev=A board_serial=0230 board_software_revision=01 boot=mmc boot_fdt=try boot_fit=0 bootcmd=run findfdt; run envboot; run init_${boot}; if test ${boot_fit} -eq 1; then run get_fit_${boot}; run get_overlaystring; run run_fit; else; run get_kern_${boot}; run get_fdt_${boot}; run get_overlay_${boot}; run run_kern; fi; bootdelay=2 bootdir=/boot bootenvfile=uEnv.txt bootm_size=0x10000000 bootpart=1:2 bootscript=echo Running bootscript from mmc${mmcdev} ...; source ${loadaddr} console=ttyS2,115200n8 cpu=armv8 dfu_alt_info_emmc=rawemmc raw 0 0x800000 mmcpart 1;rootfs part 0 1 mmcpart 0;tiboot3.bin.raw raw 0x0 0x800 mmcpart 1;tispl.bin.raw raw 0x800 0x1000 mmcpart 1;u-boot.img.raw raw 0x1800 0x2000 mmcpart 1;u-env.raw raw 0x3800 0x100 mmcpart 1 dfu_alt_info_mmc=boot part 1 1;rootfs part 1 2;tiboot3.bin fat 1 1;tispl.bin fat 1 1;u-boot.img fat 1 1;uEnv.txt fat 1 1;sysfw.itb fat 1 1 dfu_alt_info_ospi=tiboot3.bin raw 0x0 0x100000;tispl.bin raw 0x100000 0x200000;u-boot.img raw 0x300000 0x400000;u-boot-env raw 0x700000 0x020000;rootfs raw 0x800000 0x3800000 dfu_alt_info_ram=tispl.bin ram 0x80080000 0x200000;u-boot.img ram 0x81000000 0x400000 dtboaddr=0x89000000 envboot=mmc dev ${mmcdev}; if mmc rescan; then echo SD/MMC found on device ${mmcdev};if run loadbootscript; then run bootscript;else if run loadbootenv; then echo Loaded env from ${bootenvfile};run importbootenv;fi;if test -n $uenvcmd; then echo Running uenvcmd ...;run uenvcmd;fi;fi;fi; eth1addr=70:ff:76:1e:28:b8 eth2addr=70:ff:76:1e:28:b9 ethaddr=f4:84:4c:f9:7d:05 fdt_addr_r=0x88000000 fdtaddr=0x88000000 fdtcontroladdr=fdeb6e80 fdtoverlay_addr_r=0x80200000 findfdt=if test $board_name = am64x_gpevm; then setenv fdtfile k3-am642-evm.dtb; fi; if test $board_name = am64x_skevm; then setenv fdtfile k3-am642-sk.dtb; fi;if test $fdtfile = undefined; then echo WARNING: Could not determine device tree to use; fi; finduuid=part uuid ${boot} ${bootpart} uuid get_fdt_mmc=load mmc ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile} get_fdt_nand=ubifsload ${fdtaddr} ${bootdir}/${fdtfile}; get_fdt_usb=load usb ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile} get_fit_mmc=load mmc ${bootpart} ${addr_fit} ${bootdir}/${name_fit} get_fit_nand=ubifsload ${addr_fit} ${bootdir}/${name_fit} get_fit_usb=load usb ${bootpart} ${addr_fit} ${bootdir}/${name_fit} get_kern_mmc=load mmc ${bootpart} ${loadaddr} ${bootdir}/${name_kern} get_kern_nand=ubifsload ${loadaddr} ${bootdir}/${name_kern} get_kern_usb=load usb ${bootpart} ${loadaddr} ${bootdir}/${name_kern} get_overlay_mmc=fdt address ${fdtaddr};fdt resize 0x100000;for overlay in $name_overlays;do;load mmc ${bootpart} ${dtboaddr} ${bootdir}/${overlay} && fdt apply ${dtboaddr};done; get_overlay_nand=fdt address ${fdtaddr};fdt resize 0x100000;for overlay in $name_overlays;do;ubifsload ${dtboaddr} ${bootdir}/${overlay} && fdt apply ${dtboaddr};done; get_overlay_usb=fdt address ${fdtaddr};fdt resize 0x100000;for overlay in $name_overlays;do;load usb ${bootpart} ${dtboaddr} ${bootdir}/${overlay} && fdt apply ${dtboaddr};done; get_overlaystring=for overlay in $name_overlays;do;setenv overlaystring ${overlaystring}'#'${overlay};done; importbootenv=echo Importing environment from mmc${mmcdev} ...; env import -t ${loadaddr} ${filesize} init_mmc=run args_all args_mmc init_nand=run args_all args_nand ubi_init init_usb=run args_all args_usb kernel_addr_r=0x82000000 loadaddr=0x82000000 loadbootenv=fatload mmc ${mmcdev} ${loadaddr} ${bootenvfile} loadbootscript=load mmc ${mmcdev} ${loadaddr} boot.scr loadfdt=load ${devtype} ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile} loadimage=load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/${bootfile} mmcboot=mmc dev ${mmcdev}; devnum=${mmcdev}; devtype=mmc; if mmc rescan; then echo SD/MMC found on device ${mmcdev};if run loadimage; then run args_mmc; if test ${boot_fit} -eq 1; then run run_fit; else run mmcloados;fi;fi;fi; mmcdev=1 mmcloados=if test ${boot_fdt} = yes || test ${boot_fdt} = try; then if run loadfdt; then bootz ${loadaddr} - ${fdtaddr}; else if test ${boot_fdt} = try; then bootz; else echo WARN: Cannot load the DT; fi; fi; else bootz; fi; mmcrootfstype=ext4 rootwait mtdids=nor0=fc40000.spi.0,nand0=omap2-nand.0 mtdparts=mtdparts=fc40000.spi.0:1m(ospi.tiboot3),2m(ospi.tispl),4m(ospi.u-boot),256k(ospi.env),256k(ospi.env.backup),57088k@8m(ospi.rootfs),256k(ospi.phypattern);omap2-nand.0:2m(NAND.tiboot3),2m(NAND.tispl),2m(NAND.tiboot3.backup),4m(NAND.u-boot),256k(NAND.u-boot-env),256k(NAND.u-boot-env.backup),-(NAND.file-system) name_fit=fitImage name_kern=Image nbootpart=NAND.file-system nbootvolume=ubi0:rootfs partitions=name=rootfs,start=0,size=-,uuid=${uuid_gpt_rootfs} pxefile_addr_r=0x80100000 ramdisk_addr_r=0x88080000 rd_spec=- rdaddr=0x88080000 run_fit=bootm ${addr_fit}#${fdtfile}${overlaystring} run_kern=booti ${loadaddr} ${rd_spec} ${fdtaddr} scriptaddr=0x80000000 serial#=0000000000000230 soc=k3 stderr=serial@2800000 stdin=serial@2800000 stdout=serial@2800000 ubi_init=ubi part ${nbootpart}; ubifsmount ${nbootvolume}; update_to_fit=setenv loadaddr ${addr_fit}; setenv bootfile ${name_fit} usbboot=setenv boot usb;setenv bootpart 0:2;usb start;run findfdt;run init_usb;run get_kern_usb;run get_fdt_usb;run run_kern vendor=ti Environment size: 5742/131068 bytes
- version
=> version U-Boot 2021.01-g2ee8efd654 (Feb 27 2023 - 13:48:24 +0000) aarch64-none-linux-gnu-gcc (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10)) 9.2.1 20191025 GNU ld (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10)) 2.33.1.20191209
-
环境变量操作
- 修改/新建/删除环境变量:setenv, saveenv
#修改,有空格应用单引号 setenv bootdelay 5 saveenv setenv bootargs 'console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw' saveenv #新建 setenv author zx saveenv #删除 setenv author saveenv
-
内存操作:md nm mm mw cp cmp
-
md:用于显示内存值,注意U-Boot中的命令都是十六进制,10=>0x10 是十进制的16
md[.b, .w, .l] address [# of objects] #命令中的[.b .w .l]对应 byte、 word 和 long,也就是分别以 1 个字节、 2 个字节、 4 个字节 来显示内存值。 address 就是要查看的内存起始地址, [# of objects]表示要查看的数据长度 => md.b 80000000 10 80000000: 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff ................ => md.w 80000000 10 80000000: 0000 ffff 0000 ffff 0000 ffff 0000 ffff ................ 80000010: 0000 0000 0000 0000 0000 0000 0000 0000 ................ => md.l 80000000 10 80000000: ffff0000 ffff0000 ffff0000 ffff0000 ................ 80000010: 00000000 00000000 00000000 00000000 ................ 80000020: 00000000 00000000 00000000 00000000 ................ 80000030: 00000000 00000000 00000000 00000000 ................
-
nm:用于修改指定地址的内存值
nm[.b, .w, .l] address => nm.l 80000000 80000000: ffff0000 ? 12345678 80000000: 12345678 ? q =>md.l 80000000 1 80000000: 12345678
-
mm:也用于修改指定地址内存值,修改内存值的时候地址会自增
=> mm.l 80000000 80000000: 12345678 ? 13243546 80000004: 12345678 ? 13243546 80000008: 12345678 ? 13243546 8000000c: 12345678 ? q
-
mw:用于使用一个指定的数据填充一段内存
mw[.b, .w, .l] address value [count] => mw.l 80000000 0a0a0a0a0a 10
-
cp:数据拷贝命令
cp[.b, .w, .l] source target count =>cp.l 80000000 80000100 10
-
cmp:比较两个内存的数据是否相等
-
-
网络操作命令:dhcp ping nfs tftpboot
- ping:只能在U-Boot中ping其他机器
- dhcp:用于从路由器获取IP地址,还会通过TFTP来启动Linux内核
- nfs:通过网络来分享资源,一般使用U-Boot中的nfs命令,将Ubuntu中的文件下载到开发板的DRAM中
nfs [loadaddress] [hostIPaddress:[bootfilename]] nfs 80800000 192.168.1.1:/home/zx/nfs/zImage
- tftp:作用与nfs一样
-
eMMC和SD卡操作指令
- mmc info:输出MMC设备信息
- mmc read:
- mmc write:
- mmc part:列出MMC设备的分区
- mmc dev:切换MMC设备
- mmc list:
-
FAT文件系统操作命令
-
fatinfo:
=> fatinfo mmc 1:1 Interface: MMC Device 1: Vendor: Man 000003 Snr 4e29fe01 Rev: 10.4 Prod: SB16G▒ Type: Removable Hard Disk Capacity: 15193.5 MB = 14.8 GB (31116288 x 512) Filesystem: FAT16 "boot "
-
fatls
=> fatls mmc 1:1 577307 tiboot3-am64x_sr2-hs-evm.bin 902455 tispl.bin 1131919 u-boot.img 1490 uEnv.txt 318 wificfg System Volume Information/ 577307 tiboot3_orig.bin 574718 tiboot3.bin 131072 uboot.env 1 .psdk_setup 9 file(s), 1 dir(s)
-
fstype:用于查看MMC设备某个分区的文件系统格式
=> mmc list mmc@fa10000: 0 (eMMC) mmc@fa00000: 1 (SD) => fstype mmc 1:0 ** Unrecognized filesystem type ** => fstype mmc 1:1 fat => fstype mmc 1:2 ext4 => fstype mmc 0:0 ** Unrecognized filesystem type ** => fstype mmc 0:1 ext4 => fstype mmc 0:2 ** Invalid partition 2 **
-
fatload:将指定的文件读取到DRAM中
fatload mmc 1:1 80800000 zImage
-
-
EXT格式文件系统操作:ext4load ext4ls ext4write
=> ext4ls mmc 1:2 <DIR> 4096 . <DIR> 4096 .. <DIR> 16384 lost+found <DIR> 4096 bin <DIR> 4096 boot <DIR> 4096 dev <DIR> 4096 etc <DIR> 4096 home <DIR> 4096 include <SYM> 20 init <DIR> 4096 lib <SYM> 19 linuxrc <DIR> 4096 media <DIR> 4096 mnt <DIR> 4096 opt <DIR> 4096 proc <DIR> 4096 run <DIR> 4096 sbin <DIR> 4096 sys <DIR> 4096 tmp <DIR> 4096 usr <DIR> 4096 var <DIR> 4096 www
-
BOOT操作命令
U-Boot的本质工作是引导Linux,常用bootz、bootm和boot来启动Linux。-
bootz:用来启动zImage镜像文件
bootz [addr [initrd[:size]] [fdt]]
-
bootm:用于启动uImage镜像
bootm [addr [initrd[:size]] [fdt]]
-
boot会读取环境变量bootcmd来启动Linux系统
-
-
其他常用命令
- reset:复位重启
- go:用于跳到指定的地址处执行应用
- run:用于运行环境中定义的命令
- mtest:简单的内存读写测试命令
U-Boot命令
最新推荐文章于 2023-11-22 14:56:56 发布
文章详细介绍了U-Boot中的环境变量设置,包括查看、修改和删除,以及内存操作如md、nm、mm、mw、cp和cmp。还涵盖了网络操作如dhcp、ping、nfs和tftp,以及eMMC和SD卡的管理,如mmcinfo、fatload和ext4文件系统的操作。最后提到了U-Boot的启动命令bootz和bootm用于引导Linux系统。
摘要由CSDN通过智能技术生成