SecureBinary31 for mcxw716c




Type: object

The following properties are required:

  • mainRootCertPrivateKeyFile
Type: object

The following properties are required:

  • signPrivateKey

Must not be:

Type: object

The following properties are required:

  • signProvider

Type: object

The following properties are required:

  • signProvider

Must not be:


Type: object

The following properties are required:

  • mainRootCertPrivateKeyFile
Type: object

The following properties are required:

  • signPrivateKey

The chip family name

Type: enum (of string)

NXP chip family identifier.

Must be one of:

  • "k32w148"
  • "kw45b41z5"
  • "kw45b41z8"
  • "lpc55s36"
  • "mcxn235"
  • "mcxn236"
  • "mcxn546"
  • "mcxn547"
  • "mcxn946"
  • "mcxn947"
  • "mcxw716a"
  • "mcxw716c"
  • "mimxrt798s"
  • "rw610"
  • "rw612"
  • "k32w1xx"
  • "kw45xx"
  • "lpc55s3x"
  • "mcxn23x"
  • "mcxn9xx"
  • "mcxn94x"
  • "mcxw71xx"
  • "rt7xx"
  • "rw61x"

MCU revision

Type: enum (of string)

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

Must be one of:

  • "a0"
  • "a1"
  • "a2"
  • "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).

Main Certificate private key

Type: stringFormat: file

Main Certificate private key used to sign certificate. It can be replaced by signProvider key.

Main Certificate private key

Type: stringFormat: file

Main Certificate private key used to sign certificate. It can be replaced by signProvider key.

Signature Provider

Type: string

Signature provider configuration in format 'type=<identifier>;<key1>=<value1>;<key2>=<value2>'.

Certificate Block binary/config file

Type: stringFormat: file

Path to certificate block binary or config file.

Part Common Key

Type: 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

Type: object

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

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.

Binary values.

Type: string or number

32-bit binary values delimited by comma to be loaded.

Binary value

Type: string or number

Binary value to be loaded. Value will be converted to binary little endian format.

Authentication

Type: enum (of string)

If authentication is not used, just omit this option or set 'none'.

Must be one of:

  • "none"
  • "cmac"
  • "hashlocking"
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

Binary file to be programmed.

Binary value

Type: string or number

Binary value to be programmed, at least 4 bytes. Value will be converted to binary little endian format.

Binary values.

Type: string or number

32-bit binary values delimited by comma to be programmed.

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

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

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"