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 | +--------------+--------------+--------------+--------------+ | ... | +--------------+--------------+--------------+--------------+