Bootable Image

Bootable image encapsulates the executable application images and adds additional data processed by the bootROM that are needed for boot, like for example configuration of the flash memories. The bootable image might consists of:

  • Keyblob for data decryption

  • Keystore

  • FlexSPI Configuration Block (FCB)

  • External Memory Configuration Data (XMCD)

  • Device Configuration Data (DCD) - The DCD contains configuration data to configure any peripherals.

  • Application Image - It might contain plain application image or HAB or AHAB image.

List of supported devices and memory types

List of devices and supported memory types

Family

Memory Type

Offsets

lpc55s3x

flexspi_nor

{'fcb_offset': 1024, 'image_version_offset': 1536, 'application_offset': 4096, 'remap_align': 262144}

rt101x

flexspi_nor

{'keyblob_offset': 0, 'fcb_offset': 1024, 'hab_container_offset': 4096}

rt102x

flexspi_nor

{'fcb_offset': 0, 'bee_header_0_offset': 1024, 'bee_header_1_offset': 2048, 'hab_container_offset': 4096}

rt104x

flexspi_nor

{'fcb_offset': 0, 'bee_header_0_offset': 1024, 'bee_header_1_offset': 2048, 'hab_container_offset': 4096}

rt105x

flexspi_nor

{'fcb_offset': 0, 'bee_header_0_offset': 1024, 'bee_header_1_offset': 2048, 'hab_container_offset': 4096}

rt106x

flexspi_nor

{'fcb_offset': 0, 'bee_header_0_offset': 1024, 'bee_header_1_offset': 2048, 'hab_container_offset': 4096}

rt116x

flexspi_nor

{'keyblob_offset': 0, 'fcb_offset': 1024, 'keystore_offset': 2048, 'hab_container_offset': 4096}

rt116x

flexspi_nand

{'hab_container_offset': 1024}

rt116x

semc_nand

{'hab_container_offset': 1024}

rt117x

flexspi_nor

{'keyblob_offset': 0, 'fcb_offset': 1024, 'keystore_offset': 2048, 'hab_container_offset': 4096}

rt117x

flexspi_nand

{'hab_container_offset': 1024}

rt117x

semc_nand

{'hab_container_offset': 1024}

rt118x

flexspi_nor

{'keyblob_offset': 0, 'fcb_offset': 1024, 'xmcd_offset': 2048, 'ahab_container_offset': 4096}

rt5xx

flexspi_nor

{'keyblob_offset': 0, 'fcb_offset': 1024, 'image_version_offset': 1536, 'keystore_offset': 2048, 'application_offset': 4096, 'remap_align': 262144}

rt6xx

flexspi_nor

{'keyblob_offset': 0, 'fcb_offset': 1024, 'image_version_offset': 1536, 'keystore_offset': 2048, 'application_offset': 4096, 'remap_align': 262144}

rw61x

flexspi_nor

{'fcb_offset': 1024, 'image_version_offset': 1536, 'application_offset': 4096, 'remap_align': 262144}

Bootable Image template for lpc55s3x and flexspi_nor

  • family (string): MCU family name. Must be one of: ['lpc55s3x', 'rw61x'].

  • revision (string): If needed this could be used to specify silicon revision of device. Must be one of: ['latest'].

  • memory_type (string): Specify type of memory used by bootable image description. Must be one of: ['flexspi_nor'].

  • fcb (string): Flash Configuration block path.

  • image_version ([‘number’, ‘string’]): Image version.

  • application (string): Application image path.

# ===========  Bootable Image template for lpc55s3x and flexspi_nor  ===========
# ----------------------------------------------------------------------------------------------------
#                      == Bootable Image template for lpc55s3x and flexspi_nor ==
# ----------------------------------------------------------------------------------------------------
family: CHOOSE_FROM_TABLE  # [Required], MCU family name; Possible options:['lpc55s3x', 'rw61x']
revision: latest # [Optional], Chip silicon revision; If needed this could be used to specify silicon revision of device; Possible options:['latest']
memory_type: flexspi_nor # [Required], Memory type; Specify type of memory used by bootable image description; Possible options:['flexspi_nor']
fcb: fcb.bin # [Optional], FCB block path; Flash Configuration block path
image_version: 0 # [Optional], Image version
application: application.bin # [Required], Application image path

Bootable Image template for rt101x and flexspi_nor

  • family (string): MCU family name. Must be one of: ['rt101x'].

  • revision (string): If needed this could be used to specify silicon revision of device. Must be one of: ['latest'].

  • memory_type (string): Specify type of memory used by bootable image description. Must be one of: ['flexspi_nor'].

  • keyblob (string): Key blob block path.

  • fcb (string): Flash Configuration block path.

  • hab_container (string): HAB container path.

# ===========  Bootable Image template for rt101x and flexspi_nor  ===========
# ----------------------------------------------------------------------------------------------------
#                       == Bootable Image template for rt101x and flexspi_nor ==
# ----------------------------------------------------------------------------------------------------
family: CHOOSE_FROM_TABLE  # [Required], MCU family name; Possible options:['rt101x']
revision: latest # [Optional], Chip silicon revision; If needed this could be used to specify silicon revision of device; Possible options:['latest']
memory_type: flexspi_nor # [Required], Memory type; Specify type of memory used by bootable image description; Possible options:['flexspi_nor']
keyblob: keyblob.bin # [Optional], Key blob block path
fcb: fcb.bin # [Optional], FCB block path; Flash Configuration block path
hab_container: hab_container.bin # [Required], HAB container path

Bootable Image template for rt102x and flexspi_nor

  • family (string): MCU family name. Must be one of: ['rt102x', 'rt104x', 'rt105x', 'rt106x'].

  • revision (string): If needed this could be used to specify silicon revision of device. Must be one of: ['latest'].

  • memory_type (string): Specify type of memory used by bootable image description. Must be one of: ['flexspi_nor'].

  • fcb (string): Flash Configuration block path.

  • bee_header_0 (string): BEE encryption header 0 path.

  • bee_header_1 (string): BEE encryption header 1 path.

  • hab_container (string): HAB container path.

# ===========  Bootable Image template for rt102x and flexspi_nor  ===========
# ----------------------------------------------------------------------------------------------------
#                       == Bootable Image template for rt102x and flexspi_nor ==
# ----------------------------------------------------------------------------------------------------
family: CHOOSE_FROM_TABLE  # [Required], MCU family name; Possible options:['rt102x', 'rt104x', 'rt105x', 'rt106x']
revision: latest # [Optional], Chip silicon revision; If needed this could be used to specify silicon revision of device; Possible options:['latest']
memory_type: flexspi_nor # [Required], Memory type; Specify type of memory used by bootable image description; Possible options:['flexspi_nor']
fcb: fcb.bin # [Optional], FCB block path; Flash Configuration block path
bee_header_0: bee_header_0.bin # [Optional], BEE encryption header 0 path
bee_header_1: bee_header_1.bin # [Optional], BEE encryption header 1 path
hab_container: hab_container.bin # [Required], HAB container path

Bootable Image template for rt104x and flexspi_nor

  • family (string): MCU family name. Must be one of: ['rt102x', 'rt104x', 'rt105x', 'rt106x'].

  • revision (string): If needed this could be used to specify silicon revision of device. Must be one of: ['latest'].

  • memory_type (string): Specify type of memory used by bootable image description. Must be one of: ['flexspi_nor'].

  • fcb (string): Flash Configuration block path.

  • bee_header_0 (string): BEE encryption header 0 path.

  • bee_header_1 (string): BEE encryption header 1 path.

  • hab_container (string): HAB container path.

# ===========  Bootable Image template for rt104x and flexspi_nor  ===========
# ----------------------------------------------------------------------------------------------------
#                       == Bootable Image template for rt104x and flexspi_nor ==
# ----------------------------------------------------------------------------------------------------
family: CHOOSE_FROM_TABLE  # [Required], MCU family name; Possible options:['rt102x', 'rt104x', 'rt105x', 'rt106x']
revision: latest # [Optional], Chip silicon revision; If needed this could be used to specify silicon revision of device; Possible options:['latest']
memory_type: flexspi_nor # [Required], Memory type; Specify type of memory used by bootable image description; Possible options:['flexspi_nor']
fcb: fcb.bin # [Optional], FCB block path; Flash Configuration block path
bee_header_0: bee_header_0.bin # [Optional], BEE encryption header 0 path
bee_header_1: bee_header_1.bin # [Optional], BEE encryption header 1 path
hab_container: hab_container.bin # [Required], HAB container path

Bootable Image template for rt105x and flexspi_nor

  • family (string): MCU family name. Must be one of: ['rt102x', 'rt104x', 'rt105x', 'rt106x'].

  • revision (string): If needed this could be used to specify silicon revision of device. Must be one of: ['latest'].

  • memory_type (string): Specify type of memory used by bootable image description. Must be one of: ['flexspi_nor'].

  • fcb (string): Flash Configuration block path.

  • bee_header_0 (string): BEE encryption header 0 path.

  • bee_header_1 (string): BEE encryption header 1 path.

  • hab_container (string): HAB container path.

# ===========  Bootable Image template for rt105x and flexspi_nor  ===========
# ----------------------------------------------------------------------------------------------------
#                       == Bootable Image template for rt105x and flexspi_nor ==
# ----------------------------------------------------------------------------------------------------
family: CHOOSE_FROM_TABLE  # [Required], MCU family name; Possible options:['rt102x', 'rt104x', 'rt105x', 'rt106x']
revision: latest # [Optional], Chip silicon revision; If needed this could be used to specify silicon revision of device; Possible options:['latest']
memory_type: flexspi_nor # [Required], Memory type; Specify type of memory used by bootable image description; Possible options:['flexspi_nor']
fcb: fcb.bin # [Optional], FCB block path; Flash Configuration block path
bee_header_0: bee_header_0.bin # [Optional], BEE encryption header 0 path
bee_header_1: bee_header_1.bin # [Optional], BEE encryption header 1 path
hab_container: hab_container.bin # [Required], HAB container path

Bootable Image template for rt106x and flexspi_nor

  • family (string): MCU family name. Must be one of: ['rt102x', 'rt104x', 'rt105x', 'rt106x'].

  • revision (string): If needed this could be used to specify silicon revision of device. Must be one of: ['latest'].

  • memory_type (string): Specify type of memory used by bootable image description. Must be one of: ['flexspi_nor'].

  • fcb (string): Flash Configuration block path.

  • bee_header_0 (string): BEE encryption header 0 path.

  • bee_header_1 (string): BEE encryption header 1 path.

  • hab_container (string): HAB container path.

# ===========  Bootable Image template for rt106x and flexspi_nor  ===========
# ----------------------------------------------------------------------------------------------------
#                       == Bootable Image template for rt106x and flexspi_nor ==
# ----------------------------------------------------------------------------------------------------
family: CHOOSE_FROM_TABLE  # [Required], MCU family name; Possible options:['rt102x', 'rt104x', 'rt105x', 'rt106x']
revision: latest # [Optional], Chip silicon revision; If needed this could be used to specify silicon revision of device; Possible options:['latest']
memory_type: flexspi_nor # [Required], Memory type; Specify type of memory used by bootable image description; Possible options:['flexspi_nor']
fcb: fcb.bin # [Optional], FCB block path; Flash Configuration block path
bee_header_0: bee_header_0.bin # [Optional], BEE encryption header 0 path
bee_header_1: bee_header_1.bin # [Optional], BEE encryption header 1 path
hab_container: hab_container.bin # [Required], HAB container path

Bootable Image template for rt116x and flexspi_nor

  • family (string): MCU family name. Must be one of: ['rt116x', 'rt117x'].

  • revision (string): If needed this could be used to specify silicon revision of device. Must be one of: ['latest'].

  • memory_type (string): Specify type of memory used by bootable image description. Must be one of: ['flexspi_nor', 'flexspi_nand', 'semc_nand'].

  • hab_container (string): HAB container path.

  • keyblob (string): Key blob block path.

  • fcb (string): Flash Configuration block path.

  • keystore (string): Key store block path.

# ===========  Bootable Image template for rt116x and flexspi_nor  ===========
# ----------------------------------------------------------------------------------------------------
#                       == Bootable Image template for rt116x and flexspi_nor ==
# ----------------------------------------------------------------------------------------------------
family: CHOOSE_FROM_TABLE  # [Required], MCU family name; Possible options:['rt116x', 'rt117x']
revision: latest # [Optional], Chip silicon revision; If needed this could be used to specify silicon revision of device; Possible options:['latest']
memory_type: flexspi_nor # [Required], Memory type; Specify type of memory used by bootable image description; Possible options:['flexspi_nor', 'flexspi_nand', 'semc_nand']
hab_container: hab_container.bin # [Required], HAB container path
keyblob: keyblob.bin # [Optional], Key blob block path
fcb: fcb.bin # [Optional], FCB block path; Flash Configuration block path
keystore: keystore.bin # [Optional], Key store block path

Bootable Image template for rt116x and flexspi_nand

  • family (string): MCU family name. Must be one of: ['rt116x', 'rt117x'].

  • revision (string): If needed this could be used to specify silicon revision of device. Must be one of: ['latest'].

  • memory_type (string): Specify type of memory used by bootable image description. Must be one of: ['flexspi_nor', 'flexspi_nand', 'semc_nand'].

  • hab_container (string): HAB container path.

# ===========  Bootable Image template for rt116x and flexspi_nand  ===========
# ----------------------------------------------------------------------------------------------------
#                      == Bootable Image template for rt116x and flexspi_nand ==
# ----------------------------------------------------------------------------------------------------
family: CHOOSE_FROM_TABLE  # [Required], MCU family name; Possible options:['rt116x', 'rt117x']
revision: latest # [Optional], Chip silicon revision; If needed this could be used to specify silicon revision of device; Possible options:['latest']
memory_type: flexspi_nor # [Required], Memory type; Specify type of memory used by bootable image description; Possible options:['flexspi_nor', 'flexspi_nand', 'semc_nand']
hab_container: hab_container.bin # [Required], HAB container path

Bootable Image template for rt116x and semc_nand

  • family (string): MCU family name. Must be one of: ['rt116x', 'rt117x'].

  • revision (string): If needed this could be used to specify silicon revision of device. Must be one of: ['latest'].

  • memory_type (string): Specify type of memory used by bootable image description. Must be one of: ['flexspi_nor', 'flexspi_nand', 'semc_nand'].

  • hab_container (string): HAB container path.

# ===========  Bootable Image template for rt116x and semc_nand  ===========
# ----------------------------------------------------------------------------------------------------
#                        == Bootable Image template for rt116x and semc_nand ==
# ----------------------------------------------------------------------------------------------------
family: CHOOSE_FROM_TABLE  # [Required], MCU family name; Possible options:['rt116x', 'rt117x']
revision: latest # [Optional], Chip silicon revision; If needed this could be used to specify silicon revision of device; Possible options:['latest']
memory_type: flexspi_nor # [Required], Memory type; Specify type of memory used by bootable image description; Possible options:['flexspi_nor', 'flexspi_nand', 'semc_nand']
hab_container: hab_container.bin # [Required], HAB container path

Bootable Image template for rt117x and flexspi_nor

  • family (string): MCU family name. Must be one of: ['rt116x', 'rt117x'].

  • revision (string): If needed this could be used to specify silicon revision of device. Must be one of: ['latest'].

  • memory_type (string): Specify type of memory used by bootable image description. Must be one of: ['flexspi_nor', 'flexspi_nand', 'semc_nand'].

  • hab_container (string): HAB container path.

  • keyblob (string): Key blob block path.

  • fcb (string): Flash Configuration block path.

  • keystore (string): Key store block path.

# ===========  Bootable Image template for rt117x and flexspi_nor  ===========
# ----------------------------------------------------------------------------------------------------
#                       == Bootable Image template for rt117x and flexspi_nor ==
# ----------------------------------------------------------------------------------------------------
family: CHOOSE_FROM_TABLE  # [Required], MCU family name; Possible options:['rt116x', 'rt117x']
revision: latest # [Optional], Chip silicon revision; If needed this could be used to specify silicon revision of device; Possible options:['latest']
memory_type: flexspi_nor # [Required], Memory type; Specify type of memory used by bootable image description; Possible options:['flexspi_nor', 'flexspi_nand', 'semc_nand']
hab_container: hab_container.bin # [Required], HAB container path
keyblob: keyblob.bin # [Optional], Key blob block path
fcb: fcb.bin # [Optional], FCB block path; Flash Configuration block path
keystore: keystore.bin # [Optional], Key store block path

Bootable Image template for rt117x and flexspi_nand

  • family (string): MCU family name. Must be one of: ['rt116x', 'rt117x'].

  • revision (string): If needed this could be used to specify silicon revision of device. Must be one of: ['latest'].

  • memory_type (string): Specify type of memory used by bootable image description. Must be one of: ['flexspi_nor', 'flexspi_nand', 'semc_nand'].

  • hab_container (string): HAB container path.

# ===========  Bootable Image template for rt117x and flexspi_nand  ===========
# ----------------------------------------------------------------------------------------------------
#                      == Bootable Image template for rt117x and flexspi_nand ==
# ----------------------------------------------------------------------------------------------------
family: CHOOSE_FROM_TABLE  # [Required], MCU family name; Possible options:['rt116x', 'rt117x']
revision: latest # [Optional], Chip silicon revision; If needed this could be used to specify silicon revision of device; Possible options:['latest']
memory_type: flexspi_nor # [Required], Memory type; Specify type of memory used by bootable image description; Possible options:['flexspi_nor', 'flexspi_nand', 'semc_nand']
hab_container: hab_container.bin # [Required], HAB container path

Bootable Image template for rt117x and semc_nand

  • family (string): MCU family name. Must be one of: ['rt116x', 'rt117x'].

  • revision (string): If needed this could be used to specify silicon revision of device. Must be one of: ['latest'].

  • memory_type (string): Specify type of memory used by bootable image description. Must be one of: ['flexspi_nor', 'flexspi_nand', 'semc_nand'].

  • hab_container (string): HAB container path.

# ===========  Bootable Image template for rt117x and semc_nand  ===========
# ----------------------------------------------------------------------------------------------------
#                        == Bootable Image template for rt117x and semc_nand ==
# ----------------------------------------------------------------------------------------------------
family: CHOOSE_FROM_TABLE  # [Required], MCU family name; Possible options:['rt116x', 'rt117x']
revision: latest # [Optional], Chip silicon revision; If needed this could be used to specify silicon revision of device; Possible options:['latest']
memory_type: flexspi_nor # [Required], Memory type; Specify type of memory used by bootable image description; Possible options:['flexspi_nor', 'flexspi_nand', 'semc_nand']
hab_container: hab_container.bin # [Required], HAB container path

Bootable Image template for rt118x and flexspi_nor

  • family (string): MCU family name. Must be one of: ['rt118x'].

  • revision (string): If needed this could be used to specify silicon revision of device. Must be one of: ['latest'].

  • memory_type (string): Specify type of memory used by bootable image description. Must be one of: ['flexspi_nor'].

  • keyblob (string): Key blob block path.

  • fcb (string): Flash Configuration block path.

  • xmcd (string): External Memory Configuration Data Segment path.

  • ahab_container (string): AHAB container path.

# ===========  Bootable Image template for rt118x and flexspi_nor  ===========
# ----------------------------------------------------------------------------------------------------
#                       == Bootable Image template for rt118x and flexspi_nor ==
# ----------------------------------------------------------------------------------------------------
family: CHOOSE_FROM_TABLE  # [Required], MCU family name; Possible options:['rt118x']
revision: latest # [Optional], Chip silicon revision; If needed this could be used to specify silicon revision of device; Possible options:['latest']
memory_type: flexspi_nor # [Required], Memory type; Specify type of memory used by bootable image description; Possible options:['flexspi_nor']
keyblob: keyblob.bin # [Optional], Key blob block path
fcb: fcb.bin # [Optional], FCB block path; Flash Configuration block path
xmcd: xmcd.bin # [Optional], XMCD block path; External Memory Configuration Data Segment path
ahab_container: ahab_container.bin # [Required], AHAB container path

Bootable Image template for rt5xx and flexspi_nor

  • family (string): MCU family name. Must be one of: ['rt5xx', 'rt6xx'].

  • revision (string): If needed this could be used to specify silicon revision of device. Must be one of: ['latest'].

  • memory_type (string): Specify type of memory used by bootable image description. Must be one of: ['flexspi_nor'].

  • keyblob (string): Key blob block path.

  • fcb (string): Flash Configuration block path.

  • image_version ([‘number’, ‘string’]): Image version.

  • keystore (string): Key store block path.

  • application (string): Application image path.

# ===========  Bootable Image template for rt5xx and flexspi_nor  ===========
# ----------------------------------------------------------------------------------------------------
#                       == Bootable Image template for rt5xx and flexspi_nor ==
# ----------------------------------------------------------------------------------------------------
family: CHOOSE_FROM_TABLE  # [Required], MCU family name; Possible options:['rt5xx', 'rt6xx']
revision: latest # [Optional], Chip silicon revision; If needed this could be used to specify silicon revision of device; Possible options:['latest']
memory_type: flexspi_nor # [Required], Memory type; Specify type of memory used by bootable image description; Possible options:['flexspi_nor']
keyblob: keyblob.bin # [Optional], Key blob block path
fcb: fcb.bin # [Optional], FCB block path; Flash Configuration block path
image_version: 0 # [Optional], Image version
keystore: keystore.bin # [Optional], Key store block path
application: application.bin # [Required], Application image path

Bootable Image template for rt6xx and flexspi_nor

  • family (string): MCU family name. Must be one of: ['rt5xx', 'rt6xx'].

  • revision (string): If needed this could be used to specify silicon revision of device. Must be one of: ['latest'].

  • memory_type (string): Specify type of memory used by bootable image description. Must be one of: ['flexspi_nor'].

  • keyblob (string): Key blob block path.

  • fcb (string): Flash Configuration block path.

  • image_version ([‘number’, ‘string’]): Image version.

  • keystore (string): Key store block path.

  • application (string): Application image path.

# ===========  Bootable Image template for rt6xx and flexspi_nor  ===========
# ----------------------------------------------------------------------------------------------------
#                       == Bootable Image template for rt6xx and flexspi_nor ==
# ----------------------------------------------------------------------------------------------------
family: CHOOSE_FROM_TABLE  # [Required], MCU family name; Possible options:['rt5xx', 'rt6xx']
revision: latest # [Optional], Chip silicon revision; If needed this could be used to specify silicon revision of device; Possible options:['latest']
memory_type: flexspi_nor # [Required], Memory type; Specify type of memory used by bootable image description; Possible options:['flexspi_nor']
keyblob: keyblob.bin # [Optional], Key blob block path
fcb: fcb.bin # [Optional], FCB block path; Flash Configuration block path
image_version: 0 # [Optional], Image version
keystore: keystore.bin # [Optional], Key store block path
application: application.bin # [Required], Application image path

Bootable Image template for rw61x and flexspi_nor

  • family (string): MCU family name. Must be one of: ['lpc55s3x', 'rw61x'].

  • revision (string): If needed this could be used to specify silicon revision of device. Must be one of: ['latest'].

  • memory_type (string): Specify type of memory used by bootable image description. Must be one of: ['flexspi_nor'].

  • fcb (string): Flash Configuration block path.

  • image_version ([‘number’, ‘string’]): Image version.

  • application (string): Application image path.

# ===========  Bootable Image template for rw61x and flexspi_nor  ===========
# ----------------------------------------------------------------------------------------------------
#                       == Bootable Image template for rw61x and flexspi_nor ==
# ----------------------------------------------------------------------------------------------------
family: CHOOSE_FROM_TABLE  # [Required], MCU family name; Possible options:['lpc55s3x', 'rw61x']
revision: latest # [Optional], Chip silicon revision; If needed this could be used to specify silicon revision of device; Possible options:['latest']
memory_type: flexspi_nor # [Required], Memory type; Specify type of memory used by bootable image description; Possible options:['flexspi_nor']
fcb: fcb.bin # [Optional], FCB block path; Flash Configuration block path
image_version: 0 # [Optional], Image version
application: application.bin # [Required], Application image path