当前位置:网站首页>4.11 introduction to firmware image package
4.11 introduction to firmware image package
2022-06-13 02:11:00 【Code changes the world CTW】
Use firmware image ( FIP ) Allow boot loader images ( And maybe something else payloads) Package into a single file ,TF-A The file can be loaded from the nonvolatile platform storage . from FIP The driver that loads the image has been added to storage layer , And allow from supported platforms storage Read the package. The following provides and describes tools for creating firmware images .
4.11.1 Firmware image package layout (Firmware Image Package layout)
FIP Layout By subsequent payload data Of tab The composition of the watch (table of contents : ToC).ToC It has a title , Followed by one or more table entries .ToC Terminated by an end tag entry , And because of ToC The size is 0 byte , So the offset is equal to FIP Total file size . all ToC Entries describe some of the that have been appended to end of the binary package payload data. Use ToC Information provided in the entry , The corresponding payload date.
------------------
| ToC Header |
|----------------|
| ToC Entry 0 |
|----------------|
| ToC Entry 1 |
|----------------|
| ToC End Marker |
|----------------|
| |
| Data 0 |
| |
|----------------|
| |
| Data 1 |
| |
------------------
ToC The header file and the entry format are described in the header file include/tools_share/firmware_image_package.h. This file consists of tools and TF-A Use .
ToC The header has the following fields :
`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 The entry has the following fields :
`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 Firmware image package creation tool --fiptool
Source code : tools/fiptool
Compilation of tools :make [DEBUG=1] [V=1] fiptool

4.11.3 Firmware image ( FIP ) Loading
Firmware image ( FIP ) The driver can load images from binary packages on non-volatile platform storage .
The boot loader image is loaded according to the platform policy specified by the function plat_get_image_source(). This function is implemented by the platform vendor .
Personal understanding : This should be in BL2 call plat_get_image_source() Of , stay ATF In the code , There are two places to load these FIP Mirror image .

4.11.4 summary
Use fiptool Package some programs into FIP Mirror image , Save to disk .
When the machine is turned on , stay BL2 The stage will load these FIP Mirror image .
边栏推荐
- LeetCode每日一题——890. 查找和替换模式
- [printf function and scanf function] (learning note 5 -- standard i/o function)
- Basic exercises of test questions letter graphics ※
- Examples of using the chromium base library
- Application circuit and understanding of BAT54C as power supply protection
- 华为设备配置虚拟专用网FRR
- [keras learning]fit_ Generator analysis and complete examples
- cin,cin. get(),cin. Summary of the use of getline() and getline()
- [the fourth day of actual combat of stm32f401ret6 smart lock project in 10 days] voice control is realized by externally interrupted keys
- QT realizes mind mapping function (II)
猜你喜欢

Learning notes 51 single chip microcomputer keyboard (non coding keyboard and coding keyboard, scanning mode of non coding keyboard, independent keyboard, matrix keyboard)

Ruixing coffee moves towards "national consumption"
![[51nod.3210] binary Statistics (bit operation)](/img/37/aa4a549deebf994b0049d41d49ff12.jpg)
[51nod.3210] binary Statistics (bit operation)

Implementation of pointer linked list

Mac使用Docker安装Oracle

Combining strings and numbers using ssstream

Decoding iFLYTEK open platform 2.0 is a fertile land for developers and a source of industrial innovation

华为设备配置CE双归属

I didn't expect that the index occupies several times as much space as the data MySQL queries the space occupied by each table in the database, and the space occupied by data and indexes. It is used i
![[programming idea] communication interface of data transmission and decoupling design of communication protocol](/img/cd/896d1bcad556ffcbf1007bc984afeb.jpg)
[programming idea] communication interface of data transmission and decoupling design of communication protocol
随机推荐
[open source] libinimini: a minimalist ini parsing library for single chip computers
Day 1 of the 10 day smart lock project (understand the SCM stm32f401ret6 and C language foundation)
Luzhengyao, who has entered the prefabricated vegetable track, still needs to stop being impatient
(novice to) detailed tutorial on machine / in-depth learning with colab from scratch
Basic exercises of test questions letter graphics ※
Introduction to Google unit testing tools GTEST and gmoke
ROS learning-8 pit for custom action programming
Viewing the ambition of Xiaodu technology from intelligent giant screen TV v86
VI keyboard diagram
C language compressed string is saved to binary file, and the compressed string is read from binary file and decompressed.
Installing Oracle with docker for Mac
Use mediapipe+opencv to make a simple virtual keyboard
Decoding iFLYTEK open platform 2.0 is a fertile land for developers and a source of industrial innovation
[keras] data of 3D u-net source code analysis py
STM32F103 IIC OLED program migration complete engineering code
The scientific innovation board successfully held the meeting, and the IPO of Kuangshi technology ushered in the dawn
[keras] train py
How to do Internet for small enterprises
如何解决通过new Date()获取时间写出数据库与当前时间相差8小时问题【亲测有效】
【Unity】打包WebGL项目遇到的问题及解决记录