3.12.2. SDCard 烧录

芯片支持从 SD 卡的 FAT32 文件系统启动。

3.12.2.1. 要求与步骤

对芯片与板子的要求:

  1. 板子 SD 卡接口,并且使用 SDMC1

  2. 芯片没有烧录 跳过 SD 卡的 eFuse

对 SD 卡的要求:

  1. SD 卡要求只有一个分区

  2. SD 卡格式化为 FAT32 文件系统,注意不是 exFAT、或者 FAT16

  3. SD 卡最好为专用卡,里面不要放置太多其他文件

执行步骤:

  1. 拷贝在编译输出目录(images) 下的两个文件到 SD 卡 FAT32 文件系统的 根目录

    • bootcfg.txt (注意 NAND 输出的名字有些不同,例如 bootcfg.txt(page_2k_block_128k))

    • xxx.img(例如 m4_demo_v1.0.0.img)

  2. 确保 bootcfg 文件的名字为 bootcfg.txt

    如果生成的名字为 bootcfg.txt(page_2k_block_128k),则需要改为 bootcfg.txt

  3. 将 SD 卡插入板子,重新上电,即可从 SD 卡启动到 U-Boot,并执行烧录

  4. 烧录完成时,需要拔出 SD 卡,然后重新上电启动

注意

烧录完成平台并不会主动重启,以防重复进入 SD 卡烧录模式。

3.12.2.2. 编译配置

SDK 提供的配置,默认已经使能该功能。 这里罗列一些配置注意项的说明。

3.12.2.2.1. eMMC 方案

使能 SDFAT32 烧录功能,只需要在 menuconfig 中勾选配置项 CONFIG_UPDATE_SD_FATFS_ZX 即可:

Update support  --->
[ ] Auto-update using fitImage via TFTP
[ ] Android A/B updates
[*] ZX firmware update using SD Card with FAT

同时设置:

  • CONFIG_ENV_FAT_DEVICE_AND_PART=1

注意

CONFIG_SPL_MMC_TINY 请勿勾选,否则 SPL 阶段会找不到 SD 卡。

CONFIG_SPL_FIT_IMAGE_TINY 为可选配置项,勾选可以使得 SPL 更小。

3.12.2.2.2. SPI NAND/NOR 方案

使能 SDFAT32 烧录功能,需要在 menuconfig 中勾选配置项 CONFIG_UPDATE_SD_FATFS_ZX

Update support  --->
[ ] Auto-update using fitImage via TFTP
[ ] Android A/B updates
[*] ZX firmware update using SD Card with FAT

同时设置:

  • CONFIG_ENV_FAT_DEVICE_AND_PART=0

  • CONFIG_SPL_MMC_TINY=y : 减小 SPL 代码大小

  • CONFIG_SPL_FIT_IMAGE_TINY=y : 减小 SPL 代码大小