4.11-固件映像包 (FIP)

本文介绍了TF-A中固件映像包(FIP)的概念及应用。详细解释了FIP的布局结构,包括TOC表及其条目的具体字段含义。同时介绍了FIP创建工具fiptool的使用方法及FIP在系统启动过程中的加载机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引流关键词: 中断、同步异常、异步异常、irq、fiq、BL1,BL2,BL3,BL31,BL32,BL33,AP_BL1,AP_BL2,AP_BL3,AP_BL31,AP_BL32,AP_BL33,SCP_BL1,SCP_BL2,BL0,BL30, optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、内存管理、页表…

快速链接:
.
👉👉👉 个人博客笔记导读目录(全部) 👈👈👈


[专栏目录]-ATF/FF-A/specification学习

请添加图片描述

4.11-固件映像包 ( FIP:Firmware Image Package )

使用固件映像包 ( FIP ) 允许将引导加载程序映像(以及可能的其他payloads)打包到单个文件中,TF-A 可以从非易失性平台存储中加载该文件。从 FIP 加载镜像的驱动程序已添加到storage层,并允许从支持的平台storage读取该package。下面提供并描述了用于创建固件映像包的工具.

4.11.1 固件镜像包布局(Firmware Image Package layout)

FIP Layout由随后的payload data的tab表组成(table of contents : ToC)。ToC 本身有一个标题,后跟一个或多个表条目。ToC 由结束标记条目终止,并且由于 ToC 的大小为 0 字节,因此偏移量等于 FIP 文件的总大小。所有 ToC 条目都描述了一些已附加到二进制包末尾的payload data。使用 ToC 条目中提供的信息,可以检索相应的payload date。

------------------
| ToC Header     |
|----------------|
| ToC Entry 0    |
|----------------|
| ToC Entry 1    |
|----------------|
| ToC End Marker |
|----------------|
|                |
|     Data 0     |
|                |
|----------------|
|                |
|     Data 1     |
|                |
------------------

ToC 头文件和条目格式在头文件中描述 include/tools_share/firmware_image_package.h。该文件由工具和 TF-A 使用。

ToC 标头具有以下字段:

`name`: The name of the ToC. This is currently used to validate the header.
`serial_number`: A non-zero number provided by the creation tool
`flags`: Flags associated with this data.
    Bits 0-31: Reserved
    Bits 32-47: Platform defined
    Bits 48-63: Reserved

ToC 条目具有以下字段:

`uuid`: All files are referred to by a pre-defined Universally Unique
    IDentifier [UUID] . The UUIDs are defined in
    `include/tools_share/firmware_image_package.h`. The platform translates
    the requested image name into the corresponding UUID when accessing the
    package.
`offset_address`: The offset address at which the corresponding payload data
    can be found. The offset is calculated from the ToC base address.
`size`: The size of the corresponding payload data in bytes.
`flags`: Flags associated with this entry. None are yet defined.
4.11.2 固件镜像包创建工具 --fiptool

源码 : tools/fiptool

工具的编译:make [DEBUG=1] [V=1] fiptool

在这里插入图片描述

4.11.3 固件映像包 ( FIP )的加载

固件映像包 ( FIP ) 驱动程序可以从非易失性平台存储上的二进制包加载映像。

引导加载程序映像根据函数指定的平台策略加载plat_get_image_source()。 该函数是由平台厂商来实现的。

个人理解:这里应该是在BL2 调用 plat_get_image_source() 的,在ATF代码中,有两处地方会加载这些FIP镜像。
在这里插入图片描述

4.11.4 总结

使用fiptool对部分程序打包成FIP镜像,存到磁盘中。
开机的时候,在BL2阶段会加载这些FIP镜像。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Arm精选

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值