IAS Image

Booting quickly and securely is highly desirable, and in many use cases, mandatory. SBL is designed to boot an OS by loading and verifying a kernel image contained in IAS image format. SBL also supports Multiboot Protocol compliant boot images encapsulated in an IAS image.

IAS images contain a collection of OS related binaries or files, including Linux kernels, kernel command line arguments as a text file, initram, ACPI tables, or ELF/Multiboot file formats. The binaries can be extended to other types such as splash screens image (logo) and VBT files etc.

IAS image structure consists of a header, one or more payload files and terminated with a RSA signature. The high level format of IAS image is shown below:

digraph ias_layout {
  bgcolor="transparent";
  node [fontsize=10 shape=record]
  node [fontsize=10]
  rankdir=LR

  bin_complete [label="<hdr>Header|<payload>\n\n\n\n\n\nPayload Data\n\n\n\n\n\n|<rsa_sig>RSA Signature|RSA Public Key"]

  hdr [label="<sig>Magic '.kpi' (4B)
              |<img_type>Image Type (4B)
              |Version (4B)
              |Data Length (4B)
              |Data Offset (4B)
              |Uncompressed Data Length (4B)
              |Header CRC (4B)
              "]

  bin_complete:hdr -> hdr:sig
}


IAS image can be optionally stored in raw format on eMMC or USB partition without using EXT2 or FAT file system. This may help boot performance. See Create IAS Boot Image for more details.

For complete IAS image specification, visit here:

Note

SBL debug build is able to boot standard Linux kernel without packing in IAS image format. See Release vs Debug Build for more details.