SecureBinary31 for lpc55s36, Revision: a1

Type: object

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: enum (of boolean or null)

Must be one of:

  • true
  • null
Type: object

The following properties are required:

  • containerKeyBlobEncryptionKey
Type: object

The chip family name

Type: enum (of string)

NXP chip family identifier.

Must be one of:

  • "rw610"
  • "kw47z420b2"
  • "kw45b41z5"
  • "mcxn527"
  • "kw45z41083"
  • "mcxw727a"
  • "kw45z41082"
  • "kw47b42z83"
  • "kw47b42z97"
  • "kw45z41052"
  • "mcxl254"
  • "mcxl253"
  • "mcxl255"
  • "mcxn247"
  • "mimxrt758s"
  • "mcxn236"
  • "kw47b42zb6"
  • "mcxw727d"
  • "mimxrt735s"
  • "kw47b42zb2"
  • "mcxn947"
  • "kw47b42z96"
  • "mimxrt798s"
  • "kw47z420b3"
  • "mcxn546"
  • "kw47b42zb3"
  • "kw47b42zb7"
  • "mcxn536"
  • "kw47z42082"
  • "kw47z42092"
  • "mcxn946"
  • "k32w148"
  • "mcxw716c"
  • "mcxw727c"
  • "mcxn526"
  • "mcxn547"
  • "lpc55s36"
  • "mcxn235"
  • "mcxw716a"
  • "kw45z41053"
  • "rw612"
  • "mcxn537"
  • "kw45b41z8"
  • "mcxn23x"
  • "mcxn94x"
  • "rt7xx"
  • "mcxn54x"
  • "kw47xx"
  • "mcxn9xx"
  • "k32w1xx"
  • "mcxw71xx"
  • "lpc55s3x"
  • "rw61x"
  • "kw45xx"

MCU revision

Type: enum (of string)

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

Must be one of:

  • "a0"
  • "a1"
  • "latest"

Firmware version.

Type: number or stringFormat: number

Value compared with SecureFWVersion monotonic counter value stored in protected memory (MCU specific). If value is lower than value in protected memory, then is image rejected (rollback protection).

Signer configuration

Type: string

Signature provider configuration in format 'type=<sp_type>;<key1>=<value1>;<key2>=<value2>' or path to a private key.

Certificate Block binary/config file

Type: stringFormat: file

Path to certificate block binary or config file.

Part Common Key

Type: stringFormat: file-or-hex-value-or-config-string

Path to PCK/NPK 256 or 128 bit key in plain hex string format or path to binary file or hex string.

Enable NXP Container format

Type: boolean

Internal usage only, used for generating SB files with NXP content e.g. provisioning firmware, etc...

KDK access rights

Type: enum (of integer)

Accepted values are 0, 1, 2 and 3. Value used as key properties for key derivation process, more details can be found in CSSv2 manual.

Must be one of:

  • 0
  • 1
  • 2
  • 3

Container configuration word

Type: string or numberFormat: number

Flag value in SB3.1 manifest, not used by silicons with LPC55S3x ROM. Value can be kept 0, or it can be removed from the configuration file.

Description

Type: string

Description up to 16 characters, longer will be truncated. Stored in SB3.1 manifest.

Enable NXP Container encryption

Type: boolean

If false, generated SB3.1 blocks are not encrypted, only for testing, ROM won't accept unencrypted SB3.1 file. If option is missing, SB3.1 file is automatically encrypted.

SB3 file force timestamp

Type: string or numberFormat: number

For testing purposes. This option can override real timestamp of SB3 file.

SB3 filename

Type: string

Generated SB3 container filename.

SB3.1 Commands

Type: array

Secure Binary v3.1 commands block, list of all possible options - Modify it according to your application

No Additional Items

Each item of this array must be:


Type: object

Erase

Type: object

Performs a flash erase of the given address range. The erase will be rounded up to the sector size.

Address

Type: string or numberFormat: number

Address of memory block to be erased.

Size

Type: string or numberFormat: number

Size of memory block to be erased.

Memory ID

Type: string or numberFormat: number

ID of memory block to be erased.

Type: object

Load


If set, then the data to write immediately follows the range header. The length field contains the actual data length

Type: object

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: enum (of boolean or null)

Must be one of:

  • false
  • false
  • null
Type: object

The following properties are required:

  • sectorSize
Type: object

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


Must not be:

Type: object
Must match regular expression: ^(0x|0b)|,|^[0-9]+$

Type: object

The following properties are required:

  • data
Type: object

The following properties are required:

  • file
Type: object

The following properties are required:

  • value
Type: object

The following properties are required:

  • values

Address

Type: string or numberFormat: number

Address of memory block to be loaded.

Memory ID

Type: string or numberFormat: number

ID of memory block to be loaded.

Binary file.

Type: stringFormat: file

32-bit binary values delimited by comma to be programmed or a list with multiple values as integers or 32-bit binary values.

Type: string, number or array

Binary value

Type: string or number

Data to be loaded

Type: string, number or array

The data to be loaded, it could be defined in following formats:
- 32-bit value. Value will be converted to binary in little endian format. Example: '0xB38AA899' or '0b111000'
- Array of 32-bit binary values delimited by comma to be loaded. Individual 32-bit values will be stored in little endian format. Example: 0x1234, 0x5678, 0, 12345678
- List of integers passed as an array.
- Path to binary file. Example: my_binary.bin

Data compression

Type: boolean

Use LZMA compression of date before loading onto the target

Memory sector size

Type: string or numberFormat: number

Size of memory sector where data should be loaded.

Type: object

Execute

Type: object

Address is the jump-to address. No further processing of SB after jump, ROM do not expect to return.

Address

Type: string or numberFormat: number

Jump-to address to start execute code.

Type: object

Program Fuses

Type: object

Address is OTP index of fuses to be programmed (Check the reference manual for more information). Values is a comma separated list of 32bit values.

Address

Type: string or numberFormat: number

OTP Index of fuses to be programmed. Depends on the chip ROM.

Binary values

Type: string or number

32bit binary values delimited by comma or one 32 bit integer to be programmed.

Type: object

Program IFR

Type: object

The startAddress will be the address into the IFR region, length will be in number of bytes to write to IFR region. The data to write to IFR region at the given address will immediately follow the header

Address

Type: string or numberFormat: number

Address of IFR region to be programmed.

Binary file.

Type: stringFormat: file

32-bit binary values delimited by comma to be programmed or a list with multiple values as integer or 32-bit binary values.

Type: string, number or array

Binary value

Type: string or number

Data to be loaded

Type: string, number or array

The data to be loaded, it could be defined in following formats:
- 32-bit value. Value will be converted to binary in little endian format. Example: '0xB38AA899' or '0b111000'
- Array of 32-bit binary values delimited by comma to be loaded. Individual 32-bit values will be stored in little endian format. Example: 0x1234, 0x5678, 0, 12345678
- List of integers passed as an array.
- Path to binary file. Example: my_binary.bin

Type: object

Load CMAC

Type: object

If set, then the data to write immediately follows the range header. The length field contains the actual data length. ROM is calculating cmac from loaded data and storing on address known by ROM decided based on startAddress.

Address

Type: string or numberFormat: number

Address of memory block to be CMAC loaded.

Memory ID

Type: string or numberFormat: number

ID of memory block to be CMAC loaded.

Binary file

Type: stringFormat: file

Binary file to be loaded.

Type: object

Copy

Type: object

Used for copying data from one place to another. 32 bytes fixed size.

Address From

Type: string or numberFormat: number

Address of memory block to be copied.

Memory ID From

Type: string or numberFormat: number

ID of memory block to be copied.

Size

Type: string or numberFormat: number

Size of memory block to be copied.

Address To

Type: string or numberFormat: number

Address of memory where block to be copied.

Memory ID To

Type: string or numberFormat: number

ID of memory block where to be copied.

Type: object

Load with HASH locking

Type: object

If set, then the data to write immediately follows the range header. The length field contains the actual data length. ROM is calculating hash of the data and storing the value in the last 64 bytes of the loaded data, which are reserved for it.

Address

Type: string or numberFormat: number

Address of memory block to be loaded.

Memory ID

Type: string or numberFormat: number

ID of memory block to be loaded.

Binary file

Type: stringFormat: file

Binary file to be loaded.

Type: object

Load Key Blob

Type: object

Wrapped key blob immediately follows the range key blob header. The length field contains the actual data length.

Offset

Type: string or numberFormat: number

Offset of the key blob.

Wrapping key ID

Type: enum (of string)

Wrapping ID of key blob.

Must be one of:

  • "NXP_CUST_KEK_INT_SK"
  • "NXP_CUST_KEK_EXT_SK"

Binary file

Type: stringFormat: file

Binary file to be loaded.

Key Blob as plain text

Type: enum (of string)

Indicates whether key is provided as plaintext or not. If it's in plaintext this option also indicates whether it's as binary or hex

Must be one of:

  • "no"
  • "bin"
  • "hex"
Type: object

Configure memory

Type: object

Configure memory.

Address

Type: string or numberFormat: number

Configuration address.

Memory ID

Type: string or numberFormat: number

ID of memory block to be configured.

Type: object

Fill memory

Type: object

Used for filling of the memory range by same repeated int32 pattern.

Address

Type: string or numberFormat: number

Address of memory block to be filled.

Size

Type: string or numberFormat: number

Size of memory block to be filled.

Pattern

Type: string or numberFormat: number

Pattern which will be used to fill memory.

Type: object

Check firmware version

Type: object

Checks FW version value specified in command for specified counter ID. FW version value in command must be greater than value programmed in OTP to be accepted, otherwise rollback is detected and receive SB fails

Value - Firmware version

Type: string or numberFormat: number

Firmware version to be compared.

Counter ID

Type: enum (of string)

ID of FW counter to be checked.

Must be one of:

  • "none"
  • "nonsecure"
  • "secure"
  • "radio"
  • "snt"
  • "bootloader"
  • "radio_lp"