STM32MP15板支持不同类型的存储介质:

  • SDMMC接口上的SD卡

  • SDMMC接口上的eMMC

  • Dual QSPI接口上的Serial NOR Flash

  • FMC接口上的NAND Flash

Flash分区

 

SizeComponentComment
Remaining areauserfs用户文件系统包含用户数据和应用例程
768 MBrootfsLinux根文件系统包含所有用户空间二进制文件(可执行文件、库)和内核模块
16 MBvendorfs对于rootfs而言,推荐划分此分区,以放置第三方专有二进制文件并确保它们不受任何开源许可证(例如GPL v3)的污染
64 MBbootfs启动文件系统包含:
- (可选择)init ram文件系统,可以将其复制到外部RAM并由Linux使用,然后再安装丰富的rootfs
- Linux内核设备树(可以存储在FIT镜像中)
- Linux内核U-Boot映像(可以存储在FIT镜像中)
- 对于除NOR外的所有存储器:U-Boot显示的引导加载程序初始屏幕图片文件
- U-Boot配置文件extlinux.conf(可以存储在FIT镜像中)
2 MBssbl第二阶段引导加载程序(SSBL)是U-Boot,其设备树Blob(dtb)附加在末尾
256 KB to 512 KB (*)fsbl第一阶段引导加载程序是ARM受信任的固件(TF-A)或U-Boot辅助程序加载程序(SPL),其设备树blob(dtb)附加在末尾。 至少嵌入两个副本。
注意:由于需要ROM代码RAM,FSBL有效负载限制为247 KB。

(*):分区大小取决于闪存技术,具体取决于板上闪存的块擦除大小:NOR(256 KB)/ NAND(512 KB)

SizeComponentComment
256 KB (*)env此分区用于在NOR闪存上引导时存储U-Boot环境。对于所有其他的存储器, U-Boot环境被存储在EXT4引导分区(eMMC、SD卡)或UBI卷(NAND)中。
256 KB to 512 KB (*)teehOP-TEE header
256 KB to 512 KB (*)teedOP-TEE pageable code and data
256 KB to 512 KB (*)teexOP-TEE pager

SD Card存储映射

SD卡必须使用GPT格式进行分区,以供STM32MP15识别。 实现此目的的最简单方法是使用STM32CubeProgrammer。
ROM code查找名称以“fsbl”开头的GPT条目:例如fsbl1和fsbl2。
注意:可以将SD卡插入Linux主机中,以使用Linux实用程序进行直接分区并访问bootfs,rootfs和userfs分区。 文件系统是Linux EXT4。
image

eMMC存储映射

eMMC包含四个物理分区:

  • Boot area partition 1: FSBL应用程序

  • Boot area partition 2: FSBL应用程序

  • User data area: 使用GPT分区格式化并用于存储所有剩余分区。

  • Replay Protected Memory Block (RPMB): 由于未包含在当前引导链中,因此未在下图中显示。

image

NOR Flash存储映射

NOR Flash being expensive, their size is usually limited to the minimum, allowing to store only the bootloaders. The system files (bootfs, rootfs and userfs) are usually stored in another Flash memory: like the SD card in OpenSTLinux distribution.
STM32CubeProgrammer has to be used to prepare the NOR Flash and the SD card with the layout shown below and to populate each partition.
NOR Flash价格昂贵,通常将其大小限制为最小,从而仅存储引导加载程序。 系统文件(bootfs,rootfs和userfs)通常存储在另一个Flash存储器中,eMMC或NAND。
STM32CubeProgrammer用于准备具有如下所示布局的NOR Flash和SD卡并填充每个分区。

可以使用eMMC卡或NAND而不是SD卡作为第二级闪存。 它需要更改:

  • 使用STM32CubeProgrammer的存储布局,以便将rootfs和userfs写入目标闪存

  • 使用U-Boot的Linux内核参数,以指示必须在何处挂载rootfs和userfs

image

NAND Flash存储映射

STM32CubeProgrammer用于准备具有如下所示布局的NAND Flash,并填充每个分区。
image

作者:SteveChen  创建时间:2024-09-18 14:35
最后编辑:SteveChen  更新时间:2024-09-18 14:35
上一篇:
下一篇: