From: Alice Guo <alice....@nxp.com>

This patch add a document for i.MX95 Image Container Format.

Signed-off-by: Alice Guo <alice....@nxp.com>
---
 doc/imx/imx95_container.txt | 136 ++++++++++++++++++++++++++++++++++++
 1 file changed, 136 insertions(+)
 create mode 100644 doc/imx/imx95_container.txt

diff --git a/doc/imx/imx95_container.txt b/doc/imx/imx95_container.txt
new file mode 100644
index 00000000000..2ad57345069
--- /dev/null
+++ b/doc/imx/imx95_container.txt
@@ -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     |         
+--------------+--------------+--------------+--------------+
+Conatiner |         |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           | 
+--------------+--------------+--------------+--------------+
+    Conatiner     | |                    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                       
 |
+                    
+--------------+--------------+--------------+--------------+
+                    |                            ...                           
 |
+                    
+--------------+--------------+--------------+--------------+
-- 
2.43.0

Reply via email to