存储映射
STM32MP15板支持不同类型的存储介质:
SDMMC接口上的SD卡
SDMMC接口上的eMMC
Dual QSPI接口上的Serial NOR Flash
FMC接口上的NAND Flash
Flash分区
Size | Component | Comment |
Remaining area | userfs | 用户文件系统包含用户数据和应用例程 |
768 MB | rootfs | Linux根文件系统包含所有用户空间二进制文件(可执行文件、库)和内核模块 |
16 MB | vendorfs | 对于rootfs而言,推荐划分此分区,以放置第三方专有二进制文件并确保它们不受任何开源许可证(例如GPL v3)的污染 |
64 MB | bootfs | 启动文件系统包含: - (可选择)init ram文件系统,可以将其复制到外部RAM并由Linux使用,然后再安装丰富的rootfs - Linux内核设备树(可以存储在FIT镜像中) - Linux内核U-Boot映像(可以存储在FIT镜像中) - 对于除NOR外的所有存储器:U-Boot显示的引导加载程序初始屏幕图片文件 - U-Boot配置文件extlinux.conf(可以存储在FIT镜像中) |
2 MB | ssbl | 第二阶段引导加载程序(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)
Size | Component | Comment |
256 KB (*) | env | 此分区用于在NOR闪存上引导时存储U-Boot环境。对于所有其他的存储器, U-Boot环境被存储在EXT4引导分区(eMMC、SD卡)或UBI卷(NAND)中。 |
256 KB to 512 KB (*) | teeh | OP-TEE header |
256 KB to 512 KB (*) | teed | OP-TEE pageable code and data |
256 KB to 512 KB (*) | teex | OP-TEE pager |
SD Card存储映射
SD卡必须使用GPT格式进行分区,以供STM32MP15识别。 实现此目的的最简单方法是使用STM32CubeProgrammer。
ROM code查找名称以“fsbl”开头的GPT条目:例如fsbl1和fsbl2。
注意:可以将SD卡插入Linux主机中,以使用Linux实用程序进行直接分区并访问bootfs,rootfs和userfs分区。 文件系统是Linux EXT4。
eMMC存储映射
eMMC包含四个物理分区:
Boot area partition 1: FSBL应用程序
Boot area partition 2: FSBL应用程序
User data area: 使用GPT分区格式化并用于存储所有剩余分区。
Replay Protected Memory Block (RPMB): 由于未包含在当前引导链中,因此未在下图中显示。
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
NAND Flash存储映射
STM32CubeProgrammer用于准备具有如下所示布局的NAND Flash,并填充每个分区。
最后编辑:SteveChen 更新时间:2024-09-18 14:35