U 盘升级
- 对芯片与板子的要求:
-
板子使用 USB 接口。
-
芯片烧录过镜像,且镜像支持 U 盘升级
-
- 对 U 盘 卡的要求:
-
U 盘要求只有一个分区
-
U 盘格式化为 FAT32 文件系统,注意不是 exFAT、或者 FAT16
-
U 盘最好为专用 U 盘,里面不要放置太多其他文件
-
- 拷贝在编译输出目录(images) 下的两个文件到 U 盘 FAT32 文件系统的 根目录
- bootcfg.txt (注意 NAND 输出的名字有些不同,例如 bootcfg.txt(page_2k_block_128k) )
- xxx.img,例如 d211_demo_v1.0.0.img
- 确保 bootcfg 文件的名字为 bootcfg.txt
如果生成的名字为 bootcfg.txt(page_2k_block_128k) ),则需要改为 bootcfg.txt
- 将 U 盘插入板子,重新上电,启动过程中则会自动检测 U 盘是否插入,检测到后进入烧录模式进行升级
- 烧录完成时,需要拔出 U 盘,然后重新上电启动
注:
烧录完成平台并不会主动重启,以防重复进入 U 盘烧录模式。
编译配置
- eMMC 方案使能 U 盘烧录功能,需要在 make uboot-menuconfig 中勾选配置项 UPDATE_UDISK_FATFS_ARTINCHIP 与 CMD_USB_MASS_STORAGE:
Update support ---> [ ] Auto-update using fitImage via TFTP [ ] Android A/B updates [*] ArtInChip firmware update using UDISK with FAT Command line interface ---> Device access commands ---> [*] UMS usb mass storage
注:-
使用 U 盘烧录功能需要在设备树中使能对应的 USB HOST 设备树节点。
-
CONFIG_SPL_FIT_IMAGE_TINY 为可选配置项,勾选可以使得 SPL 更小。
-
- SPI NAND/NOR 方案
使能 U 盘烧录功能,需要在 make uboot-menuconfig 中勾选配置项 UPDATE_UDISK_FATFS_ARTINCHIP 与 CMD_USB_MASS_STORAGE
Update support ---> [ ] Auto-update using fitImage via TFTP [ ] Android A/B updates [*] ArtInChip firmware update using UDISK with FAT Command line interface ---> Device access commands ---> [*] UMS usb mass storage
同时设置:
-
CONFIG_SPL_MMC_TINY=y : 减小 SPL 代码大小
-
CONFIG_SPL_FIT_IMAGE_TINY=y : 减小 SPL 代码大小
-
注意事项
在打包镜像前,需要确保 target/IC/Board/pack 目录下的 image_cfg.json 文件中 device_id 与存储介质所使用的控制器 id 所对应。
例如 eMMC 存储介质使用的控制器为 SDMC0,则应该将 device_id 的值设为 0, 如果 eMMC 存储介质所使用的控制器为 SDMC1,则应该将 device_id 设为 1。