AHABImage for mimx943, Revision: a0

Type: object

The chip family name

Type: enum (of string)

NXP chip family identifier.

Must be one of:

  • "mimxrt1186"
  • "mimx943"
  • "mimx9596"
  • "mimx8qm"
  • "mimx8dxl"
  • "mimx9131"
  • "mimx9352"
  • "mimxrt1189"
  • "mimxrt1181"
  • "mimxrt1187"
  • "mimxrt1182"
  • "mimx8qxp"
  • "mimx8ulp"
  • "mimx95294"
  • "mx943"
  • "mx95"
  • "mx91"
  • "mx93"
  • "rt118x"
  • "mx8ulp"
  • "mx952"

MCU revision

Type: enum (of string)

Revision of silicon. The 'latest' name, means most current revision.

Must be one of:

  • "a0"
  • "latest"

Target memory

Type: enum (of string)

Target memory for AHAB container

Must be one of:

  • "standard"
  • "nor"
  • "serial_downloader"
  • "nand_2k"
  • "nand_4k"
  • "sd_emmc"

Output file name

Type: stringFormat: file_name

Output AHAB file name

Output file format

Type: enum (of string)

Output file format for AHAB image

Must be one of:

  • "bin"
  • "hex"
  • "srec"
  • "sparse"

Base offset for the output file

Type: string or numberFormat: number

Base offset where the AHAB image will be placed in target memory. (primarily when using SREC/HEX output_format)

Container version

Type: number

Force container version, if not specified the default version is used. This configuration option is valid only for chips that supports both AHAB container versions. Possible options <2, 1>

List of containers present in AHAB

Type: array

The order of containers in the list defines the order in AHAB.

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:


Type: object

Binary AHAB container

Type: object

Binary Container format to add to AHAB image, Typically it could be used to add ELE Firmware.

The AHAB container binary file

Type: string

The binary file that contains AHAB "mybinarycontainer.bin

Type: object

AHAB Container

Type: object

Configurable Container format to add to AHAB image. This allow to configure all aspects of the AHAB container.

If the conditions in the "If" tab are respected, then the conditions in the "Then" tab should be respected. Otherwise, the conditions in the "Else" tab should be respected.

Type: object

Type: const
Specific value: "none"
Type: object

The following properties are required:

  • srk_table
  • used_srk_id

Super Root Key (SRK) set

Type: enum (of string)

Defines which set is used to authenticate the container.

Must be one of:

  • "none"
  • "oem"
  • "nxp"

Used SRK

Type: number or stringFormat: number

Which key from SRK set is being used.

SRK revoke mask

Type: number or stringFormat: number

Bit-mask to indicate which SRKs to revoke. Bit set to 1 means revoke key. Bit 0 = revoke SRK0, bit 1 = revoke SRK1 etc. Example of revocation SRK0 and SRK1 - the value should be 0x03

GDET runtime behavior

Type: enum (of string)

This option defines runtime behavior of Glitch detector. Not supported by all devices and their ELE firmware.
- disabled: GDET is disabled after the first OEM container has been authenticated (default behavior)
- enabled_eleapi: Automatically enable GDET during all ELE API calls
- enabled: Leave GDET enabled

Must be one of:

  • "disabled"
  • "enabled_eleapi"
  • "enabled"

Check all signatures

Type: enum (of string)

This option overrides a fuse to select verification mode.
- default: Apply default fuse policy.
- checkallsignatures: Force verification of all present signatures.

Must be one of:

  • "default"
  • "check_all_signatures"

Fast boot

Type: enum (of string)

This option enables fast boot mode.
- disabled: Fast boot disabled.
- hashandcopy: ELE will do the hash and copy (when disabled, BootROM will do the copy).
- externalaccelerator: Use external accelerator for authentication (e.g. V2X on i.MX95B0, i.MX943 and i.MX952).
- hash
andcopywithexternalaccelerator:ELE will do hash and copy, and use external accelerator for authentication.

Must be one of:

  • "disabled"
  • "hash_and_copy"
  • "external_accelerator"
  • "hash_and_copy_with_external_accelerator"

Fuse version

Type: number or stringFormat: number

The value must be equal or greater than the version stored in fuses to allow loading this container.

Software version

Type: number or stringFormat: number

Number used by Privileged Host Boot Companion (PHBC) to select between multiple images with same Fuse version field.

AHAB container signer

Type: string

Signature provider configuration in format 'type=<identifier>;<key1>=<value1>;<key2>=<value2>' or a private key used for sign the container header. Header can be signed by SRK. The referenced SRK must not have been revoked.

AHAB container signer for second signature (PQC only)

Type: string

Signature provider configuration in format 'type=<identifier>;<key1>=<value1>;<key2>=<value2>' or a private key used for second sign (PQC only) of the container header. Header can be signed by SRK. The referenced SRK must not have been revoked.

Image array

Type: array

Array of image entries.

Must contain a minimum of 1 items

Must contain a maximum of 8 items

No Additional Items

Each item of this array must be:


Type: object

Double Authentication of NXP firmwares
Image array default settings. Can be overridden by definitions that are hidden in the template:
loadaddress: 0x0000000000000000
hash
type: SHA384

NXP ELE FW

Type: stringFormat: file

NXP ELE firmware, that should be also signed by OEM keys binary file.

Image size alignment.

Type: number

As a standard is use 1 byte in general and for ELE image 4 bytes.

Image offset in AHAB container

Type: number or stringFormat: number Default: 0

Offset in bytes from start of container header to beginning of the image. Zero value means automatic placing the image with proper alignment after previous one, this is recommended for serialdownloader mode. In case of XiP type of AHAB image, the loadaddress and entrypoint must correspond to this values. Example of setting of loadaddress - AHABIMAGEADDRESS+IMAGEOFFSET=LOADADDRESS. The Booting core images must be located after the other ones

Image destination address

Type: number or stringFormat: number

Address the image is written to in memory (absolute address in system memory).

Image entry point

Type: number or stringFormat: number

Image entry point (absolute address). Valid only for executable image types.

Image type

Type: enum (of string)

Kind of image.

Must be one of:

  • "executable"
  • "data"
  • "oei"
  • "provisioning_image"
  • "dek_validation_fcb_chk"
  • "provisioning_data"
  • "executable_fast_boot_image"
  • "oei_ddr"
  • "v2x_dummy"
  • "ele_as_image"
  • "ele"
  • "v2x_as_image"
  • "v2x_primary"
  • "v2x_secondary"
  • "v2x_rom_patch"

Core ID

Type: enum (of string)

Defines the core the image is dedicated for. Not all cores are supported for all families.

Must be one of:

  • "dummy"
  • "cortex-m33"
  • "cortex-a55"
  • "ele"
  • "v2x-1"
  • "v2x-2"
  • "cortex-m7-1"
  • "cortex-m7-2"
  • "cortex-m33-2"
  • "ddr"

Image encryption

Type: boolean Default: false

Determines, whether image is encrypted or not.

Image Descriptor

Type: boolean Default: false

Determines, whether image is descriptor or not.

Boot flags

Type: number or string

Boot flags controlling SCFW boot.

Start CPU ID

Type: number or stringFormat: number

Resource ID of CPU to be started

CPU memory unit start ID

Type: number or stringFormat: number

Resource ID of the MU associated with the CPU

Start partition ID

Type: number or stringFormat: number

Partition ID of the partition to start

Images HASH type

Type: enum (of string)

HASH type of image.

Must be one of:

  • "sha256"
  • "sha384"
  • "sha512"
  • "sm3"
  • "sha3_256"
  • "sha3_384"
  • "sha3_512"
  • "shake_128_256"
  • "shake_256_512"

Size of gap

Type: number Default: 0

Size of empty gap just behind the image in AHAB container

Type: object

OEI with DDR PHY tunning images
Image array default settings. Can be overridden by definitions that are hidden in the template:
loadaddress: 0x000000001FFC0000
entry
point: 0x000000001FFC0001
imagetype: oei
core
id: cortex-m33
hash_type: SHA384

LPDDR memory FW

Type: stringFormat: file

Firmware for LPDDR4/5 memory.

LPDDR memory FW for quick boot

Type: stringFormat: file

Firmware for LPDDR4/5 for quick boot.

LPDDR memory data

Type: stringFormat: file

Data for LPDDR4/5 memory.

LPDDR memory data for quick boot

Type: stringFormat: file

Data for LPDDR4/5 memory in quick boot.

OEI

Type: stringFormat: file

OEI - Optional Executable Image firmware

Quick Boot Data

Type: stringFormat: file

QB data - Optional Quick boot data, if defined a new empty record will be added just behind DDR FW entry

Image size alignment.

Type: number

As a standard is use 1 byte in general and for ELE image 4 bytes.

Image offset in AHAB container

Type: number or stringFormat: number Default: 0

Offset in bytes from start of container header to beginning of the image. Zero value means automatic placing the image with proper alignment after previous one, this is recommended for serialdownloader mode. In case of XiP type of AHAB image, the loadaddress and entrypoint must correspond to this values. Example of setting of loadaddress - AHABIMAGEADDRESS+IMAGEOFFSET=LOADADDRESS. The Booting core images must be located after the other ones

Image destination address

Type: number or stringFormat: number

Address the image is written to in memory (absolute address in system memory).

Image entry point

Type: number or stringFormat: number

Image entry point (absolute address). Valid only for executable image types.

Image type

Type: enum (of string)

Kind of image.

Must be one of:

  • "executable"
  • "data"
  • "oei"
  • "provisioning_image"
  • "dek_validation_fcb_chk"
  • "provisioning_data"
  • "executable_fast_boot_image"
  • "oei_ddr"
  • "v2x_dummy"
  • "ele_as_image"
  • "ele"
  • "v2x_as_image"
  • "v2x_primary"
  • "v2x_secondary"
  • "v2x_rom_patch"

Core ID

Type: enum (of string)

Defines the core the image is dedicated for. Not all cores are supported for all families.

Must be one of:

  • "dummy"
  • "cortex-m33"
  • "cortex-a55"
  • "ele"
  • "v2x-1"
  • "v2x-2"
  • "cortex-m7-1"
  • "cortex-m7-2"
  • "cortex-m33-2"
  • "ddr"

Image encryption

Type: boolean Default: false

Determines, whether image is encrypted or not.

Image Descriptor

Type: boolean Default: false

Determines, whether image is descriptor or not.

Boot flags

Type: number or string

Boot flags controlling SCFW boot.

Start CPU ID

Type: number or stringFormat: number

Resource ID of CPU to be started

CPU memory unit start ID

Type: number or stringFormat: number

Resource ID of the MU associated with the CPU

Start partition ID

Type: number or stringFormat: number

Partition ID of the partition to start

Images HASH type

Type: enum (of string)

HASH type of image.

Must be one of:

  • "sha256"
  • "sha384"
  • "sha512"
  • "sm3"
  • "sha3_256"
  • "sha3_384"
  • "sha3_512"
  • "shake_128_256"
  • "shake_256_512"

Size of gap

Type: number Default: 0

Size of empty gap just behind the image in AHAB container

Type: object

OEI TCM settings (ECC etc.)
Image array default settings. Can be overridden by definitions that are hidden in the template:
loadaddress: 0x000000001FFC0000
entry
point: 0x000000001FFC0001
imagetype: oei
core
id: cortex-m33
hash_type: SHA384

OEI TCM FW

Type: stringFormat: file

OEI(Optional Executable Image) TCM settings binary file.

Image size alignment.

Type: number

As a standard is use 1 byte in general and for ELE image 4 bytes.

Image offset in AHAB container

Type: number or stringFormat: number Default: 0

Offset in bytes from start of container header to beginning of the image. Zero value means automatic placing the image with proper alignment after previous one, this is recommended for serialdownloader mode. In case of XiP type of AHAB image, the loadaddress and entrypoint must correspond to this values. Example of setting of loadaddress - AHABIMAGEADDRESS+IMAGEOFFSET=LOADADDRESS. The Booting core images must be located after the other ones

Image destination address

Type: number or stringFormat: number

Address the image is written to in memory (absolute address in system memory).

Image entry point

Type: number or stringFormat: number

Image entry point (absolute address). Valid only for executable image types.

Image type

Type: enum (of string)

Kind of image.

Must be one of:

  • "executable"
  • "data"
  • "oei"
  • "provisioning_image"
  • "dek_validation_fcb_chk"
  • "provisioning_data"
  • "executable_fast_boot_image"
  • "oei_ddr"
  • "v2x_dummy"
  • "ele_as_image"
  • "ele"
  • "v2x_as_image"
  • "v2x_primary"
  • "v2x_secondary"
  • "v2x_rom_patch"

Core ID

Type: enum (of string)

Defines the core the image is dedicated for. Not all cores are supported for all families.

Must be one of:

  • "dummy"
  • "cortex-m33"
  • "cortex-a55"
  • "ele"
  • "v2x-1"
  • "v2x-2"
  • "cortex-m7-1"
  • "cortex-m7-2"
  • "cortex-m33-2"
  • "ddr"

Image encryption

Type: boolean Default: false

Determines, whether image is encrypted or not.

Image Descriptor

Type: boolean Default: false

Determines, whether image is descriptor or not.

Boot flags

Type: number or string

Boot flags controlling SCFW boot.

Start CPU ID

Type: number or stringFormat: number

Resource ID of CPU to be started

CPU memory unit start ID

Type: number or stringFormat: number

Resource ID of the MU associated with the CPU

Start partition ID

Type: number or stringFormat: number

Partition ID of the partition to start

Images HASH type

Type: enum (of string)

HASH type of image.

Must be one of:

  • "sha256"
  • "sha384"
  • "sha512"
  • "sm3"
  • "sha3_256"
  • "sha3_384"
  • "sha3_512"
  • "shake_128_256"
  • "shake_256_512"

Size of gap

Type: number Default: 0

Size of empty gap just behind the image in AHAB container

Type: object

System booting image
Image array default settings. Can be overridden by definitions that are hidden in the template:
loadaddress: 0x000000001FFC0000
image
type: executable
coreid: cortex-m33
hash
type: SHA384

Boot system manager

Type: stringFormat: file

System manager booting image

Image size alignment.

Type: number

As a standard is use 1 byte in general and for ELE image 4 bytes.

Image offset in AHAB container

Type: number or stringFormat: number Default: 0

Offset in bytes from start of container header to beginning of the image. Zero value means automatic placing the image with proper alignment after previous one, this is recommended for serialdownloader mode. In case of XiP type of AHAB image, the loadaddress and entrypoint must correspond to this values. Example of setting of loadaddress - AHABIMAGEADDRESS+IMAGEOFFSET=LOADADDRESS. The Booting core images must be located after the other ones

Image destination address

Type: number or stringFormat: number

Address the image is written to in memory (absolute address in system memory).

Image entry point

Type: number or stringFormat: number

Image entry point (absolute address). Valid only for executable image types.

Image type

Type: enum (of string)

Kind of image.

Must be one of:

  • "executable"
  • "data"
  • "oei"
  • "provisioning_image"
  • "dek_validation_fcb_chk"
  • "provisioning_data"
  • "executable_fast_boot_image"
  • "oei_ddr"
  • "v2x_dummy"
  • "ele_as_image"
  • "ele"
  • "v2x_as_image"
  • "v2x_primary"
  • "v2x_secondary"
  • "v2x_rom_patch"

Core ID

Type: enum (of string)

Defines the core the image is dedicated for. Not all cores are supported for all families.

Must be one of:

  • "dummy"
  • "cortex-m33"
  • "cortex-a55"
  • "ele"
  • "v2x-1"
  • "v2x-2"
  • "cortex-m7-1"
  • "cortex-m7-2"
  • "cortex-m33-2"
  • "ddr"

Image encryption

Type: boolean Default: false

Determines, whether image is encrypted or not.

Image Descriptor

Type: boolean Default: false

Determines, whether image is descriptor or not.

Boot flags

Type: number or string

Boot flags controlling SCFW boot.

Start CPU ID

Type: number or stringFormat: number

Resource ID of CPU to be started

CPU memory unit start ID

Type: number or stringFormat: number

Resource ID of the MU associated with the CPU

Start partition ID

Type: number or stringFormat: number

Partition ID of the partition to start

Images HASH type

Type: enum (of string)

HASH type of image.

Must be one of:

  • "sha256"
  • "sha384"
  • "sha512"
  • "sm3"
  • "sha3_256"
  • "sha3_384"
  • "sha3_512"
  • "shake_128_256"
  • "shake_256_512"

Size of gap

Type: number Default: 0

Size of empty gap just behind the image in AHAB container

Type: object

Cortex M7 additional application
Image array default settings. Can be overridden by definitions that are hidden in the template:
loadaddress: 0x00000000303C0000
entry
point: 0x0000000000000000
imagetype: executable
core
id: cortex-m7-1
metadatastartcpuid: 1
hash_type: SHA384

Cortex M7 additional application

Type: stringFormat: file

Cortex M7 additional application

Image size alignment.

Type: number

As a standard is use 1 byte in general and for ELE image 4 bytes.

Image offset in AHAB container

Type: number or stringFormat: number Default: 0

Offset in bytes from start of container header to beginning of the image. Zero value means automatic placing the image with proper alignment after previous one, this is recommended for serialdownloader mode. In case of XiP type of AHAB image, the loadaddress and entrypoint must correspond to this values. Example of setting of loadaddress - AHABIMAGEADDRESS+IMAGEOFFSET=LOADADDRESS. The Booting core images must be located after the other ones

Image destination address

Type: number or stringFormat: number

Address the image is written to in memory (absolute address in system memory).

Image entry point

Type: number or stringFormat: number

Image entry point (absolute address). Valid only for executable image types.

Image type

Type: enum (of string)

Kind of image.

Must be one of:

  • "executable"
  • "data"
  • "oei"
  • "provisioning_image"
  • "dek_validation_fcb_chk"
  • "provisioning_data"
  • "executable_fast_boot_image"
  • "oei_ddr"
  • "v2x_dummy"
  • "ele_as_image"
  • "ele"
  • "v2x_as_image"
  • "v2x_primary"
  • "v2x_secondary"
  • "v2x_rom_patch"

Core ID

Type: enum (of string)

Defines the core the image is dedicated for. Not all cores are supported for all families.

Must be one of:

  • "dummy"
  • "cortex-m33"
  • "cortex-a55"
  • "ele"
  • "v2x-1"
  • "v2x-2"
  • "cortex-m7-1"
  • "cortex-m7-2"
  • "cortex-m33-2"
  • "ddr"

Image encryption

Type: boolean Default: false

Determines, whether image is encrypted or not.

Image Descriptor

Type: boolean Default: false

Determines, whether image is descriptor or not.

Boot flags

Type: number or string

Boot flags controlling SCFW boot.

Start CPU ID

Type: number or stringFormat: number

Resource ID of CPU to be started

CPU memory unit start ID

Type: number or stringFormat: number

Resource ID of the MU associated with the CPU

Start partition ID

Type: number or stringFormat: number

Partition ID of the partition to start

Images HASH type

Type: enum (of string)

HASH type of image.

Must be one of:

  • "sha256"
  • "sha384"
  • "sha512"
  • "sm3"
  • "sha3_256"
  • "sha3_384"
  • "sha3_512"
  • "shake_128_256"
  • "shake_256_512"

Size of gap

Type: number Default: 0

Size of empty gap just behind the image in AHAB container

Type: object

Cortex M7 second core additional application
Image array default settings. Can be overridden by definitions that are hidden in the template:
loadaddress: 0x00000000302C0000
entry
point: 0x0000000000000000
imagetype: executable
core
id: cortex-m7-2
metadatastartcpuid: 7
hash_type: SHA384

Cortex M7 second core additional application

Type: stringFormat: file

Cortex M7 second core additional application

Image size alignment.

Type: number

As a standard is use 1 byte in general and for ELE image 4 bytes.

Image offset in AHAB container

Type: number or stringFormat: number Default: 0

Offset in bytes from start of container header to beginning of the image. Zero value means automatic placing the image with proper alignment after previous one, this is recommended for serialdownloader mode. In case of XiP type of AHAB image, the loadaddress and entrypoint must correspond to this values. Example of setting of loadaddress - AHABIMAGEADDRESS+IMAGEOFFSET=LOADADDRESS. The Booting core images must be located after the other ones

Image destination address

Type: number or stringFormat: number

Address the image is written to in memory (absolute address in system memory).

Image entry point

Type: number or stringFormat: number

Image entry point (absolute address). Valid only for executable image types.

Image type

Type: enum (of string)

Kind of image.

Must be one of:

  • "executable"
  • "data"
  • "oei"
  • "provisioning_image"
  • "dek_validation_fcb_chk"
  • "provisioning_data"
  • "executable_fast_boot_image"
  • "oei_ddr"
  • "v2x_dummy"
  • "ele_as_image"
  • "ele"
  • "v2x_as_image"
  • "v2x_primary"
  • "v2x_secondary"
  • "v2x_rom_patch"

Core ID

Type: enum (of string)

Defines the core the image is dedicated for. Not all cores are supported for all families.

Must be one of:

  • "dummy"
  • "cortex-m33"
  • "cortex-a55"
  • "ele"
  • "v2x-1"
  • "v2x-2"
  • "cortex-m7-1"
  • "cortex-m7-2"
  • "cortex-m33-2"
  • "ddr"

Image encryption

Type: boolean Default: false

Determines, whether image is encrypted or not.

Image Descriptor

Type: boolean Default: false

Determines, whether image is descriptor or not.

Boot flags

Type: number or string

Boot flags controlling SCFW boot.

Start CPU ID

Type: number or stringFormat: number

Resource ID of CPU to be started

CPU memory unit start ID

Type: number or stringFormat: number

Resource ID of the MU associated with the CPU

Start partition ID

Type: number or stringFormat: number

Partition ID of the partition to start

Images HASH type

Type: enum (of string)

HASH type of image.

Must be one of:

  • "sha256"
  • "sha384"
  • "sha512"
  • "sm3"
  • "sha3_256"
  • "sha3_384"
  • "sha3_512"
  • "shake_128_256"
  • "shake_256_512"

Size of gap

Type: number Default: 0

Size of empty gap just behind the image in AHAB container

Type: object

Cortex M33 second core additional application
Image array default settings. Can be overridden by definitions that are hidden in the template:
loadaddress: 0x00000000309C0000
entry
point: 0x000000001FFC0000
imagetype: executable
core
id: cortex-m33-2
metadatastartcpuid: 8
hash_type: SHA384

Cortex M33 second core additional application

Type: stringFormat: file

Cortex M33 second core additional application

Image size alignment.

Type: number

As a standard is use 1 byte in general and for ELE image 4 bytes.

Image offset in AHAB container

Type: number or stringFormat: number Default: 0

Offset in bytes from start of container header to beginning of the image. Zero value means automatic placing the image with proper alignment after previous one, this is recommended for serialdownloader mode. In case of XiP type of AHAB image, the loadaddress and entrypoint must correspond to this values. Example of setting of loadaddress - AHABIMAGEADDRESS+IMAGEOFFSET=LOADADDRESS. The Booting core images must be located after the other ones

Image destination address

Type: number or stringFormat: number

Address the image is written to in memory (absolute address in system memory).

Image entry point

Type: number or stringFormat: number

Image entry point (absolute address). Valid only for executable image types.

Image type

Type: enum (of string)

Kind of image.

Must be one of:

  • "executable"
  • "data"
  • "oei"
  • "provisioning_image"
  • "dek_validation_fcb_chk"
  • "provisioning_data"
  • "executable_fast_boot_image"
  • "oei_ddr"
  • "v2x_dummy"
  • "ele_as_image"
  • "ele"
  • "v2x_as_image"
  • "v2x_primary"
  • "v2x_secondary"
  • "v2x_rom_patch"

Core ID

Type: enum (of string)

Defines the core the image is dedicated for. Not all cores are supported for all families.

Must be one of:

  • "dummy"
  • "cortex-m33"
  • "cortex-a55"
  • "ele"
  • "v2x-1"
  • "v2x-2"
  • "cortex-m7-1"
  • "cortex-m7-2"
  • "cortex-m33-2"
  • "ddr"

Image encryption

Type: boolean Default: false

Determines, whether image is encrypted or not.

Image Descriptor

Type: boolean Default: false

Determines, whether image is descriptor or not.

Boot flags

Type: number or string

Boot flags controlling SCFW boot.

Start CPU ID

Type: number or stringFormat: number

Resource ID of CPU to be started

CPU memory unit start ID

Type: number or stringFormat: number

Resource ID of the MU associated with the CPU

Start partition ID

Type: number or stringFormat: number

Partition ID of the partition to start

Images HASH type

Type: enum (of string)

HASH type of image.

Must be one of:

  • "sha256"
  • "sha384"
  • "sha512"
  • "sm3"
  • "sha3_256"
  • "sha3_384"
  • "sha3_512"
  • "shake_128_256"
  • "shake_256_512"

Size of gap

Type: number Default: 0

Size of empty gap just behind the image in AHAB container

Type: object

U-Boot SPL (Secondary program loader)
Image array default settings. Can be overridden by definitions that are hidden in the template:
loadaddress: 0x0000000020480000
image
type: executable
coreid: cortex-a55
meta
datastartcpuid: 2
hash
type: SHA384

SPL

Type: stringFormat: file

SPL firmware

Image size alignment.

Type: number

As a standard is use 1 byte in general and for ELE image 4 bytes.

Image offset in AHAB container

Type: number or stringFormat: number Default: 0

Offset in bytes from start of container header to beginning of the image. Zero value means automatic placing the image with proper alignment after previous one, this is recommended for serialdownloader mode. In case of XiP type of AHAB image, the loadaddress and entrypoint must correspond to this values. Example of setting of loadaddress - AHABIMAGEADDRESS+IMAGEOFFSET=LOADADDRESS. The Booting core images must be located after the other ones

Image destination address

Type: number or stringFormat: number

Address the image is written to in memory (absolute address in system memory).

Image entry point

Type: number or stringFormat: number

Image entry point (absolute address). Valid only for executable image types.

Image type

Type: enum (of string)

Kind of image.

Must be one of:

  • "executable"
  • "data"
  • "oei"
  • "provisioning_image"
  • "dek_validation_fcb_chk"
  • "provisioning_data"
  • "executable_fast_boot_image"
  • "oei_ddr"
  • "v2x_dummy"
  • "ele_as_image"
  • "ele"
  • "v2x_as_image"
  • "v2x_primary"
  • "v2x_secondary"
  • "v2x_rom_patch"

Core ID

Type: enum (of string)

Defines the core the image is dedicated for. Not all cores are supported for all families.

Must be one of:

  • "dummy"
  • "cortex-m33"
  • "cortex-a55"
  • "ele"
  • "v2x-1"
  • "v2x-2"
  • "cortex-m7-1"
  • "cortex-m7-2"
  • "cortex-m33-2"
  • "ddr"

Image encryption

Type: boolean Default: false

Determines, whether image is encrypted or not.

Image Descriptor

Type: boolean Default: false

Determines, whether image is descriptor or not.

Boot flags

Type: number or string

Boot flags controlling SCFW boot.

Start CPU ID

Type: number or stringFormat: number

Resource ID of CPU to be started

CPU memory unit start ID

Type: number or stringFormat: number

Resource ID of the MU associated with the CPU

Start partition ID

Type: number or stringFormat: number

Partition ID of the partition to start

Images HASH type

Type: enum (of string)

HASH type of image.

Must be one of:

  • "sha256"
  • "sha384"
  • "sha512"
  • "sm3"
  • "sha3_256"
  • "sha3_384"
  • "sha3_512"
  • "shake_128_256"
  • "shake_256_512"

Size of gap

Type: number Default: 0

Size of empty gap just behind the image in AHAB container

Type: object

U-Boot ATF container definition
Image array default settings. Can be overridden by definitions that are hidden in the template:
loadaddress: 0x000000008A200000
image
type: executable
coreid: cortex-a55
meta
datastartcpuid: 2
hash
type: SHA384

ATF binary

Type: stringFormat: file

ARM Trusted Firmware binary file.

Image size alignment.

Type: number

As a standard is use 1 byte in general and for ELE image 4 bytes.

Image offset in AHAB container

Type: number or stringFormat: number Default: 0

Offset in bytes from start of container header to beginning of the image. Zero value means automatic placing the image with proper alignment after previous one, this is recommended for serialdownloader mode. In case of XiP type of AHAB image, the loadaddress and entrypoint must correspond to this values. Example of setting of loadaddress - AHABIMAGEADDRESS+IMAGEOFFSET=LOADADDRESS. The Booting core images must be located after the other ones

Image destination address

Type: number or stringFormat: number

Address the image is written to in memory (absolute address in system memory).

Image entry point

Type: number or stringFormat: number

Image entry point (absolute address). Valid only for executable image types.

Image type

Type: enum (of string)

Kind of image.

Must be one of:

  • "executable"
  • "data"
  • "oei"
  • "provisioning_image"
  • "dek_validation_fcb_chk"
  • "provisioning_data"
  • "executable_fast_boot_image"
  • "oei_ddr"
  • "v2x_dummy"
  • "ele_as_image"
  • "ele"
  • "v2x_as_image"
  • "v2x_primary"
  • "v2x_secondary"
  • "v2x_rom_patch"

Core ID

Type: enum (of string)

Defines the core the image is dedicated for. Not all cores are supported for all families.

Must be one of:

  • "dummy"
  • "cortex-m33"
  • "cortex-a55"
  • "ele"
  • "v2x-1"
  • "v2x-2"
  • "cortex-m7-1"
  • "cortex-m7-2"
  • "cortex-m33-2"
  • "ddr"

Image encryption

Type: boolean Default: false

Determines, whether image is encrypted or not.

Image Descriptor

Type: boolean Default: false

Determines, whether image is descriptor or not.

Boot flags

Type: number or string

Boot flags controlling SCFW boot.

Start CPU ID

Type: number or stringFormat: number

Resource ID of CPU to be started

CPU memory unit start ID

Type: number or stringFormat: number

Resource ID of the MU associated with the CPU

Start partition ID

Type: number or stringFormat: number

Partition ID of the partition to start

Images HASH type

Type: enum (of string)

HASH type of image.

Must be one of:

  • "sha256"
  • "sha384"
  • "sha512"
  • "sm3"
  • "sha3_256"
  • "sha3_384"
  • "sha3_512"
  • "shake_128_256"
  • "shake_256_512"

Size of gap

Type: number Default: 0

Size of empty gap just behind the image in AHAB container

Type: object

U-Boot container definition
Image array default settings. Can be overridden by definitions that are hidden in the template:
loadaddress: 0x0000000090200000
image
type: executable
coreid: cortex-a55
meta
datastartcpuid: 2
hash
type: SHA384

U-Boot binary

Type: stringFormat: file

U-Boot binary file.

Image size alignment.

Type: number

As a standard is use 1 byte in general and for ELE image 4 bytes.

Image offset in AHAB container

Type: number or stringFormat: number Default: 0

Offset in bytes from start of container header to beginning of the image. Zero value means automatic placing the image with proper alignment after previous one, this is recommended for serialdownloader mode. In case of XiP type of AHAB image, the loadaddress and entrypoint must correspond to this values. Example of setting of loadaddress - AHABIMAGEADDRESS+IMAGEOFFSET=LOADADDRESS. The Booting core images must be located after the other ones

Image destination address

Type: number or stringFormat: number

Address the image is written to in memory (absolute address in system memory).

Image entry point

Type: number or stringFormat: number

Image entry point (absolute address). Valid only for executable image types.

Image type

Type: enum (of string)

Kind of image.

Must be one of:

  • "executable"
  • "data"
  • "oei"
  • "provisioning_image"
  • "dek_validation_fcb_chk"
  • "provisioning_data"
  • "executable_fast_boot_image"
  • "oei_ddr"
  • "v2x_dummy"
  • "ele_as_image"
  • "ele"
  • "v2x_as_image"
  • "v2x_primary"
  • "v2x_secondary"
  • "v2x_rom_patch"

Core ID

Type: enum (of string)

Defines the core the image is dedicated for. Not all cores are supported for all families.

Must be one of:

  • "dummy"
  • "cortex-m33"
  • "cortex-a55"
  • "ele"
  • "v2x-1"
  • "v2x-2"
  • "cortex-m7-1"
  • "cortex-m7-2"
  • "cortex-m33-2"
  • "ddr"

Image encryption

Type: boolean Default: false

Determines, whether image is encrypted or not.

Image Descriptor

Type: boolean Default: false

Determines, whether image is descriptor or not.

Boot flags

Type: number or string

Boot flags controlling SCFW boot.

Start CPU ID

Type: number or stringFormat: number

Resource ID of CPU to be started

CPU memory unit start ID

Type: number or stringFormat: number

Resource ID of the MU associated with the CPU

Start partition ID

Type: number or stringFormat: number

Partition ID of the partition to start

Images HASH type

Type: enum (of string)

HASH type of image.

Must be one of:

  • "sha256"
  • "sha384"
  • "sha512"
  • "sm3"
  • "sha3_256"
  • "sha3_384"
  • "sha3_512"
  • "shake_128_256"
  • "shake_256_512"

Size of gap

Type: number Default: 0

Size of empty gap just behind the image in AHAB container

Type: object

A TEE (Trusted Execution Environment) is a trusted OS running in some secure environment, for example, TrustZone on ARM CPUs, or a separate secure co-processor etc. A TEE driver handles the details needed to communicate with the TEE.
Image array default settings. Can be overridden by definitions that are hidden in the template:
loadaddress: 0x000000008C000000
image
type: executable
coreid: cortex-a55
meta
datastartcpuid: 2
hash
type: SHA384

TEE

Type: stringFormat: file

TEE - Trusted Execution Environment binary

Image size alignment.

Type: number

As a standard is use 1 byte in general and for ELE image 4 bytes.

Image offset in AHAB container

Type: number or stringFormat: number Default: 0

Offset in bytes from start of container header to beginning of the image. Zero value means automatic placing the image with proper alignment after previous one, this is recommended for serialdownloader mode. In case of XiP type of AHAB image, the loadaddress and entrypoint must correspond to this values. Example of setting of loadaddress - AHABIMAGEADDRESS+IMAGEOFFSET=LOADADDRESS. The Booting core images must be located after the other ones

Image destination address

Type: number or stringFormat: number

Address the image is written to in memory (absolute address in system memory).

Image entry point

Type: number or stringFormat: number

Image entry point (absolute address). Valid only for executable image types.

Image type

Type: enum (of string)

Kind of image.

Must be one of:

  • "executable"
  • "data"
  • "oei"
  • "provisioning_image"
  • "dek_validation_fcb_chk"
  • "provisioning_data"
  • "executable_fast_boot_image"
  • "oei_ddr"
  • "v2x_dummy"
  • "ele_as_image"
  • "ele"
  • "v2x_as_image"
  • "v2x_primary"
  • "v2x_secondary"
  • "v2x_rom_patch"

Core ID

Type: enum (of string)

Defines the core the image is dedicated for. Not all cores are supported for all families.

Must be one of:

  • "dummy"
  • "cortex-m33"
  • "cortex-a55"
  • "ele"
  • "v2x-1"
  • "v2x-2"
  • "cortex-m7-1"
  • "cortex-m7-2"
  • "cortex-m33-2"
  • "ddr"

Image encryption

Type: boolean Default: false

Determines, whether image is encrypted or not.

Image Descriptor

Type: boolean Default: false

Determines, whether image is descriptor or not.

Boot flags

Type: number or string

Boot flags controlling SCFW boot.

Start CPU ID

Type: number or stringFormat: number

Resource ID of CPU to be started

CPU memory unit start ID

Type: number or stringFormat: number

Resource ID of the MU associated with the CPU

Start partition ID

Type: number or stringFormat: number

Partition ID of the partition to start

Images HASH type

Type: enum (of string)

HASH type of image.

Must be one of:

  • "sha256"
  • "sha384"
  • "sha512"
  • "sm3"
  • "sha3_256"
  • "sha3_384"
  • "sha3_512"
  • "shake_128_256"
  • "shake_256_512"

Size of gap

Type: number Default: 0

Size of empty gap just behind the image in AHAB container

Type: object

Linux kernel Image container definition
Image array default settings. Can be overridden by definitions that are hidden in the template:
loadaddress: 0x0000000090400000
image
type: executable
coreid: cortex-a55
meta
datastartcpuid: 2
hash
type: SHA384

Linux Kernel Image Binary

Type: stringFormat: file

Linux kernel executable Image binary file (typically Image.bin)

Image size alignment.

Type: number

As a standard is use 1 byte in general and for ELE image 4 bytes.

Image offset in AHAB container

Type: number or stringFormat: number Default: 0

Offset in bytes from start of container header to beginning of the image. Zero value means automatic placing the image with proper alignment after previous one, this is recommended for serialdownloader mode. In case of XiP type of AHAB image, the loadaddress and entrypoint must correspond to this values. Example of setting of loadaddress - AHABIMAGEADDRESS+IMAGEOFFSET=LOADADDRESS. The Booting core images must be located after the other ones

Image destination address

Type: number or stringFormat: number

Address the image is written to in memory (absolute address in system memory).

Image entry point

Type: number or stringFormat: number

Image entry point (absolute address). Valid only for executable image types.

Image type

Type: enum (of string)

Kind of image.

Must be one of:

  • "executable"
  • "data"
  • "oei"
  • "provisioning_image"
  • "dek_validation_fcb_chk"
  • "provisioning_data"
  • "executable_fast_boot_image"
  • "oei_ddr"
  • "v2x_dummy"
  • "ele_as_image"
  • "ele"
  • "v2x_as_image"
  • "v2x_primary"
  • "v2x_secondary"
  • "v2x_rom_patch"

Core ID

Type: enum (of string)

Defines the core the image is dedicated for. Not all cores are supported for all families.

Must be one of:

  • "dummy"
  • "cortex-m33"
  • "cortex-a55"
  • "ele"
  • "v2x-1"
  • "v2x-2"
  • "cortex-m7-1"
  • "cortex-m7-2"
  • "cortex-m33-2"
  • "ddr"

Image encryption

Type: boolean Default: false

Determines, whether image is encrypted or not.

Image Descriptor

Type: boolean Default: false

Determines, whether image is descriptor or not.

Boot flags

Type: number or string

Boot flags controlling SCFW boot.

Start CPU ID

Type: number or stringFormat: number

Resource ID of CPU to be started

CPU memory unit start ID

Type: number or stringFormat: number

Resource ID of the MU associated with the CPU

Start partition ID

Type: number or stringFormat: number

Partition ID of the partition to start

Images HASH type

Type: enum (of string)

HASH type of image.

Must be one of:

  • "sha256"
  • "sha384"
  • "sha512"
  • "sm3"
  • "sha3_256"
  • "sha3_384"
  • "sha3_512"
  • "shake_128_256"
  • "shake_256_512"

Size of gap

Type: number Default: 0

Size of empty gap just behind the image in AHAB container

Type: object

Device Tree Blob (DTB) container definition
Image array default settings. Can be overridden by definitions that are hidden in the template:
loadaddress: 0x0000000093000000
entry
point: 0x0000000000000000
imagetype: data
core
id: cortex-a55
hash_type: SHA384

Device Tree Blob Binary

Type: stringFormat: file

Device Tree Blob (DTB) binary file containing hardware description

Image size alignment.

Type: number

As a standard is use 1 byte in general and for ELE image 4 bytes.

Image offset in AHAB container

Type: number or stringFormat: number Default: 0

Offset in bytes from start of container header to beginning of the image. Zero value means automatic placing the image with proper alignment after previous one, this is recommended for serialdownloader mode. In case of XiP type of AHAB image, the loadaddress and entrypoint must correspond to this values. Example of setting of loadaddress - AHABIMAGEADDRESS+IMAGEOFFSET=LOADADDRESS. The Booting core images must be located after the other ones

Image destination address

Type: number or stringFormat: number

Address the image is written to in memory (absolute address in system memory).

Image entry point

Type: number or stringFormat: number

Image entry point (absolute address). Valid only for executable image types.

Image type

Type: enum (of string)

Kind of image.

Must be one of:

  • "executable"
  • "data"
  • "oei"
  • "provisioning_image"
  • "dek_validation_fcb_chk"
  • "provisioning_data"
  • "executable_fast_boot_image"
  • "oei_ddr"
  • "v2x_dummy"
  • "ele_as_image"
  • "ele"
  • "v2x_as_image"
  • "v2x_primary"
  • "v2x_secondary"
  • "v2x_rom_patch"

Core ID

Type: enum (of string)

Defines the core the image is dedicated for. Not all cores are supported for all families.

Must be one of:

  • "dummy"
  • "cortex-m33"
  • "cortex-a55"
  • "ele"
  • "v2x-1"
  • "v2x-2"
  • "cortex-m7-1"
  • "cortex-m7-2"
  • "cortex-m33-2"
  • "ddr"

Image encryption

Type: boolean Default: false

Determines, whether image is encrypted or not.

Image Descriptor

Type: boolean Default: false

Determines, whether image is descriptor or not.

Boot flags

Type: number or string

Boot flags controlling SCFW boot.

Start CPU ID

Type: number or stringFormat: number

Resource ID of CPU to be started

CPU memory unit start ID

Type: number or stringFormat: number

Resource ID of the MU associated with the CPU

Start partition ID

Type: number or stringFormat: number

Partition ID of the partition to start

Images HASH type

Type: enum (of string)

HASH type of image.

Must be one of:

  • "sha256"
  • "sha384"
  • "sha512"
  • "sm3"
  • "sha3_256"
  • "sha3_384"
  • "sha3_512"
  • "shake_128_256"
  • "shake_256_512"

Size of gap

Type: number Default: 0

Size of empty gap just behind the image in AHAB container

Type: object

General Image Entry

Image path

Type: stringFormat: file

Path to image binary (absolute/relative). In case that only Image Array entry without any data image is needed, Just do not use the image path. In case that the image size in container should be aligned differently then SPSDK do (4 bytes for ELE images, 1 byte otherwise), there is hidden option 'imagesizealignment' where could be override image size by any custom value.

Image size alignment.

Type: number

As a standard is use 1 byte in general and for ELE image 4 bytes.

Image offset in AHAB container

Type: number or stringFormat: number Default: 0

Offset in bytes from start of container header to beginning of the image. Zero value means automatic placing the image with proper alignment after previous one, this is recommended for serialdownloader mode. In case of XiP type of AHAB image, the loadaddress and entrypoint must correspond to this values. Example of setting of loadaddress - AHABIMAGEADDRESS+IMAGEOFFSET=LOADADDRESS. The Booting core images must be located after the other ones

Image destination address

Type: number or stringFormat: number

Address the image is written to in memory (absolute address in system memory).

Image entry point

Type: number or stringFormat: number

Image entry point (absolute address). Valid only for executable image types.

Image type

Type: enum (of string)

Kind of image.

Must be one of:

  • "executable"
  • "data"
  • "oei"
  • "provisioning_image"
  • "dek_validation_fcb_chk"
  • "provisioning_data"
  • "executable_fast_boot_image"
  • "oei_ddr"
  • "v2x_dummy"
  • "ele_as_image"
  • "ele"
  • "v2x_as_image"
  • "v2x_primary"
  • "v2x_secondary"
  • "v2x_rom_patch"

Core ID

Type: enum (of string)

Defines the core the image is dedicated for. Not all cores are supported for all families.

Must be one of:

  • "dummy"
  • "cortex-m33"
  • "cortex-a55"
  • "ele"
  • "v2x-1"
  • "v2x-2"
  • "cortex-m7-1"
  • "cortex-m7-2"
  • "cortex-m33-2"
  • "ddr"

Image encryption

Type: boolean Default: false

Determines, whether image is encrypted or not.

Image Descriptor

Type: boolean Default: false

Determines, whether image is descriptor or not.

Boot flags

Type: number or string

Boot flags controlling SCFW boot.

Start CPU ID

Type: number or stringFormat: number

Resource ID of CPU to be started

CPU memory unit start ID

Type: number or stringFormat: number

Resource ID of the MU associated with the CPU

Start partition ID

Type: number or stringFormat: number

Partition ID of the partition to start

Images HASH type

Type: enum (of string)

HASH type of image.

Must be one of:

  • "sha256"
  • "sha384"
  • "sha512"
  • "sm3"
  • "sha3_256"
  • "sha3_384"
  • "sha3_512"
  • "shake_128_256"
  • "shake_256_512"

Size of gap

Type: number Default: 0

Size of empty gap just behind the image in AHAB container

SRK Table

Type: object

SRK (Super Root key) table definition.

CA Flag

Type: boolean

CA Flag is used by HAB to indicate if the SRK is allowed to sign other keys. In AHAB CA Flag only affects the final SRKH (Super Root Key Hash) value burned into chip fuses. It is not used in the AHAB signing process itself. This option exists only for compatibility with systems where fuses are already programmed. In most cases, this should remain false.

Hash Algorithm

Type: enum (of string)

Hash algorithm used for SRK records. If not specified, default algorithm based on key type will be used.

Must be one of:

  • "default"
  • "sha256"
  • "sha384"
  • "sha512"
  • "sha3_256"
  • "sha3_384"
  • "sha3_512"
  • "shake_128_256"
  • "shake_256_512"
  • "sm3"

RSA exponent legacy size (4 bytes)

Type: boolean Default: false

Force RSA exponent to use legacy 4-byte size instead of actual exponent size. This option provides backward compatibility with older SPSDK versions that always used 4 bytes for RSA exponents. Only enable this if you need compatibility with containers generated by older SPSDK versions.

Super Root Key (SRK) table

Type: array of string

Table containing the used SRK records. All SRKs must be of the same type. Supported signing algorithms are: RSA-PSS, ECDSA, Dilithium or SM2. Supported hash algorithms: sha256, sha384, sha512, sha3256, sha3384, sha3_512, sm3. Supported key sizes/curves: prime256v1, sec384r1, sec512r1, rsa2048, rsa4096, dilithium3, sm2. Certificate may be of Certificate Authority. Dilithium algorithms are supported just in new type of AHAB container

Must contain a minimum of 4 items

Must contain a maximum of 4 items

No Additional Items

Each item of this array must be:

SRK key

Type: stringFormat: file

Path to SRK Key file.

Second SRK Table

Type: object

CA Flag

Type: boolean

CA Flag is used by AHAB to indicate if the SRK is allowed to sign other keys. In AHAB CA Flag only affects the final SRKH (Super Root Key Hash) value burned into chip fuses. It is not used in the AHAB signing process itself. This option exists only for compatibility with systems where fuses are already programmed. In most cases, this should remain false.

Hash Algorithm

Type: enum (of string)

Hash algorithm used for SRK records. If not specified, default algorithm based on key type will be used.

Must be one of:

  • "default"
  • "sha256"
  • "sha384"
  • "sha512"
  • "sha3_256"
  • "sha3_384"
  • "sha3_512"
  • "shake_128_256"
  • "shake_256_512"
  • "sm3"

Super Root Key (SRK) table

Type: array of string

Table containing the used SRK Dilithium records. All SRKs must be of the same type. Supported signing algorithms are: Dilithium level 3. Supported hash algorithms: sha3256, sha3384, sha3_512. Certificate may be of Certificate Authority.

Must contain a minimum of 4 items

Must contain a maximum of 4 items

No Additional Items

Each item of this array must be:

SRK key

Type: stringFormat: file

Path to SRK Key file.

The AHAB certificate

Type: stringFormat: file

The file that contains AHAB certificate. It could be used already prepared binary form signed by SRK, or it is possible to use configuration YAML file of certificate and the AHAB export process it will export it itself.

Encryption blob

Type: object

Encryption blob container definition

Key identifier

Type: number or stringFormat: number

The key identifier that has been used to generate DEK keyblob.

DEK key size

Type: enum (of integer)Format: number

Data Encryption key size. Used for AES CBC-MAC (128/192/256 size)

Must be one of:

  • 128
  • 192
  • 256

DEK key

Type: stringFormat: file-or-hex-value

Data Encryption key. Used for AES CBC-MAC (128/192/256 size). The HEX format is accepted

DEK keyblob

Type: stringFormat: file-or-hex-value

Wrapped Data Encryption key. Used for AES CBC-MAC (128/192/256 size). The HEX format is accepted. If NOT used, the empty keyblob is inserted into container and need to be updated later.