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
发出的红包

打赏作者

代码改变世界ctw

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

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

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

打赏作者

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

抵扣说明:

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

余额充值