LPC55Sxx Secure Boot#
This notebook describes how to set up a basic secure boot on LPC55Sxx devices using the SPSDK command line utilities, it is based on the application note AN12283.
Secure Boot ensures authenticity, integrity and confidentiality of any software during the boot process and ensures that the intended secure level is reached. Secure Boot ensures that only properly signed (Original equipment manufacturer (OEM)-authentic) code can be executed on a device, protecting debug access is of utmost importance. Secure boot provides guarantee that unauthorized code cannot be executed on a given product.
At the end of this example, the signed application will be provided and the chip will be secured for that reason only application signed by key’s owner can boot.
1. Prerequisites#
SPSDK is needed with examples extension.
pip install spsdk[examples]
(Please refer to the installation documentation.)
FAMILY = "lpc55s69"
WORKSPACE = "workspace/" # change this to path to your workspace
KEYS = "../_data/keys/rsa2048/" # change this to path to your keys
VERBOSITY = (
"" # verbosity of commands, might be -v or -vv for debug or blank for no additional info
)
ELF_PATH = "lpcxpresso55s69_led_blinky.axf"
BINARY_FILE = WORKSPACE + "lpcxpresso55s69_led_blinky.bin"
2. Image preparation#
First step is to prepare a binary file in BIN or SREC format. Usually the output from the IDE is in ELF (AXF) format. ELF file cannot be used directly, it needs to be converted to plain (BIN) binary. To get the raw binary file you can for example use the arm-none-eabi-objcopy which is part of the armgcc toolchain. In MCUXpresso You can configure it as a post build step, this is better described here.
Another option is to use the SPSDK nxpimage tool that can convert ELF file to BIN.
# convert the elf file to bin using nxpimage
%! nxpimage $VERBOSITY utils binary-image convert -i $ELF_PATH -f BIN -o $BINARY_FILE
assert os.path.exists(BINARY_FILE)
nxpimage utils binary-image convert -i lpcxpresso55s69_led_blinky.axf -f BIN -o workspace/lpcxpresso55s69_led_blinky.bin
Success. (Converted file: workspace/lpcxpresso55s69_led_blinky.bin created.)
3. Prepare Master Boot Image (MBI)#
We used the nxpimage tool for image conversion. Plain binary file can be used directly for the unsecure boot. To setup a secure boot we need to generate Master Boot Image (MBI). MBI can also be used directly or as an output to Secure Binary container in addition to raw binary it might contain CRC checksum, certificates and ARM TrustZone configuration.
There are three types of MBI for LP55sxx based on the authentication type: Plain, CRC and Signed and two variants of CRC and Signed images based on the execution target, either XIP (Executed in place) or in RAM.
These images contain a CRC32 field computed on the entire image (excluding the CRC32 field).
LPC55Sxx devices support booting of RSA2048 signed images using RSASSA-PKCS1-v1_5 signature verification. LPC55Sxx devices support 2048-bit or 4096-bit RSA keys and X.509 V3 certificates. Image validation is a two-step process. The first step is the validation of the X.509 certificate inserted in the image. This contains the image public key used in the second step to validate the entire image (including the certificate) to allow customers to add additional PKI structure. The signed image boot supports up to 4 Root of Trust (RoT) keys and up to 16 Image key certificates with image revocation feature.
3.1 Prepare Certificate Block v1.0#
In order to create signed MBI the certification block that keeps the RoT info must be prepared.
In our case we have already prepared certification block to simplify the example.
To learn how to create a certificate blok check the whole example is presented in dedicated notebook (see How-to-get-cert-block).
3.2 Prepare MBI Configuration file#
Generation of MBI is done with the nxpimage tool. First, we need to get the configuration template that will be used as a starting point.
Let’s begin by creating a template configuration file using the nxpimage mbi get-templates
command. To simplify this example, we have already prepared a certificate block, which can be found in the mbi_config_lpc55s6x.yaml file. Below, we’ll compare the differences between the template and our customized example to highlight the additions we’ve made.
# Get difference of template and user YAML configuration
YamlDiffWidget("inputs/lpc55sxx_secure_boot.diffc").html
nxpimage mbi get-templates -f lpc55s69 -o workspace/ --force
Creating workspace/lpc55s69_xip_plain.yaml template file.
Creating workspace/lpc55s69_xip_crc.yaml template file.
Creating workspace/lpc55s69_xip_signed.yaml template file.
Creating workspace/lpc55s69_load_to_ram_crc.yaml template file.
Creating workspace/lpc55s69_load_to_ram_signed.yaml template file.
Configuration Differences
# ============== Master Boot Image Configuration template for lpc55s69:latest, Plain Signed XIP Image. ===============
# ======================================================================================================================
# == General Options ==
# ======================================================================================================================
# -------------------------------------===== The chip family name [Required] =====--------------------------------------
# Description: NXP chip family identifier.
# Possible options:
# lpc5528, lpc5534, lpc5536, lpc55s04, lpc55s06, lpc55s14, lpc55s16, lpc55s26, lpc55s28, lpc55s36, lpc55s66, lpc55s69,
# mc56f81646, mc56f81648, mc56f81666, mc56f81668, mc56f81746, mc56f81748, mc56f81766, mc56f81768, mc56f81866,
# mc56f81868, mcxa132, mcxa133, mcxa142, mcxa143, mcxa144, mcxa145, mcxa146, mcxa152, mcxa153, mcxa154, mcxa155,
# mcxa156, mcxn235, mcxn236, mcxn546, mcxn547, mcxn946, mcxn947, mcxw716a, mcxw716c, mimxrt533s, mimxrt555s, mimxrt595s,
# mimxrt685s, mimxrt798s, mwct2012, mwct2012a, mwct20d2, mwct20d2a, nhs52s04, rw610, rw612>
family: lpc55s69
# -----------------------------------------===== MCU revision [Optional] =====------------------------------------------
# Description: Revision of silicon. The 'latest' name, means most current revision.
# Possible options:
revision: latest
# ======================================================================================================================
# == Basic Settings ==
# ======================================================================================================================
# --------------------------------------===== Application target [Required] =====---------------------------------------
# Description: Definition if application is Execute in Place(XiP) or loaded to RAM during reset sequence.
# Possible options:
outputImageExecutionTarget: xip
# -------------------------------===== Type of boot image authentication [Required] =====-------------------------------
# Description: Specification of final master boot image authentication.
# Possible options:
outputImageAuthenticationType: signed
# ---------------------------------------===== Output Image name [Required] =====---------------------------------------
# Description: The path for result binary file.
masterBootOutputFile: my_mbi.bin
masterBootOutputFile: ../workspace/lpc55s6x_mbi.bin
# ------------------------------------===== Plain application image [Required] =====------------------------------------
# Description: The input application image to by modified to Master Boot Image.
inputImageFile: my_application.bin
inputImageFile: inputs/lpcxpresso55s69_led_blinky.bin
# ======================================================================================================================
# == Trust Zone Settings ==
# ======================================================================================================================
# ------------------------------------===== TrustZone enable option [Optional] =====------------------------------------
# Description: If not specified, the Trust zone is disabled.
enableTrustZone: false We also do not enable TrustZone in this example
# ---------------------------------===== TrustZone Customization file [Optional] =====----------------------------------
# Description: If not specified, but TrustZone is enabled(enableTrustZone) the default values are used.
trustZonePresetFile: my_tz_custom.yaml
# ======================================================================================================================
# == Certificate Block V1 ==
# ======================================================================================================================
# -----------------------------===== Certificate Block binary/config file [Required] =====------------------------------
# Description: Path to certificate block binary or config file.
certBlock: cert_block.yaml Add path to the configuration file containing certificates or path to binary block
certBlock: inputs/cert_block.yaml
# ======================================================================================================================
# == Image Signing Settings ==
# ======================================================================================================================
# --------------------------===== Main Certificate private key [Conditionally required] =====---------------------------
# Description: Main Certificate private key used to sign certificate. It can be replaced by signProvider key.
signPrivateKey: main_prv_key.pem Add path to your private key file for signing
signPrivateKey: ../../_data/keys/rsa2048/IMG1_1_sha256_2048_65537_v3_usr_key.pem
# -------------------------------===== Signature Provider [Conditionally required] =====--------------------------------
# Description: Signature provider configuration in format 'type=; = ; = '.
signProvider: type=file;file_path=my_prv_key.pem This is removed, because we are using private key in this example
# Copyright 2024 NXP
#
# SPDX-License-Identifier: BSD-3-Clause
# ================== Master Boot Image Configuration template for lpc55s69, Plain Signed XIP Image. ==================
# ======================================================================================================================
# == Basic Settings ==
# ======================================================================================================================
# ------------------------------------------===== MCU family [Required] =====-------------------------------------------
# Description: MCU family name.
# Possible options:
family: lpc55s69
# --------------------------------------===== Application target [Required] =====---------------------------------------
# Description: Definition if application is Execute in Place(XiP) or loaded to RAM during reset sequence.
# Possible options:
outputImageExecutionTarget: xip
# -------------------------------===== Type of boot image authentication [Required] =====-------------------------------
# Description: Specification of final master boot image authentication.
# Possible options:
outputImageAuthenticationType: signed
# ------------------------------------===== Master Boot Image name [Required] =====-------------------------------------
# Description: The file for Master Boot Image result file.
masterBootOutputFile: ../workspace/lpc55s6x_mbi.bin
# ------------------------------------===== Plain application image [Required] =====------------------------------------
# Description: The input application image to by modified to Master Boot Image.
inputImageFile: inputs/lpcxpresso55s69_led_blinky.bin
# ======================================================================================================================
# == Trust Zone Settings ==
# ======================================================================================================================
# ------------------------------------===== TrustZone enable option [Optional] =====------------------------------------
# Description: If not specified, the Trust zone is disabled.
enableTrustZone: false We also do not enable TrustZone in this example
# ---------------------------------===== TrustZone Customization file [Optional] =====----------------------------------
# Description: If not specified, but TrustZone is enabled(enableTrustZone) the default values are used.
# trustZonePresetFile: my_tz_custom.yaml
# ======================================================================================================================
# == Certificate Block V1 ==
# ======================================================================================================================
# -----------------------------===== Certificate Block binary/config file [Required] =====------------------------------
# Description: Path to certificate block binary or config file.
certBlock: inputs/cert_block.yaml Add path to the configuration file containing certificates or path to binary block
# ======================================================================================================================
# == Image Signing Settings ==
# ======================================================================================================================
# --------------------------===== Main Certificate private key [Conditionally required] =====---------------------------
# Description: Main Certificate private key used to sign certificate. It can be replaced by signProvider key.
signPrivateKey: ../../_data/keys/rsa2048/IMG1_1_sha256_2048_65537_v3_usr_key.pem Add path to your private key file for signing
# -------------------------------===== Signature Provider [Conditionally required] =====--------------------------------
# Description: Signature provider configuration in format 'type=; = ; = ".
# signProvider: type=file;file_path=my_prv_key.pem
3.3 MBI generation#
We have created certificates, keys and certificate block required for the creation of Master Boot Image. So now it’s time to create an MBI.
MBI_BIN_NAME = "lpc55s6x_mbi.bin"
MBI_CONFIG_PATH = "inputs/mbi_config_lpc55s6x.yaml"
# export Master Boot Image
%! nxpimage $VERBOSITY mbi export -c $MBI_CONFIG_PATH
BIN_OUTPUT_PATH = WORKSPACE + MBI_BIN_NAME
assert os.path.exists(BIN_OUTPUT_PATH)
nxpimage mbi export -c inputs/mbi_config_lpc55s6x.yaml
RKTH: 60a4d31a7a08825285e3d3e961c850f41876c384e20cf7037664c6aebecc8b88
Success. (Master Boot Image: workspace/lpc55s6x_mbi.bin created.)
Now we have a bootable MBI that we could test, but in order to do that we have to configure PFR.
4. PFR#
PFR - Protected Flash Region. LPC55Sxx contains configuration for the boot ROM in flash region which is protected. This protected region contains settings of boot configuration, security policy, PRINCE settings and so on.
Protected Flash Region with four regions:
Customer in-field Programming Area (CFPA)
Image revoke
RoT key revoke
Customer Manufacturing Programming Area (CMPA)
Boot configuration
RoT key table hash
Debug configuration
Prince configuration
Key Storage for PUF
NXP unique ID and manufacturing system
For PFR configuration there’s tool PFR. Let’s prepare PFR configuration for CFPA and CMPA pages.
4.1 CMPA page preparation#
ROTKH in CMPA must be set to get the secure boot working. There a three ways to accomplish that. You might set ROTKH in the PFR configuration directly as we did in this example or you might provide a path to the certificate block or master boot image configuration with (-e or –rot-config) option.
The last way is to use the –secret-file option, where you can specify paths to secret files (keys or certificates) that will be used for calculating the ROTKH value.
YamlDiffWidget("inputs/lpc55sxx_secure_boot_cmpa.diffc").html
pfr get-template -t cmpa -f lpc55s69 -o workspace/cmpa_lpc55s6x.yaml --force
The PFR cmpa template for lpc55s69 has been saved into workspace/cmpa_lpc55s6x.yaml YAML file
Configuration Differences
# ========================================= PFR CMPA configuration template ==========================================
# ======================================================================================================================
# == General Options ==
# ======================================================================================================================
# -------------------------------------===== The chip family name [Required] =====--------------------------------------
# Description: NXP chip family identifier.
# Possible options:
# lpc55s06, lpc55s14, lpc55s16, lpc55s26, lpc55s28, lpc55s36, lpc55s66, lpc55s69, mcxa132, mcxa133, mcxa142, mcxa143,
# mcxa144, mcxa145, mcxa146, mcxa152, mcxa153, mcxa154, mcxa155, mcxa156, mcxn235, mcxn236, mcxn546, mcxn547, mcxn946,
# mcxn947, nhs52s04>
family: lpc55s69
# -----------------------------------------===== MCU revision [Optional] =====------------------------------------------
# Description: Revision of silicon. The 'latest' name, means most current revision.
# Possible options:
revision: latest
# ------------------------------------===== Configuration area type [Optional] =====------------------------------------
# Description: PFR / IFR type
# Possible options:
type: CMPA
# ----------------------------------===== Configuration area Settings [Required] =====----------------------------------
settings:
# ------------------------------------------===== BOOT_CFG [Optional] =====-------------------------------------------
# Description: Offset: 0x00000000, Width: 32b; Boot Configuration
BOOT_CFG:
# -------------------------------------===== DEFAULT_ISP_MODE [Optional] =====--------------------------------------
# Description: Offset: 4b, Width: 3b, Default ISP mode:
# - AUTO_ISP, (0): Auto ISP
# - USB_HID_ISP, (1): USB_HID_ISP
# - UART_ISP, (2): UART ISP
# - SPI_ISP, (3): SPI Slave ISP
# - I2C_ISP, (4): I2C Slave ISP
# - DISABLE, (7): Disable ISP fall through
# Possible options:
DEFAULT_ISP_MODE: AUTO_ISP
# ----------------------------------------===== BOOT_SPEED [Optional] =====-----------------------------------------
# Description: Offset: 7b, Width: 2b, Core clock:
# - SYSTEM_SPEED_CODE, (0): Defined by NMPA.SYSTEM_SPEED_CODE
# - FRO_96MHZ, (1): 96MHz FRO
# - FRO_48MHZ, (2): 48MHz FRO
# Possible options:
BOOT_SPEED: SYSTEM_SPEED_CODE
# -----------------------------------------===== USB_SPEED [Optional] =====-----------------------------------------
# Description: Offset: 9b, Width: 2b, Defines which USB module is used for ISP:
# - USB_SPEED_0, (0): Defined by NMPA.USBCFG.USB_SPEED
# - USB_FS, (1): USB FS module used for ISP
# - USB_HS, (2): USB HS module used for ISP
# - USB_SPEED_1, (3): Defined by NMPA.USBCFG.USB_SPEED
# Possible options:
USB_SPEED: USB_SPEED_0
# -------------------------------------===== BOOT_FAILURE_PIN [Optional] =====--------------------------------------
# Description: Offset: 24b, Width: 8b, GPIO port and pin number to use for indicating failure reason. The toggle
# rate of the pin is used to decode the error type. [2:0] - Defines GPIO port [7:3] - Defines GPIO pin
BOOT_FAILURE_PIN: 0
# ----------------------------------------===== SPI_FLASH_CFG [Optional] =====----------------------------------------
# Description: Offset: 0x00000004, Width: 32b; SPI Flash Configuration
SPI_FLASH_CFG:
# -----------------------------------===== SPI_RECOVERY_BOOT_EN [Optional] =====------------------------------------
# Description: Offset: 0b, Width: 5b, SPI flash recovery boot is enabled, if non-zero value is written to this
# field.
SPI_RECOVERY_BOOT_EN: 0
# -------------------------------------------===== USB_ID [Optional] =====--------------------------------------------
# Description: Offset: 0x00000008, Width: 32b; USB Identifiers
USB_ID:
# ---------------------------------------===== USB_VENDOR_ID [Optional] =====---------------------------------------
# Description: Offset: 0b, Width: 16b, USB Vendor ID
USB_VENDOR_ID: 0
# --------------------------------------===== USB_PRODUCT_ID [Optional] =====---------------------------------------
# Description: Offset: 16b, Width: 16b, USB Product ID
USB_PRODUCT_ID: 0
# ------------------------------------------===== SDIO_CFG [Optional] =====-------------------------------------------
# Description: Offset: 0x0000000C, Width: 32b; SDIO Configuration
SDIO_CFG: '0x00000000'
# --------------------------------------===== DCFG_CC_SOCU_PIN [Optional] =====---------------------------------------
# Description: Offset: 0x00000010, Width: 32b; Device Configuration Credential Constraints for SoC specific Use
# Pinned.
# Combinations of PIN and DFLT bits and resulting restriction level:
# - PIN=1,DFLT=1: Restriction level 0. Access to the sub-domain is always enabled. This setting is provided for module
# use case scenario where DCFG_CC_SOCU_NS would be used to define further access restrictions before final deployment
# of the product.
# - PIN=0,DFLT=0: Restriction level 1. Access to the sub-domain is disabled at startup. But the access can be enabled
# through debug authentication process by providing appropriate Debug Credential (DC) certificate.
# - PIN=0,DFLT=1: Illegal setting. Part may lock-up if this setting is selected.
# - PIN=1,DFLT=0: Restriction level 3. Access to the sub-domain is permanently disabled and can't be reversed. This
# setting offers the highest level of restriction.
DCFG_CC_SOCU_PIN:
# -------------------------------------------===== NIDEN [Optional] =====-------------------------------------------
# Description: Offset: 0b, Width: 1b, Non Secure non-invasive debug enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
NIDEN: USE_DAP
# -------------------------------------------===== DBGEN [Optional] =====-------------------------------------------
# Description: Offset: 1b, Width: 1b, Non Secure debug enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
DBGEN: USE_DAP
# ------------------------------------------===== SPNIDEN [Optional] =====------------------------------------------
# Description: Offset: 2b, Width: 1b, Secure non-invasive debug enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
SPNIDEN: USE_DAP
# ------------------------------------------===== SPIDEN [Optional] =====-------------------------------------------
# Description: Offset: 3b, Width: 1b, Secure invasive debug enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
SPIDEN: USE_DAP
# -------------------------------------------===== TAPEN [Optional] =====-------------------------------------------
# Description: Offset: 4b, Width: 1b, JTAG TAP enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
TAPEN: USE_DAP
# ----------------------------------------===== CPU1_DBGEN [Optional] =====-----------------------------------------
# Description: Offset: 5b, Width: 1b, CPU1 (Micro cortex M33) invasive debug enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
CPU1_DBGEN: USE_DAP
# ----------------------------------------===== ISP_CMD_EN [Optional] =====-----------------------------------------
# Description: Offset: 6b, Width: 1b, ISP Boot Command enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
ISP_CMD_EN: USE_DAP
# ---------------------------------------===== FA_ME_CMD_EN [Optional] =====----------------------------------------
# Description: Offset: 7b, Width: 1b, Fault Analysis/Mass Erase Command enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
FA_ME_CMD_EN: USE_DAP
# ----------------------------------------===== CPU1_NIDEN [Optional] =====-----------------------------------------
# Description: Offset: 9b, Width: 1b, CPU1 (Micro cortex M33) non-invasive debug enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
CPU1_NIDEN: USE_DAP
# ----------------------------------------===== UUID_CHECK [Optional] =====-----------------------------------------
# Description: Offset: 15b, Width: 1b, Enforce UUID match during Debug authentication.
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
UUID_CHECK: DISABLED
# --------------------------------------===== DCFG_CC_SOCU_DFLT [Optional] =====--------------------------------------
# Description: Offset: 0x00000014, Width: 32b; Device Configuration Credential Constraints for SoC specific Use Debug
# Filter.
# Combinations of PIN and DFLT bits and resulting restriction level:
# - PIN=1,DFLT=1: Restriction level 0. Access to the sub-domain is always enabled. This setting is provided for module
# use case scenario where DCFG_CC_SOCU_NS would be used to define further access restrictions before final deployment
# of the product.
# - PIN=0,DFLT=0: Restriction level 1. Access to the sub-domain is disabled at startup. But the access can be enabled
# through debug authentication process by providing appropriate Debug Credential (DC) certificate.
# - PIN=0,DFLT=1: Illegal setting. Part may lock-up if this setting is selected.
# - PIN=1,DFLT=0: Restriction level 3. Access to the sub-domain is permanently disabled and can't be reversed. This
# setting offers the highest level of restriction.
DCFG_CC_SOCU_DFLT:
# -------------------------------------------===== NIDEN [Optional] =====-------------------------------------------
# Description: Offset: 0b, Width: 1b, Non Secure non-invasive debug fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
NIDEN: DISABLED
# -------------------------------------------===== DBGEN [Optional] =====-------------------------------------------
# Description: Offset: 1b, Width: 1b, Non Secure debug fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
DBGEN: DISABLED
# ------------------------------------------===== SPNIDEN [Optional] =====------------------------------------------
# Description: Offset: 2b, Width: 1b, Secure non-invasive debug fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
SPNIDEN: DISABLED
# ------------------------------------------===== SPIDEN [Optional] =====-------------------------------------------
# Description: Offset: 3b, Width: 1b, Secure invasive debug fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
SPIDEN: DISABLED
# -------------------------------------------===== TAPEN [Optional] =====-------------------------------------------
# Description: Offset: 4b, Width: 1b, JTAG TAP fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
TAPEN: DISABLED
# ----------------------------------------===== CPU1_DBGEN [Optional] =====-----------------------------------------
# Description: Offset: 5b, Width: 1b, CPU1 (Micro cortex M33) invasive debug fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
CPU1_DBGEN: DISABLED
# ----------------------------------------===== ISP_CMD_EN [Optional] =====-----------------------------------------
# Description: Offset: 6b, Width: 1b, ISP Boot Command fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
ISP_CMD_EN: DISABLED
# ---------------------------------------===== FA_ME_CMD_EN [Optional] =====----------------------------------------
# Description: Offset: 7b, Width: 1b, Fault Analysis/Mass Erase Command fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
FA_ME_CMD_EN: DISABLED
# ----------------------------------------===== CPU1_NIDEN [Optional] =====-----------------------------------------
# Description: Offset: 9b, Width: 1b, CPU1 (Micro cortex M33) non-invasive debug fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
CPU1_NIDEN: DISABLED
# ----------------------------------------===== VENDOR_USAGE [Optional] =====-----------------------------------------
# Description: Offset: 0x00000018, Width: 32b; Vendor Usage
VENDOR_USAGE:
# ---------------------------------------===== VENDOR_USAGE [Optional] =====----------------------------------------
# Description: Offset: 16b, Width: 16b, Upper 16 bits of vendor usage field defined in DAP. Lower 16-bits come from
# customer field area.
VENDOR_USAGE: 0
# ---------------------------------------===== SECURE_BOOT_CFG [Optional] =====---------------------------------------
# Description: Offset: 0x0000001C, Width: 32b; Secure boot configuration
SECURE_BOOT_CFG:
# -------------------------------------------===== RSA4K [Optional] =====-------------------------------------------
# Description: Offset: 0b, Width: 2b, Use RSA4096 keys only.
# - RSA2048, (0): Allow RSA2048 and higher
# - RSA4096_0, (1): RSA4096 only
# - RSA4096_1, (2): RSA4096 only
# - RSA4096_2, (3): RSA4096 only
# Possible options:
RSA4K: RSA2048
# -------------------------------------===== DICE_INC_NXP_CFG [Optional] =====--------------------------------------
# Description: Offset: 2b, Width: 2b, Include NXP area in DICE computation.
# - NOT_INCLUDE, (0): not included
# - INCLUDE_0, (1): included
# - INCLUDE_1, (2): included
# - INCLUDE_2, (3): included
# Possible options:
DICE_INC_NXP_CFG: NOT_INCLUDE
# ---------------------------------------===== DICE_CUST_CFG [Optional] =====---------------------------------------
# Description: Offset: 4b, Width: 2b, Include Customer factory area (including keys) in DICE computation.
# - NOT_INCLUDE, (0): not included
# - INCLUDE_0, (1): included
# - INCLUDE_1, (2): included
# - INCLUDE_2, (3): included
# Possible options:
DICE_CUST_CFG: NOT_INCLUDE
# -----------------------------------------===== SKIP_DICE [Optional] =====-----------------------------------------
# Description: Offset: 6b, Width: 2b, Skip DICE computation
# - ENABLE, (0): Enable DICE
# - DISABLE_0, (1): Disable DICE
# - DISABLE_1, (2): Disable DICE
# - DISABLE_2, (3): Disable DICE
# Possible options:
SKIP_DICE: ENABLE Skip DICE
SKIP_DICE: DISABLE_0
# --------------------------------------===== TZM_IMAGE_TYPE [Optional] =====---------------------------------------
# Description: Offset: 8b, Width: 2b, TrustZone-M mode
# - HEADER, (0): TZ-M image mode is taken from application image header
# - DISABLED, (1): TZ-M disabled image, boots to non-secure mode
# - ENABLED, (2): TZ-M enabled image, boots to secure mode
# - PRESET, (3): TZ-M enabled image with TZ-M preset, boot to secure mode TZ-M pre-configured by data from
# application image header
# Possible options:
TZM_IMAGE_TYPE: HEADER
# ---------------------------------------===== BLOCK_SET_KEY [Optional] =====---------------------------------------
# Description: Offset: 10b, Width: 2b, Block PUF key code generation
# - ALLOW, (0): Allow PUF Key Code generation
# - DISABLE_0, (1): Disable PUF Key Code generation
# - DISABLE_1, (2): Disable PUF Key Code generation
# - DISABLE_2, (3): Disable PUF Key Code generation
# Possible options:
BLOCK_SET_KEY: ALLOW
# ---------------------------------------===== BLOCK_ENROLL [Optional] =====----------------------------------------
# Description: Offset: 12b, Width: 2b, Block PUF enrollment
# - ALLOW, (0): Allow PUF enroll operation
# - DISABLE_0, (1): Disable PUF enroll operation
# - DISABLE_1, (2): Disable PUF enroll operation
# - DISABLE_2, (3): Disable PUF enroll operation
# Possible options:
BLOCK_ENROLL: ALLOW
# ------------------------------------===== DICE_INC_SEC_EPOCH [Optional] =====-------------------------------------
# Description: Offset: 14b, Width: 2b, Include security EPOCH in DICE
DICE_INC_SEC_EPOCH: 0
# ----------------------------------------===== SEC_BOOT_EN [Optional] =====----------------------------------------
# Description: Offset: 30b, Width: 2b, Secure boot enable
# - DISABLE, (0): Plain image (internal flash with or without CRC)
# - ENABLE_0, (1): Boot signed images. (internal flash, RSA signed)
# - ENABLE_1, (2): Boot signed images. (internal flash, RSA signed)
# - ENABLE_2, (3): Boot signed images. (internal flash, RSA signed)
# Possible options:
SEC_BOOT_EN: DISABLE Enable the secure boot
SEC_BOOT_EN: ENABLE_0
# --------------------------------------===== PRINCE_BASE_ADDR [Optional] =====---------------------------------------
# Description: Offset: 0x00000020, Width: 32b; Prince Base Address
PRINCE_BASE_ADDR:
# -----------------------------------------===== ADDR0_PRG [Optional] =====-----------------------------------------
# Description: Offset: 0b, Width: 4b, Programmable portion of the base address of region 0
ADDR0_PRG: 0
# -----------------------------------------===== ADDR1_PRG [Optional] =====-----------------------------------------
# Description: Offset: 4b, Width: 4b, Programmable portion of the base address of region 1
ADDR1_PRG: 0
# -----------------------------------------===== ADDR2_PRG [Optional] =====-----------------------------------------
# Description: Offset: 8b, Width: 4b, Programmable portion of the base address of region 2
ADDR2_PRG: 0
# -----------------------------------------===== LOCK_REG0 [Optional] =====-----------------------------------------
# Description: Offset: 18b, Width: 2b, Lock PRINCE region0 settings
# - UNLOCK, (0): Region is not locked
# - LOCK_0, (1): Region is locked
# - LOCK_1, (2): Region is locked
# - LOCK_2, (3): Region is locked
# Possible options:
LOCK_REG0: UNLOCK
# -----------------------------------------===== LOCK_REG1 [Optional] =====-----------------------------------------
# Description: Offset: 20b, Width: 2b, Lock PRINCE region1 settings
# - UNLOCK, (0): Region is not locked
# - LOCK_0, (1): Region is locked
# - LOCK_1, (2): Region is locked
# - LOCK_2, (3): Region is locked
# Possible options:
LOCK_REG1: UNLOCK
# ------------------------------------===== REG0_ERASE_CHECK_EN [Optional] =====------------------------------------
# Description: Offset: 24b, Width: 2b, For PRINCE region0 enable checking whether all encrypted pages are erased
# together
# - DISABLE, (0): Region is disabled
# - ENABLE_0, (1): Region is enabled
# - ENABLE_1, (2): Region is enabled
# - ENABLE_2, (3): Region is enabled
# Possible options:
REG0_ERASE_CHECK_EN: DISABLE
# ------------------------------------===== REG1_ERASE_CHECK_EN [Optional] =====------------------------------------
# Description: Offset: 26b, Width: 2b, For PRINCE region1 enable checking whether all encrypted pages are erased
# together
# - DISABLE, (0): Region is disabled
# - ENABLE_0, (1): Region is enabled
# - ENABLE_1, (2): Region is enabled
# - ENABLE_2, (3): Region is enabled
# Possible options:
REG1_ERASE_CHECK_EN: DISABLE
# ------------------------------------===== REG2_ERASE_CHECK_EN [Optional] =====------------------------------------
# Description: Offset: 28b, Width: 2b, For PRINCE region2 enable checking whether all encrypted pages are erased
# together
# - DISABLE, (0): Region is disabled
# - ENABLE_0, (1): Region is enabled
# - ENABLE_1, (2): Region is enabled
# - ENABLE_2, (3): Region is enabled
# Possible options:
REG2_ERASE_CHECK_EN: DISABLE
# -----------------------------------------===== PRINCE_SR_0 [Optional] =====-----------------------------------------
# Description: Offset: 0x00000024, Width: 32b; Region 0, sub-region enable
PRINCE_SR_0: '0x00000000'
# -----------------------------------------===== PRINCE_SR_1 [Optional] =====-----------------------------------------
# Description: Offset: 0x00000028, Width: 32b; Region 1, sub-region enable
PRINCE_SR_1: '0x00000000'
# -----------------------------------------===== PRINCE_SR_2 [Optional] =====-----------------------------------------
# Description: Offset: 0x0000002C, Width: 32b; Region 2, sub-region enable
PRINCE_SR_2: '0x00000000'
# ----------------------------------===== XTAL_32KHZ_CAPABANK_TRIM [Optional] =====-----------------------------------
# Description: Offset: 0x00000030, Width: 32b; Xtal 32kHz capabank trimming.
XTAL_32KHZ_CAPABANK_TRIM:
# ----------------------------------------===== TRIM_VALID [Optional] =====-----------------------------------------
# Description: Offset: 0b, Width: 1b, XTAL 32kHz capa bank trimmings
# - NOT_TRIM, (0): Capa Bank trimmings not valid. Default trimmings value are used
# - VALID, (1): Capa Bank trimmings valid
# Possible options:
TRIM_VALID: NOT_TRIM
# ---------------------------------===== XTAL_LOAD_CAP_IEC_PF_X100 [Optional] =====---------------------------------
# Description: Offset: 1b, Width: 10b, Load capacitance, pF x 100. For example, 6pF becomes 600.
XTAL_LOAD_CAP_IEC_PF_X100: 0
# ---------------------------------===== PCB_XIN_PARA_CAP_PF_X100 [Optional] =====----------------------------------
# Description: Offset: 11b, Width: 10b, PCB XIN parasitic capacitance, pF x 100. For example, 6pF becomes 600.
PCB_XIN_PARA_CAP_PF_X100: 0
# ---------------------------------===== PCB_XOUT_PARA_CAP_PF_X100 [Optional] =====---------------------------------
# Description: Offset: 21b, Width: 10b, PCB XOUT parasitic capacitance, pF x 100. For example, 6pF becomes 600.
PCB_XOUT_PARA_CAP_PF_X100: 0
# ----------------------------------===== XTAL_16MHZ_CAPABANK_TRIM [Optional] =====-----------------------------------
# Description: Offset: 0x00000034, Width: 32b; Xtal 16MHz capabank trimming.
XTAL_16MHZ_CAPABANK_TRIM:
# ----------------------------------------===== TRIM_VALID [Optional] =====-----------------------------------------
# Description: Offset: 0b, Width: 1b, XTAL 16MHz capa bank trimmings
# - NOT_TRIM, (0): Capa Bank trimmings not valid. Default trimmings value are used
# - VALID, (1): Capa Bank trimmings valid
# Possible options:
TRIM_VALID: NOT_TRIM
# ---------------------------------===== XTAL_LOAD_CAP_IEC_PF_X100 [Optional] =====---------------------------------
# Description: Offset: 1b, Width: 10b, Load capacitance, pF x 100. For example, 6pF becomes 600.
XTAL_LOAD_CAP_IEC_PF_X100: 0
# ---------------------------------===== PCB_XIN_PARA_CAP_PF_X100 [Optional] =====----------------------------------
# Description: Offset: 11b, Width: 10b, PCB XIN parasitic capacitance, pF x 100. For example, 6pF becomes 600.
PCB_XIN_PARA_CAP_PF_X100: 0
# ---------------------------------===== PCB_XOUT_PARA_CAP_PF_X100 [Optional] =====---------------------------------
# Description: Offset: 21b, Width: 10b, PCB XOUT parasitic capacitance, pF x 100. For example, 6pF becomes 600.
PCB_XOUT_PARA_CAP_PF_X100: 0
# --------------------------------------------===== ROTKH [Optional] =====--------------------------------------------
# Description: Offset: 0x00000050, Width: 256b; ROTKH field is compounded by 8 32-bit fields and contains Root key
# table hash
ROTKH: '0000000000000000000000000000000000000000000000000000000000000000' This is the most important part, we must specify ROTKH from the certificate block
ROTKH: '44b45886d6ec1194a87ccc7d767e74c9191049ad2f2b26bd1578e011a4fdd038'
# --------------------------------------===== CUSTOMER_DEFINED0 [Optional] =====--------------------------------------
# Description: Offset: 0x00000100, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED0: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED1 [Optional] =====--------------------------------------
# Description: Offset: 0x00000104, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED1: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED2 [Optional] =====--------------------------------------
# Description: Offset: 0x00000108, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED2: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED3 [Optional] =====--------------------------------------
# Description: Offset: 0x0000010C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED3: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED4 [Optional] =====--------------------------------------
# Description: Offset: 0x00000110, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED4: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED5 [Optional] =====--------------------------------------
# Description: Offset: 0x00000114, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED5: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED6 [Optional] =====--------------------------------------
# Description: Offset: 0x00000118, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED6: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED7 [Optional] =====--------------------------------------
# Description: Offset: 0x0000011C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED7: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED8 [Optional] =====--------------------------------------
# Description: Offset: 0x00000120, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED8: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED9 [Optional] =====--------------------------------------
# Description: Offset: 0x00000124, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED9: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED10 [Optional] =====--------------------------------------
# Description: Offset: 0x00000128, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED10: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED11 [Optional] =====--------------------------------------
# Description: Offset: 0x0000012C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED11: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED12 [Optional] =====--------------------------------------
# Description: Offset: 0x00000130, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED12: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED13 [Optional] =====--------------------------------------
# Description: Offset: 0x00000134, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED13: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED14 [Optional] =====--------------------------------------
# Description: Offset: 0x00000138, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED14: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED15 [Optional] =====--------------------------------------
# Description: Offset: 0x0000013C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED15: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED16 [Optional] =====--------------------------------------
# Description: Offset: 0x00000140, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED16: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED17 [Optional] =====--------------------------------------
# Description: Offset: 0x00000144, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED17: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED18 [Optional] =====--------------------------------------
# Description: Offset: 0x00000148, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED18: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED19 [Optional] =====--------------------------------------
# Description: Offset: 0x0000014C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED19: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED20 [Optional] =====--------------------------------------
# Description: Offset: 0x00000150, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED20: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED21 [Optional] =====--------------------------------------
# Description: Offset: 0x00000154, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED21: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED22 [Optional] =====--------------------------------------
# Description: Offset: 0x00000158, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED22: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED23 [Optional] =====--------------------------------------
# Description: Offset: 0x0000015C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED23: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED24 [Optional] =====--------------------------------------
# Description: Offset: 0x00000160, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED24: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED25 [Optional] =====--------------------------------------
# Description: Offset: 0x00000164, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED25: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED26 [Optional] =====--------------------------------------
# Description: Offset: 0x00000168, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED26: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED27 [Optional] =====--------------------------------------
# Description: Offset: 0x0000016C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED27: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED28 [Optional] =====--------------------------------------
# Description: Offset: 0x00000170, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED28: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED29 [Optional] =====--------------------------------------
# Description: Offset: 0x00000174, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED29: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED30 [Optional] =====--------------------------------------
# Description: Offset: 0x00000178, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED30: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED31 [Optional] =====--------------------------------------
# Description: Offset: 0x0000017C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED31: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED32 [Optional] =====--------------------------------------
# Description: Offset: 0x00000180, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED32: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED33 [Optional] =====--------------------------------------
# Description: Offset: 0x00000184, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED33: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED34 [Optional] =====--------------------------------------
# Description: Offset: 0x00000188, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED34: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED35 [Optional] =====--------------------------------------
# Description: Offset: 0x0000018C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED35: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED36 [Optional] =====--------------------------------------
# Description: Offset: 0x00000190, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED36: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED37 [Optional] =====--------------------------------------
# Description: Offset: 0x00000194, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED37: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED38 [Optional] =====--------------------------------------
# Description: Offset: 0x00000198, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED38: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED39 [Optional] =====--------------------------------------
# Description: Offset: 0x0000019C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED39: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED40 [Optional] =====--------------------------------------
# Description: Offset: 0x000001A0, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED40: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED41 [Optional] =====--------------------------------------
# Description: Offset: 0x000001A4, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED41: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED42 [Optional] =====--------------------------------------
# Description: Offset: 0x000001A8, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED42: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED43 [Optional] =====--------------------------------------
# Description: Offset: 0x000001AC, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED43: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED44 [Optional] =====--------------------------------------
# Description: Offset: 0x000001B0, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED44: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED45 [Optional] =====--------------------------------------
# Description: Offset: 0x000001B4, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED45: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED46 [Optional] =====--------------------------------------
# Description: Offset: 0x000001B8, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED46: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED47 [Optional] =====--------------------------------------
# Description: Offset: 0x000001BC, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED47: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED48 [Optional] =====--------------------------------------
# Description: Offset: 0x000001C0, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED48: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED49 [Optional] =====--------------------------------------
# Description: Offset: 0x000001C4, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED49: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED50 [Optional] =====--------------------------------------
# Description: Offset: 0x000001C8, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED50: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED51 [Optional] =====--------------------------------------
# Description: Offset: 0x000001CC, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED51: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED52 [Optional] =====--------------------------------------
# Description: Offset: 0x000001D0, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED52: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED53 [Optional] =====--------------------------------------
# Description: Offset: 0x000001D4, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED53: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED54 [Optional] =====--------------------------------------
# Description: Offset: 0x000001D8, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED54: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED55 [Optional] =====--------------------------------------
# Description: Offset: 0x000001DC, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED55: '0x00000000'
# ---------------------------------------===== SHA256_DIGEST0 [Optional] =====----------------------------------------
# Description: Offset: 0x000001E0, Width: 32b; SHA256_DIGEST0 for DIGEST[31:0]
SHA256_DIGEST0: '0x00000000'
# ---------------------------------------===== SHA256_DIGEST1 [Optional] =====----------------------------------------
# Description: Offset: 0x000001E4, Width: 32b; SHA256_DIGEST1 for DIGEST[63:32]
SHA256_DIGEST1: '0x00000000'
# ---------------------------------------===== SHA256_DIGEST2 [Optional] =====----------------------------------------
# Description: Offset: 0x000001E8, Width: 32b; SHA256_DIGEST2 for DIGEST[95:64]
SHA256_DIGEST2: '0x00000000'
# ---------------------------------------===== SHA256_DIGEST3 [Optional] =====----------------------------------------
# Description: Offset: 0x000001EC, Width: 32b; SHA256_DIGEST3 for DIGEST[127:96]
SHA256_DIGEST3: '0x00000000'
# ---------------------------------------===== SHA256_DIGEST4 [Optional] =====----------------------------------------
# Description: Offset: 0x000001F0, Width: 32b; SHA256_DIGEST4 for DIGEST[159:128]
SHA256_DIGEST4: '0x00000000'
# ---------------------------------------===== SHA256_DIGEST5 [Optional] =====----------------------------------------
# Description: Offset: 0x000001F4, Width: 32b; SHA256_DIGEST5 for DIGEST[191:160]
SHA256_DIGEST5: '0x00000000'
# ---------------------------------------===== SHA256_DIGEST6 [Optional] =====----------------------------------------
# Description: Offset: 0x000001F8, Width: 32b; SHA256_DIGEST6 for DIGEST[223:192]
SHA256_DIGEST6: '0x00000000'
# ---------------------------------------===== SHA256_DIGEST7 [Optional] =====----------------------------------------
# Description: Offset: 0x000001FC, Width: 32b; SHA256_DIGEST7 for DIGEST[255:224]
SHA256_DIGEST7: '0x00000000'
# Copyright 2024 NXP
#
# SPDX-License-Identifier: BSD-3-Clause
# ========================================= PFR CMPA configuration template ==========================================
# ======================================================================================================================
# == General Options ==
# ======================================================================================================================
# -------------------------------------===== The chip family name [Required] =====--------------------------------------
# Description: NXP chip family identifier.
# Possible options:
# lpc55s06, lpc55s14, lpc55s16, lpc55s26, lpc55s28, lpc55s36, lpc55s66, lpc55s69, mcxa132, mcxa133, mcxa142, mcxa143,
# mcxa144, mcxa145, mcxa146, mcxa152, mcxa153, mcxa154, mcxa155, mcxa156, mcxn235, mcxn236, mcxn546, mcxn547, mcxn946,
# mcxn947, nhs52s04>
family: lpc55s69
# -----------------------------------------===== MCU revision [Optional] =====------------------------------------------
# Description: Revision of silicon. The 'latest' name, means most current revision.
# Possible options:
revision: latest
# ------------------------------------===== Configuration area type [Optional] =====------------------------------------
# Description: PFR / IFR type
type: CMPA
# ----------------------------------===== Configuration area Settings [Required] =====----------------------------------
settings:
# ------------------------------------------===== BOOT_CFG [Optional] =====-------------------------------------------
# Description: Offset: 0x00000000, Width: 32b; Boot Configuration
BOOT_CFG:
# -------------------------------------===== DEFAULT_ISP_MODE [Optional] =====--------------------------------------
# Description: Offset: 4b, Width: 3b, Default ISP mode:
# - AUTO_ISP, (0): Auto ISP
# - USB_HID_ISP, (1): USB_HID_ISP
# - UART_ISP, (2): UART ISP
# - SPI_ISP, (3): SPI Slave ISP
# - I2C_ISP, (4): I2C Slave ISP
# - DISABLE, (7): Disable ISP fall through
# Possible options:
DEFAULT_ISP_MODE: AUTO_ISP
# ----------------------------------------===== BOOT_SPEED [Optional] =====-----------------------------------------
# Description: Offset: 7b, Width: 2b, Core clock:
# - SYSTEM_SPEED_CODE, (0): Defined by NMPA.SYSTEM_SPEED_CODE
# - FRO_96MHZ, (1): 96MHz FRO
# - FRO_48MHZ, (2): 48MHz FRO
# Possible options:
BOOT_SPEED: SYSTEM_SPEED_CODE
# -----------------------------------------===== USB_SPEED [Optional] =====-----------------------------------------
# Description: Offset: 9b, Width: 2b, Defines which USB module is used for ISP:
# - USB_SPEED_0, (0): Defined by NMPA.USBCFG.USB_SPEED
# - USB_FS, (1): USB FS module used for ISP
# - USB_HS, (2): USB HS module used for ISP
# - USB_SPEED_1, (3): Defined by NMPA.USBCFG.USB_SPEED
# Possible options:
USB_SPEED: USB_SPEED_0
# -------------------------------------===== BOOT_FAILURE_PIN [Optional] =====--------------------------------------
# Description: Offset: 24b, Width: 8b, GPIO port and pin number to use for indicating failure reason. The toggle
# rate of the pin is used to decode the error type. [2:0] - Defines GPIO port [7:3] - Defines GPIO pin
BOOT_FAILURE_PIN: 0
# ----------------------------------------===== SPI_FLASH_CFG [Optional] =====----------------------------------------
# Description: Offset: 0x00000004, Width: 32b; SPI Flash Configuration
SPI_FLASH_CFG:
# -----------------------------------===== SPI_RECOVERY_BOOT_EN [Optional] =====------------------------------------
# Description: Offset: 0b, Width: 5b, SPI flash recovery boot is enabled, if non-zero value is written to this
# field.
SPI_RECOVERY_BOOT_EN: 0
# -------------------------------------------===== USB_ID [Optional] =====--------------------------------------------
# Description: Offset: 0x00000008, Width: 32b; USB Identifiers
USB_ID:
# ---------------------------------------===== USB_VENDOR_ID [Optional] =====---------------------------------------
# Description: Offset: 0b, Width: 16b, USB Vendor ID
USB_VENDOR_ID: 0
# --------------------------------------===== USB_PRODUCT_ID [Optional] =====---------------------------------------
# Description: Offset: 16b, Width: 16b, USB Product ID
USB_PRODUCT_ID: 0
# ------------------------------------------===== SDIO_CFG [Optional] =====-------------------------------------------
# Description: Offset: 0x0000000C, Width: 32b; SDIO Configuration
SDIO_CFG: '0x00000000'
# --------------------------------------===== DCFG_CC_SOCU_PIN [Optional] =====---------------------------------------
# Description: Offset: 0x00000010, Width: 32b; Device Configuration Credential Constraints for SoC specific Use
# Pinned.
# Combinations of PIN and DFLT bits and resulting restriction level:
# - PIN=1,DFLT=1: Restriction level 0. Access to the sub-domain is always enabled. This setting is provided for module
# use case scenario where DCFG_CC_SOCU_NS would be used to define further access restrictions before final deployment
# of the product.
# - PIN=0,DFLT=0: Restriction level 1. Access to the sub-domain is disabled at startup. But the access can be enabled
# through debug authentication process by providing appropriate Debug Credential (DC) certificate.
# - PIN=0,DFLT=1: Illegal setting. Part may lock-up if this setting is selected.
# - PIN=1,DFLT=0: Restriction level 3. Access to the sub-domain is permanently disabled and can't be reversed. This
# setting offers the highest level of restriction.
DCFG_CC_SOCU_PIN:
# -------------------------------------------===== NIDEN [Optional] =====-------------------------------------------
# Description: Offset: 0b, Width: 1b, Non Secure non-invasive debug enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
NIDEN: USE_DAP
# -------------------------------------------===== DBGEN [Optional] =====-------------------------------------------
# Description: Offset: 1b, Width: 1b, Non Secure debug enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
DBGEN: USE_DAP
# ------------------------------------------===== SPNIDEN [Optional] =====------------------------------------------
# Description: Offset: 2b, Width: 1b, Secure non-invasive debug enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
SPNIDEN: USE_DAP
# ------------------------------------------===== SPIDEN [Optional] =====-------------------------------------------
# Description: Offset: 3b, Width: 1b, Secure invasive debug enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
SPIDEN: USE_DAP
# -------------------------------------------===== TAPEN [Optional] =====-------------------------------------------
# Description: Offset: 4b, Width: 1b, JTAG TAP enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
TAPEN: USE_DAP
# ----------------------------------------===== CPU1_DBGEN [Optional] =====-----------------------------------------
# Description: Offset: 5b, Width: 1b, CPU1 (Micro cortex M33) invasive debug enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
CPU1_DBGEN: USE_DAP
# ----------------------------------------===== ISP_CMD_EN [Optional] =====-----------------------------------------
# Description: Offset: 6b, Width: 1b, ISP Boot Command enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
ISP_CMD_EN: USE_DAP
# ---------------------------------------===== FA_ME_CMD_EN [Optional] =====----------------------------------------
# Description: Offset: 7b, Width: 1b, Fault Analysis/Mass Erase Command enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
FA_ME_CMD_EN: USE_DAP
# ----------------------------------------===== CPU1_NIDEN [Optional] =====-----------------------------------------
# Description: Offset: 9b, Width: 1b, CPU1 (Micro cortex M33) non-invasive debug enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
CPU1_NIDEN: USE_DAP
# ----------------------------------------===== UUID_CHECK [Optional] =====-----------------------------------------
# Description: Offset: 15b, Width: 1b, Enforce UUID match during Debug authentication.
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
UUID_CHECK: DISABLED
# --------------------------------------===== DCFG_CC_SOCU_DFLT [Optional] =====--------------------------------------
# Description: Offset: 0x00000014, Width: 32b; Device Configuration Credential Constraints for SoC specific Use Debug
# Filter.
# Combinations of PIN and DFLT bits and resulting restriction level:
# - PIN=1,DFLT=1: Restriction level 0. Access to the sub-domain is always enabled. This setting is provided for module
# use case scenario where DCFG_CC_SOCU_NS would be used to define further access restrictions before final deployment
# of the product.
# - PIN=0,DFLT=0: Restriction level 1. Access to the sub-domain is disabled at startup. But the access can be enabled
# through debug authentication process by providing appropriate Debug Credential (DC) certificate.
# - PIN=0,DFLT=1: Illegal setting. Part may lock-up if this setting is selected.
# - PIN=1,DFLT=0: Restriction level 3. Access to the sub-domain is permanently disabled and can't be reversed. This
# setting offers the highest level of restriction.
DCFG_CC_SOCU_DFLT:
# -------------------------------------------===== NIDEN [Optional] =====-------------------------------------------
# Description: Offset: 0b, Width: 1b, Non Secure non-invasive debug fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
NIDEN: DISABLED
# -------------------------------------------===== DBGEN [Optional] =====-------------------------------------------
# Description: Offset: 1b, Width: 1b, Non Secure debug fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
DBGEN: DISABLED
# ------------------------------------------===== SPNIDEN [Optional] =====------------------------------------------
# Description: Offset: 2b, Width: 1b, Secure non-invasive debug fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
SPNIDEN: DISABLED
# ------------------------------------------===== SPIDEN [Optional] =====-------------------------------------------
# Description: Offset: 3b, Width: 1b, Secure invasive debug fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
SPIDEN: DISABLED
# -------------------------------------------===== TAPEN [Optional] =====-------------------------------------------
# Description: Offset: 4b, Width: 1b, JTAG TAP fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
TAPEN: DISABLED
# ----------------------------------------===== CPU1_DBGEN [Optional] =====-----------------------------------------
# Description: Offset: 5b, Width: 1b, CPU1 (Micro cortex M33) invasive debug fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
CPU1_DBGEN: DISABLED
# ----------------------------------------===== ISP_CMD_EN [Optional] =====-----------------------------------------
# Description: Offset: 6b, Width: 1b, ISP Boot Command fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
ISP_CMD_EN: DISABLED
# ---------------------------------------===== FA_ME_CMD_EN [Optional] =====----------------------------------------
# Description: Offset: 7b, Width: 1b, Fault Analysis/Mass Erase Command fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
FA_ME_CMD_EN: DISABLED
# ----------------------------------------===== CPU1_NIDEN [Optional] =====-----------------------------------------
# Description: Offset: 9b, Width: 1b, CPU1 (Micro cortex M33) non-invasive debug fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
CPU1_NIDEN: DISABLED
# ----------------------------------------===== VENDOR_USAGE [Optional] =====-----------------------------------------
# Description: Offset: 0x00000018, Width: 32b; Vendor Usage
VENDOR_USAGE:
# ---------------------------------------===== VENDOR_USAGE [Optional] =====----------------------------------------
# Description: Offset: 16b, Width: 16b, Upper 16 bits of vendor usage field defined in DAP. Lower 16-bits come from
# customer field area.
VENDOR_USAGE: 0
# ---------------------------------------===== SECURE_BOOT_CFG [Optional] =====---------------------------------------
# Description: Offset: 0x0000001C, Width: 32b; Secure boot configuration
SECURE_BOOT_CFG:
# -------------------------------------------===== RSA4K [Optional] =====-------------------------------------------
# Description: Offset: 0b, Width: 2b, Use RSA4096 keys only.
# - RSA2048, (0): Allow RSA2048 and higher
# - RSA4096_0, (1): RSA4096 only
# - RSA4096_1, (2): RSA4096 only
# - RSA4096_2, (3): RSA4096 only
# Possible options:
RSA4K: RSA2048
# -------------------------------------===== DICE_INC_NXP_CFG [Optional] =====--------------------------------------
# Description: Offset: 2b, Width: 2b, Include NXP area in DICE computation.
# - NOT_INCLUDE, (0): not included
# - INCLUDE_0, (1): included
# - INCLUDE_1, (2): included
# - INCLUDE_2, (3): included
# Possible options:
DICE_INC_NXP_CFG: NOT_INCLUDE
# ---------------------------------------===== DICE_CUST_CFG [Optional] =====---------------------------------------
# Description: Offset: 4b, Width: 2b, Include Customer factory area (including keys) in DICE computation.
# - NOT_INCLUDE, (0): not included
# - INCLUDE_0, (1): included
# - INCLUDE_1, (2): included
# - INCLUDE_2, (3): included
# Possible options:
DICE_CUST_CFG: NOT_INCLUDE
# -----------------------------------------===== SKIP_DICE [Optional] =====-----------------------------------------
# Description: Offset: 6b, Width: 2b, Skip DICE computation
# - ENABLE, (0): Enable DICE
# - DISABLE_0, (1): Disable DICE
# - DISABLE_1, (2): Disable DICE
# - DISABLE_2, (3): Disable DICE
# Possible options:
SKIP_DICE: DISABLE_0 Skip DICE
# --------------------------------------===== TZM_IMAGE_TYPE [Optional] =====---------------------------------------
# Description: Offset: 8b, Width: 2b, TrustZone-M mode
# - HEADER, (0): TZ-M image mode is taken from application image header
# - DISABLED, (1): TZ-M disabled image, boots to non-secure mode
# - ENABLED, (2): TZ-M enabled image, boots to secure mode
# - PRESET, (3): TZ-M enabled image with TZ-M preset, boot to secure mode TZ-M pre-configured by data from
# application image header
# Possible options:
TZM_IMAGE_TYPE: HEADER
# ---------------------------------------===== BLOCK_SET_KEY [Optional] =====---------------------------------------
# Description: Offset: 10b, Width: 2b, Block PUF key code generation
# - ALLOW, (0): Allow PUF Key Code generation
# - DISABLE_0, (1): Disable PUF Key Code generation
# - DISABLE_1, (2): Disable PUF Key Code generation
# - DISABLE_2, (3): Disable PUF Key Code generation
# Possible options:
BLOCK_SET_KEY: ALLOW
# ---------------------------------------===== BLOCK_ENROLL [Optional] =====----------------------------------------
# Description: Offset: 12b, Width: 2b, Block PUF enrollment
# - ALLOW, (0): Allow PUF enroll operation
# - DISABLE_0, (1): Disable PUF enroll operation
# - DISABLE_1, (2): Disable PUF enroll operation
# - DISABLE_2, (3): Disable PUF enroll operation
# Possible options:
BLOCK_ENROLL: ALLOW
# ------------------------------------===== DICE_INC_SEC_EPOCH [Optional] =====-------------------------------------
# Description: Offset: 14b, Width: 2b, Include security EPOCH in DICE
DICE_INC_SEC_EPOCH: 0
# ----------------------------------------===== SEC_BOOT_EN [Optional] =====----------------------------------------
# Description: Offset: 30b, Width: 2b, Secure boot enable
# - DISABLE, (0): Plain image (internal flash with or without CRC)
# - ENABLE_0, (1): Boot signed images. (internal flash, RSA signed)
# - ENABLE_1, (2): Boot signed images. (internal flash, RSA signed)
# - ENABLE_2, (3): Boot signed images. (internal flash, RSA signed)
# Possible options:
SEC_BOOT_EN: ENABLE_0 Enable the secure boot
# --------------------------------------===== PRINCE_BASE_ADDR [Optional] =====---------------------------------------
# Description: Offset: 0x00000020, Width: 32b; Prince Base Address
PRINCE_BASE_ADDR:
# -----------------------------------------===== ADDR0_PRG [Optional] =====-----------------------------------------
# Description: Offset: 0b, Width: 4b, Programmable portion of the base address of region 0
ADDR0_PRG: 0
# -----------------------------------------===== ADDR1_PRG [Optional] =====-----------------------------------------
# Description: Offset: 4b, Width: 4b, Programmable portion of the base address of region 1
ADDR1_PRG: 0
# -----------------------------------------===== ADDR2_PRG [Optional] =====-----------------------------------------
# Description: Offset: 8b, Width: 4b, Programmable portion of the base address of region 2
ADDR2_PRG: 0
# -----------------------------------------===== LOCK_REG0 [Optional] =====-----------------------------------------
# Description: Offset: 18b, Width: 2b, Lock PRINCE region0 settings
# - UNLOCK, (0): Region is not locked
# - LOCK_0, (1): Region is locked
# - LOCK_1, (2): Region is locked
# - LOCK_2, (3): Region is locked
# Possible options:
LOCK_REG0: UNLOCK
# -----------------------------------------===== LOCK_REG1 [Optional] =====-----------------------------------------
# Description: Offset: 20b, Width: 2b, Lock PRINCE region1 settings
# - UNLOCK, (0): Region is not locked
# - LOCK_0, (1): Region is locked
# - LOCK_1, (2): Region is locked
# - LOCK_2, (3): Region is locked
# Possible options:
LOCK_REG1: UNLOCK
# ------------------------------------===== REG0_ERASE_CHECK_EN [Optional] =====------------------------------------
# Description: Offset: 24b, Width: 2b, For PRINCE region0 enable checking whether all encrypted pages are erased
# together
# - DISABLE, (0): Region is disabled
# - ENABLE_0, (1): Region is enabled
# - ENABLE_1, (2): Region is enabled
# - ENABLE_2, (3): Region is enabled
# Possible options:
REG0_ERASE_CHECK_EN: DISABLE
# ------------------------------------===== REG1_ERASE_CHECK_EN [Optional] =====------------------------------------
# Description: Offset: 26b, Width: 2b, For PRINCE region1 enable checking whether all encrypted pages are erased
# together
# - DISABLE, (0): Region is disabled
# - ENABLE_0, (1): Region is enabled
# - ENABLE_1, (2): Region is enabled
# - ENABLE_2, (3): Region is enabled
# Possible options:
REG1_ERASE_CHECK_EN: DISABLE
# ------------------------------------===== REG2_ERASE_CHECK_EN [Optional] =====------------------------------------
# Description: Offset: 28b, Width: 2b, For PRINCE region2 enable checking whether all encrypted pages are erased
# together
# - DISABLE, (0): Region is disabled
# - ENABLE_0, (1): Region is enabled
# - ENABLE_1, (2): Region is enabled
# - ENABLE_2, (3): Region is enabled
# Possible options:
REG2_ERASE_CHECK_EN: DISABLE
# -----------------------------------------===== PRINCE_SR_0 [Optional] =====-----------------------------------------
# Description: Offset: 0x00000024, Width: 32b; Region 0, sub-region enable
PRINCE_SR_0: '0x00000000'
# -----------------------------------------===== PRINCE_SR_1 [Optional] =====-----------------------------------------
# Description: Offset: 0x00000028, Width: 32b; Region 1, sub-region enable
PRINCE_SR_1: '0x00000000'
# -----------------------------------------===== PRINCE_SR_2 [Optional] =====-----------------------------------------
# Description: Offset: 0x0000002C, Width: 32b; Region 2, sub-region enable
PRINCE_SR_2: '0x00000000'
# ----------------------------------===== XTAL_32KHZ_CAPABANK_TRIM [Optional] =====-----------------------------------
# Description: Offset: 0x00000030, Width: 32b; Xtal 32kHz capabank trimming.
XTAL_32KHZ_CAPABANK_TRIM:
# ----------------------------------------===== TRIM_VALID [Optional] =====-----------------------------------------
# Description: Offset: 0b, Width: 1b, XTAL 32kHz capa bank trimmings
# - NOT_TRIM, (0): Capa Bank trimmings not valid. Default trimmings value are used
# - VALID, (1): Capa Bank trimmings valid
# Possible options:
TRIM_VALID: NOT_TRIM
# ---------------------------------===== XTAL_LOAD_CAP_IEC_PF_X100 [Optional] =====---------------------------------
# Description: Offset: 1b, Width: 10b, Load capacitance, pF x 100. For example, 6pF becomes 600.
XTAL_LOAD_CAP_IEC_PF_X100: 0
# ---------------------------------===== PCB_XIN_PARA_CAP_PF_X100 [Optional] =====----------------------------------
# Description: Offset: 11b, Width: 10b, PCB XIN parasitic capacitance, pF x 100. For example, 6pF becomes 600.
PCB_XIN_PARA_CAP_PF_X100: 0
# ---------------------------------===== PCB_XOUT_PARA_CAP_PF_X100 [Optional] =====---------------------------------
# Description: Offset: 21b, Width: 10b, PCB XOUT parasitic capacitance, pF x 100. For example, 6pF becomes 600.
PCB_XOUT_PARA_CAP_PF_X100: 0
# ----------------------------------===== XTAL_16MHZ_CAPABANK_TRIM [Optional] =====-----------------------------------
# Description: Offset: 0x00000034, Width: 32b; Xtal 16MHz capabank trimming.
XTAL_16MHZ_CAPABANK_TRIM:
# ----------------------------------------===== TRIM_VALID [Optional] =====-----------------------------------------
# Description: Offset: 0b, Width: 1b, XTAL 16MHz capa bank trimmings
# - NOT_TRIM, (0): Capa Bank trimmings not valid. Default trimmings value are used
# - VALID, (1): Capa Bank trimmings valid
# Possible options:
TRIM_VALID: NOT_TRIM
# ---------------------------------===== XTAL_LOAD_CAP_IEC_PF_X100 [Optional] =====---------------------------------
# Description: Offset: 1b, Width: 10b, Load capacitance, pF x 100. For example, 6pF becomes 600.
XTAL_LOAD_CAP_IEC_PF_X100: 0
# ---------------------------------===== PCB_XIN_PARA_CAP_PF_X100 [Optional] =====----------------------------------
# Description: Offset: 11b, Width: 10b, PCB XIN parasitic capacitance, pF x 100. For example, 6pF becomes 600.
PCB_XIN_PARA_CAP_PF_X100: 0
# ---------------------------------===== PCB_XOUT_PARA_CAP_PF_X100 [Optional] =====---------------------------------
# Description: Offset: 21b, Width: 10b, PCB XOUT parasitic capacitance, pF x 100. For example, 6pF becomes 600.
PCB_XOUT_PARA_CAP_PF_X100: 0
# --------------------------------------------===== ROTKH [Optional] =====--------------------------------------------
# Description: Offset: 0x00000050, Width: 256b; ROTKH field is compounded by 8 32-bit fields and contains Root key
# table hash
ROTKH: '44b45886d6ec1194a87ccc7d767e74c9191049ad2f2b26bd1578e011a4fdd038' This is the most important part, we must specify ROTKH from the certificate block
# --------------------------------------===== CUSTOMER_DEFINED0 [Optional] =====--------------------------------------
# Description: Offset: 0x00000100, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED0: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED1 [Optional] =====--------------------------------------
# Description: Offset: 0x00000104, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED1: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED2 [Optional] =====--------------------------------------
# Description: Offset: 0x00000108, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED2: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED3 [Optional] =====--------------------------------------
# Description: Offset: 0x0000010C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED3: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED4 [Optional] =====--------------------------------------
# Description: Offset: 0x00000110, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED4: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED5 [Optional] =====--------------------------------------
# Description: Offset: 0x00000114, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED5: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED6 [Optional] =====--------------------------------------
# Description: Offset: 0x00000118, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED6: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED7 [Optional] =====--------------------------------------
# Description: Offset: 0x0000011C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED7: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED8 [Optional] =====--------------------------------------
# Description: Offset: 0x00000120, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED8: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED9 [Optional] =====--------------------------------------
# Description: Offset: 0x00000124, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED9: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED10 [Optional] =====--------------------------------------
# Description: Offset: 0x00000128, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED10: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED11 [Optional] =====--------------------------------------
# Description: Offset: 0x0000012C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED11: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED12 [Optional] =====--------------------------------------
# Description: Offset: 0x00000130, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED12: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED13 [Optional] =====--------------------------------------
# Description: Offset: 0x00000134, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED13: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED14 [Optional] =====--------------------------------------
# Description: Offset: 0x00000138, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED14: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED15 [Optional] =====--------------------------------------
# Description: Offset: 0x0000013C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED15: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED16 [Optional] =====--------------------------------------
# Description: Offset: 0x00000140, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED16: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED17 [Optional] =====--------------------------------------
# Description: Offset: 0x00000144, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED17: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED18 [Optional] =====--------------------------------------
# Description: Offset: 0x00000148, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED18: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED19 [Optional] =====--------------------------------------
# Description: Offset: 0x0000014C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED19: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED20 [Optional] =====--------------------------------------
# Description: Offset: 0x00000150, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED20: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED21 [Optional] =====--------------------------------------
# Description: Offset: 0x00000154, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED21: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED22 [Optional] =====--------------------------------------
# Description: Offset: 0x00000158, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED22: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED23 [Optional] =====--------------------------------------
# Description: Offset: 0x0000015C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED23: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED24 [Optional] =====--------------------------------------
# Description: Offset: 0x00000160, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED24: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED25 [Optional] =====--------------------------------------
# Description: Offset: 0x00000164, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED25: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED26 [Optional] =====--------------------------------------
# Description: Offset: 0x00000168, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED26: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED27 [Optional] =====--------------------------------------
# Description: Offset: 0x0000016C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED27: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED28 [Optional] =====--------------------------------------
# Description: Offset: 0x00000170, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED28: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED29 [Optional] =====--------------------------------------
# Description: Offset: 0x00000174, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED29: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED30 [Optional] =====--------------------------------------
# Description: Offset: 0x00000178, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED30: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED31 [Optional] =====--------------------------------------
# Description: Offset: 0x0000017C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED31: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED32 [Optional] =====--------------------------------------
# Description: Offset: 0x00000180, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED32: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED33 [Optional] =====--------------------------------------
# Description: Offset: 0x00000184, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED33: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED34 [Optional] =====--------------------------------------
# Description: Offset: 0x00000188, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED34: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED35 [Optional] =====--------------------------------------
# Description: Offset: 0x0000018C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED35: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED36 [Optional] =====--------------------------------------
# Description: Offset: 0x00000190, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED36: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED37 [Optional] =====--------------------------------------
# Description: Offset: 0x00000194, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED37: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED38 [Optional] =====--------------------------------------
# Description: Offset: 0x00000198, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED38: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED39 [Optional] =====--------------------------------------
# Description: Offset: 0x0000019C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED39: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED40 [Optional] =====--------------------------------------
# Description: Offset: 0x000001A0, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED40: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED41 [Optional] =====--------------------------------------
# Description: Offset: 0x000001A4, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED41: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED42 [Optional] =====--------------------------------------
# Description: Offset: 0x000001A8, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED42: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED43 [Optional] =====--------------------------------------
# Description: Offset: 0x000001AC, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED43: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED44 [Optional] =====--------------------------------------
# Description: Offset: 0x000001B0, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED44: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED45 [Optional] =====--------------------------------------
# Description: Offset: 0x000001B4, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED45: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED46 [Optional] =====--------------------------------------
# Description: Offset: 0x000001B8, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED46: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED47 [Optional] =====--------------------------------------
# Description: Offset: 0x000001BC, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED47: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED48 [Optional] =====--------------------------------------
# Description: Offset: 0x000001C0, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED48: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED49 [Optional] =====--------------------------------------
# Description: Offset: 0x000001C4, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED49: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED50 [Optional] =====--------------------------------------
# Description: Offset: 0x000001C8, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED50: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED51 [Optional] =====--------------------------------------
# Description: Offset: 0x000001CC, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED51: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED52 [Optional] =====--------------------------------------
# Description: Offset: 0x000001D0, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED52: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED53 [Optional] =====--------------------------------------
# Description: Offset: 0x000001D4, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED53: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED54 [Optional] =====--------------------------------------
# Description: Offset: 0x000001D8, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED54: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED55 [Optional] =====--------------------------------------
# Description: Offset: 0x000001DC, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED55: '0x00000000'
# ---------------------------------------===== SHA256_DIGEST0 [Optional] =====----------------------------------------
# Description: Offset: 0x000001E0, Width: 32b; SHA256_DIGEST0 for DIGEST[31:0]
SHA256_DIGEST0: '0x00000000'
# ---------------------------------------===== SHA256_DIGEST1 [Optional] =====----------------------------------------
# Description: Offset: 0x000001E4, Width: 32b; SHA256_DIGEST1 for DIGEST[63:32]
SHA256_DIGEST1: '0x00000000'
# ---------------------------------------===== SHA256_DIGEST2 [Optional] =====----------------------------------------
# Description: Offset: 0x000001E8, Width: 32b; SHA256_DIGEST2 for DIGEST[95:64]
SHA256_DIGEST2: '0x00000000'
# ---------------------------------------===== SHA256_DIGEST3 [Optional] =====----------------------------------------
# Description: Offset: 0x000001EC, Width: 32b; SHA256_DIGEST3 for DIGEST[127:96]
SHA256_DIGEST3: '0x00000000'
# ---------------------------------------===== SHA256_DIGEST4 [Optional] =====----------------------------------------
# Description: Offset: 0x000001F0, Width: 32b; SHA256_DIGEST4 for DIGEST[159:128]
SHA256_DIGEST4: '0x00000000'
# ---------------------------------------===== SHA256_DIGEST5 [Optional] =====----------------------------------------
# Description: Offset: 0x000001F4, Width: 32b; SHA256_DIGEST5 for DIGEST[191:160]
SHA256_DIGEST5: '0x00000000'
# ---------------------------------------===== SHA256_DIGEST6 [Optional] =====----------------------------------------
# Description: Offset: 0x000001F8, Width: 32b; SHA256_DIGEST6 for DIGEST[223:192]
SHA256_DIGEST6: '0x00000000'
# ---------------------------------------===== SHA256_DIGEST7 [Optional] =====----------------------------------------
# Description: Offset: 0x000001FC, Width: 32b; SHA256_DIGEST7 for DIGEST[255:224]
SHA256_DIGEST7: '0x00000000'
CMPA_CONFIG_PATH = "inputs/cmpa_lpc55s6x.yaml"
CMPA_BIN = WORKSPACE + "cmpa.bin"
%! pfr $VERBOSITY generate-binary -c $CMPA_CONFIG_PATH -o $CMPA_BIN -e $MBI_CONFIG_PATH
assert os.path.exists(CMPA_BIN)
pfr generate-binary -c inputs/cmpa_lpc55s6x.yaml -o workspace/cmpa.bin -e inputs/mbi_config_lpc55s6x.yaml
WARNING:spsdk.pfr.pfr:The DCFG_CC_SOCU_PIN register has been recomputed, because it has been used in configuration and the bitfield INVERSE_VALUE has not been specified (786ms since start, pfr.py:206)
WARNING:spsdk.pfr.pfr:The DCFG_CC_SOCU_DFLT register has been recomputed, because it has been used in configuration and the bitfield INVERSE_VALUE has not been specified (786ms since start, pfr.py:206)
Success. (PFR binary has been generated)
4.2 CFPA page preparation#
By default, the CFPA (Customer field programmable area) page is cleared. There are registers related to secure boot. ROTKH_REVOKE field at CFPA page has to be set up to accept signed images with created certificates.
So we have to enable root key 0 (RoTK0_EN). Another important register is VERSION, it’s monotonic counter which needs to be incremented after every CFPA page update.
In this example we will create unsealed versions of CMPA and CFPA, it means that they could be updated. Sealed (locked) version of CFPA and CMPA might be generated using the -a or –add-seal option.
YamlDiffWidget("inputs/lpc55sxx_secure_boot_cfpa.diffc").html
pfr get-template -t cfpa -f lpc55s69 -o workspace/cfpa_lpc55s6x.yaml --force
The PFR cfpa template for lpc55s69 has been saved into workspace/cfpa_lpc55s6x.yaml YAML file
Configuration Differences
# ========================================= PFR CFPA configuration template ==========================================
# ======================================================================================================================
# == General Options ==
# ======================================================================================================================
# -------------------------------------===== The chip family name [Required] =====--------------------------------------
# Description: NXP chip family identifier.
# Possible options:
# lpc55s06, lpc55s14, lpc55s16, lpc55s26, lpc55s28, lpc55s36, lpc55s66, lpc55s69, mcxn235, mcxn236, mcxn546, mcxn547,
# mcxn946, mcxn947, nhs52s04>
family: lpc55s69
# -----------------------------------------===== MCU revision [Optional] =====------------------------------------------
# Description: Revision of silicon. The 'latest' name, means most current revision.
# Possible options:
revision: latest
# ------------------------------------===== Configuration area type [Optional] =====------------------------------------
# Description: PFR / IFR type
# Possible options:
type: CFPA
# ----------------------------------===== Configuration area Settings [Required] =====----------------------------------
settings:
# -------------------------------------------===== HEADER [Optional] =====--------------------------------------------
# Description: Offset: 0x00000000, Width: 32b; Header
HEADER: '0x00000000'
# -------------------------------------------===== VERSION [Optional] =====-------------------------------------------
# Description: Offset: 0x00000004, Width: 32b; Version
VERSION: '0x00000000' This is important, after each update this bitfield must be incremented
# ----------------------------------------===== S_FW_Version [Optional] =====-----------------------------------------
# Description: Offset: 0x00000008, Width: 32b; Secure firmware version (Monotonic counter)
S_FW_Version: '0x00000000'
# ----------------------------------------===== NS_FW_Version [Optional] =====----------------------------------------
# Description: Offset: 0x0000000C, Width: 32b; Non-Secure firmware version (Monotonic counter)
NS_FW_Version: '0x00000000'
# --------------------------------------===== IMAGE_KEY_REVOKE [Optional] =====---------------------------------------
# Description: Offset: 0x00000010, Width: 32b; Image key revocation ID (Monotonic counter)
IMAGE_KEY_REVOKE: '0x00000000'
# ----------------------------------------===== ROTKH_REVOKE [Optional] =====-----------------------------------------
# Description: Offset: 0x00000018, Width: 32b; Root of Trust Key Hash Revoke
ROTKH_REVOKE:
# -----------------------------------------===== RoTK0_EN [Optional] =====------------------------------------------
# Description: Offset: 0b, Width: 2b, RoT Key 0 enable.
# - INVALID, (0): Invalid
# - ENABLED, (1): Enabled
# - REVOKED_0, (2): Key revoked
# - REVOKED_1, (3): Key revoked
# Possible options:
RoTK0_EN: INVALID Enable Root of Trust Key 0
RoTK0_EN: ENABLED
# -----------------------------------------===== RoTK1_EN [Optional] =====------------------------------------------
# Description: Offset: 2b, Width: 2b, RoT Key 1 enable.
# - INVALID, (0): Invalid
# - ENABLED, (1): Enabled
# - REVOKED_0, (2): Key revoked
# - REVOKED_1, (3): Key revoked
# Possible options:
RoTK1_EN: INVALID
# -----------------------------------------===== RoTK2_EN [Optional] =====------------------------------------------
# Description: Offset: 4b, Width: 2b, RoT Key 2 enable.
# - INVALID, (0): Invalid
# - ENABLED, (1): Enabled
# - REVOKED_0, (2): Key revoked
# - REVOKED_1, (3): Key revoked
# Possible options:
RoTK2_EN: INVALID
# -----------------------------------------===== RoTK3_EN [Optional] =====------------------------------------------
# Description: Offset: 6b, Width: 2b, RoT Key 3 enable.
# - INVALID, (0): Invalid
# - ENABLED, (1): Enabled
# - REVOKED_0, (2): Key revoked
# - REVOKED_1, (3): Key revoked
# Possible options:
RoTK3_EN: INVALID
# ----------------------------------------===== VENDOR_USAGE [Optional] =====-----------------------------------------
# Description: Offset: 0x0000001C, Width: 32b; Vendor Usage
VENDOR_USAGE:
# -------------------------------------===== DBG_VENDOR_USAGE [Optional] =====--------------------------------------
# Description: Offset: 0b, Width: 16b, Debug Vendor Usage
DBG_VENDOR_USAGE: 0
# -------------------------------------===== DCFG_CC_SOCU_NS_PIN [Optional] =====-------------------------------------
# Description: Offset: 0x00000020, Width: 32b; Device Configuration Credential Constraints for SoC specific Use
# Pinned.
# Combinations of PIN and DFLT bits and resulting restriction level:
# - PIN=1,DFLT=1: Restriction level 0. Access to the sub-domain is always enabled. This setting is provided for module
# use case scenario where DCFG_CC_SOCU_NS would be used to define further access restrictions before final deployment
# of the product.
# - PIN=0,DFLT=0: Restriction level 1. Access to the sub-domain is disabled at startup. But the access can be enabled
# through debug authentication process by providing appropriate Debug Credential (DC) certificate.
# - PIN=0,DFLT=1: Illegal setting. Part may lock-up if this setting is selected.
# - PIN=1,DFLT=0: Restriction level 3. Access to the sub-domain is permanently disabled and can't be reversed. This
# setting offers the highest level of restriction.
DCFG_CC_SOCU_NS_PIN:
# -------------------------------------------===== NIDEN [Optional] =====-------------------------------------------
# Description: Offset: 0b, Width: 1b, Non Secure non-invasive debug enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
NIDEN: USE_DAP
# -------------------------------------------===== DBGEN [Optional] =====-------------------------------------------
# Description: Offset: 1b, Width: 1b, Non Secure debug enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
DBGEN: USE_DAP
# ------------------------------------------===== SPNIDEN [Optional] =====------------------------------------------
# Description: Offset: 2b, Width: 1b, Secure non-invasive debug enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
SPNIDEN: USE_DAP
# ------------------------------------------===== SPIDEN [Optional] =====-------------------------------------------
# Description: Offset: 3b, Width: 1b, Secure invasive debug enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
SPIDEN: USE_DAP
# -------------------------------------------===== TAPEN [Optional] =====-------------------------------------------
# Description: Offset: 4b, Width: 1b, JTAG TAP enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
TAPEN: USE_DAP
# ----------------------------------------===== CPU1_DBGEN [Optional] =====-----------------------------------------
# Description: Offset: 5b, Width: 1b, CPU1 (Micro cortex M33) invasive debug enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
CPU1_DBGEN: USE_DAP
# ----------------------------------------===== ISP_CMD_EN [Optional] =====-----------------------------------------
# Description: Offset: 6b, Width: 1b, ISP Boot Command enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
ISP_CMD_EN: USE_DAP
# ---------------------------------------===== FA_ME_CMD_EN [Optional] =====----------------------------------------
# Description: Offset: 7b, Width: 1b, Fault Analysis/Mass Erase Command enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
FA_ME_CMD_EN: USE_DAP
# ----------------------------------------===== CPU1_NIDEN [Optional] =====-----------------------------------------
# Description: Offset: 9b, Width: 1b, CPU1 (Micro cortex M33) non-invasive debug enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
CPU1_NIDEN: USE_DAP
# ----------------------------------------===== UUID_CHECK [Optional] =====-----------------------------------------
# Description: Offset: 15b, Width: 1b, Enforce UUID match during Debug authentication.
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
UUID_CHECK: DISABLED
# ------------------------------------===== DCFG_CC_SOCU_NS_DFLT [Optional] =====-------------------------------------
# Description: Offset: 0x00000024, Width: 32b; Device Configuration Credential Constraints for SoC specific Use Debug
# Filter.
# Combinations of PIN and DFLT bits and resulting restriction level:
# - PIN=1,DFLT=1: Restriction level 0. Access to the sub-domain is always enabled. This setting is provided for module
# use case scenario where DCFG_CC_SOCU_NS would be used to define further access restrictions before final deployment
# of the product.
# - PIN=0,DFLT=0: Restriction level 1. Access to the sub-domain is disabled at startup. But the access can be enabled
# through debug authentication process by providing appropriate Debug Credential (DC) certificate.
# - PIN=0,DFLT=1: Illegal setting. Part may lock-up if this setting is selected.
# - PIN=1,DFLT=0: Restriction level 3. Access to the sub-domain is permanently disabled and can't be reversed. This
# setting offers the highest level of restriction.
DCFG_CC_SOCU_NS_DFLT:
# -------------------------------------------===== NIDEN [Optional] =====-------------------------------------------
# Description: Offset: 0b, Width: 1b, Non Secure non-invasive debug fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
NIDEN: DISABLED
# -------------------------------------------===== DBGEN [Optional] =====-------------------------------------------
# Description: Offset: 1b, Width: 1b, Non Secure debug fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
DBGEN: DISABLED
# ------------------------------------------===== SPNIDEN [Optional] =====------------------------------------------
# Description: Offset: 2b, Width: 1b, Secure non-invasive debug fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
SPNIDEN: DISABLED
# ------------------------------------------===== SPIDEN [Optional] =====-------------------------------------------
# Description: Offset: 3b, Width: 1b, Secure invasive debug fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
SPIDEN: DISABLED
# -------------------------------------------===== TAPEN [Optional] =====-------------------------------------------
# Description: Offset: 4b, Width: 1b, JTAG TAP fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
TAPEN: DISABLED
# ----------------------------------------===== CPU1_DBGEN [Optional] =====-----------------------------------------
# Description: Offset: 5b, Width: 1b, CPU1 (Micro cortex M33) invasive debug fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
CPU1_DBGEN: DISABLED
# ----------------------------------------===== ISP_CMD_EN [Optional] =====-----------------------------------------
# Description: Offset: 6b, Width: 1b, ISP Boot Command fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
ISP_CMD_EN: DISABLED
# ---------------------------------------===== FA_ME_CMD_EN [Optional] =====----------------------------------------
# Description: Offset: 7b, Width: 1b, Fault Analysis/Mass Erase Command fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
FA_ME_CMD_EN: DISABLED
# ----------------------------------------===== CPU1_NIDEN [Optional] =====-----------------------------------------
# Description: Offset: 9b, Width: 1b, CPU1 (Micro cortex M33) non-invasive debug fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
CPU1_NIDEN: DISABLED
# ---------------------------------------===== ENABLE_FA_MODE [Optional] =====----------------------------------------
# Description: Offset: 0x00000028, Width: 32b; Enable FA mode. SET_FA_MODE Command should write 0xC33CA55A to this
# word to indicate boot ROM to enter FA mode.
ENABLE_FA_MODE: '0x00000000'
# ------------------------------------===== CMPA_PROG_IN_PROGRESS [Optional] =====------------------------------------
# Description: Offset: 0x0000002C, Width: 32b; CMPA Page programming on going. This field shall be set to 0x5CC55AA5
# in the active CFPA page each time CMPA page programming is going on. It shall always be set to 0x00000000 in the
# CFPA scratch area.
CMPA_PROG_IN_PROGRESS: '0x00000000'
# -----------------------------------===== PRINCE_REGION0_IV_CODE0 [Optional] =====-----------------------------------
# Description: Offset: 0x00000030, Width: 32b; Field.
PRINCE_REGION0_IV_CODE0: '0x00000000'
# -----------------------------------===== PRINCE_REGION0_IV_CODE1 [Optional] =====-----------------------------------
# Description: Offset: 0x00000034, Width: 32b; Field.
PRINCE_REGION0_IV_CODE1:
# -------------------------------------------===== TYPE [Optional] =====--------------------------------------------
# Description: Offset: 0b, Width: 2b, Type.
TYPE: 0
# -------------------------------------------===== INDEX [Optional] =====-------------------------------------------
# Description: Offset: 8b, Width: 4b, Index.
INDEX: 0
# -------------------------------------------===== SIZE [Optional] =====--------------------------------------------
# Description: Offset: 24b, Width: 6b, Size.
SIZE: 0
# -----------------------------------===== PRINCE_REGION0_IV_BODY0 [Optional] =====-----------------------------------
# Description: Offset: 0x00000038, Width: 32b; Field.
PRINCE_REGION0_IV_BODY0: '0x00000000'
# -----------------------------------===== PRINCE_REGION0_IV_BODY1 [Optional] =====-----------------------------------
# Description: Offset: 0x0000003C, Width: 32b; Field.
PRINCE_REGION0_IV_BODY1: '0x00000000'
# -----------------------------------===== PRINCE_REGION0_IV_BODY2 [Optional] =====-----------------------------------
# Description: Offset: 0x00000040, Width: 32b; Field.
PRINCE_REGION0_IV_BODY2: '0x00000000'
# -----------------------------------===== PRINCE_REGION0_IV_BODY3 [Optional] =====-----------------------------------
# Description: Offset: 0x00000044, Width: 32b; Field.
PRINCE_REGION0_IV_BODY3: '0x00000000'
# -----------------------------------===== PRINCE_REGION0_IV_BODY4 [Optional] =====-----------------------------------
# Description: Offset: 0x00000048, Width: 32b; Field.
PRINCE_REGION0_IV_BODY4: '0x00000000'
# -----------------------------------===== PRINCE_REGION0_IV_BODY5 [Optional] =====-----------------------------------
# Description: Offset: 0x0000004C, Width: 32b; Field.
PRINCE_REGION0_IV_BODY5: '0x00000000'
# -----------------------------------===== PRINCE_REGION0_IV_BODY6 [Optional] =====-----------------------------------
# Description: Offset: 0x00000050, Width: 32b; Field.
PRINCE_REGION0_IV_BODY6: '0x00000000'
# -----------------------------------===== PRINCE_REGION0_IV_BODY7 [Optional] =====-----------------------------------
# Description: Offset: 0x00000054, Width: 32b; Field.
PRINCE_REGION0_IV_BODY7: '0x00000000'
# -----------------------------------===== PRINCE_REGION0_IV_BODY8 [Optional] =====-----------------------------------
# Description: Offset: 0x00000058, Width: 32b; Field.
PRINCE_REGION0_IV_BODY8: '0x00000000'
# -----------------------------------===== PRINCE_REGION0_IV_BODY9 [Optional] =====-----------------------------------
# Description: Offset: 0x0000005C, Width: 32b; Field.
PRINCE_REGION0_IV_BODY9: '0x00000000'
# ----------------------------------===== PRINCE_REGION0_IV_BODY10 [Optional] =====-----------------------------------
# Description: Offset: 0x00000060, Width: 32b; Field.
PRINCE_REGION0_IV_BODY10: '0x00000000'
# ----------------------------------===== PRINCE_REGION0_IV_BODY11 [Optional] =====-----------------------------------
# Description: Offset: 0x00000064, Width: 32b; Field.
PRINCE_REGION0_IV_BODY11: '0x00000000'
# -----------------------------------===== PRINCE_REGION1_IV_CODE0 [Optional] =====-----------------------------------
# Description: Offset: 0x00000068, Width: 32b; Field.
PRINCE_REGION1_IV_CODE0: '0x00000000'
# -----------------------------------===== PRINCE_REGION1_IV_CODE1 [Optional] =====-----------------------------------
# Description: Offset: 0x0000006C, Width: 32b; Field.
PRINCE_REGION1_IV_CODE1:
# -------------------------------------------===== TYPE [Optional] =====--------------------------------------------
# Description: Offset: 0b, Width: 2b, Type.
TYPE: 0
# -------------------------------------------===== INDEX [Optional] =====-------------------------------------------
# Description: Offset: 8b, Width: 4b, Index.
INDEX: 0
# -------------------------------------------===== SIZE [Optional] =====--------------------------------------------
# Description: Offset: 24b, Width: 6b, Size.
SIZE: 0
# -----------------------------------===== PRINCE_REGION1_IV_BODY0 [Optional] =====-----------------------------------
# Description: Offset: 0x00000070, Width: 32b; Field.
PRINCE_REGION1_IV_BODY0: '0x00000000'
# -----------------------------------===== PRINCE_REGION1_IV_BODY1 [Optional] =====-----------------------------------
# Description: Offset: 0x00000074, Width: 32b; Field.
PRINCE_REGION1_IV_BODY1: '0x00000000'
# -----------------------------------===== PRINCE_REGION1_IV_BODY2 [Optional] =====-----------------------------------
# Description: Offset: 0x00000078, Width: 32b; Field.
PRINCE_REGION1_IV_BODY2: '0x00000000'
# -----------------------------------===== PRINCE_REGION1_IV_BODY3 [Optional] =====-----------------------------------
# Description: Offset: 0x0000007C, Width: 32b; Field.
PRINCE_REGION1_IV_BODY3: '0x00000000'
# -----------------------------------===== PRINCE_REGION1_IV_BODY4 [Optional] =====-----------------------------------
# Description: Offset: 0x00000080, Width: 32b; Field.
PRINCE_REGION1_IV_BODY4: '0x00000000'
# -----------------------------------===== PRINCE_REGION1_IV_BODY5 [Optional] =====-----------------------------------
# Description: Offset: 0x00000084, Width: 32b; Field.
PRINCE_REGION1_IV_BODY5: '0x00000000'
# -----------------------------------===== PRINCE_REGION1_IV_BODY6 [Optional] =====-----------------------------------
# Description: Offset: 0x00000088, Width: 32b; Field.
PRINCE_REGION1_IV_BODY6: '0x00000000'
# -----------------------------------===== PRINCE_REGION1_IV_BODY7 [Optional] =====-----------------------------------
# Description: Offset: 0x0000008C, Width: 32b; Field.
PRINCE_REGION1_IV_BODY7: '0x00000000'
# -----------------------------------===== PRINCE_REGION1_IV_BODY8 [Optional] =====-----------------------------------
# Description: Offset: 0x00000090, Width: 32b; Field.
PRINCE_REGION1_IV_BODY8: '0x00000000'
# -----------------------------------===== PRINCE_REGION1_IV_BODY9 [Optional] =====-----------------------------------
# Description: Offset: 0x00000094, Width: 32b; Field.
PRINCE_REGION1_IV_BODY9: '0x00000000'
# ----------------------------------===== PRINCE_REGION1_IV_BODY10 [Optional] =====-----------------------------------
# Description: Offset: 0x00000098, Width: 32b; Field.
PRINCE_REGION1_IV_BODY10: '0x00000000'
# ----------------------------------===== PRINCE_REGION1_IV_BODY11 [Optional] =====-----------------------------------
# Description: Offset: 0x0000009C, Width: 32b; Field.
PRINCE_REGION1_IV_BODY11: '0x00000000'
# -----------------------------------===== PRINCE_REGION2_IV_CODE0 [Optional] =====-----------------------------------
# Description: Offset: 0x000000A0, Width: 32b; Field.
PRINCE_REGION2_IV_CODE0: '0x00000000'
# -----------------------------------===== PRINCE_REGION2_IV_CODE1 [Optional] =====-----------------------------------
# Description: Offset: 0x000000A4, Width: 32b; Field.
PRINCE_REGION2_IV_CODE1:
# -------------------------------------------===== TYPE [Optional] =====--------------------------------------------
# Description: Offset: 0b, Width: 2b, Type.
TYPE: 0
# -------------------------------------------===== INDEX [Optional] =====-------------------------------------------
# Description: Offset: 8b, Width: 4b, Index.
INDEX: 0
# -------------------------------------------===== SIZE [Optional] =====--------------------------------------------
# Description: Offset: 24b, Width: 6b, Size.
SIZE: 0
# -----------------------------------===== PRINCE_REGION2_IV_BODY0 [Optional] =====-----------------------------------
# Description: Offset: 0x000000A8, Width: 32b; Field.
PRINCE_REGION2_IV_BODY0: '0x00000000'
# -----------------------------------===== PRINCE_REGION2_IV_BODY1 [Optional] =====-----------------------------------
# Description: Offset: 0x000000AC, Width: 32b; Field.
PRINCE_REGION2_IV_BODY1: '0x00000000'
# -----------------------------------===== PRINCE_REGION2_IV_BODY2 [Optional] =====-----------------------------------
# Description: Offset: 0x000000B0, Width: 32b; Field.
PRINCE_REGION2_IV_BODY2: '0x00000000'
# -----------------------------------===== PRINCE_REGION2_IV_BODY3 [Optional] =====-----------------------------------
# Description: Offset: 0x000000B4, Width: 32b; Field.
PRINCE_REGION2_IV_BODY3: '0x00000000'
# -----------------------------------===== PRINCE_REGION2_IV_BODY4 [Optional] =====-----------------------------------
# Description: Offset: 0x000000B8, Width: 32b; Field.
PRINCE_REGION2_IV_BODY4: '0x00000000'
# -----------------------------------===== PRINCE_REGION2_IV_BODY5 [Optional] =====-----------------------------------
# Description: Offset: 0x000000BC, Width: 32b; Field.
PRINCE_REGION2_IV_BODY5: '0x00000000'
# -----------------------------------===== PRINCE_REGION2_IV_BODY6 [Optional] =====-----------------------------------
# Description: Offset: 0x000000C0, Width: 32b; Field.
PRINCE_REGION2_IV_BODY6: '0x00000000'
# -----------------------------------===== PRINCE_REGION2_IV_BODY7 [Optional] =====-----------------------------------
# Description: Offset: 0x000000C4, Width: 32b; Field.
PRINCE_REGION2_IV_BODY7: '0x00000000'
# -----------------------------------===== PRINCE_REGION2_IV_BODY8 [Optional] =====-----------------------------------
# Description: Offset: 0x000000C8, Width: 32b; Field.
PRINCE_REGION2_IV_BODY8: '0x00000000'
# -----------------------------------===== PRINCE_REGION2_IV_BODY9 [Optional] =====-----------------------------------
# Description: Offset: 0x000000CC, Width: 32b; Field.
PRINCE_REGION2_IV_BODY9: '0x00000000'
# ----------------------------------===== PRINCE_REGION2_IV_BODY10 [Optional] =====-----------------------------------
# Description: Offset: 0x000000D0, Width: 32b; Field.
PRINCE_REGION2_IV_BODY10: '0x00000000'
# ----------------------------------===== PRINCE_REGION2_IV_BODY11 [Optional] =====-----------------------------------
# Description: Offset: 0x000000D4, Width: 32b; Field.
PRINCE_REGION2_IV_BODY11: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED0 [Optional] =====--------------------------------------
# Description: Offset: 0x00000100, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED0: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED1 [Optional] =====--------------------------------------
# Description: Offset: 0x00000104, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED1: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED2 [Optional] =====--------------------------------------
# Description: Offset: 0x00000108, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED2: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED3 [Optional] =====--------------------------------------
# Description: Offset: 0x0000010C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED3: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED4 [Optional] =====--------------------------------------
# Description: Offset: 0x00000110, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED4: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED5 [Optional] =====--------------------------------------
# Description: Offset: 0x00000114, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED5: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED6 [Optional] =====--------------------------------------
# Description: Offset: 0x00000118, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED6: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED7 [Optional] =====--------------------------------------
# Description: Offset: 0x0000011C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED7: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED8 [Optional] =====--------------------------------------
# Description: Offset: 0x00000120, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED8: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED9 [Optional] =====--------------------------------------
# Description: Offset: 0x00000124, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED9: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED10 [Optional] =====--------------------------------------
# Description: Offset: 0x00000128, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED10: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED11 [Optional] =====--------------------------------------
# Description: Offset: 0x0000012C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED11: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED12 [Optional] =====--------------------------------------
# Description: Offset: 0x00000130, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED12: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED13 [Optional] =====--------------------------------------
# Description: Offset: 0x00000134, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED13: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED14 [Optional] =====--------------------------------------
# Description: Offset: 0x00000138, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED14: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED15 [Optional] =====--------------------------------------
# Description: Offset: 0x0000013C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED15: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED16 [Optional] =====--------------------------------------
# Description: Offset: 0x00000140, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED16: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED17 [Optional] =====--------------------------------------
# Description: Offset: 0x00000144, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED17: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED18 [Optional] =====--------------------------------------
# Description: Offset: 0x00000148, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED18: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED19 [Optional] =====--------------------------------------
# Description: Offset: 0x0000014C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED19: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED20 [Optional] =====--------------------------------------
# Description: Offset: 0x00000150, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED20: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED21 [Optional] =====--------------------------------------
# Description: Offset: 0x00000154, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED21: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED22 [Optional] =====--------------------------------------
# Description: Offset: 0x00000158, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED22: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED23 [Optional] =====--------------------------------------
# Description: Offset: 0x0000015C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED23: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED24 [Optional] =====--------------------------------------
# Description: Offset: 0x00000160, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED24: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED25 [Optional] =====--------------------------------------
# Description: Offset: 0x00000164, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED25: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED26 [Optional] =====--------------------------------------
# Description: Offset: 0x00000168, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED26: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED27 [Optional] =====--------------------------------------
# Description: Offset: 0x0000016C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED27: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED28 [Optional] =====--------------------------------------
# Description: Offset: 0x00000170, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED28: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED29 [Optional] =====--------------------------------------
# Description: Offset: 0x00000174, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED29: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED30 [Optional] =====--------------------------------------
# Description: Offset: 0x00000178, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED30: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED31 [Optional] =====--------------------------------------
# Description: Offset: 0x0000017C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED31: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED32 [Optional] =====--------------------------------------
# Description: Offset: 0x00000180, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED32: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED33 [Optional] =====--------------------------------------
# Description: Offset: 0x00000184, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED33: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED34 [Optional] =====--------------------------------------
# Description: Offset: 0x00000188, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED34: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED35 [Optional] =====--------------------------------------
# Description: Offset: 0x0000018C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED35: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED36 [Optional] =====--------------------------------------
# Description: Offset: 0x00000190, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED36: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED37 [Optional] =====--------------------------------------
# Description: Offset: 0x00000194, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED37: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED38 [Optional] =====--------------------------------------
# Description: Offset: 0x00000198, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED38: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED39 [Optional] =====--------------------------------------
# Description: Offset: 0x0000019C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED39: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED40 [Optional] =====--------------------------------------
# Description: Offset: 0x000001A0, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED40: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED41 [Optional] =====--------------------------------------
# Description: Offset: 0x000001A4, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED41: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED42 [Optional] =====--------------------------------------
# Description: Offset: 0x000001A8, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED42: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED43 [Optional] =====--------------------------------------
# Description: Offset: 0x000001AC, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED43: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED44 [Optional] =====--------------------------------------
# Description: Offset: 0x000001B0, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED44: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED45 [Optional] =====--------------------------------------
# Description: Offset: 0x000001B4, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED45: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED46 [Optional] =====--------------------------------------
# Description: Offset: 0x000001B8, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED46: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED47 [Optional] =====--------------------------------------
# Description: Offset: 0x000001BC, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED47: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED48 [Optional] =====--------------------------------------
# Description: Offset: 0x000001C0, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED48: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED49 [Optional] =====--------------------------------------
# Description: Offset: 0x000001C4, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED49: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED50 [Optional] =====--------------------------------------
# Description: Offset: 0x000001C8, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED50: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED51 [Optional] =====--------------------------------------
# Description: Offset: 0x000001CC, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED51: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED52 [Optional] =====--------------------------------------
# Description: Offset: 0x000001D0, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED52: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED53 [Optional] =====--------------------------------------
# Description: Offset: 0x000001D4, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED53: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED54 [Optional] =====--------------------------------------
# Description: Offset: 0x000001D8, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED54: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED55 [Optional] =====--------------------------------------
# Description: Offset: 0x000001DC, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED55: '0x00000000'
# ---------------------------------------===== SHA256_DIGEST0 [Optional] =====----------------------------------------
# Description: Offset: 0x000001E0, Width: 32b; SHA256_DIGEST0 for DIGEST[31:0]
SHA256_DIGEST0: '0x00000000'
# ---------------------------------------===== SHA256_DIGEST1 [Optional] =====----------------------------------------
# Description: Offset: 0x000001E4, Width: 32b; SHA256_DIGEST1 for DIGEST[63:32]
SHA256_DIGEST1: '0x00000000'
# ---------------------------------------===== SHA256_DIGEST2 [Optional] =====----------------------------------------
# Description: Offset: 0x000001E8, Width: 32b; SHA256_DIGEST2 for DIGEST[95:64]
SHA256_DIGEST2: '0x00000000'
# ---------------------------------------===== SHA256_DIGEST3 [Optional] =====----------------------------------------
# Description: Offset: 0x000001EC, Width: 32b; SHA256_DIGEST3 for DIGEST[127:96]
SHA256_DIGEST3: '0x00000000'
# ---------------------------------------===== SHA256_DIGEST4 [Optional] =====----------------------------------------
# Description: Offset: 0x000001F0, Width: 32b; SHA256_DIGEST4 for DIGEST[159:128]
SHA256_DIGEST4: '0x00000000'
# ---------------------------------------===== SHA256_DIGEST5 [Optional] =====----------------------------------------
# Description: Offset: 0x000001F4, Width: 32b; SHA256_DIGEST5 for DIGEST[191:160]
SHA256_DIGEST5: '0x00000000'
# ---------------------------------------===== SHA256_DIGEST6 [Optional] =====----------------------------------------
# Description: Offset: 0x000001F8, Width: 32b; SHA256_DIGEST6 for DIGEST[223:192]
SHA256_DIGEST6: '0x00000000'
# ---------------------------------------===== SHA256_DIGEST7 [Optional] =====----------------------------------------
# Description: Offset: 0x000001FC, Width: 32b; SHA256_DIGEST7 for DIGEST[255:224]
SHA256_DIGEST7: '0x00000000'
# Copyright 2024 NXP
#
# SPDX-License-Identifier: BSD-3-Clause
# ========================================= PFR CFPA configuration template ==========================================
# ======================================================================================================================
# == General Options ==
# ======================================================================================================================
# -------------------------------------===== The chip family name [Required] =====--------------------------------------
# Description: NXP chip family identifier.
# Possible options:
# lpc55s06, lpc55s14, lpc55s16, lpc55s26, lpc55s28, lpc55s36, lpc55s66, lpc55s69, mcxn235, mcxn236, mcxn546, mcxn547,
# mcxn946, mcxn947, nhs52s04>
family: lpc55s69
# -----------------------------------------===== MCU revision [Optional] =====------------------------------------------
# Description: Revision of silicon. The 'latest' name, means most current revision.
# Possible options:
revision: latest
# ------------------------------------===== Configuration area type [Optional] =====------------------------------------
# Description: PFR / IFR type
type: CFPA
# ----------------------------------===== Configuration area Settings [Required] =====----------------------------------
settings:
# -------------------------------------------===== HEADER [Optional] =====--------------------------------------------
# Description: Offset: 0x00000000, Width: 32b; Header
HEADER: '0x00000000'
# -------------------------------------------===== VERSION [Optional] =====-------------------------------------------
# Description: Offset: 0x00000004, Width: 32b; Version
VERSION: '0x00000000' This is important, after each update this bitfield must be incremented
# ----------------------------------------===== S_FW_Version [Optional] =====-----------------------------------------
# Description: Offset: 0x00000008, Width: 32b; Secure firmware version (Monotonic counter)
S_FW_Version: '0x00000000'
# ----------------------------------------===== NS_FW_Version [Optional] =====----------------------------------------
# Description: Offset: 0x0000000C, Width: 32b; Non-Secure firmware version (Monotonic counter)
NS_FW_Version: '0x00000000'
# --------------------------------------===== IMAGE_KEY_REVOKE [Optional] =====---------------------------------------
# Description: Offset: 0x00000010, Width: 32b; Image key revocation ID (Monotonic counter)
IMAGE_KEY_REVOKE: '0x00000000'
# ----------------------------------------===== ROTKH_REVOKE [Optional] =====-----------------------------------------
# Description: Offset: 0x00000018, Width: 32b; Root of Trust Key Hash Revoke
ROTKH_REVOKE:
# -----------------------------------------===== RoTK0_EN [Optional] =====------------------------------------------
# Description: Offset: 0b, Width: 2b, RoT Key 0 enable.
# - INVALID, (0): Invalid
# - ENABLED, (1): Enabled
# - REVOKED_0, (2): Key revoked
# - REVOKED_1, (3): Key revoked
# Possible options:
RoTK0_EN: ENABLED Enable Root of Trust Key 0
# -----------------------------------------===== RoTK1_EN [Optional] =====------------------------------------------
# Description: Offset: 2b, Width: 2b, RoT Key 1 enable.
# - INVALID, (0): Invalid
# - ENABLED, (1): Enabled
# - REVOKED_0, (2): Key revoked
# - REVOKED_1, (3): Key revoked
# Possible options:
RoTK1_EN: INVALID
# -----------------------------------------===== RoTK2_EN [Optional] =====------------------------------------------
# Description: Offset: 4b, Width: 2b, RoT Key 2 enable.
# - INVALID, (0): Invalid
# - ENABLED, (1): Enabled
# - REVOKED_0, (2): Key revoked
# - REVOKED_1, (3): Key revoked
# Possible options:
RoTK2_EN: INVALID
# -----------------------------------------===== RoTK3_EN [Optional] =====------------------------------------------
# Description: Offset: 6b, Width: 2b, RoT Key 3 enable.
# - INVALID, (0): Invalid
# - ENABLED, (1): Enabled
# - REVOKED_0, (2): Key revoked
# - REVOKED_1, (3): Key revoked
# Possible options:
RoTK3_EN: INVALID
# ----------------------------------------===== VENDOR_USAGE [Optional] =====-----------------------------------------
# Description: Offset: 0x0000001C, Width: 32b; Vendor Usage
VENDOR_USAGE:
# -------------------------------------===== DBG_VENDOR_USAGE [Optional] =====--------------------------------------
# Description: Offset: 0b, Width: 16b, Debug Vendor Usage
DBG_VENDOR_USAGE: 0
# -------------------------------------===== DCFG_CC_SOCU_NS_PIN [Optional] =====-------------------------------------
# Description: Offset: 0x00000020, Width: 32b; Device Configuration Credential Constraints for SoC specific Use
# Pinned.
# Combinations of PIN and DFLT bits and resulting restriction level:
# - PIN=1,DFLT=1: Restriction level 0. Access to the sub-domain is always enabled. This setting is provided for module
# use case scenario where DCFG_CC_SOCU_NS would be used to define further access restrictions before final deployment
# of the product.
# - PIN=0,DFLT=0: Restriction level 1. Access to the sub-domain is disabled at startup. But the access can be enabled
# through debug authentication process by providing appropriate Debug Credential (DC) certificate.
# - PIN=0,DFLT=1: Illegal setting. Part may lock-up if this setting is selected.
# - PIN=1,DFLT=0: Restriction level 3. Access to the sub-domain is permanently disabled and can't be reversed. This
# setting offers the highest level of restriction.
DCFG_CC_SOCU_NS_PIN:
# -------------------------------------------===== NIDEN [Optional] =====-------------------------------------------
# Description: Offset: 0b, Width: 1b, Non Secure non-invasive debug enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
NIDEN: USE_DAP
# -------------------------------------------===== DBGEN [Optional] =====-------------------------------------------
# Description: Offset: 1b, Width: 1b, Non Secure debug enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
DBGEN: USE_DAP
# ------------------------------------------===== SPNIDEN [Optional] =====------------------------------------------
# Description: Offset: 2b, Width: 1b, Secure non-invasive debug enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
SPNIDEN: USE_DAP
# ------------------------------------------===== SPIDEN [Optional] =====-------------------------------------------
# Description: Offset: 3b, Width: 1b, Secure invasive debug enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
SPIDEN: USE_DAP
# -------------------------------------------===== TAPEN [Optional] =====-------------------------------------------
# Description: Offset: 4b, Width: 1b, JTAG TAP enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
TAPEN: USE_DAP
# ----------------------------------------===== CPU1_DBGEN [Optional] =====-----------------------------------------
# Description: Offset: 5b, Width: 1b, CPU1 (Micro cortex M33) invasive debug enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
CPU1_DBGEN: USE_DAP
# ----------------------------------------===== ISP_CMD_EN [Optional] =====-----------------------------------------
# Description: Offset: 6b, Width: 1b, ISP Boot Command enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
ISP_CMD_EN: USE_DAP
# ---------------------------------------===== FA_ME_CMD_EN [Optional] =====----------------------------------------
# Description: Offset: 7b, Width: 1b, Fault Analysis/Mass Erase Command enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
FA_ME_CMD_EN: USE_DAP
# ----------------------------------------===== CPU1_NIDEN [Optional] =====-----------------------------------------
# Description: Offset: 9b, Width: 1b, CPU1 (Micro cortex M33) non-invasive debug enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
CPU1_NIDEN: USE_DAP
# ----------------------------------------===== UUID_CHECK [Optional] =====-----------------------------------------
# Description: Offset: 15b, Width: 1b, Enforce UUID match during Debug authentication.
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
UUID_CHECK: DISABLED
# ------------------------------------===== DCFG_CC_SOCU_NS_DFLT [Optional] =====-------------------------------------
# Description: Offset: 0x00000024, Width: 32b; Device Configuration Credential Constraints for SoC specific Use Debug
# Filter.
# Combinations of PIN and DFLT bits and resulting restriction level:
# - PIN=1,DFLT=1: Restriction level 0. Access to the sub-domain is always enabled. This setting is provided for module
# use case scenario where DCFG_CC_SOCU_NS would be used to define further access restrictions before final deployment
# of the product.
# - PIN=0,DFLT=0: Restriction level 1. Access to the sub-domain is disabled at startup. But the access can be enabled
# through debug authentication process by providing appropriate Debug Credential (DC) certificate.
# - PIN=0,DFLT=1: Illegal setting. Part may lock-up if this setting is selected.
# - PIN=1,DFLT=0: Restriction level 3. Access to the sub-domain is permanently disabled and can't be reversed. This
# setting offers the highest level of restriction.
DCFG_CC_SOCU_NS_DFLT:
# -------------------------------------------===== NIDEN [Optional] =====-------------------------------------------
# Description: Offset: 0b, Width: 1b, Non Secure non-invasive debug fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
NIDEN: DISABLED
# -------------------------------------------===== DBGEN [Optional] =====-------------------------------------------
# Description: Offset: 1b, Width: 1b, Non Secure debug fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
DBGEN: DISABLED
# ------------------------------------------===== SPNIDEN [Optional] =====------------------------------------------
# Description: Offset: 2b, Width: 1b, Secure non-invasive debug fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
SPNIDEN: DISABLED
# ------------------------------------------===== SPIDEN [Optional] =====-------------------------------------------
# Description: Offset: 3b, Width: 1b, Secure invasive debug fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
SPIDEN: DISABLED
# -------------------------------------------===== TAPEN [Optional] =====-------------------------------------------
# Description: Offset: 4b, Width: 1b, JTAG TAP fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
TAPEN: DISABLED
# ----------------------------------------===== CPU1_DBGEN [Optional] =====-----------------------------------------
# Description: Offset: 5b, Width: 1b, CPU1 (Micro cortex M33) invasive debug fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
CPU1_DBGEN: DISABLED
# ----------------------------------------===== ISP_CMD_EN [Optional] =====-----------------------------------------
# Description: Offset: 6b, Width: 1b, ISP Boot Command fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
ISP_CMD_EN: DISABLED
# ---------------------------------------===== FA_ME_CMD_EN [Optional] =====----------------------------------------
# Description: Offset: 7b, Width: 1b, Fault Analysis/Mass Erase Command fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
FA_ME_CMD_EN: DISABLED
# ----------------------------------------===== CPU1_NIDEN [Optional] =====-----------------------------------------
# Description: Offset: 9b, Width: 1b, CPU1 (Micro cortex M33) non-invasive debug fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
CPU1_NIDEN: DISABLED
# ---------------------------------------===== ENABLE_FA_MODE [Optional] =====----------------------------------------
# Description: Offset: 0x00000028, Width: 32b; Enable FA mode. SET_FA_MODE Command should write 0xC33CA55A to this
# word to indicate boot ROM to enter FA mode.
ENABLE_FA_MODE: '0x00000000'
# ------------------------------------===== CMPA_PROG_IN_PROGRESS [Optional] =====------------------------------------
# Description: Offset: 0x0000002C, Width: 32b; CMPA Page programming on going. This field shall be set to 0x5CC55AA5
# in the active CFPA page each time CMPA page programming is going on. It shall always be set to 0x00000000 in the
# CFPA scratch area.
CMPA_PROG_IN_PROGRESS: '0x00000000'
# -----------------------------------===== PRINCE_REGION0_IV_CODE0 [Optional] =====-----------------------------------
# Description: Offset: 0x00000030, Width: 32b; Field.
PRINCE_REGION0_IV_CODE0: '0x00000000'
# -----------------------------------===== PRINCE_REGION0_IV_CODE1 [Optional] =====-----------------------------------
# Description: Offset: 0x00000034, Width: 32b; Field.
PRINCE_REGION0_IV_CODE1:
# -------------------------------------------===== TYPE [Optional] =====--------------------------------------------
# Description: Offset: 0b, Width: 2b, Type.
TYPE: 0
# -------------------------------------------===== INDEX [Optional] =====-------------------------------------------
# Description: Offset: 8b, Width: 4b, Index.
INDEX: 0
# -------------------------------------------===== SIZE [Optional] =====--------------------------------------------
# Description: Offset: 24b, Width: 6b, Size.
SIZE: 0
# -----------------------------------===== PRINCE_REGION0_IV_BODY0 [Optional] =====-----------------------------------
# Description: Offset: 0x00000038, Width: 32b; Field.
PRINCE_REGION0_IV_BODY0: '0x00000000'
# -----------------------------------===== PRINCE_REGION0_IV_BODY1 [Optional] =====-----------------------------------
# Description: Offset: 0x0000003C, Width: 32b; Field.
PRINCE_REGION0_IV_BODY1: '0x00000000'
# -----------------------------------===== PRINCE_REGION0_IV_BODY2 [Optional] =====-----------------------------------
# Description: Offset: 0x00000040, Width: 32b; Field.
PRINCE_REGION0_IV_BODY2: '0x00000000'
# -----------------------------------===== PRINCE_REGION0_IV_BODY3 [Optional] =====-----------------------------------
# Description: Offset: 0x00000044, Width: 32b; Field.
PRINCE_REGION0_IV_BODY3: '0x00000000'
# -----------------------------------===== PRINCE_REGION0_IV_BODY4 [Optional] =====-----------------------------------
# Description: Offset: 0x00000048, Width: 32b; Field.
PRINCE_REGION0_IV_BODY4: '0x00000000'
# -----------------------------------===== PRINCE_REGION0_IV_BODY5 [Optional] =====-----------------------------------
# Description: Offset: 0x0000004C, Width: 32b; Field.
PRINCE_REGION0_IV_BODY5: '0x00000000'
# -----------------------------------===== PRINCE_REGION0_IV_BODY6 [Optional] =====-----------------------------------
# Description: Offset: 0x00000050, Width: 32b; Field.
PRINCE_REGION0_IV_BODY6: '0x00000000'
# -----------------------------------===== PRINCE_REGION0_IV_BODY7 [Optional] =====-----------------------------------
# Description: Offset: 0x00000054, Width: 32b; Field.
PRINCE_REGION0_IV_BODY7: '0x00000000'
# -----------------------------------===== PRINCE_REGION0_IV_BODY8 [Optional] =====-----------------------------------
# Description: Offset: 0x00000058, Width: 32b; Field.
PRINCE_REGION0_IV_BODY8: '0x00000000'
# -----------------------------------===== PRINCE_REGION0_IV_BODY9 [Optional] =====-----------------------------------
# Description: Offset: 0x0000005C, Width: 32b; Field.
PRINCE_REGION0_IV_BODY9: '0x00000000'
# ----------------------------------===== PRINCE_REGION0_IV_BODY10 [Optional] =====-----------------------------------
# Description: Offset: 0x00000060, Width: 32b; Field.
PRINCE_REGION0_IV_BODY10: '0x00000000'
# ----------------------------------===== PRINCE_REGION0_IV_BODY11 [Optional] =====-----------------------------------
# Description: Offset: 0x00000064, Width: 32b; Field.
PRINCE_REGION0_IV_BODY11: '0x00000000'
# -----------------------------------===== PRINCE_REGION1_IV_CODE0 [Optional] =====-----------------------------------
# Description: Offset: 0x00000068, Width: 32b; Field.
PRINCE_REGION1_IV_CODE0: '0x00000000'
# -----------------------------------===== PRINCE_REGION1_IV_CODE1 [Optional] =====-----------------------------------
# Description: Offset: 0x0000006C, Width: 32b; Field.
PRINCE_REGION1_IV_CODE1:
# -------------------------------------------===== TYPE [Optional] =====--------------------------------------------
# Description: Offset: 0b, Width: 2b, Type.
TYPE: 0
# -------------------------------------------===== INDEX [Optional] =====-------------------------------------------
# Description: Offset: 8b, Width: 4b, Index.
INDEX: 0
# -------------------------------------------===== SIZE [Optional] =====--------------------------------------------
# Description: Offset: 24b, Width: 6b, Size.
SIZE: 0
# -----------------------------------===== PRINCE_REGION1_IV_BODY0 [Optional] =====-----------------------------------
# Description: Offset: 0x00000070, Width: 32b; Field.
PRINCE_REGION1_IV_BODY0: '0x00000000'
# -----------------------------------===== PRINCE_REGION1_IV_BODY1 [Optional] =====-----------------------------------
# Description: Offset: 0x00000074, Width: 32b; Field.
PRINCE_REGION1_IV_BODY1: '0x00000000'
# -----------------------------------===== PRINCE_REGION1_IV_BODY2 [Optional] =====-----------------------------------
# Description: Offset: 0x00000078, Width: 32b; Field.
PRINCE_REGION1_IV_BODY2: '0x00000000'
# -----------------------------------===== PRINCE_REGION1_IV_BODY3 [Optional] =====-----------------------------------
# Description: Offset: 0x0000007C, Width: 32b; Field.
PRINCE_REGION1_IV_BODY3: '0x00000000'
# -----------------------------------===== PRINCE_REGION1_IV_BODY4 [Optional] =====-----------------------------------
# Description: Offset: 0x00000080, Width: 32b; Field.
PRINCE_REGION1_IV_BODY4: '0x00000000'
# -----------------------------------===== PRINCE_REGION1_IV_BODY5 [Optional] =====-----------------------------------
# Description: Offset: 0x00000084, Width: 32b; Field.
PRINCE_REGION1_IV_BODY5: '0x00000000'
# -----------------------------------===== PRINCE_REGION1_IV_BODY6 [Optional] =====-----------------------------------
# Description: Offset: 0x00000088, Width: 32b; Field.
PRINCE_REGION1_IV_BODY6: '0x00000000'
# -----------------------------------===== PRINCE_REGION1_IV_BODY7 [Optional] =====-----------------------------------
# Description: Offset: 0x0000008C, Width: 32b; Field.
PRINCE_REGION1_IV_BODY7: '0x00000000'
# -----------------------------------===== PRINCE_REGION1_IV_BODY8 [Optional] =====-----------------------------------
# Description: Offset: 0x00000090, Width: 32b; Field.
PRINCE_REGION1_IV_BODY8: '0x00000000'
# -----------------------------------===== PRINCE_REGION1_IV_BODY9 [Optional] =====-----------------------------------
# Description: Offset: 0x00000094, Width: 32b; Field.
PRINCE_REGION1_IV_BODY9: '0x00000000'
# ----------------------------------===== PRINCE_REGION1_IV_BODY10 [Optional] =====-----------------------------------
# Description: Offset: 0x00000098, Width: 32b; Field.
PRINCE_REGION1_IV_BODY10: '0x00000000'
# ----------------------------------===== PRINCE_REGION1_IV_BODY11 [Optional] =====-----------------------------------
# Description: Offset: 0x0000009C, Width: 32b; Field.
PRINCE_REGION1_IV_BODY11: '0x00000000'
# -----------------------------------===== PRINCE_REGION2_IV_CODE0 [Optional] =====-----------------------------------
# Description: Offset: 0x000000A0, Width: 32b; Field.
PRINCE_REGION2_IV_CODE0: '0x00000000'
# -----------------------------------===== PRINCE_REGION2_IV_CODE1 [Optional] =====-----------------------------------
# Description: Offset: 0x000000A4, Width: 32b; Field.
PRINCE_REGION2_IV_CODE1:
# -------------------------------------------===== TYPE [Optional] =====--------------------------------------------
# Description: Offset: 0b, Width: 2b, Type.
TYPE: 0
# -------------------------------------------===== INDEX [Optional] =====-------------------------------------------
# Description: Offset: 8b, Width: 4b, Index.
INDEX: 0
# -------------------------------------------===== SIZE [Optional] =====--------------------------------------------
# Description: Offset: 24b, Width: 6b, Size.
SIZE: 0
# -----------------------------------===== PRINCE_REGION2_IV_BODY0 [Optional] =====-----------------------------------
# Description: Offset: 0x000000A8, Width: 32b; Field.
PRINCE_REGION2_IV_BODY0: '0x00000000'
# -----------------------------------===== PRINCE_REGION2_IV_BODY1 [Optional] =====-----------------------------------
# Description: Offset: 0x000000AC, Width: 32b; Field.
PRINCE_REGION2_IV_BODY1: '0x00000000'
# -----------------------------------===== PRINCE_REGION2_IV_BODY2 [Optional] =====-----------------------------------
# Description: Offset: 0x000000B0, Width: 32b; Field.
PRINCE_REGION2_IV_BODY2: '0x00000000'
# -----------------------------------===== PRINCE_REGION2_IV_BODY3 [Optional] =====-----------------------------------
# Description: Offset: 0x000000B4, Width: 32b; Field.
PRINCE_REGION2_IV_BODY3: '0x00000000'
# -----------------------------------===== PRINCE_REGION2_IV_BODY4 [Optional] =====-----------------------------------
# Description: Offset: 0x000000B8, Width: 32b; Field.
PRINCE_REGION2_IV_BODY4: '0x00000000'
# -----------------------------------===== PRINCE_REGION2_IV_BODY5 [Optional] =====-----------------------------------
# Description: Offset: 0x000000BC, Width: 32b; Field.
PRINCE_REGION2_IV_BODY5: '0x00000000'
# -----------------------------------===== PRINCE_REGION2_IV_BODY6 [Optional] =====-----------------------------------
# Description: Offset: 0x000000C0, Width: 32b; Field.
PRINCE_REGION2_IV_BODY6: '0x00000000'
# -----------------------------------===== PRINCE_REGION2_IV_BODY7 [Optional] =====-----------------------------------
# Description: Offset: 0x000000C4, Width: 32b; Field.
PRINCE_REGION2_IV_BODY7: '0x00000000'
# -----------------------------------===== PRINCE_REGION2_IV_BODY8 [Optional] =====-----------------------------------
# Description: Offset: 0x000000C8, Width: 32b; Field.
PRINCE_REGION2_IV_BODY8: '0x00000000'
# -----------------------------------===== PRINCE_REGION2_IV_BODY9 [Optional] =====-----------------------------------
# Description: Offset: 0x000000CC, Width: 32b; Field.
PRINCE_REGION2_IV_BODY9: '0x00000000'
# ----------------------------------===== PRINCE_REGION2_IV_BODY10 [Optional] =====-----------------------------------
# Description: Offset: 0x000000D0, Width: 32b; Field.
PRINCE_REGION2_IV_BODY10: '0x00000000'
# ----------------------------------===== PRINCE_REGION2_IV_BODY11 [Optional] =====-----------------------------------
# Description: Offset: 0x000000D4, Width: 32b; Field.
PRINCE_REGION2_IV_BODY11: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED0 [Optional] =====--------------------------------------
# Description: Offset: 0x00000100, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED0: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED1 [Optional] =====--------------------------------------
# Description: Offset: 0x00000104, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED1: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED2 [Optional] =====--------------------------------------
# Description: Offset: 0x00000108, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED2: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED3 [Optional] =====--------------------------------------
# Description: Offset: 0x0000010C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED3: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED4 [Optional] =====--------------------------------------
# Description: Offset: 0x00000110, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED4: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED5 [Optional] =====--------------------------------------
# Description: Offset: 0x00000114, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED5: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED6 [Optional] =====--------------------------------------
# Description: Offset: 0x00000118, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED6: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED7 [Optional] =====--------------------------------------
# Description: Offset: 0x0000011C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED7: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED8 [Optional] =====--------------------------------------
# Description: Offset: 0x00000120, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED8: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED9 [Optional] =====--------------------------------------
# Description: Offset: 0x00000124, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED9: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED10 [Optional] =====--------------------------------------
# Description: Offset: 0x00000128, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED10: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED11 [Optional] =====--------------------------------------
# Description: Offset: 0x0000012C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED11: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED12 [Optional] =====--------------------------------------
# Description: Offset: 0x00000130, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED12: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED13 [Optional] =====--------------------------------------
# Description: Offset: 0x00000134, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED13: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED14 [Optional] =====--------------------------------------
# Description: Offset: 0x00000138, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED14: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED15 [Optional] =====--------------------------------------
# Description: Offset: 0x0000013C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED15: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED16 [Optional] =====--------------------------------------
# Description: Offset: 0x00000140, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED16: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED17 [Optional] =====--------------------------------------
# Description: Offset: 0x00000144, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED17: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED18 [Optional] =====--------------------------------------
# Description: Offset: 0x00000148, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED18: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED19 [Optional] =====--------------------------------------
# Description: Offset: 0x0000014C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED19: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED20 [Optional] =====--------------------------------------
# Description: Offset: 0x00000150, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED20: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED21 [Optional] =====--------------------------------------
# Description: Offset: 0x00000154, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED21: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED22 [Optional] =====--------------------------------------
# Description: Offset: 0x00000158, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED22: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED23 [Optional] =====--------------------------------------
# Description: Offset: 0x0000015C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED23: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED24 [Optional] =====--------------------------------------
# Description: Offset: 0x00000160, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED24: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED25 [Optional] =====--------------------------------------
# Description: Offset: 0x00000164, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED25: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED26 [Optional] =====--------------------------------------
# Description: Offset: 0x00000168, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED26: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED27 [Optional] =====--------------------------------------
# Description: Offset: 0x0000016C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED27: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED28 [Optional] =====--------------------------------------
# Description: Offset: 0x00000170, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED28: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED29 [Optional] =====--------------------------------------
# Description: Offset: 0x00000174, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED29: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED30 [Optional] =====--------------------------------------
# Description: Offset: 0x00000178, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED30: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED31 [Optional] =====--------------------------------------
# Description: Offset: 0x0000017C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED31: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED32 [Optional] =====--------------------------------------
# Description: Offset: 0x00000180, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED32: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED33 [Optional] =====--------------------------------------
# Description: Offset: 0x00000184, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED33: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED34 [Optional] =====--------------------------------------
# Description: Offset: 0x00000188, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED34: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED35 [Optional] =====--------------------------------------
# Description: Offset: 0x0000018C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED35: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED36 [Optional] =====--------------------------------------
# Description: Offset: 0x00000190, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED36: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED37 [Optional] =====--------------------------------------
# Description: Offset: 0x00000194, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED37: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED38 [Optional] =====--------------------------------------
# Description: Offset: 0x00000198, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED38: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED39 [Optional] =====--------------------------------------
# Description: Offset: 0x0000019C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED39: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED40 [Optional] =====--------------------------------------
# Description: Offset: 0x000001A0, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED40: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED41 [Optional] =====--------------------------------------
# Description: Offset: 0x000001A4, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED41: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED42 [Optional] =====--------------------------------------
# Description: Offset: 0x000001A8, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED42: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED43 [Optional] =====--------------------------------------
# Description: Offset: 0x000001AC, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED43: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED44 [Optional] =====--------------------------------------
# Description: Offset: 0x000001B0, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED44: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED45 [Optional] =====--------------------------------------
# Description: Offset: 0x000001B4, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED45: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED46 [Optional] =====--------------------------------------
# Description: Offset: 0x000001B8, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED46: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED47 [Optional] =====--------------------------------------
# Description: Offset: 0x000001BC, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED47: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED48 [Optional] =====--------------------------------------
# Description: Offset: 0x000001C0, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED48: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED49 [Optional] =====--------------------------------------
# Description: Offset: 0x000001C4, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED49: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED50 [Optional] =====--------------------------------------
# Description: Offset: 0x000001C8, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED50: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED51 [Optional] =====--------------------------------------
# Description: Offset: 0x000001CC, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED51: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED52 [Optional] =====--------------------------------------
# Description: Offset: 0x000001D0, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED52: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED53 [Optional] =====--------------------------------------
# Description: Offset: 0x000001D4, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED53: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED54 [Optional] =====--------------------------------------
# Description: Offset: 0x000001D8, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED54: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED55 [Optional] =====--------------------------------------
# Description: Offset: 0x000001DC, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED55: '0x00000000'
# ---------------------------------------===== SHA256_DIGEST0 [Optional] =====----------------------------------------
# Description: Offset: 0x000001E0, Width: 32b; SHA256_DIGEST0 for DIGEST[31:0]
SHA256_DIGEST0: '0x00000000'
# ---------------------------------------===== SHA256_DIGEST1 [Optional] =====----------------------------------------
# Description: Offset: 0x000001E4, Width: 32b; SHA256_DIGEST1 for DIGEST[63:32]
SHA256_DIGEST1: '0x00000000'
# ---------------------------------------===== SHA256_DIGEST2 [Optional] =====----------------------------------------
# Description: Offset: 0x000001E8, Width: 32b; SHA256_DIGEST2 for DIGEST[95:64]
SHA256_DIGEST2: '0x00000000'
# ---------------------------------------===== SHA256_DIGEST3 [Optional] =====----------------------------------------
# Description: Offset: 0x000001EC, Width: 32b; SHA256_DIGEST3 for DIGEST[127:96]
SHA256_DIGEST3: '0x00000000'
# ---------------------------------------===== SHA256_DIGEST4 [Optional] =====----------------------------------------
# Description: Offset: 0x000001F0, Width: 32b; SHA256_DIGEST4 for DIGEST[159:128]
SHA256_DIGEST4: '0x00000000'
# ---------------------------------------===== SHA256_DIGEST5 [Optional] =====----------------------------------------
# Description: Offset: 0x000001F4, Width: 32b; SHA256_DIGEST5 for DIGEST[191:160]
SHA256_DIGEST5: '0x00000000'
# ---------------------------------------===== SHA256_DIGEST6 [Optional] =====----------------------------------------
# Description: Offset: 0x000001F8, Width: 32b; SHA256_DIGEST6 for DIGEST[223:192]
SHA256_DIGEST6: '0x00000000'
# ---------------------------------------===== SHA256_DIGEST7 [Optional] =====----------------------------------------
# Description: Offset: 0x000001FC, Width: 32b; SHA256_DIGEST7 for DIGEST[255:224]
SHA256_DIGEST7: '0x00000000'
5. Device preparation#
Now it’s time to prepare the device (enroll keys, load pfr…). In this example we will use LPCXpresso55S69 Evaluation kit.
First step is to enter ISP mode, this could be achieved by either shorting J10 or by simultaneously pressing ISP button and reset button.
LPCXpresso55S69 supports UART and USB-HID interface for the ISP programming. In the picture below we used UART, if you want to use USB, connect the cable to high speed USB port.
We could use app nxpdevscan to check if the device is connected to the PC in ISP mode.
# check if the device is connected and detected by PC
%! nxpdevscan -u
nxpdevscan -u
-------- Connected NXP USB Devices --------
USB COMPOSITE DEVICE - NXP SEMICONDUCTOR INC.
Vendor ID: 0x1fc9
Product ID: 0x0021
Path: HID\VID_1FC9&PID_0021\9&3AA499EB&0&0000
Path Hash: 694e4de1
Name: lpc55s69 | lpc5526 | lpc55s26 | lpc5528 | lpc55s28 | nhs52s04 | lpc55s66
Serial number:
USB_CONNECTION = "-u lpc55s69"
# choose com port or /dev
UART_CONNECTION = "-p com21"
# comment if you want to use UART
# CONNECTION = USB_CONNECTION
CONNECTION = USB_CONNECTION
%! blhost $CONNECTION get-property current-version
blhost -u lpc55s69 get-property current-version
Response status = 0 (0x0) Success.
Response word 1 = 1258487808 (0x4b030000)
Current Version = K3.0.0
5.1 Key store erase#
You might erase key store by writing a file containing zero bytes with size 3*512 = 1536 B.
# first you need to set property 29 - PFR key store update option
%! blhost $CONNECTION set-property 29 1
# now write the file containing zero bytes to the location of key store
%! blhost $CONNECTION write-memory 0x9E600 zero_1536.bin
# set the property 29 back to 0
%! blhost $CONNECTION set-property 29 0
blhost -u lpc55s69 set-property 29 1
Response status = 0 (0x0) Success.
blhost -u lpc55s69 write-memory 0x9E600 zero_1536.bin
Writing memory
Response status = 0 (0x0) Success.
Response word 1 = 1536 (0x600)
blhost -u lpc55s69 set-property 29 0
Response status = 0 (0x0) Success.
5.3 Compare the CFPA page on target#
We can compare the CFPA page on the target to get the information about programmed version.
CFPA_BIN = WORKSPACE + "cfpa.bin"
CFPA_PARSED = WORKSPACE + "cfpa_parsed.yaml"
# First, read the current CFPA page on the processor and parse it to YAML
%! pfr read -f $FAMILY $CONNECTION -t cfpa -o $CFPA_BIN -y $CFPA_PARSED
# Now, we can manipulate the YAML file to make desired changes
# %! pfr $VERBOSITY generate-binary -c $CFPA_TEMPLATE_PATH -o $CFPA_BIN
assert os.path.exists(CFPA_BIN)
YamlDiffWidget("inputs/lpc55sxx_secure_boot_cfpa_diff.diffc").html
pfr read -f lpc55s69 -u lpc55s69 -t cfpa -o workspace/cfpa.bin -y workspace/cfpa_parsed.yaml
CFPA page address on lpc55s69 is 0x9de00
CFPA data stored to workspace/cfpa.bin
Parsed config stored to workspace/cfpa_parsed.yaml
pfr get-template -t cfpa -f lpc55s69 -o workspace/cfpa_lpc55s6x.yaml --force
The PFR cfpa template for lpc55s69 has been saved into workspace/cfpa_lpc55s6x.yaml YAML file
Configuration Differences
# ========================================= PFR CFPA configuration template ==========================================
# ======================================================================================================================
# == General Options ==
# ======================================================================================================================
# -------------------------------------===== The chip family name [Required] =====--------------------------------------
# Description: NXP chip family identifier.
# Possible options:
# lpc55s06, lpc55s14, lpc55s16, lpc55s26, lpc55s28, lpc55s36, lpc55s66, lpc55s69, mcxn235, mcxn236, mcxn546, mcxn547,
# mcxn946, mcxn947, nhs52s04>
family: lpc55s69
# -----------------------------------------===== MCU revision [Optional] =====------------------------------------------
# Description: Revision of silicon. The 'latest' name, means most current revision.
# Possible options:
revision: latest
revision: a1
# ------------------------------------===== Configuration area type [Optional] =====------------------------------------
# Description: PFR / IFR type
# Possible options:
type: CFPA
# ----------------------------------===== Configuration area Settings [Required] =====----------------------------------
settings:
# -------------------------------------------===== HEADER [Optional] =====--------------------------------------------
# Description: Offset: 0x00000000, Width: 32b; Header
HEADER: '0x00000000'
# -------------------------------------------===== VERSION [Optional] =====-------------------------------------------
# Description: Offset: 0x00000004, Width: 32b; Version
VERSION: '0x00000000' This is important, after each update this bitfield must be incremented
VERSION: '0x00000002'
# ----------------------------------------===== S_FW_Version [Optional] =====-----------------------------------------
# Description: Offset: 0x00000008, Width: 32b; Secure firmware version (Monotonic counter)
S_FW_Version: '0x00000000'
# ----------------------------------------===== NS_FW_Version [Optional] =====----------------------------------------
# Description: Offset: 0x0000000C, Width: 32b; Non-Secure firmware version (Monotonic counter)
NS_FW_Version: '0x00000000'
# --------------------------------------===== IMAGE_KEY_REVOKE [Optional] =====---------------------------------------
# Description: Offset: 0x00000010, Width: 32b; Image key revocation ID (Monotonic counter)
IMAGE_KEY_REVOKE: '0x00000000'
# ----------------------------------------===== ROTKH_REVOKE [Optional] =====-----------------------------------------
# Description: Offset: 0x00000018, Width: 32b; Root of Trust Key Hash Revoke
ROTKH_REVOKE:
# -----------------------------------------===== RoTK0_EN [Optional] =====------------------------------------------
# Description: Offset: 0b, Width: 2b, RoT Key 0 enable.
# - INVALID, (0): Invalid
# - ENABLED, (1): Enabled
# - REVOKED_0, (2): Key revoked
# - REVOKED_1, (3): Key revoked
# Possible options:
RoTK0_EN: INVALID Enable Root of Trust Key 0
RoTK0_EN: ENABLED
# -----------------------------------------===== RoTK1_EN [Optional] =====------------------------------------------
# Description: Offset: 2b, Width: 2b, RoT Key 1 enable.
# - INVALID, (0): Invalid
# - ENABLED, (1): Enabled
# - REVOKED_0, (2): Key revoked
# - REVOKED_1, (3): Key revoked
# Possible options:
RoTK1_EN: INVALID
RoTK1_EN: ENABLED
# -----------------------------------------===== RoTK2_EN [Optional] =====------------------------------------------
# Description: Offset: 4b, Width: 2b, RoT Key 2 enable.
# - INVALID, (0): Invalid
# - ENABLED, (1): Enabled
# - REVOKED_0, (2): Key revoked
# - REVOKED_1, (3): Key revoked
# Possible options:
RoTK2_EN: INVALID
RoTK2_EN: ENABLED
# -----------------------------------------===== RoTK3_EN [Optional] =====------------------------------------------
# Description: Offset: 6b, Width: 2b, RoT Key 3 enable.
# - INVALID, (0): Invalid
# - ENABLED, (1): Enabled
# - REVOKED_0, (2): Key revoked
# - REVOKED_1, (3): Key revoked
# Possible options:
RoTK3_EN: INVALID
RoTK3_EN: ENABLED
# ----------------------------------------===== VENDOR_USAGE [Optional] =====-----------------------------------------
# Description: Offset: 0x0000001C, Width: 32b; Vendor Usage
VENDOR_USAGE:
# -------------------------------------===== DBG_VENDOR_USAGE [Optional] =====--------------------------------------
# Description: Offset: 0b, Width: 16b, Debug Vendor Usage
DBG_VENDOR_USAGE: 0
DBG_VENDOR_USAGE: '0x0000'
# -------------------------------------===== DCFG_CC_SOCU_NS_PIN [Optional] =====-------------------------------------
# Description: Offset: 0x00000020, Width: 32b; Device Configuration Credential Constraints for SoC specific Use
# Pinned.
# Combinations of PIN and DFLT bits and resulting restriction level:
# - PIN=1,DFLT=1: Restriction level 0. Access to the sub-domain is always enabled. This setting is provided for module
# use case scenario where DCFG_CC_SOCU_NS would be used to define further access restrictions before final deployment
# of the product.
# - PIN=0,DFLT=0: Restriction level 1. Access to the sub-domain is disabled at startup. But the access can be enabled
# through debug authentication process by providing appropriate Debug Credential (DC) certificate.
# - PIN=0,DFLT=1: Illegal setting. Part may lock-up if this setting is selected.
# - PIN=1,DFLT=0: Restriction level 3. Access to the sub-domain is permanently disabled and can't be reversed. This
# setting offers the highest level of restriction.
DCFG_CC_SOCU_NS_PIN:
# -------------------------------------------===== NIDEN [Optional] =====-------------------------------------------
# Description: Offset: 0b, Width: 1b, Non Secure non-invasive debug enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
NIDEN: USE_DAP
# -------------------------------------------===== DBGEN [Optional] =====-------------------------------------------
# Description: Offset: 1b, Width: 1b, Non Secure debug enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
DBGEN: USE_DAP
# ------------------------------------------===== SPNIDEN [Optional] =====------------------------------------------
# Description: Offset: 2b, Width: 1b, Secure non-invasive debug enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
SPNIDEN: USE_DAP
# ------------------------------------------===== SPIDEN [Optional] =====-------------------------------------------
# Description: Offset: 3b, Width: 1b, Secure invasive debug enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
SPIDEN: USE_DAP
# -------------------------------------------===== TAPEN [Optional] =====-------------------------------------------
# Description: Offset: 4b, Width: 1b, JTAG TAP enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
TAPEN: USE_DAP
# ----------------------------------------===== CPU1_DBGEN [Optional] =====-----------------------------------------
# Description: Offset: 5b, Width: 1b, CPU1 (Micro cortex M33) invasive debug enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
CPU1_DBGEN: USE_DAP
# ----------------------------------------===== ISP_CMD_EN [Optional] =====-----------------------------------------
# Description: Offset: 6b, Width: 1b, ISP Boot Command enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
ISP_CMD_EN: USE_DAP
# ---------------------------------------===== FA_ME_CMD_EN [Optional] =====----------------------------------------
# Description: Offset: 7b, Width: 1b, Fault Analysis/Mass Erase Command enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
FA_ME_CMD_EN: USE_DAP
# ----------------------------------------===== CPU1_NIDEN [Optional] =====-----------------------------------------
# Description: Offset: 9b, Width: 1b, CPU1 (Micro cortex M33) non-invasive debug enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
CPU1_NIDEN: USE_DAP
# ----------------------------------------===== UUID_CHECK [Optional] =====-----------------------------------------
# Description: Offset: 15b, Width: 1b, Enforce UUID match during Debug authentication.
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
UUID_CHECK: DISABLED
# ------------------------------------===== DCFG_CC_SOCU_NS_DFLT [Optional] =====-------------------------------------
# Description: Offset: 0x00000024, Width: 32b; Device Configuration Credential Constraints for SoC specific Use Debug
# Filter.
# Combinations of PIN and DFLT bits and resulting restriction level:
# - PIN=1,DFLT=1: Restriction level 0. Access to the sub-domain is always enabled. This setting is provided for module
# use case scenario where DCFG_CC_SOCU_NS would be used to define further access restrictions before final deployment
# of the product.
# - PIN=0,DFLT=0: Restriction level 1. Access to the sub-domain is disabled at startup. But the access can be enabled
# through debug authentication process by providing appropriate Debug Credential (DC) certificate.
# - PIN=0,DFLT=1: Illegal setting. Part may lock-up if this setting is selected.
# - PIN=1,DFLT=0: Restriction level 3. Access to the sub-domain is permanently disabled and can't be reversed. This
# setting offers the highest level of restriction.
DCFG_CC_SOCU_NS_DFLT:
# -------------------------------------------===== NIDEN [Optional] =====-------------------------------------------
# Description: Offset: 0b, Width: 1b, Non Secure non-invasive debug fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
NIDEN: DISABLED
# -------------------------------------------===== DBGEN [Optional] =====-------------------------------------------
# Description: Offset: 1b, Width: 1b, Non Secure debug fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
DBGEN: DISABLED
# ------------------------------------------===== SPNIDEN [Optional] =====------------------------------------------
# Description: Offset: 2b, Width: 1b, Secure non-invasive debug fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
SPNIDEN: DISABLED
# ------------------------------------------===== SPIDEN [Optional] =====-------------------------------------------
# Description: Offset: 3b, Width: 1b, Secure invasive debug fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
SPIDEN: DISABLED
# -------------------------------------------===== TAPEN [Optional] =====-------------------------------------------
# Description: Offset: 4b, Width: 1b, JTAG TAP fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
TAPEN: DISABLED
# ----------------------------------------===== CPU1_DBGEN [Optional] =====-----------------------------------------
# Description: Offset: 5b, Width: 1b, CPU1 (Micro cortex M33) invasive debug fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
CPU1_DBGEN: DISABLED
# ----------------------------------------===== ISP_CMD_EN [Optional] =====-----------------------------------------
# Description: Offset: 6b, Width: 1b, ISP Boot Command fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
ISP_CMD_EN: DISABLED
# ---------------------------------------===== FA_ME_CMD_EN [Optional] =====----------------------------------------
# Description: Offset: 7b, Width: 1b, Fault Analysis/Mass Erase Command fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
FA_ME_CMD_EN: DISABLED
# ----------------------------------------===== CPU1_NIDEN [Optional] =====-----------------------------------------
# Description: Offset: 9b, Width: 1b, CPU1 (Micro cortex M33) non-invasive debug fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
CPU1_NIDEN: DISABLED
# ---------------------------------------===== ENABLE_FA_MODE [Optional] =====----------------------------------------
# Description: Offset: 0x00000028, Width: 32b; Enable FA mode. SET_FA_MODE Command should write 0xC33CA55A to this
# word to indicate boot ROM to enter FA mode.
ENABLE_FA_MODE: '0x00000000'
# ------------------------------------===== CMPA_PROG_IN_PROGRESS [Optional] =====------------------------------------
# Description: Offset: 0x0000002C, Width: 32b; CMPA Page programming on going. This field shall be set to 0x5CC55AA5
# in the active CFPA page each time CMPA page programming is going on. It shall always be set to 0x00000000 in the
# CFPA scratch area.
CMPA_PROG_IN_PROGRESS: '0x00000000'
CMPA_PROG_IN_PROGRESS: '0x5CC55AA5'
# -----------------------------------===== PRINCE_REGION0_IV_CODE0 [Optional] =====-----------------------------------
# Description: Offset: 0x00000030, Width: 32b; Field.
PRINCE_REGION0_IV_CODE0: '0x00000000'
# -----------------------------------===== PRINCE_REGION0_IV_CODE1 [Optional] =====-----------------------------------
# Description: Offset: 0x00000034, Width: 32b; Field.
PRINCE_REGION0_IV_CODE1:
# -------------------------------------------===== TYPE [Optional] =====--------------------------------------------
# Description: Offset: 0b, Width: 2b, Type.
TYPE: 0
TYPE: '0x0'
# -------------------------------------------===== INDEX [Optional] =====-------------------------------------------
# Description: Offset: 8b, Width: 4b, Index.
INDEX: 0
INDEX: '0x0'
# -------------------------------------------===== SIZE [Optional] =====--------------------------------------------
# Description: Offset: 24b, Width: 6b, Size.
SIZE: 0
SIZE: '0x0'
# -----------------------------------===== PRINCE_REGION0_IV_BODY0 [Optional] =====-----------------------------------
# Description: Offset: 0x00000038, Width: 32b; Field.
PRINCE_REGION0_IV_BODY0: '0x00000000'
# -----------------------------------===== PRINCE_REGION0_IV_BODY1 [Optional] =====-----------------------------------
# Description: Offset: 0x0000003C, Width: 32b; Field.
PRINCE_REGION0_IV_BODY1: '0x00000000'
# -----------------------------------===== PRINCE_REGION0_IV_BODY2 [Optional] =====-----------------------------------
# Description: Offset: 0x00000040, Width: 32b; Field.
PRINCE_REGION0_IV_BODY2: '0x00000000'
# -----------------------------------===== PRINCE_REGION0_IV_BODY3 [Optional] =====-----------------------------------
# Description: Offset: 0x00000044, Width: 32b; Field.
PRINCE_REGION0_IV_BODY3: '0x00000000'
# -----------------------------------===== PRINCE_REGION0_IV_BODY4 [Optional] =====-----------------------------------
# Description: Offset: 0x00000048, Width: 32b; Field.
PRINCE_REGION0_IV_BODY4: '0x00000000'
# -----------------------------------===== PRINCE_REGION0_IV_BODY5 [Optional] =====-----------------------------------
# Description: Offset: 0x0000004C, Width: 32b; Field.
PRINCE_REGION0_IV_BODY5: '0x00000000'
# -----------------------------------===== PRINCE_REGION0_IV_BODY6 [Optional] =====-----------------------------------
# Description: Offset: 0x00000050, Width: 32b; Field.
PRINCE_REGION0_IV_BODY6: '0x00000000'
# -----------------------------------===== PRINCE_REGION0_IV_BODY7 [Optional] =====-----------------------------------
# Description: Offset: 0x00000054, Width: 32b; Field.
PRINCE_REGION0_IV_BODY7: '0x00000000'
# -----------------------------------===== PRINCE_REGION0_IV_BODY8 [Optional] =====-----------------------------------
# Description: Offset: 0x00000058, Width: 32b; Field.
PRINCE_REGION0_IV_BODY8: '0x00000000'
# -----------------------------------===== PRINCE_REGION0_IV_BODY9 [Optional] =====-----------------------------------
# Description: Offset: 0x0000005C, Width: 32b; Field.
PRINCE_REGION0_IV_BODY9: '0x00000000'
# ----------------------------------===== PRINCE_REGION0_IV_BODY10 [Optional] =====-----------------------------------
# Description: Offset: 0x00000060, Width: 32b; Field.
PRINCE_REGION0_IV_BODY10: '0x00000000'
# ----------------------------------===== PRINCE_REGION0_IV_BODY11 [Optional] =====-----------------------------------
# Description: Offset: 0x00000064, Width: 32b; Field.
PRINCE_REGION0_IV_BODY11: '0x00000000'
# -----------------------------------===== PRINCE_REGION1_IV_CODE0 [Optional] =====-----------------------------------
# Description: Offset: 0x00000068, Width: 32b; Field.
PRINCE_REGION1_IV_CODE0: '0x00000000'
# -----------------------------------===== PRINCE_REGION1_IV_CODE1 [Optional] =====-----------------------------------
# Description: Offset: 0x0000006C, Width: 32b; Field.
PRINCE_REGION1_IV_CODE1:
# -------------------------------------------===== TYPE [Optional] =====--------------------------------------------
# Description: Offset: 0b, Width: 2b, Type.
TYPE: 0
TYPE: '0x0'
# -------------------------------------------===== INDEX [Optional] =====-------------------------------------------
# Description: Offset: 8b, Width: 4b, Index.
INDEX: 0
INDEX: '0x0'
# -------------------------------------------===== SIZE [Optional] =====--------------------------------------------
# Description: Offset: 24b, Width: 6b, Size.
SIZE: 0
SIZE: '0x0'
# -----------------------------------===== PRINCE_REGION1_IV_BODY0 [Optional] =====-----------------------------------
# Description: Offset: 0x00000070, Width: 32b; Field.
PRINCE_REGION1_IV_BODY0: '0x00000000'
# -----------------------------------===== PRINCE_REGION1_IV_BODY1 [Optional] =====-----------------------------------
# Description: Offset: 0x00000074, Width: 32b; Field.
PRINCE_REGION1_IV_BODY1: '0x00000000'
# -----------------------------------===== PRINCE_REGION1_IV_BODY2 [Optional] =====-----------------------------------
# Description: Offset: 0x00000078, Width: 32b; Field.
PRINCE_REGION1_IV_BODY2: '0x00000000'
# -----------------------------------===== PRINCE_REGION1_IV_BODY3 [Optional] =====-----------------------------------
# Description: Offset: 0x0000007C, Width: 32b; Field.
PRINCE_REGION1_IV_BODY3: '0x00000000'
# -----------------------------------===== PRINCE_REGION1_IV_BODY4 [Optional] =====-----------------------------------
# Description: Offset: 0x00000080, Width: 32b; Field.
PRINCE_REGION1_IV_BODY4: '0x00000000'
# -----------------------------------===== PRINCE_REGION1_IV_BODY5 [Optional] =====-----------------------------------
# Description: Offset: 0x00000084, Width: 32b; Field.
PRINCE_REGION1_IV_BODY5: '0x00000000'
# -----------------------------------===== PRINCE_REGION1_IV_BODY6 [Optional] =====-----------------------------------
# Description: Offset: 0x00000088, Width: 32b; Field.
PRINCE_REGION1_IV_BODY6: '0x00000000'
# -----------------------------------===== PRINCE_REGION1_IV_BODY7 [Optional] =====-----------------------------------
# Description: Offset: 0x0000008C, Width: 32b; Field.
PRINCE_REGION1_IV_BODY7: '0x00000000'
# -----------------------------------===== PRINCE_REGION1_IV_BODY8 [Optional] =====-----------------------------------
# Description: Offset: 0x00000090, Width: 32b; Field.
PRINCE_REGION1_IV_BODY8: '0x00000000'
# -----------------------------------===== PRINCE_REGION1_IV_BODY9 [Optional] =====-----------------------------------
# Description: Offset: 0x00000094, Width: 32b; Field.
PRINCE_REGION1_IV_BODY9: '0x00000000'
# ----------------------------------===== PRINCE_REGION1_IV_BODY10 [Optional] =====-----------------------------------
# Description: Offset: 0x00000098, Width: 32b; Field.
PRINCE_REGION1_IV_BODY10: '0x00000000'
# ----------------------------------===== PRINCE_REGION1_IV_BODY11 [Optional] =====-----------------------------------
# Description: Offset: 0x0000009C, Width: 32b; Field.
PRINCE_REGION1_IV_BODY11: '0x00000000'
# -----------------------------------===== PRINCE_REGION2_IV_CODE0 [Optional] =====-----------------------------------
# Description: Offset: 0x000000A0, Width: 32b; Field.
PRINCE_REGION2_IV_CODE0: '0x00000000'
# -----------------------------------===== PRINCE_REGION2_IV_CODE1 [Optional] =====-----------------------------------
# Description: Offset: 0x000000A4, Width: 32b; Field.
PRINCE_REGION2_IV_CODE1:
# -------------------------------------------===== TYPE [Optional] =====--------------------------------------------
# Description: Offset: 0b, Width: 2b, Type.
TYPE: 0
TYPE: '0x0'
# -------------------------------------------===== INDEX [Optional] =====-------------------------------------------
# Description: Offset: 8b, Width: 4b, Index.
INDEX: 0
INDEX: '0x0'
# -------------------------------------------===== SIZE [Optional] =====--------------------------------------------
# Description: Offset: 24b, Width: 6b, Size.
SIZE: 0
SIZE: '0x0'
# -----------------------------------===== PRINCE_REGION2_IV_BODY0 [Optional] =====-----------------------------------
# Description: Offset: 0x000000A8, Width: 32b; Field.
PRINCE_REGION2_IV_BODY0: '0x00000000'
# -----------------------------------===== PRINCE_REGION2_IV_BODY1 [Optional] =====-----------------------------------
# Description: Offset: 0x000000AC, Width: 32b; Field.
PRINCE_REGION2_IV_BODY1: '0x00000000'
# -----------------------------------===== PRINCE_REGION2_IV_BODY2 [Optional] =====-----------------------------------
# Description: Offset: 0x000000B0, Width: 32b; Field.
PRINCE_REGION2_IV_BODY2: '0x00000000'
# -----------------------------------===== PRINCE_REGION2_IV_BODY3 [Optional] =====-----------------------------------
# Description: Offset: 0x000000B4, Width: 32b; Field.
PRINCE_REGION2_IV_BODY3: '0x00000000'
# -----------------------------------===== PRINCE_REGION2_IV_BODY4 [Optional] =====-----------------------------------
# Description: Offset: 0x000000B8, Width: 32b; Field.
PRINCE_REGION2_IV_BODY4: '0x00000000'
# -----------------------------------===== PRINCE_REGION2_IV_BODY5 [Optional] =====-----------------------------------
# Description: Offset: 0x000000BC, Width: 32b; Field.
PRINCE_REGION2_IV_BODY5: '0x00000000'
# -----------------------------------===== PRINCE_REGION2_IV_BODY6 [Optional] =====-----------------------------------
# Description: Offset: 0x000000C0, Width: 32b; Field.
PRINCE_REGION2_IV_BODY6: '0x00000000'
# -----------------------------------===== PRINCE_REGION2_IV_BODY7 [Optional] =====-----------------------------------
# Description: Offset: 0x000000C4, Width: 32b; Field.
PRINCE_REGION2_IV_BODY7: '0x00000000'
# -----------------------------------===== PRINCE_REGION2_IV_BODY8 [Optional] =====-----------------------------------
# Description: Offset: 0x000000C8, Width: 32b; Field.
PRINCE_REGION2_IV_BODY8: '0x00000000'
# -----------------------------------===== PRINCE_REGION2_IV_BODY9 [Optional] =====-----------------------------------
# Description: Offset: 0x000000CC, Width: 32b; Field.
PRINCE_REGION2_IV_BODY9: '0x00000000'
# ----------------------------------===== PRINCE_REGION2_IV_BODY10 [Optional] =====-----------------------------------
# Description: Offset: 0x000000D0, Width: 32b; Field.
PRINCE_REGION2_IV_BODY10: '0x00000000'
# ----------------------------------===== PRINCE_REGION2_IV_BODY11 [Optional] =====-----------------------------------
# Description: Offset: 0x000000D4, Width: 32b; Field.
PRINCE_REGION2_IV_BODY11: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED0 [Optional] =====--------------------------------------
# Description: Offset: 0x00000100, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED0: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED1 [Optional] =====--------------------------------------
# Description: Offset: 0x00000104, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED1: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED2 [Optional] =====--------------------------------------
# Description: Offset: 0x00000108, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED2: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED3 [Optional] =====--------------------------------------
# Description: Offset: 0x0000010C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED3: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED4 [Optional] =====--------------------------------------
# Description: Offset: 0x00000110, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED4: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED5 [Optional] =====--------------------------------------
# Description: Offset: 0x00000114, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED5: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED6 [Optional] =====--------------------------------------
# Description: Offset: 0x00000118, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED6: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED7 [Optional] =====--------------------------------------
# Description: Offset: 0x0000011C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED7: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED8 [Optional] =====--------------------------------------
# Description: Offset: 0x00000120, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED8: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED9 [Optional] =====--------------------------------------
# Description: Offset: 0x00000124, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED9: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED10 [Optional] =====--------------------------------------
# Description: Offset: 0x00000128, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED10: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED11 [Optional] =====--------------------------------------
# Description: Offset: 0x0000012C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED11: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED12 [Optional] =====--------------------------------------
# Description: Offset: 0x00000130, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED12: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED13 [Optional] =====--------------------------------------
# Description: Offset: 0x00000134, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED13: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED14 [Optional] =====--------------------------------------
# Description: Offset: 0x00000138, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED14: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED15 [Optional] =====--------------------------------------
# Description: Offset: 0x0000013C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED15: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED16 [Optional] =====--------------------------------------
# Description: Offset: 0x00000140, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED16: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED17 [Optional] =====--------------------------------------
# Description: Offset: 0x00000144, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED17: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED18 [Optional] =====--------------------------------------
# Description: Offset: 0x00000148, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED18: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED19 [Optional] =====--------------------------------------
# Description: Offset: 0x0000014C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED19: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED20 [Optional] =====--------------------------------------
# Description: Offset: 0x00000150, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED20: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED21 [Optional] =====--------------------------------------
# Description: Offset: 0x00000154, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED21: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED22 [Optional] =====--------------------------------------
# Description: Offset: 0x00000158, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED22: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED23 [Optional] =====--------------------------------------
# Description: Offset: 0x0000015C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED23: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED24 [Optional] =====--------------------------------------
# Description: Offset: 0x00000160, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED24: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED25 [Optional] =====--------------------------------------
# Description: Offset: 0x00000164, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED25: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED26 [Optional] =====--------------------------------------
# Description: Offset: 0x00000168, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED26: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED27 [Optional] =====--------------------------------------
# Description: Offset: 0x0000016C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED27: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED28 [Optional] =====--------------------------------------
# Description: Offset: 0x00000170, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED28: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED29 [Optional] =====--------------------------------------
# Description: Offset: 0x00000174, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED29: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED30 [Optional] =====--------------------------------------
# Description: Offset: 0x00000178, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED30: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED31 [Optional] =====--------------------------------------
# Description: Offset: 0x0000017C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED31: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED32 [Optional] =====--------------------------------------
# Description: Offset: 0x00000180, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED32: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED33 [Optional] =====--------------------------------------
# Description: Offset: 0x00000184, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED33: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED34 [Optional] =====--------------------------------------
# Description: Offset: 0x00000188, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED34: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED35 [Optional] =====--------------------------------------
# Description: Offset: 0x0000018C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED35: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED36 [Optional] =====--------------------------------------
# Description: Offset: 0x00000190, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED36: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED37 [Optional] =====--------------------------------------
# Description: Offset: 0x00000194, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED37: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED38 [Optional] =====--------------------------------------
# Description: Offset: 0x00000198, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED38: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED39 [Optional] =====--------------------------------------
# Description: Offset: 0x0000019C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED39: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED40 [Optional] =====--------------------------------------
# Description: Offset: 0x000001A0, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED40: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED41 [Optional] =====--------------------------------------
# Description: Offset: 0x000001A4, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED41: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED42 [Optional] =====--------------------------------------
# Description: Offset: 0x000001A8, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED42: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED43 [Optional] =====--------------------------------------
# Description: Offset: 0x000001AC, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED43: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED44 [Optional] =====--------------------------------------
# Description: Offset: 0x000001B0, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED44: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED45 [Optional] =====--------------------------------------
# Description: Offset: 0x000001B4, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED45: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED46 [Optional] =====--------------------------------------
# Description: Offset: 0x000001B8, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED46: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED47 [Optional] =====--------------------------------------
# Description: Offset: 0x000001BC, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED47: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED48 [Optional] =====--------------------------------------
# Description: Offset: 0x000001C0, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED48: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED49 [Optional] =====--------------------------------------
# Description: Offset: 0x000001C4, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED49: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED50 [Optional] =====--------------------------------------
# Description: Offset: 0x000001C8, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED50: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED51 [Optional] =====--------------------------------------
# Description: Offset: 0x000001CC, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED51: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED52 [Optional] =====--------------------------------------
# Description: Offset: 0x000001D0, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED52: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED53 [Optional] =====--------------------------------------
# Description: Offset: 0x000001D4, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED53: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED54 [Optional] =====--------------------------------------
# Description: Offset: 0x000001D8, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED54: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED55 [Optional] =====--------------------------------------
# Description: Offset: 0x000001DC, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED55: '0x00000000'
# ---------------------------------------===== SHA256_DIGEST0 [Optional] =====----------------------------------------
# Description: Offset: 0x000001E0, Width: 32b; SHA256_DIGEST0 for DIGEST[31:0]
SHA256_DIGEST0: '0x00000000'
SHA256_DIGEST0: '0x7F9030D4'
# ---------------------------------------===== SHA256_DIGEST1 [Optional] =====----------------------------------------
# Description: Offset: 0x000001E4, Width: 32b; SHA256_DIGEST1 for DIGEST[63:32]
SHA256_DIGEST1: '0x00000000'
SHA256_DIGEST1: '0x1E19D916'
# ---------------------------------------===== SHA256_DIGEST2 [Optional] =====----------------------------------------
# Description: Offset: 0x000001E8, Width: 32b; SHA256_DIGEST2 for DIGEST[95:64]
SHA256_DIGEST2: '0x00000000'
SHA256_DIGEST2: '0x92E159D4'
# ---------------------------------------===== SHA256_DIGEST3 [Optional] =====----------------------------------------
# Description: Offset: 0x000001EC, Width: 32b; SHA256_DIGEST3 for DIGEST[127:96]
SHA256_DIGEST3: '0x00000000'
SHA256_DIGEST3: '0x0FC4CC81'
# ---------------------------------------===== SHA256_DIGEST4 [Optional] =====----------------------------------------
# Description: Offset: 0x000001F0, Width: 32b; SHA256_DIGEST4 for DIGEST[159:128]
SHA256_DIGEST4: '0x00000000'
SHA256_DIGEST4: '0xEBFAE9B5'
# ---------------------------------------===== SHA256_DIGEST5 [Optional] =====----------------------------------------
# Description: Offset: 0x000001F4, Width: 32b; SHA256_DIGEST5 for DIGEST[191:160]
SHA256_DIGEST5: '0x00000000'
SHA256_DIGEST5: '0x35C0EE7B'
# ---------------------------------------===== SHA256_DIGEST6 [Optional] =====----------------------------------------
# Description: Offset: 0x000001F8, Width: 32b; SHA256_DIGEST6 for DIGEST[223:192]
SHA256_DIGEST6: '0x00000000'
SHA256_DIGEST6: '0x4252FF46'
# ---------------------------------------===== SHA256_DIGEST7 [Optional] =====----------------------------------------
# Description: Offset: 0x000001FC, Width: 32b; SHA256_DIGEST7 for DIGEST[255:224]
SHA256_DIGEST7: '0x00000000'
SHA256_DIGEST7: '0xAF403854'
# ================================== PFR/IFR CFPA configuration from parsed binary ===================================
# ======================================================================================================================
# == General Options ==
# ======================================================================================================================
# -------------------------------------===== The chip family name [Required] =====--------------------------------------
# Description: NXP chip family identifier.
# Possible options:
# lpc55s06, lpc55s14, lpc55s16, lpc55s26, lpc55s28, lpc55s36, lpc55s66, lpc55s69, mcxn235, mcxn236, mcxn546, mcxn547,
# mcxn946, mcxn947, nhs52s04>
family: lpc55s69
# -----------------------------------------===== MCU revision [Optional] =====------------------------------------------
# Description: Revision of silicon. The 'latest' name, means most current revision.
# Possible options:
revision: a1
# ------------------------------------===== Configuration area type [Optional] =====------------------------------------
# Description: PFR / IFR type
# Possible options:
type: CFPA
# ----------------------------------===== Configuration area Settings [Required] =====----------------------------------
settings:
# -------------------------------------------===== HEADER [Optional] =====--------------------------------------------
# Description: Offset: 0x00000000, Width: 32b; Header
HEADER: '0x00000000'
# -------------------------------------------===== VERSION [Optional] =====-------------------------------------------
# Description: Offset: 0x00000004, Width: 32b; Version
VERSION: '0x00000002' This is important, after each update this bitfield must be incremented
# ----------------------------------------===== S_FW_Version [Optional] =====-----------------------------------------
# Description: Offset: 0x00000008, Width: 32b; Secure firmware version (Monotonic counter)
S_FW_Version: '0x00000000'
# ----------------------------------------===== NS_FW_Version [Optional] =====----------------------------------------
# Description: Offset: 0x0000000C, Width: 32b; Non-Secure firmware version (Monotonic counter)
NS_FW_Version: '0x00000000'
# --------------------------------------===== IMAGE_KEY_REVOKE [Optional] =====---------------------------------------
# Description: Offset: 0x00000010, Width: 32b; Image key revocation ID (Monotonic counter)
IMAGE_KEY_REVOKE: '0x00000000'
# ----------------------------------------===== ROTKH_REVOKE [Optional] =====-----------------------------------------
# Description: Offset: 0x00000018, Width: 32b; Root of Trust Key Hash Revoke
ROTKH_REVOKE:
# -----------------------------------------===== RoTK0_EN [Optional] =====------------------------------------------
# Description: Offset: 0b, Width: 2b, RoT Key 0 enable.
# - INVALID, (0): Invalid
# - ENABLED, (1): Enabled
# - REVOKED_0, (2): Key revoked
# - REVOKED_1, (3): Key revoked
# Possible options:
RoTK0_EN: ENABLED Enable Root of Trust Key 0
# -----------------------------------------===== RoTK1_EN [Optional] =====------------------------------------------
# Description: Offset: 2b, Width: 2b, RoT Key 1 enable.
# - INVALID, (0): Invalid
# - ENABLED, (1): Enabled
# - REVOKED_0, (2): Key revoked
# - REVOKED_1, (3): Key revoked
# Possible options:
RoTK1_EN: ENABLED
# -----------------------------------------===== RoTK2_EN [Optional] =====------------------------------------------
# Description: Offset: 4b, Width: 2b, RoT Key 2 enable.
# - INVALID, (0): Invalid
# - ENABLED, (1): Enabled
# - REVOKED_0, (2): Key revoked
# - REVOKED_1, (3): Key revoked
# Possible options:
RoTK2_EN: ENABLED
# -----------------------------------------===== RoTK3_EN [Optional] =====------------------------------------------
# Description: Offset: 6b, Width: 2b, RoT Key 3 enable.
# - INVALID, (0): Invalid
# - ENABLED, (1): Enabled
# - REVOKED_0, (2): Key revoked
# - REVOKED_1, (3): Key revoked
# Possible options:
RoTK3_EN: ENABLED
# ----------------------------------------===== VENDOR_USAGE [Optional] =====-----------------------------------------
# Description: Offset: 0x0000001C, Width: 32b; Vendor Usage
VENDOR_USAGE:
# -------------------------------------===== DBG_VENDOR_USAGE [Optional] =====--------------------------------------
# Description: Offset: 0b, Width: 16b, Debug Vendor Usage
DBG_VENDOR_USAGE: '0x0000'
# -------------------------------------===== DCFG_CC_SOCU_NS_PIN [Optional] =====-------------------------------------
# Description: Offset: 0x00000020, Width: 32b; Device Configuration Credential Constraints for SoC specific Use
# Pinned.
# Combinations of PIN and DFLT bits and resulting restriction level:
# - PIN=1,DFLT=1: Restriction level 0. Access to the sub-domain is always enabled. This setting is provided for module
# use case scenario where DCFG_CC_SOCU_NS would be used to define further access restrictions before final deployment
# of the product.
# - PIN=0,DFLT=0: Restriction level 1. Access to the sub-domain is disabled at startup. But the access can be enabled
# through debug authentication process by providing appropriate Debug Credential (DC) certificate.
# - PIN=0,DFLT=1: Illegal setting. Part may lock-up if this setting is selected.
# - PIN=1,DFLT=0: Restriction level 3. Access to the sub-domain is permanently disabled and can't be reversed. This
# setting offers the highest level of restriction.
DCFG_CC_SOCU_NS_PIN:
# -------------------------------------------===== NIDEN [Optional] =====-------------------------------------------
# Description: Offset: 0b, Width: 1b, Non Secure non-invasive debug enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
NIDEN: USE_DAP
# -------------------------------------------===== DBGEN [Optional] =====-------------------------------------------
# Description: Offset: 1b, Width: 1b, Non Secure debug enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
DBGEN: USE_DAP
# ------------------------------------------===== SPNIDEN [Optional] =====------------------------------------------
# Description: Offset: 2b, Width: 1b, Secure non-invasive debug enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
SPNIDEN: USE_DAP
# ------------------------------------------===== SPIDEN [Optional] =====-------------------------------------------
# Description: Offset: 3b, Width: 1b, Secure invasive debug enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
SPIDEN: USE_DAP
# -------------------------------------------===== TAPEN [Optional] =====-------------------------------------------
# Description: Offset: 4b, Width: 1b, JTAG TAP enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
TAPEN: USE_DAP
# ----------------------------------------===== CPU1_DBGEN [Optional] =====-----------------------------------------
# Description: Offset: 5b, Width: 1b, CPU1 (Micro cortex M33) invasive debug enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
CPU1_DBGEN: USE_DAP
# ----------------------------------------===== ISP_CMD_EN [Optional] =====-----------------------------------------
# Description: Offset: 6b, Width: 1b, ISP Boot Command enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
ISP_CMD_EN: USE_DAP
# ---------------------------------------===== FA_ME_CMD_EN [Optional] =====----------------------------------------
# Description: Offset: 7b, Width: 1b, Fault Analysis/Mass Erase Command enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
FA_ME_CMD_EN: USE_DAP
# ----------------------------------------===== CPU1_NIDEN [Optional] =====-----------------------------------------
# Description: Offset: 9b, Width: 1b, CPU1 (Micro cortex M33) non-invasive debug enable
# - USE_DAP, (0): Use DAP to enable
# - FIXED_STATE, (1): Fixed state
# Possible options:
CPU1_NIDEN: USE_DAP
# ----------------------------------------===== UUID_CHECK [Optional] =====-----------------------------------------
# Description: Offset: 15b, Width: 1b, Enforce UUID match during Debug authentication.
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
UUID_CHECK: DISABLED
# ------------------------------------===== DCFG_CC_SOCU_NS_DFLT [Optional] =====-------------------------------------
# Description: Offset: 0x00000024, Width: 32b; Device Configuration Credential Constraints for SoC specific Use Debug
# Filter.
# Combinations of PIN and DFLT bits and resulting restriction level:
# - PIN=1,DFLT=1: Restriction level 0. Access to the sub-domain is always enabled. This setting is provided for module
# use case scenario where DCFG_CC_SOCU_NS would be used to define further access restrictions before final deployment
# of the product.
# - PIN=0,DFLT=0: Restriction level 1. Access to the sub-domain is disabled at startup. But the access can be enabled
# through debug authentication process by providing appropriate Debug Credential (DC) certificate.
# - PIN=0,DFLT=1: Illegal setting. Part may lock-up if this setting is selected.
# - PIN=1,DFLT=0: Restriction level 3. Access to the sub-domain is permanently disabled and can't be reversed. This
# setting offers the highest level of restriction.
DCFG_CC_SOCU_NS_DFLT:
# -------------------------------------------===== NIDEN [Optional] =====-------------------------------------------
# Description: Offset: 0b, Width: 1b, Non Secure non-invasive debug fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
NIDEN: DISABLED
# -------------------------------------------===== DBGEN [Optional] =====-------------------------------------------
# Description: Offset: 1b, Width: 1b, Non Secure debug fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
DBGEN: DISABLED
# ------------------------------------------===== SPNIDEN [Optional] =====------------------------------------------
# Description: Offset: 2b, Width: 1b, Secure non-invasive debug fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
SPNIDEN: DISABLED
# ------------------------------------------===== SPIDEN [Optional] =====-------------------------------------------
# Description: Offset: 3b, Width: 1b, Secure invasive debug fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
SPIDEN: DISABLED
# -------------------------------------------===== TAPEN [Optional] =====-------------------------------------------
# Description: Offset: 4b, Width: 1b, JTAG TAP fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
TAPEN: DISABLED
# ----------------------------------------===== CPU1_DBGEN [Optional] =====-----------------------------------------
# Description: Offset: 5b, Width: 1b, CPU1 (Micro cortex M33) invasive debug fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
CPU1_DBGEN: DISABLED
# ----------------------------------------===== ISP_CMD_EN [Optional] =====-----------------------------------------
# Description: Offset: 6b, Width: 1b, ISP Boot Command fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
ISP_CMD_EN: DISABLED
# ---------------------------------------===== FA_ME_CMD_EN [Optional] =====----------------------------------------
# Description: Offset: 7b, Width: 1b, Fault Analysis/Mass Erase Command fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
FA_ME_CMD_EN: DISABLED
# ----------------------------------------===== CPU1_NIDEN [Optional] =====-----------------------------------------
# Description: Offset: 9b, Width: 1b, CPU1 (Micro cortex M33) non-invasive debug fixed state
# - DISABLED, (0): Disabled
# - ENABLED, (1): Enabled
# Possible options:
CPU1_NIDEN: DISABLED
# ---------------------------------------===== ENABLE_FA_MODE [Optional] =====----------------------------------------
# Description: Offset: 0x00000028, Width: 32b; Enable FA mode. SET_FA_MODE Command should write 0xC33CA55A to this
# word to indicate boot ROM to enter FA mode.
ENABLE_FA_MODE: '0x00000000'
# ------------------------------------===== CMPA_PROG_IN_PROGRESS [Optional] =====------------------------------------
# Description: Offset: 0x0000002C, Width: 32b; CMPA Page programming on going. This field shall be set to 0x5CC55AA5
# in the active CFPA page each time CMPA page programming is going on. It shall always be set to 0x00000000 in the
# CFPA scratch area.
CMPA_PROG_IN_PROGRESS: '0x5CC55AA5'
# -----------------------------------===== PRINCE_REGION0_IV_CODE0 [Optional] =====-----------------------------------
# Description: Offset: 0x00000030, Width: 32b; Field.
PRINCE_REGION0_IV_CODE0: '0x00000000'
# -----------------------------------===== PRINCE_REGION0_IV_CODE1 [Optional] =====-----------------------------------
# Description: Offset: 0x00000034, Width: 32b; Field.
PRINCE_REGION0_IV_CODE1:
# -------------------------------------------===== TYPE [Optional] =====--------------------------------------------
# Description: Offset: 0b, Width: 2b, Type.
TYPE: '0x0'
# -------------------------------------------===== INDEX [Optional] =====-------------------------------------------
# Description: Offset: 8b, Width: 4b, Index.
INDEX: '0x0'
# -------------------------------------------===== SIZE [Optional] =====--------------------------------------------
# Description: Offset: 24b, Width: 6b, Size.
SIZE: '0x0'
# -----------------------------------===== PRINCE_REGION0_IV_BODY0 [Optional] =====-----------------------------------
# Description: Offset: 0x00000038, Width: 32b; Field.
PRINCE_REGION0_IV_BODY0: '0x00000000'
# -----------------------------------===== PRINCE_REGION0_IV_BODY1 [Optional] =====-----------------------------------
# Description: Offset: 0x0000003C, Width: 32b; Field.
PRINCE_REGION0_IV_BODY1: '0x00000000'
# -----------------------------------===== PRINCE_REGION0_IV_BODY2 [Optional] =====-----------------------------------
# Description: Offset: 0x00000040, Width: 32b; Field.
PRINCE_REGION0_IV_BODY2: '0x00000000'
# -----------------------------------===== PRINCE_REGION0_IV_BODY3 [Optional] =====-----------------------------------
# Description: Offset: 0x00000044, Width: 32b; Field.
PRINCE_REGION0_IV_BODY3: '0x00000000'
# -----------------------------------===== PRINCE_REGION0_IV_BODY4 [Optional] =====-----------------------------------
# Description: Offset: 0x00000048, Width: 32b; Field.
PRINCE_REGION0_IV_BODY4: '0x00000000'
# -----------------------------------===== PRINCE_REGION0_IV_BODY5 [Optional] =====-----------------------------------
# Description: Offset: 0x0000004C, Width: 32b; Field.
PRINCE_REGION0_IV_BODY5: '0x00000000'
# -----------------------------------===== PRINCE_REGION0_IV_BODY6 [Optional] =====-----------------------------------
# Description: Offset: 0x00000050, Width: 32b; Field.
PRINCE_REGION0_IV_BODY6: '0x00000000'
# -----------------------------------===== PRINCE_REGION0_IV_BODY7 [Optional] =====-----------------------------------
# Description: Offset: 0x00000054, Width: 32b; Field.
PRINCE_REGION0_IV_BODY7: '0x00000000'
# -----------------------------------===== PRINCE_REGION0_IV_BODY8 [Optional] =====-----------------------------------
# Description: Offset: 0x00000058, Width: 32b; Field.
PRINCE_REGION0_IV_BODY8: '0x00000000'
# -----------------------------------===== PRINCE_REGION0_IV_BODY9 [Optional] =====-----------------------------------
# Description: Offset: 0x0000005C, Width: 32b; Field.
PRINCE_REGION0_IV_BODY9: '0x00000000'
# ----------------------------------===== PRINCE_REGION0_IV_BODY10 [Optional] =====-----------------------------------
# Description: Offset: 0x00000060, Width: 32b; Field.
PRINCE_REGION0_IV_BODY10: '0x00000000'
# ----------------------------------===== PRINCE_REGION0_IV_BODY11 [Optional] =====-----------------------------------
# Description: Offset: 0x00000064, Width: 32b; Field.
PRINCE_REGION0_IV_BODY11: '0x00000000'
# -----------------------------------===== PRINCE_REGION1_IV_CODE0 [Optional] =====-----------------------------------
# Description: Offset: 0x00000068, Width: 32b; Field.
PRINCE_REGION1_IV_CODE0: '0x00000000'
# -----------------------------------===== PRINCE_REGION1_IV_CODE1 [Optional] =====-----------------------------------
# Description: Offset: 0x0000006C, Width: 32b; Field.
PRINCE_REGION1_IV_CODE1:
# -------------------------------------------===== TYPE [Optional] =====--------------------------------------------
# Description: Offset: 0b, Width: 2b, Type.
TYPE: '0x0'
# -------------------------------------------===== INDEX [Optional] =====-------------------------------------------
# Description: Offset: 8b, Width: 4b, Index.
INDEX: '0x0'
# -------------------------------------------===== SIZE [Optional] =====--------------------------------------------
# Description: Offset: 24b, Width: 6b, Size.
SIZE: '0x0'
# -----------------------------------===== PRINCE_REGION1_IV_BODY0 [Optional] =====-----------------------------------
# Description: Offset: 0x00000070, Width: 32b; Field.
PRINCE_REGION1_IV_BODY0: '0x00000000'
# -----------------------------------===== PRINCE_REGION1_IV_BODY1 [Optional] =====-----------------------------------
# Description: Offset: 0x00000074, Width: 32b; Field.
PRINCE_REGION1_IV_BODY1: '0x00000000'
# -----------------------------------===== PRINCE_REGION1_IV_BODY2 [Optional] =====-----------------------------------
# Description: Offset: 0x00000078, Width: 32b; Field.
PRINCE_REGION1_IV_BODY2: '0x00000000'
# -----------------------------------===== PRINCE_REGION1_IV_BODY3 [Optional] =====-----------------------------------
# Description: Offset: 0x0000007C, Width: 32b; Field.
PRINCE_REGION1_IV_BODY3: '0x00000000'
# -----------------------------------===== PRINCE_REGION1_IV_BODY4 [Optional] =====-----------------------------------
# Description: Offset: 0x00000080, Width: 32b; Field.
PRINCE_REGION1_IV_BODY4: '0x00000000'
# -----------------------------------===== PRINCE_REGION1_IV_BODY5 [Optional] =====-----------------------------------
# Description: Offset: 0x00000084, Width: 32b; Field.
PRINCE_REGION1_IV_BODY5: '0x00000000'
# -----------------------------------===== PRINCE_REGION1_IV_BODY6 [Optional] =====-----------------------------------
# Description: Offset: 0x00000088, Width: 32b; Field.
PRINCE_REGION1_IV_BODY6: '0x00000000'
# -----------------------------------===== PRINCE_REGION1_IV_BODY7 [Optional] =====-----------------------------------
# Description: Offset: 0x0000008C, Width: 32b; Field.
PRINCE_REGION1_IV_BODY7: '0x00000000'
# -----------------------------------===== PRINCE_REGION1_IV_BODY8 [Optional] =====-----------------------------------
# Description: Offset: 0x00000090, Width: 32b; Field.
PRINCE_REGION1_IV_BODY8: '0x00000000'
# -----------------------------------===== PRINCE_REGION1_IV_BODY9 [Optional] =====-----------------------------------
# Description: Offset: 0x00000094, Width: 32b; Field.
PRINCE_REGION1_IV_BODY9: '0x00000000'
# ----------------------------------===== PRINCE_REGION1_IV_BODY10 [Optional] =====-----------------------------------
# Description: Offset: 0x00000098, Width: 32b; Field.
PRINCE_REGION1_IV_BODY10: '0x00000000'
# ----------------------------------===== PRINCE_REGION1_IV_BODY11 [Optional] =====-----------------------------------
# Description: Offset: 0x0000009C, Width: 32b; Field.
PRINCE_REGION1_IV_BODY11: '0x00000000'
# -----------------------------------===== PRINCE_REGION2_IV_CODE0 [Optional] =====-----------------------------------
# Description: Offset: 0x000000A0, Width: 32b; Field.
PRINCE_REGION2_IV_CODE0: '0x00000000'
# -----------------------------------===== PRINCE_REGION2_IV_CODE1 [Optional] =====-----------------------------------
# Description: Offset: 0x000000A4, Width: 32b; Field.
PRINCE_REGION2_IV_CODE1:
# -------------------------------------------===== TYPE [Optional] =====--------------------------------------------
# Description: Offset: 0b, Width: 2b, Type.
TYPE: '0x0'
# -------------------------------------------===== INDEX [Optional] =====-------------------------------------------
# Description: Offset: 8b, Width: 4b, Index.
INDEX: '0x0'
# -------------------------------------------===== SIZE [Optional] =====--------------------------------------------
# Description: Offset: 24b, Width: 6b, Size.
SIZE: '0x0'
# -----------------------------------===== PRINCE_REGION2_IV_BODY0 [Optional] =====-----------------------------------
# Description: Offset: 0x000000A8, Width: 32b; Field.
PRINCE_REGION2_IV_BODY0: '0x00000000'
# -----------------------------------===== PRINCE_REGION2_IV_BODY1 [Optional] =====-----------------------------------
# Description: Offset: 0x000000AC, Width: 32b; Field.
PRINCE_REGION2_IV_BODY1: '0x00000000'
# -----------------------------------===== PRINCE_REGION2_IV_BODY2 [Optional] =====-----------------------------------
# Description: Offset: 0x000000B0, Width: 32b; Field.
PRINCE_REGION2_IV_BODY2: '0x00000000'
# -----------------------------------===== PRINCE_REGION2_IV_BODY3 [Optional] =====-----------------------------------
# Description: Offset: 0x000000B4, Width: 32b; Field.
PRINCE_REGION2_IV_BODY3: '0x00000000'
# -----------------------------------===== PRINCE_REGION2_IV_BODY4 [Optional] =====-----------------------------------
# Description: Offset: 0x000000B8, Width: 32b; Field.
PRINCE_REGION2_IV_BODY4: '0x00000000'
# -----------------------------------===== PRINCE_REGION2_IV_BODY5 [Optional] =====-----------------------------------
# Description: Offset: 0x000000BC, Width: 32b; Field.
PRINCE_REGION2_IV_BODY5: '0x00000000'
# -----------------------------------===== PRINCE_REGION2_IV_BODY6 [Optional] =====-----------------------------------
# Description: Offset: 0x000000C0, Width: 32b; Field.
PRINCE_REGION2_IV_BODY6: '0x00000000'
# -----------------------------------===== PRINCE_REGION2_IV_BODY7 [Optional] =====-----------------------------------
# Description: Offset: 0x000000C4, Width: 32b; Field.
PRINCE_REGION2_IV_BODY7: '0x00000000'
# -----------------------------------===== PRINCE_REGION2_IV_BODY8 [Optional] =====-----------------------------------
# Description: Offset: 0x000000C8, Width: 32b; Field.
PRINCE_REGION2_IV_BODY8: '0x00000000'
# -----------------------------------===== PRINCE_REGION2_IV_BODY9 [Optional] =====-----------------------------------
# Description: Offset: 0x000000CC, Width: 32b; Field.
PRINCE_REGION2_IV_BODY9: '0x00000000'
# ----------------------------------===== PRINCE_REGION2_IV_BODY10 [Optional] =====-----------------------------------
# Description: Offset: 0x000000D0, Width: 32b; Field.
PRINCE_REGION2_IV_BODY10: '0x00000000'
# ----------------------------------===== PRINCE_REGION2_IV_BODY11 [Optional] =====-----------------------------------
# Description: Offset: 0x000000D4, Width: 32b; Field.
PRINCE_REGION2_IV_BODY11: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED0 [Optional] =====--------------------------------------
# Description: Offset: 0x00000100, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED0: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED1 [Optional] =====--------------------------------------
# Description: Offset: 0x00000104, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED1: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED2 [Optional] =====--------------------------------------
# Description: Offset: 0x00000108, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED2: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED3 [Optional] =====--------------------------------------
# Description: Offset: 0x0000010C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED3: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED4 [Optional] =====--------------------------------------
# Description: Offset: 0x00000110, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED4: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED5 [Optional] =====--------------------------------------
# Description: Offset: 0x00000114, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED5: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED6 [Optional] =====--------------------------------------
# Description: Offset: 0x00000118, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED6: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED7 [Optional] =====--------------------------------------
# Description: Offset: 0x0000011C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED7: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED8 [Optional] =====--------------------------------------
# Description: Offset: 0x00000120, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED8: '0x00000000'
# --------------------------------------===== CUSTOMER_DEFINED9 [Optional] =====--------------------------------------
# Description: Offset: 0x00000124, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED9: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED10 [Optional] =====--------------------------------------
# Description: Offset: 0x00000128, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED10: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED11 [Optional] =====--------------------------------------
# Description: Offset: 0x0000012C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED11: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED12 [Optional] =====--------------------------------------
# Description: Offset: 0x00000130, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED12: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED13 [Optional] =====--------------------------------------
# Description: Offset: 0x00000134, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED13: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED14 [Optional] =====--------------------------------------
# Description: Offset: 0x00000138, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED14: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED15 [Optional] =====--------------------------------------
# Description: Offset: 0x0000013C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED15: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED16 [Optional] =====--------------------------------------
# Description: Offset: 0x00000140, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED16: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED17 [Optional] =====--------------------------------------
# Description: Offset: 0x00000144, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED17: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED18 [Optional] =====--------------------------------------
# Description: Offset: 0x00000148, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED18: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED19 [Optional] =====--------------------------------------
# Description: Offset: 0x0000014C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED19: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED20 [Optional] =====--------------------------------------
# Description: Offset: 0x00000150, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED20: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED21 [Optional] =====--------------------------------------
# Description: Offset: 0x00000154, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED21: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED22 [Optional] =====--------------------------------------
# Description: Offset: 0x00000158, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED22: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED23 [Optional] =====--------------------------------------
# Description: Offset: 0x0000015C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED23: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED24 [Optional] =====--------------------------------------
# Description: Offset: 0x00000160, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED24: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED25 [Optional] =====--------------------------------------
# Description: Offset: 0x00000164, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED25: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED26 [Optional] =====--------------------------------------
# Description: Offset: 0x00000168, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED26: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED27 [Optional] =====--------------------------------------
# Description: Offset: 0x0000016C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED27: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED28 [Optional] =====--------------------------------------
# Description: Offset: 0x00000170, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED28: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED29 [Optional] =====--------------------------------------
# Description: Offset: 0x00000174, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED29: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED30 [Optional] =====--------------------------------------
# Description: Offset: 0x00000178, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED30: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED31 [Optional] =====--------------------------------------
# Description: Offset: 0x0000017C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED31: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED32 [Optional] =====--------------------------------------
# Description: Offset: 0x00000180, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED32: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED33 [Optional] =====--------------------------------------
# Description: Offset: 0x00000184, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED33: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED34 [Optional] =====--------------------------------------
# Description: Offset: 0x00000188, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED34: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED35 [Optional] =====--------------------------------------
# Description: Offset: 0x0000018C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED35: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED36 [Optional] =====--------------------------------------
# Description: Offset: 0x00000190, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED36: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED37 [Optional] =====--------------------------------------
# Description: Offset: 0x00000194, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED37: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED38 [Optional] =====--------------------------------------
# Description: Offset: 0x00000198, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED38: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED39 [Optional] =====--------------------------------------
# Description: Offset: 0x0000019C, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED39: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED40 [Optional] =====--------------------------------------
# Description: Offset: 0x000001A0, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED40: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED41 [Optional] =====--------------------------------------
# Description: Offset: 0x000001A4, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED41: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED42 [Optional] =====--------------------------------------
# Description: Offset: 0x000001A8, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED42: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED43 [Optional] =====--------------------------------------
# Description: Offset: 0x000001AC, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED43: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED44 [Optional] =====--------------------------------------
# Description: Offset: 0x000001B0, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED44: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED45 [Optional] =====--------------------------------------
# Description: Offset: 0x000001B4, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED45: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED46 [Optional] =====--------------------------------------
# Description: Offset: 0x000001B8, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED46: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED47 [Optional] =====--------------------------------------
# Description: Offset: 0x000001BC, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED47: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED48 [Optional] =====--------------------------------------
# Description: Offset: 0x000001C0, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED48: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED49 [Optional] =====--------------------------------------
# Description: Offset: 0x000001C4, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED49: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED50 [Optional] =====--------------------------------------
# Description: Offset: 0x000001C8, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED50: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED51 [Optional] =====--------------------------------------
# Description: Offset: 0x000001CC, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED51: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED52 [Optional] =====--------------------------------------
# Description: Offset: 0x000001D0, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED52: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED53 [Optional] =====--------------------------------------
# Description: Offset: 0x000001D4, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED53: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED54 [Optional] =====--------------------------------------
# Description: Offset: 0x000001D8, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED54: '0x00000000'
# -------------------------------------===== CUSTOMER_DEFINED55 [Optional] =====--------------------------------------
# Description: Offset: 0x000001DC, Width: 32b; Customer Defined (Programmable through ROM API)
CUSTOMER_DEFINED55: '0x00000000'
# ---------------------------------------===== SHA256_DIGEST0 [Optional] =====----------------------------------------
# Description: Offset: 0x000001E0, Width: 32b; SHA256_DIGEST0 for DIGEST[31:0]
SHA256_DIGEST0: '0x7F9030D4'
# ---------------------------------------===== SHA256_DIGEST1 [Optional] =====----------------------------------------
# Description: Offset: 0x000001E4, Width: 32b; SHA256_DIGEST1 for DIGEST[63:32]
SHA256_DIGEST1: '0x1E19D916'
# ---------------------------------------===== SHA256_DIGEST2 [Optional] =====----------------------------------------
# Description: Offset: 0x000001E8, Width: 32b; SHA256_DIGEST2 for DIGEST[95:64]
SHA256_DIGEST2: '0x92E159D4'
# ---------------------------------------===== SHA256_DIGEST3 [Optional] =====----------------------------------------
# Description: Offset: 0x000001EC, Width: 32b; SHA256_DIGEST3 for DIGEST[127:96]
SHA256_DIGEST3: '0x0FC4CC81'
# ---------------------------------------===== SHA256_DIGEST4 [Optional] =====----------------------------------------
# Description: Offset: 0x000001F0, Width: 32b; SHA256_DIGEST4 for DIGEST[159:128]
SHA256_DIGEST4: '0xEBFAE9B5'
# ---------------------------------------===== SHA256_DIGEST5 [Optional] =====----------------------------------------
# Description: Offset: 0x000001F4, Width: 32b; SHA256_DIGEST5 for DIGEST[191:160]
SHA256_DIGEST5: '0x35C0EE7B'
# ---------------------------------------===== SHA256_DIGEST6 [Optional] =====----------------------------------------
# Description: Offset: 0x000001F8, Width: 32b; SHA256_DIGEST6 for DIGEST[223:192]
SHA256_DIGEST6: '0x4252FF46'
# ---------------------------------------===== SHA256_DIGEST7 [Optional] =====----------------------------------------
# Description: Offset: 0x000001FC, Width: 32b; SHA256_DIGEST7 for DIGEST[255:224]
SHA256_DIGEST7: '0xAF403854'
5.4 PFR write#
Now that we have enrolled key store, it’s time to write CFPA and CMPA pages. We could use pfr tool or blhost. It is not necessary to programm the CFPA page if the RoTk key is not revoked.
# write CFPA
# %! pfr write $CONNECTION -t cfpa -f $FAMILY -b $CFPA_BIN
# this is the same as
# %! blhost $CONNECTION write-memory 0x0009DE00 $CFPA_BIN
# write CMPA
%! pfr write $CONNECTION -t cmpa -f $FAMILY -b $CMPA_BIN
pfr write -u lpc55s69 -t cmpa -f lpc55s69 -b workspace/cmpa.bin
CMPA page address on lpc55s69 is 0x9e400
CMPA data written to device.
6. Write MBI#
Last step is to write master boot image to device.
# Erase flash first
%! blhost $CONNECTION flash-erase-region 0 0x10000
# write MBI
%! blhost $CONNECTION write-memory 0 $BIN_OUTPUT_PATH
blhost -u lpc55s69 flash-erase-region 0 0x10000
Response status = 0 (0x0) Success.
blhost -u lpc55s69 write-memory 0 workspace/lpc55s6x_mbi.bin
Writing memory
Response status = 0 (0x0) Success.
Response word 1 = 10648 (0x2998)