doc: imx: add document for i.MX95 Image Container Format
This patch add a document for i.MX95 Image Container Format. Signed-off-by: Alice Guo <alice.guo@nxp.com>
This commit is contained in:
136
doc/imx/imx95_container.txt
Normal file
136
doc/imx/imx95_container.txt
Normal file
@@ -0,0 +1,136 @@
|
|||||||
|
i.MX95 Image Container Format
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
The image container set consists of some image containers, and image container
|
||||||
|
contains boot images. Each image container has its own container header which is
|
||||||
|
defined in Figure 1. All container headers are placed together in a continuous
|
||||||
|
8KB space at the beginning of the image container set - image container set header.
|
||||||
|
|
||||||
|
ROM code addresses image containers in image container set one by one based on
|
||||||
|
their headers’ order in image container set header.
|
||||||
|
|
||||||
|
If ELE container exists, its container header must be the 1st one in the image
|
||||||
|
container set header.
|
||||||
|
|
||||||
|
If V2X container exists, its container header must be the 2nd one in the image
|
||||||
|
container set header. V2X must be combined with ELE container.
|
||||||
|
|
||||||
|
The information of boot images are recorded in image container header. System
|
||||||
|
ROM code needs to retrieve the information from the image container header, like
|
||||||
|
the offset on boot source, the target address in RAM, the length of boot image.
|
||||||
|
The order of ROM code handling these boot images is based on the order of each
|
||||||
|
boot image information present in image container header.
|
||||||
|
|
||||||
|
Figure 1:
|
||||||
|
------------------- +--------------+--------------+--------------+--------------+
|
||||||
|
^ |Tag |Length |Length |Version |
|
||||||
|
| +--------------+--------------+--------------+--------------+
|
||||||
|
| | Flags |
|
||||||
|
| +--------------+--------------+--------------+--------------+
|
||||||
|
| |# of Images |Fuse version |SW version |
|
||||||
|
Image | +--------------+--------------+--------------+--------------+
|
||||||
|
Container | |Reserved |Signature Block Offset |
|
||||||
|
Header | ------- +--------------+--------------+--------------+--------------+
|
||||||
|
| ^ |Image0: Offset, Size, LoadAddr, EntryPoint, Flags, Hash, IV|
|
||||||
|
| | +--------------+--------------+--------------+--------------+
|
||||||
|
| Image | |Image1: Offset, Size, LoadAddr, EntryPoint, Flags, Hash, IV|
|
||||||
|
| Array | +--------------+--------------+--------------+--------------+
|
||||||
|
| | | ... |
|
||||||
|
| | +--------------+--------------+--------------+--------------+
|
||||||
|
v v |ImageN: Offset, Size, LoadAddr, EntryPoint, Flags, Hash, IV|
|
||||||
|
------------------- +--------------+--------------+--------------+--------------+
|
||||||
|
| ... |
|
||||||
|
----------- +--------------+--------------+--------------+--------------+ <-- SignOffset
|
||||||
|
^ |Tag |Length |Length |Version |
|
||||||
|
| +--------------+--------------+--------------+--------------+
|
||||||
|
| |SRK table offset |Certificate Offset |
|
||||||
|
| +--------------+--------------+--------------+--------------+
|
||||||
|
| |Blob Offset |Signature Offset |
|
||||||
|
| +--------------+--------------+--------------+--------------+
|
||||||
|
Signature | | SRK Table |
|
||||||
|
Block | +--------------+--------------+--------------+--------------+
|
||||||
|
| | Signature |
|
||||||
|
| +--------------+--------------+--------------+--------------+
|
||||||
|
| | Certificate (optional) |
|
||||||
|
| +--------------+--------------+--------------+--------------+
|
||||||
|
v | Blob (optional) |
|
||||||
|
----------- +--------------+--------------+--------------+--------------+
|
||||||
|
| ... |
|
||||||
|
+--------------+--------------+--------------+--------------+ <-- Image0Offset
|
||||||
|
| Image0 |
|
||||||
|
+--------------+--------------+--------------+--------------+
|
||||||
|
| ... |
|
||||||
|
+--------------+--------------+--------------+--------------+ <-- ImageNOffset
|
||||||
|
| ImageN |
|
||||||
|
+--------------+--------------+--------------+--------------+
|
||||||
|
| ... |
|
||||||
|
+--------------+--------------+--------------+--------------+
|
||||||
|
|
||||||
|
i.MX95 Low Power Boot Image Sets Layout
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
Image container sets are handled by M33 ROM.
|
||||||
|
|
||||||
|
--------------- +--------------+--------------+--------------+--------------+
|
||||||
|
^ | 1st Container Header |
|
||||||
|
| +--------------+--------------+--------------+--------------+
|
||||||
|
ELE + | | Padding for 1KB alignment |
|
||||||
|
OEM | +--------------+--------------+--------------+--------------+
|
||||||
|
Container | | 2nd Container Header |
|
||||||
|
Set | +--------------+--------------+--------------+--------------+
|
||||||
|
Header | | Padding for 1KB alignment |
|
||||||
|
| +--------------+--------------+--------------+--------------+
|
||||||
|
| | 3rd Container Header |
|
||||||
|
| +--------------+--------------+--------------+--------------+
|
||||||
|
v | Padding for 1KB alignment |
|
||||||
|
--------------- +--------------+--------------+--------------+--------------+
|
||||||
|
| ... |
|
||||||
|
+--------------+--------------+--------------+--------------+
|
||||||
|
| mx95a0-ahab-container.img |
|
||||||
|
+--------------+--------------+--------------+--------------+
|
||||||
|
| ... |
|
||||||
|
------------------- +--------------+--------------+--------------+--------------+
|
||||||
|
^ | oei-m33-ddr.bin |
|
||||||
|
| +--------------+--------------+--------------+--------------+
|
||||||
|
| | ddrfw-header.bin |
|
||||||
|
| +--------------+--------------+--------------+--------------+
|
||||||
|
| | lpddr5_imem_v202311.bin |
|
||||||
|
| +--------------+--------------+--------------+--------------+
|
||||||
|
m33-oei-ddrfw.bin | | lpddr5_dmem_v202311.bin |
|
||||||
|
| +--------------+--------------+--------------+--------------+
|
||||||
|
| | ddrfw-qb-header.bin |
|
||||||
|
| +--------------+--------------+--------------+--------------+
|
||||||
|
| | lpddr5_imem_qb_v202311.bin |
|
||||||
|
| +--------------+--------------+--------------+--------------+
|
||||||
|
v | lpddr5_dmem_qb_v202311.bin |
|
||||||
|
------------------- +--------------+--------------+--------------+--------------+
|
||||||
|
| ... |
|
||||||
|
+--------------+--------------+--------------+--------------+
|
||||||
|
| oei-m33-tcm.bin |
|
||||||
|
+--------------+--------------+--------------+--------------+
|
||||||
|
| ... |
|
||||||
|
+--------------+--------------+--------------+--------------+
|
||||||
|
| m33_image.bin |
|
||||||
|
+--------------+--------------+--------------+--------------+
|
||||||
|
| ... |
|
||||||
|
+--------------+--------------+--------------+--------------+
|
||||||
|
| u-boot-spl.bin |
|
||||||
|
+--------------+--------------+--------------+--------------+
|
||||||
|
| ... |
|
||||||
|
+--------------+--------------+--------------+--------------+
|
||||||
|
|
||||||
|
--------------- +--------------+--------------+--------------+--------------+
|
||||||
|
u-boot-atf ^ | 1st Container Header |
|
||||||
|
Container | +--------------+--------------+--------------+--------------+
|
||||||
|
Header v | Padding for 1KB alignment |
|
||||||
|
--------------- +--------------+--------------+--------------+--------------+
|
||||||
|
| ... |
|
||||||
|
+--------------+--------------+--------------+--------------+
|
||||||
|
| bl31.bin |
|
||||||
|
+--------------+--------------+--------------+--------------+
|
||||||
|
| ... |
|
||||||
|
+--------------+--------------+--------------+--------------+
|
||||||
|
| u-boot.bin |
|
||||||
|
+--------------+--------------+--------------+--------------+
|
||||||
|
| ... |
|
||||||
|
+--------------+--------------+--------------+--------------+
|
Reference in New Issue
Block a user