IAS Image

Booting quickly and securely is highly desirable, and in many use cases, mandatory. SBL is designed to boot OS by directly loading and verifying a kernel image in a raw format known as IAS image.

IAS image is a container that includes kernel, initrd, command line parameters and additional data, and terminated with a RSA signature.

IAS image format can also support Multiboot Protocol compliant boot images.

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
}


For complete IAS image specification, visit https://github.com/intel/iasimage/blob/master/docs/02_mcd.md

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.

Note

IAS image can be placed into raw partition. This may help boot performance.