此次使用的平台是Luckfox Pico RV1106——Luckfox Pico Pro Max。
1 uboot源码路径及默认配置
源码路径为:
luckfox-pico/sysdrv/source/uboot/
默认配置路径:
luckfox-pico/sysdrv/source/uboot/u-boot/include/configs/
SDK配置启动的默认配置,需查看/mnt/vhd1/ft1106/luckfox-pico/project/cfg/BoardConfig_IPC/路径下相应SDK配置,如编译用的是BoardConfig-SD_CARD-Buildroot-RV1106_Luckfox_Pico_Pro_Max-IPC.mk,查看可发现有两处uboot默认配置:
# Uboot defconfig fragment
export RK_UBOOT_DEFCONFIG_FRAGMENT=rk-sfc.config
# Uboot defconfig
# export RK_UBOOT_DEFCONFIG=rv1106_defconfig
export RK_UBOOT_DEFCONFIG=luckfox_rv1106_uboot_defconfig
使用./build.sh uboot,可以看到读取的配置为:
2 uboot常用配置修改方法
2.1 修改bootcmd方法
路径:luckfox-pico/sysdrv/source/uboot/u-boot/include/configs/rv1106_common.h
其中87行:
#define RKIMG_BOOTCOMMAND \
"boot_fit;" \
"boot_android ${devtype} ${devnum};"
#endif
如编译报错:backslash and newline separated by space
该问题出在/后有空格,对照编译提示相应行,将空格删掉即可。
2.2 修改CONFIG_BOOTDELAY
路径:luckfox-pico/sysdrv/source/uboot/u-boot/configs/luckfox_rv1106_uboot_defconfig
其中32行:
CONFIG_BOOTDELAY=3
设置为3秒,代表等待3秒执行bootcmd,等待期间允许中断;
设置为0,代表立即执行,不等待用户输入。
3 uboot常用命令
3.1 uboot对mmc进行操作
mmc erase<start block> <block count>
其中:
<start_block>是要开始擦除的起始块号,
<block_count>是要擦除的块数。
请注意,块大小可能因设备而异,通常为512字节或更大。
如格式化SD卡,先切换mmc至SD
mmc list
mmc dev 1
mmc erase 0x640 0x17F5
3.2 uboot添加自定义环境变量并执行
在uboot中添加自定义环境变量,类似于添加脚本。
如添加一个TFTP下载镜像的环境变量:
setenv bootdown 'mmc list; mmc dev 1;setenv ipaddr 192.168.1.33;setenv serverip 192.168.1.66; mw.b ${ramdisk_addr_r} 0xff 0x6400000;tftp ${ramdisk_addr_r} boot.img;mmc write ${ramdisk_addr_r} 0x10640 0x32000; '
执行:
run bootdown