User Guide - pfr#

This user’s guide describes how to use pfr application.

PFR application is a command line tool for working with Protected Flash Region (PFR) areas (CMPA, CFPA). User might use this tool to read, write, parse, erase, and display PFR areas.

Get-template command is used to generate a template file for PFR configuration. Then, user can modify this file and use it for PFR configuration. Values might be passed as enums or as a hexadecimal number.

Note

Special prefix “RAW:” is used to pass a hexadecimal number that won’t be pre-processed. For example IPED_CTX0_START_ADDR: “RAW:0x123456”

Command line interface#

pfr#

Protected Flash Region (PFR) Utility.

This module provides a command-line interface for managing Protected Flash Region and Internal Flash Region data on NXP microcontrollers. It enables generating, parsing, exporting, reading, and writing PFR/IFR configurations.

Supported areas: - PFR pages: CMPA (Customer Manufacturing Configuration Area), CFPA (Customer Field Programmable Area) - IFR pages: ROMCFG (ROM Configuration), CMACTABLE (CMAC Table), IFR

Features: - Generate configuration templates - Parse binary PFR/IFR data into human-readable YAML - Export configurations to binary format - Read PFR/IFR data from connected devices - Write configurations to devices - Special operations like CMPA erasure

Note: IFR ROMCFG region is one-time-programmable only.

Usage

pfr [OPTIONS] COMMAND [ARGS]...

Options

-v, --verbose#

Print more detailed information

-vv, --debug#

Display more debugging information.

-vvv, --trace#

Display raw communication data (bytes, packets).

--version#

Show the version and exit.

--help#

Show this message and exit.

cmpa-merge#

Merge selected registers from a device CMPA binary into a main CMPA binary.

This is a pure binary, offline operation intended for a mass-production flow. The finalized main CMPA is kept byte-for-byte and only the explicitly selected registers are taken from the CMPA read back from the device. No values are recomputed, so any CRC, seal or ROTKH fields already present in the main CMPA are preserved.

Only families that expose the Secure Installer erase functionality in the database are supported. Register names must match the CMPA register spec (JSON) exactly. Prefer –si-erase-token to preserve the device-unique Secure Installer erase token without needing to know the per-family register names.

Example: pfr cmpa-merge –family <family> –main-cmpa CMPA.bin –device-cmpa CMPA_dev.bin –output-cmpa CMPA_out.bin –si-erase-token

Usage

pfr cmpa-merge [OPTIONS]

Options

-f, --family <family>#

[required] Select the chip family.

Options:

mcxa255 | mcxa256 | mcxa265 | mcxa266 | mcxa365 | mcxa366 | mcxl142 | mcxl143 | mcxl144 | mcxl253 | mcxl254 | mcxl255

-r, --revision <revision>#

Chip revision; if not specified, most recent one will be used

-m, --main-cmpa <main_cmpa>#

Required Finalized (user) CMPA binary that provides all bytes except the merged registers.

-d, --device-cmpa <device_cmpa>#

Required CMPA binary read back from the device that provides the selected register values.

-o, --output-cmpa <output_cmpa>#

Required Path where the merged CMPA binary is written.

--registers <registers>#

Comma-separated list of register names copied from the device CMPA (e.g. the Secure Installer erase-token registers).

--registers-config <registers_config>#

YAML file with the list of register names to merge (alternative to –registers).

--si-erase-token#

Merge the Secure Installer erase-token registers, resolved automatically for the family from the device database. Use instead of –registers/–registers-config.

erase-cmpa#

Erase CMPA PFR page in the device if is not sealed and write the default values into CMPA page.

Usage

pfr erase-cmpa [OPTIONS]

Options

-f, --family <family>#

[required] Select the chip family.

Options:

kw43b43zc2 | kw43b43zc3 | kw43b43zc6 | kw43b43zc7 | kw43l43z92 | kw43l43z93 | kw43l43z96 | kw43l43z97 | lpc5502 | lpc5504 | lpc5506 | lpc5512 | lpc5514 | lpc5516 | lpc5526 | lpc5528 | lpc5534 | lpc5536 | lpc55s04 | lpc55s06 | lpc55s14 | lpc55s16 | lpc55s26 | lpc55s28 | lpc55s36 | lpc55s66 | lpc55s69 | mcxa132 | mcxa133 | mcxa142 | mcxa143 | mcxa144 | mcxa145 | mcxa146 | mcxa152 | mcxa153 | mcxa154 | mcxa155 | mcxa156 | mcxa173 | mcxa174 | mcxa175 | mcxa176 | mcxa185 | mcxa186 | mcxa255 | mcxa256 | mcxa265 | mcxa266 | mcxa286 | mcxa287 | mcxa343 | mcxa344 | mcxa345 | mcxa346 | mcxa355 | mcxa356 | mcxa365 | mcxa366 | mcxa456 | mcxa457 | mcxa536 | mcxa537 | mcxa556 | mcxa557 | mcxa566 | mcxa567 | mcxa577 | mcxl142 | mcxl143 | mcxl144 | mcxl253 | mcxl254 | mcxl255 | mcxn235 | mcxn236 | mcxn246 | mcxn246t | mcxn247 | mcxn247t | mcxn526 | mcxn527 | mcxn527t | mcxn536 | mcxn536t | mcxn537 | mcxn537t | mcxn546 | mcxn546t | mcxn547 | mcxn547t | mcxn556s | mcxn556t | mcxn557s | mcxn557t | mcxn946 | mcxn946t | mcxn947 | mcxn947t | mcxw235 | mcxw236 | mcxw706a | mcxw706c | mcxw706d | mcxw70ac | mcxw70ad | nhs52s04

-r, --revision <revision>#

Chip revision; if not specified, most recent one will be used

-p, --port <COM[,speed>#

Serial port configuration. Default baud rate is 57600. Use ‘nxpdevscan’ utility to list devices on serial port.

-u, --usb <VID:PID|USB_PATH|DEV_NAME>#

USB device identifier. | Following formats are supported: <vid>, <vid:pid> or <vid,pid>, device/instance path, device name. | <vid>: hex or dec string; e.g. 0x0AB12, 43794. | <vid/pid>: hex or dec string; e.g. 0x0AB12:0x123, 1:3451. | Use ‘nxpdevscan’ utility to list connected device names.

This option can be omitted if ‘–family’ option is used.
-sd, --sdio <SDIO_PATH|DEV_NAME>#

SDIO device identifier.

Following formats are supported: device/instance path, device name.
device/instance path: device string; e.g. /dev/mcu-sdio.
Use ‘nxpdevscan’ utility to list connected device names.
-l, --lpcusbsio <usb,VID:PID|USB_PATH|SER_NUM,]spi|i2c>#

USB-SIO bridge interface.

Optional USB device filtering formats: [usb,vid:pid|usb_path|serial_number] | usb,vid:pid - Filter by USB Vendor ID and Product ID (hexadecimal) | Example: usb,0x1fc9:0x0090 | usb,usb_path - Filter by USB device path | Example: usb,1-1.3.2 | usb,serial_number - Filter by USB device serial number | Example: usb,ABCD1234

Following serial interfaces are supported:

spi[index][,port,pin,speed_kHz,polarity,phase]
- index … optional index of SPI peripheral. Example: “spi1” (default=0)
- port … bridge GPIO port used as SPI SSEL(default=0)
- pin … bridge GPIO pin used as SPI SSEL
default SSEL is set to 0.15 which works
for the LPCLink2 bridge. The MCULink OB
bridge ignores the SSEL value anyway.(default=15)
- speed_kHz … SPI clock in kHz (default 1000)
- polarity … SPI CPOL option (default=1)
- phase … SPI CPHA option (default=1)
- nirq_port … nIRQ port number (default None)
- nirq_pin … nIRQ pin number (default None)
i2c[index][,address,speed_kHz]
- index … optional index of I2C peripheral. Example: “i2c1” (default=0)
- address … I2C device address (default 0x10)
- speed_kHz … I2C clock in kHz (default 100)
- nirq_port … nIRQ port number (default None)
- nirq_pin … nIRQ pin number (default None)
Following types of interface configuration formats are supported:
- string with coma separated arguments i.e. spi1,0,15,1000,1
- string with coma separated keyword arguments (the order may not be maintained) i.e.spi1,port=0,speed_kHz=1000,nirq_port=1,nirq_pin=7
- string with combination of coma separated arguments and keyword arguments i.e.spi1,0,15,nirq_port=1,nirq_pin=7
Complete examples with USB filtering:
- usb,0x1fc9:0x0090,spi - SPI interface filtered by USB VID:PID
- usb,1-1.1,i2c,0x10,100 - I2C interface filtered by USB path
- usb,ABCD1234,spi1,0,15,1000 - SPI1 interface filtered by USB serial number
- spi - SPI interface without USB filtering (auto-detect first device)
-cb, --can <interface[,channel,bitrate,rxid,txid>#

CAN Bus settings

interface[,channel,bitrate,rxid,txid]
- interface … CAN interface name (refer to python-can library)
- channel … CAN channel number
- bitrate … CAN bitrate (default=1000000)
- rxid … default arbitration ID for RX (default=0x123)
- txid … default arbitration ID for TX (default=0x321)
-b, --buspal <spi[,speed,polarity,phase,lsb|msb] | i2c[,address,speed>#

Buspal settings

-x, --plugin <identifier=PLUGIN_IDENTIFIER[,param1=value1,param2=value2>#

Plugin interface settings.

Following format of plugin setting is supported:

identifier=<PLUGIN_IDENTIFIER>[,<key1>=<value1>,<key2>=<value2>,…]
- <PLUGIN_IDENTIFIER>: Corresponds to the ‘identifier’ attribute of the plugin class
- <key1>=<value1>: Represent a single interface parameter
Optional interface settings:
- Any number of optional <key>=<value> scan settings separated by comma can be defined
- The <key>=<value> pairs are used as keyword parameters for ‘scan’ method of a plugin class
--timeout <ms>#

Sets timeout when waiting on data over a serial line. The default is 5000 milliseconds.

erase-secure-installer#

Erase Secure Installer from the device.

This command erases the Secure Installer (SI) from devices that support this feature by writing the DELETE_INSTALLER_MAGIC value to the DELETE_INSTALLER field in CMPA and resetting the device. The ROM completes the erase on the next boot.

If the DELETE_INSTALLER flash phrase has already been programmed by a prior full CMPA write (it reads back as 0xFF but the flash controller rejects an in-place re-program with a cumulative-write error), the command automatically falls back to erasing the CMPA sector and reprogramming it - preserving the current settings - with the magic, while leaving the ERASE_TOKEN phrase erased so the ROM can store its device-unique token. Do not power off the device while this recovery runs.

If the CMPA is entirely blank (e.g. after a full flash erase wiped the factory CMPA), a default CMPA carrying the magic is provisioned automatically (the ERASE_TOKEN phrase is left erased for the ROM). A CMPA that is not confirmed blank is refused so an unexpected/partial CMPA is never overwritten.

Note: On a 512K flash device the SI flash region is reopened as customer flash after the ROM completes the erase. On 128K/256K devices the SI region stays hidden (no flash is reclaimed).

The device will be reset after the magic value is written unless –no-reset is set.

Usage

pfr erase-secure-installer [OPTIONS]

Options

-f, --family <family>#

[required] Select the chip family.

Options:

mcxa255 | mcxa256 | mcxa265 | mcxa266 | mcxa365 | mcxa366 | mcxl142 | mcxl143 | mcxl144 | mcxl253 | mcxl254 | mcxl255

-r, --revision <revision>#

Chip revision; if not specified, most recent one will be used

-p, --port <COM[,speed>#

Serial port configuration. Default baud rate is 57600. Use ‘nxpdevscan’ utility to list devices on serial port.

-u, --usb <VID:PID|USB_PATH|DEV_NAME>#

USB device identifier. | Following formats are supported: <vid>, <vid:pid> or <vid,pid>, device/instance path, device name. | <vid>: hex or dec string; e.g. 0x0AB12, 43794. | <vid/pid>: hex or dec string; e.g. 0x0AB12:0x123, 1:3451. | Use ‘nxpdevscan’ utility to list connected device names.

-sd, --sdio <SDIO_PATH|DEV_NAME>#

SDIO device identifier.

Following formats are supported: device/instance path, device name.
device/instance path: device string; e.g. /dev/mcu-sdio.
Use ‘nxpdevscan’ utility to list connected device names.
-l, --lpcusbsio <usb,VID:PID|USB_PATH|SER_NUM,]spi|i2c>#

USB-SIO bridge interface.

Optional USB device filtering formats: [usb,vid:pid|usb_path|serial_number] | usb,vid:pid - Filter by USB Vendor ID and Product ID (hexadecimal) | Example: usb,0x1fc9:0x0090 | usb,usb_path - Filter by USB device path | Example: usb,1-1.3.2 | usb,serial_number - Filter by USB device serial number | Example: usb,ABCD1234

Following serial interfaces are supported:

spi[index][,port,pin,speed_kHz,polarity,phase]
- index … optional index of SPI peripheral. Example: “spi1” (default=0)
- port … bridge GPIO port used as SPI SSEL(default=0)
- pin … bridge GPIO pin used as SPI SSEL
default SSEL is set to 0.15 which works
for the LPCLink2 bridge. The MCULink OB
bridge ignores the SSEL value anyway.(default=15)
- speed_kHz … SPI clock in kHz (default 1000)
- polarity … SPI CPOL option (default=1)
- phase … SPI CPHA option (default=1)
- nirq_port … nIRQ port number (default None)
- nirq_pin … nIRQ pin number (default None)
i2c[index][,address,speed_kHz]
- index … optional index of I2C peripheral. Example: “i2c1” (default=0)
- address … I2C device address (default 0x10)
- speed_kHz … I2C clock in kHz (default 100)
- nirq_port … nIRQ port number (default None)
- nirq_pin … nIRQ pin number (default None)
Following types of interface configuration formats are supported:
- string with coma separated arguments i.e. spi1,0,15,1000,1
- string with coma separated keyword arguments (the order may not be maintained) i.e.spi1,port=0,speed_kHz=1000,nirq_port=1,nirq_pin=7
- string with combination of coma separated arguments and keyword arguments i.e.spi1,0,15,nirq_port=1,nirq_pin=7
Complete examples with USB filtering:
- usb,0x1fc9:0x0090,spi - SPI interface filtered by USB VID:PID
- usb,1-1.1,i2c,0x10,100 - I2C interface filtered by USB path
- usb,ABCD1234,spi1,0,15,1000 - SPI1 interface filtered by USB serial number
- spi - SPI interface without USB filtering (auto-detect first device)
-cb, --can <interface[,channel,bitrate,rxid,txid>#

CAN Bus settings

interface[,channel,bitrate,rxid,txid]
- interface … CAN interface name (refer to python-can library)
- channel … CAN channel number
- bitrate … CAN bitrate (default=1000000)
- rxid … default arbitration ID for RX (default=0x123)
- txid … default arbitration ID for TX (default=0x321)
-b, --buspal <spi[,speed,polarity,phase,lsb|msb] | i2c[,address,speed>#

Buspal settings

-x, --plugin <identifier=PLUGIN_IDENTIFIER[,param1=value1,param2=value2>#

Plugin interface settings.

Following format of plugin setting is supported:

identifier=<PLUGIN_IDENTIFIER>[,<key1>=<value1>,<key2>=<value2>,…]
- <PLUGIN_IDENTIFIER>: Corresponds to the ‘identifier’ attribute of the plugin class
- <key1>=<value1>: Represent a single interface parameter
Optional interface settings:
- Any number of optional <key>=<value> scan settings separated by comma can be defined
- The <key>=<value> pairs are used as keyword parameters for ‘scan’ method of a plugin class
--timeout <ms>#

Sets timeout when waiting on data over a serial line. The default is 5000 milliseconds.

-nr, --no-reset#

Do not reset device after erasing Secure Installer. (Not recommended)

export#

Generate binary data.

Usage

pfr export [OPTIONS]

Options

-e, --rot-config <rot_config>#

Specify Root Of Trust from MBI or Cert block configuration file/binary file

-sf, --secret-file <secret_file>#

Secret file (certificate, public key, private key); can be defined multiple times

-c, --config <config>#

Required Path to the YAML/JSON configuration file.

-oc, --override-config <key_path=value>#

Allows override the individual configuration settings. The use is simple: ‘key_path=value’, like ‘family=mimxrt595s’ or in structural configuration with separating character ‘/’ like ‘containers/0/binary_container=my_container.bin’. It could be used multiple times.

-o, --output <output>#

Required Path to a file, where to store the output.

-a, --add-seal#

Add seal mark digest at the end.

-p, --password <password>#

Password when using Encrypted private keys as –secret-file

--ignore#

Ignore validation failures and generate the binary.

get-families#

Shows the full family info for commands in this group.

Usage

pfr get-families [OPTIONS]

Options

-c, --cmd-name <cmd_name>#

Choose the command name to get full information about NXP families support.

Options:

get-template | get-templates | parse | info | write | read | erase-cmpa | erase-secure-installer | read-secure-installer-token | cmpa-merge

get-template#

Generate user configuration template file.

Usage

pfr get-template [OPTIONS]

Options

-f, --family <family>#

[required] Select the chip family.

Options:

k32w148 | kw43b43zc2 | kw43b43zc3 | kw43b43zc6 | kw43b43zc7 | kw43l43z92 | kw43l43z93 | kw43l43z96 | kw43l43z97 | kw45b41z5 | kw45b41z8 | kw45z41052 | kw45z41053 | kw45z41082 | kw45z41083 | kw47b42z83 | kw47b42z96 | kw47b42z97 | kw47b42zb2 | kw47b42zb3 | kw47b42zb6 | kw47b42zb7 | kw47z42082 | kw47z42092 | kw47z420b2 | kw47z420b3 | lpc5502 | lpc5504 | lpc5506 | lpc5512 | lpc5514 | lpc5516 | lpc5526 | 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 | mcxa173 | mcxa174 | mcxa175 | mcxa176 | mcxa185 | mcxa186 | mcxa255 | mcxa256 | mcxa265 | mcxa266 | mcxa286 | mcxa287 | mcxa343 | mcxa344 | mcxa345 | mcxa346 | mcxa355 | mcxa356 | mcxa365 | mcxa366 | mcxa456 | mcxa457 | mcxa536 | mcxa537 | mcxa556 | mcxa557 | mcxa566 | mcxa567 | mcxa577 | mcxc151 | mcxc161 | mcxc162 | mcxl142 | mcxl143 | mcxl144 | mcxl253 | mcxl254 | mcxl255 | mcxn235 | mcxn236 | mcxn246 | mcxn246t | mcxn247 | mcxn247t | mcxn526 | mcxn527 | mcxn527t | mcxn536 | mcxn536t | mcxn537 | mcxn537t | mcxn546 | mcxn546t | mcxn547 | mcxn547t | mcxn556s | mcxn556t | mcxn557s | mcxn557t | mcxn946 | mcxn946t | mcxn947 | mcxn947t | mcxw235 | mcxw236 | mcxw706a | mcxw706c | mcxw706d | mcxw70ac | mcxw70ad | mcxw716a | mcxw716c | mcxw727a | mcxw727c | mcxw727d | mwct2012 | mwct2012a | mwct20d2 | mwct20d2a | nhs52s04 | sc668342 | sc668343

-r, --revision <revision>#

Chip revision; if not specified, most recent one will be used

-t, --type <area>#

Required Select PFR/IFR partition

Options:

cfpa | cmactable | cmpa | cmpa_cfg | cmpa_lc | cmpa_pswd | ifr | romcfg | update | update_cfpa | update_cfpa_cmpa

-o, --output <output>#

Required Path to a file, where to store the output.

--force#

Force overwriting of existing files.

get-templates#

Generate all user configuration template files for a family.

Usage

pfr get-templates [OPTIONS]

Options

-f, --family <family>#

[required] Select the chip family.

Options:

k32w148 | kw43b43zc2 | kw43b43zc3 | kw43b43zc6 | kw43b43zc7 | kw43l43z92 | kw43l43z93 | kw43l43z96 | kw43l43z97 | kw45b41z5 | kw45b41z8 | kw45z41052 | kw45z41053 | kw45z41082 | kw45z41083 | kw47b42z83 | kw47b42z96 | kw47b42z97 | kw47b42zb2 | kw47b42zb3 | kw47b42zb6 | kw47b42zb7 | kw47z42082 | kw47z42092 | kw47z420b2 | kw47z420b3 | lpc5502 | lpc5504 | lpc5506 | lpc5512 | lpc5514 | lpc5516 | lpc5526 | 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 | mcxa173 | mcxa174 | mcxa175 | mcxa176 | mcxa185 | mcxa186 | mcxa255 | mcxa256 | mcxa265 | mcxa266 | mcxa286 | mcxa287 | mcxa343 | mcxa344 | mcxa345 | mcxa346 | mcxa355 | mcxa356 | mcxa365 | mcxa366 | mcxa456 | mcxa457 | mcxa536 | mcxa537 | mcxa556 | mcxa557 | mcxa566 | mcxa567 | mcxa577 | mcxc151 | mcxc161 | mcxc162 | mcxl142 | mcxl143 | mcxl144 | mcxl253 | mcxl254 | mcxl255 | mcxn235 | mcxn236 | mcxn246 | mcxn246t | mcxn247 | mcxn247t | mcxn526 | mcxn527 | mcxn527t | mcxn536 | mcxn536t | mcxn537 | mcxn537t | mcxn546 | mcxn546t | mcxn547 | mcxn547t | mcxn556s | mcxn556t | mcxn557s | mcxn557t | mcxn946 | mcxn946t | mcxn947 | mcxn947t | mcxw235 | mcxw236 | mcxw706a | mcxw706c | mcxw706d | mcxw70ac | mcxw70ad | mcxw716a | mcxw716c | mcxw727a | mcxw727c | mcxw727d | mwct2012 | mwct2012a | mwct20d2 | mwct20d2a | nhs52s04 | sc668342 | sc668343

-r, --revision <revision>#

Chip revision; if not specified, most recent one will be used

-o, --output <output>#

Required Path to a directory, where to store generated/parsed files.

--force#

Force overwriting of existing files.

info#

Display information about PFR/IFR binary.

Usage

pfr info [OPTIONS]

Options

-f, --family <family>#

[required] Select the chip family.

Options:

k32w148 | kw43b43zc2 | kw43b43zc3 | kw43b43zc6 | kw43b43zc7 | kw43l43z92 | kw43l43z93 | kw43l43z96 | kw43l43z97 | kw45b41z5 | kw45b41z8 | kw45z41052 | kw45z41053 | kw45z41082 | kw45z41083 | kw47b42z83 | kw47b42z96 | kw47b42z97 | kw47b42zb2 | kw47b42zb3 | kw47b42zb6 | kw47b42zb7 | kw47z42082 | kw47z42092 | kw47z420b2 | kw47z420b3 | lpc5502 | lpc5504 | lpc5506 | lpc5512 | lpc5514 | lpc5516 | lpc5526 | 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 | mcxa173 | mcxa174 | mcxa175 | mcxa176 | mcxa185 | mcxa186 | mcxa255 | mcxa256 | mcxa265 | mcxa266 | mcxa286 | mcxa287 | mcxa343 | mcxa344 | mcxa345 | mcxa346 | mcxa355 | mcxa356 | mcxa365 | mcxa366 | mcxa456 | mcxa457 | mcxa536 | mcxa537 | mcxa556 | mcxa557 | mcxa566 | mcxa567 | mcxa577 | mcxc151 | mcxc161 | mcxc162 | mcxl142 | mcxl143 | mcxl144 | mcxl253 | mcxl254 | mcxl255 | mcxn235 | mcxn236 | mcxn246 | mcxn246t | mcxn247 | mcxn247t | mcxn526 | mcxn527 | mcxn527t | mcxn536 | mcxn536t | mcxn537 | mcxn537t | mcxn546 | mcxn546t | mcxn547 | mcxn547t | mcxn556s | mcxn556t | mcxn557s | mcxn557t | mcxn946 | mcxn946t | mcxn947 | mcxn947t | mcxw235 | mcxw236 | mcxw706a | mcxw706c | mcxw706d | mcxw70ac | mcxw70ad | mcxw716a | mcxw716c | mcxw727a | mcxw727c | mcxw727d | mwct2012 | mwct2012a | mwct20d2 | mwct20d2a | nhs52s04 | sc668342 | sc668343

-r, --revision <revision>#

Chip revision; if not specified, most recent one will be used

-t, --type <area>#

Required Select PFR/IFR partition

Options:

cfpa | cmactable | cmpa | cmpa_cfg | cmpa_lc | cmpa_pswd | ifr | romcfg | update | update_cfpa | update_cfpa_cmpa

-b, --binary <binary>#

Required Binary to analyze

parse#

Parse binary and extract configuration.

Usage

pfr parse [OPTIONS]

Options

-f, --family <family>#

[required] Select the chip family.

Options:

k32w148 | kw43b43zc2 | kw43b43zc3 | kw43b43zc6 | kw43b43zc7 | kw43l43z92 | kw43l43z93 | kw43l43z96 | kw43l43z97 | kw45b41z5 | kw45b41z8 | kw45z41052 | kw45z41053 | kw45z41082 | kw45z41083 | kw47b42z83 | kw47b42z96 | kw47b42z97 | kw47b42zb2 | kw47b42zb3 | kw47b42zb6 | kw47b42zb7 | kw47z42082 | kw47z42092 | kw47z420b2 | kw47z420b3 | lpc5502 | lpc5504 | lpc5506 | lpc5512 | lpc5514 | lpc5516 | lpc5526 | 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 | mcxa173 | mcxa174 | mcxa175 | mcxa176 | mcxa185 | mcxa186 | mcxa255 | mcxa256 | mcxa265 | mcxa266 | mcxa286 | mcxa287 | mcxa343 | mcxa344 | mcxa345 | mcxa346 | mcxa355 | mcxa356 | mcxa365 | mcxa366 | mcxa456 | mcxa457 | mcxa536 | mcxa537 | mcxa556 | mcxa557 | mcxa566 | mcxa567 | mcxa577 | mcxc151 | mcxc161 | mcxc162 | mcxl142 | mcxl143 | mcxl144 | mcxl253 | mcxl254 | mcxl255 | mcxn235 | mcxn236 | mcxn246 | mcxn246t | mcxn247 | mcxn247t | mcxn526 | mcxn527 | mcxn527t | mcxn536 | mcxn536t | mcxn537 | mcxn537t | mcxn546 | mcxn546t | mcxn547 | mcxn547t | mcxn556s | mcxn556t | mcxn557s | mcxn557t | mcxn946 | mcxn946t | mcxn947 | mcxn947t | mcxw235 | mcxw236 | mcxw706a | mcxw706c | mcxw706d | mcxw70ac | mcxw70ad | mcxw716a | mcxw716c | mcxw727a | mcxw727c | mcxw727d | mwct2012 | mwct2012a | mwct20d2 | mwct20d2a | nhs52s04 | sc668342 | sc668343

-r, --revision <revision>#

Chip revision; if not specified, most recent one will be used

-t, --type <area>#

Required Select PFR/IFR partition

Options:

cfpa | cmactable | cmpa | cmpa_cfg | cmpa_lc | cmpa_pswd | ifr | romcfg | update | update_cfpa | update_cfpa_cmpa

-o, --output <output>#

Required Path to a file, where to store the output.

-b, --binary <binary>#

Required Binary to parse

-d, --show-diff#

Show differences comparing to defaults

read#

Read PFR page from the device.

Usage

pfr read [OPTIONS]

Options

-p, --port <COM[,speed>#

Serial port configuration. Default baud rate is 57600. Use ‘nxpdevscan’ utility to list devices on serial port.

-u, --usb <VID:PID|USB_PATH|DEV_NAME>#

USB device identifier. | Following formats are supported: <vid>, <vid:pid> or <vid,pid>, device/instance path, device name. | <vid>: hex or dec string; e.g. 0x0AB12, 43794. | <vid/pid>: hex or dec string; e.g. 0x0AB12:0x123, 1:3451. | Use ‘nxpdevscan’ utility to list connected device names.

This option can be omitted if ‘–family’ option is used.
-sd, --sdio <SDIO_PATH|DEV_NAME>#

SDIO device identifier.

Following formats are supported: device/instance path, device name.
device/instance path: device string; e.g. /dev/mcu-sdio.
Use ‘nxpdevscan’ utility to list connected device names.
-l, --lpcusbsio <usb,VID:PID|USB_PATH|SER_NUM,]spi|i2c>#

USB-SIO bridge interface.

Optional USB device filtering formats: [usb,vid:pid|usb_path|serial_number] | usb,vid:pid - Filter by USB Vendor ID and Product ID (hexadecimal) | Example: usb,0x1fc9:0x0090 | usb,usb_path - Filter by USB device path | Example: usb,1-1.3.2 | usb,serial_number - Filter by USB device serial number | Example: usb,ABCD1234

Following serial interfaces are supported:

spi[index][,port,pin,speed_kHz,polarity,phase]
- index … optional index of SPI peripheral. Example: “spi1” (default=0)
- port … bridge GPIO port used as SPI SSEL(default=0)
- pin … bridge GPIO pin used as SPI SSEL
default SSEL is set to 0.15 which works
for the LPCLink2 bridge. The MCULink OB
bridge ignores the SSEL value anyway.(default=15)
- speed_kHz … SPI clock in kHz (default 1000)
- polarity … SPI CPOL option (default=1)
- phase … SPI CPHA option (default=1)
- nirq_port … nIRQ port number (default None)
- nirq_pin … nIRQ pin number (default None)
i2c[index][,address,speed_kHz]
- index … optional index of I2C peripheral. Example: “i2c1” (default=0)
- address … I2C device address (default 0x10)
- speed_kHz … I2C clock in kHz (default 100)
- nirq_port … nIRQ port number (default None)
- nirq_pin … nIRQ pin number (default None)
Following types of interface configuration formats are supported:
- string with coma separated arguments i.e. spi1,0,15,1000,1
- string with coma separated keyword arguments (the order may not be maintained) i.e.spi1,port=0,speed_kHz=1000,nirq_port=1,nirq_pin=7
- string with combination of coma separated arguments and keyword arguments i.e.spi1,0,15,nirq_port=1,nirq_pin=7
Complete examples with USB filtering:
- usb,0x1fc9:0x0090,spi - SPI interface filtered by USB VID:PID
- usb,1-1.1,i2c,0x10,100 - I2C interface filtered by USB path
- usb,ABCD1234,spi1,0,15,1000 - SPI1 interface filtered by USB serial number
- spi - SPI interface without USB filtering (auto-detect first device)
-cb, --can <interface[,channel,bitrate,rxid,txid>#

CAN Bus settings

interface[,channel,bitrate,rxid,txid]
- interface … CAN interface name (refer to python-can library)
- channel … CAN channel number
- bitrate … CAN bitrate (default=1000000)
- rxid … default arbitration ID for RX (default=0x123)
- txid … default arbitration ID for TX (default=0x321)
-b, --buspal <spi[,speed,polarity,phase,lsb|msb] | i2c[,address,speed>#

Buspal settings

-x, --plugin <identifier=PLUGIN_IDENTIFIER[,param1=value1,param2=value2>#

Plugin interface settings.

Following format of plugin setting is supported:

identifier=<PLUGIN_IDENTIFIER>[,<key1>=<value1>,<key2>=<value2>,…]
- <PLUGIN_IDENTIFIER>: Corresponds to the ‘identifier’ attribute of the plugin class
- <key1>=<value1>: Represent a single interface parameter
Optional interface settings:
- Any number of optional <key>=<value> scan settings separated by comma can be defined
- The <key>=<value> pairs are used as keyword parameters for ‘scan’ method of a plugin class
--timeout <ms>#

Sets timeout when waiting on data over a serial line. The default is 5000 milliseconds.

-f, --family <family>#

[required] Select the chip family.

Options:

k32w148 | kw43b43zc2 | kw43b43zc3 | kw43b43zc6 | kw43b43zc7 | kw43l43z92 | kw43l43z93 | kw43l43z96 | kw43l43z97 | kw45b41z5 | kw45b41z8 | kw45z41052 | kw45z41053 | kw45z41082 | kw45z41083 | kw47b42z83 | kw47b42z96 | kw47b42z97 | kw47b42zb2 | kw47b42zb3 | kw47b42zb6 | kw47b42zb7 | kw47z42082 | kw47z42092 | kw47z420b2 | kw47z420b3 | lpc5502 | lpc5504 | lpc5506 | lpc5512 | lpc5514 | lpc5516 | lpc5526 | 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 | mcxa173 | mcxa174 | mcxa175 | mcxa176 | mcxa185 | mcxa186 | mcxa255 | mcxa256 | mcxa265 | mcxa266 | mcxa286 | mcxa287 | mcxa343 | mcxa344 | mcxa345 | mcxa346 | mcxa355 | mcxa356 | mcxa365 | mcxa366 | mcxa456 | mcxa457 | mcxa536 | mcxa537 | mcxa556 | mcxa557 | mcxa566 | mcxa567 | mcxa577 | mcxc151 | mcxc161 | mcxc162 | mcxl142 | mcxl143 | mcxl144 | mcxl253 | mcxl254 | mcxl255 | mcxn235 | mcxn236 | mcxn246 | mcxn246t | mcxn247 | mcxn247t | mcxn526 | mcxn527 | mcxn527t | mcxn536 | mcxn536t | mcxn537 | mcxn537t | mcxn546 | mcxn546t | mcxn547 | mcxn547t | mcxn556s | mcxn556t | mcxn557s | mcxn557t | mcxn946 | mcxn946t | mcxn947 | mcxn947t | mcxw235 | mcxw236 | mcxw706a | mcxw706c | mcxw706d | mcxw70ac | mcxw70ad | mcxw716a | mcxw716c | mcxw727a | mcxw727c | mcxw727d | mwct2012 | mwct2012a | mwct20d2 | mwct20d2a | nhs52s04 | sc668342 | sc668343

-r, --revision <revision>#

Chip revision; if not specified, most recent one will be used

-t, --type <area>#

Required Select PFR/IFR partition

Options:

cfpa | cmactable | cmpa | cmpa_cfg | cmpa_lc | cmpa_pswd | ifr | romcfg | update | update_cfpa | update_cfpa_cmpa

-o, --output <output>#

Store PFR data into a file. If not specified hexdump data into stdout.

-y, --yaml <yaml_output>#

Parse data read from device into YAML config.

-d, --show-diff#

Show differences comparing to defaults (applicable for parsing)

read-secure-installer-token#

Read the device-unique Secure Installer erase token from CMPA.

After the Secure Installer is erased, the ROM programs a device-unique 16-byte erase token into CMPA (the erase-token registers declared for the family). The ROM re-validates this token on every boot; if a later pfr write overwrites it with blank/default values, the freed flash region gets locked again.

This command reads the token back so it can be preserved in your CMPA configuration. Use --output to write a ready-to-merge CMPA config snippet.

WARNING: The erase token is valid ONLY on the device it was read from. Never program it into the CMPA of another device — doing so re-locks that device’s freed flash region.

Usage

pfr read-secure-installer-token [OPTIONS]

Options

-f, --family <family>#

[required] Select the chip family.

Options:

mcxa255 | mcxa256 | mcxa265 | mcxa266 | mcxa365 | mcxa366 | mcxl142 | mcxl143 | mcxl144 | mcxl253 | mcxl254 | mcxl255

-r, --revision <revision>#

Chip revision; if not specified, most recent one will be used

-p, --port <COM[,speed>#

Serial port configuration. Default baud rate is 57600. Use ‘nxpdevscan’ utility to list devices on serial port.

-u, --usb <VID:PID|USB_PATH|DEV_NAME>#

USB device identifier. | Following formats are supported: <vid>, <vid:pid> or <vid,pid>, device/instance path, device name. | <vid>: hex or dec string; e.g. 0x0AB12, 43794. | <vid/pid>: hex or dec string; e.g. 0x0AB12:0x123, 1:3451. | Use ‘nxpdevscan’ utility to list connected device names.

-sd, --sdio <SDIO_PATH|DEV_NAME>#

SDIO device identifier.

Following formats are supported: device/instance path, device name.
device/instance path: device string; e.g. /dev/mcu-sdio.
Use ‘nxpdevscan’ utility to list connected device names.
-l, --lpcusbsio <usb,VID:PID|USB_PATH|SER_NUM,]spi|i2c>#

USB-SIO bridge interface.

Optional USB device filtering formats: [usb,vid:pid|usb_path|serial_number] | usb,vid:pid - Filter by USB Vendor ID and Product ID (hexadecimal) | Example: usb,0x1fc9:0x0090 | usb,usb_path - Filter by USB device path | Example: usb,1-1.3.2 | usb,serial_number - Filter by USB device serial number | Example: usb,ABCD1234

Following serial interfaces are supported:

spi[index][,port,pin,speed_kHz,polarity,phase]
- index … optional index of SPI peripheral. Example: “spi1” (default=0)
- port … bridge GPIO port used as SPI SSEL(default=0)
- pin … bridge GPIO pin used as SPI SSEL
default SSEL is set to 0.15 which works
for the LPCLink2 bridge. The MCULink OB
bridge ignores the SSEL value anyway.(default=15)
- speed_kHz … SPI clock in kHz (default 1000)
- polarity … SPI CPOL option (default=1)
- phase … SPI CPHA option (default=1)
- nirq_port … nIRQ port number (default None)
- nirq_pin … nIRQ pin number (default None)
i2c[index][,address,speed_kHz]
- index … optional index of I2C peripheral. Example: “i2c1” (default=0)
- address … I2C device address (default 0x10)
- speed_kHz … I2C clock in kHz (default 100)
- nirq_port … nIRQ port number (default None)
- nirq_pin … nIRQ pin number (default None)
Following types of interface configuration formats are supported:
- string with coma separated arguments i.e. spi1,0,15,1000,1
- string with coma separated keyword arguments (the order may not be maintained) i.e.spi1,port=0,speed_kHz=1000,nirq_port=1,nirq_pin=7
- string with combination of coma separated arguments and keyword arguments i.e.spi1,0,15,nirq_port=1,nirq_pin=7
Complete examples with USB filtering:
- usb,0x1fc9:0x0090,spi - SPI interface filtered by USB VID:PID
- usb,1-1.1,i2c,0x10,100 - I2C interface filtered by USB path
- usb,ABCD1234,spi1,0,15,1000 - SPI1 interface filtered by USB serial number
- spi - SPI interface without USB filtering (auto-detect first device)
-cb, --can <interface[,channel,bitrate,rxid,txid>#

CAN Bus settings

interface[,channel,bitrate,rxid,txid]
- interface … CAN interface name (refer to python-can library)
- channel … CAN channel number
- bitrate … CAN bitrate (default=1000000)
- rxid … default arbitration ID for RX (default=0x123)
- txid … default arbitration ID for TX (default=0x321)
-b, --buspal <spi[,speed,polarity,phase,lsb|msb] | i2c[,address,speed>#

Buspal settings

-x, --plugin <identifier=PLUGIN_IDENTIFIER[,param1=value1,param2=value2>#

Plugin interface settings.

Following format of plugin setting is supported:

identifier=<PLUGIN_IDENTIFIER>[,<key1>=<value1>,<key2>=<value2>,…]
- <PLUGIN_IDENTIFIER>: Corresponds to the ‘identifier’ attribute of the plugin class
- <key1>=<value1>: Represent a single interface parameter
Optional interface settings:
- Any number of optional <key>=<value> scan settings separated by comma can be defined
- The <key>=<value> pairs are used as keyword parameters for ‘scan’ method of a plugin class
--timeout <ms>#

Sets timeout when waiting on data over a serial line. The default is 5000 milliseconds.

-o, --output <output>#

Write a ready-to-merge CMPA config snippet with the erase token to this file.

--force#

Force overwriting of existing files.

write#

Write PFR/IFR page to the device.

Usage

pfr write [OPTIONS]

Options

-p, --port <COM[,speed>#

Serial port configuration. Default baud rate is 57600. Use ‘nxpdevscan’ utility to list devices on serial port.

-u, --usb <VID:PID|USB_PATH|DEV_NAME>#

USB device identifier. | Following formats are supported: <vid>, <vid:pid> or <vid,pid>, device/instance path, device name. | <vid>: hex or dec string; e.g. 0x0AB12, 43794. | <vid/pid>: hex or dec string; e.g. 0x0AB12:0x123, 1:3451. | Use ‘nxpdevscan’ utility to list connected device names.

This option can be omitted if ‘–family’ option is used.
-sd, --sdio <SDIO_PATH|DEV_NAME>#

SDIO device identifier.

Following formats are supported: device/instance path, device name.
device/instance path: device string; e.g. /dev/mcu-sdio.
Use ‘nxpdevscan’ utility to list connected device names.
-l, --lpcusbsio <usb,VID:PID|USB_PATH|SER_NUM,]spi|i2c>#

USB-SIO bridge interface.

Optional USB device filtering formats: [usb,vid:pid|usb_path|serial_number] | usb,vid:pid - Filter by USB Vendor ID and Product ID (hexadecimal) | Example: usb,0x1fc9:0x0090 | usb,usb_path - Filter by USB device path | Example: usb,1-1.3.2 | usb,serial_number - Filter by USB device serial number | Example: usb,ABCD1234

Following serial interfaces are supported:

spi[index][,port,pin,speed_kHz,polarity,phase]
- index … optional index of SPI peripheral. Example: “spi1” (default=0)
- port … bridge GPIO port used as SPI SSEL(default=0)
- pin … bridge GPIO pin used as SPI SSEL
default SSEL is set to 0.15 which works
for the LPCLink2 bridge. The MCULink OB
bridge ignores the SSEL value anyway.(default=15)
- speed_kHz … SPI clock in kHz (default 1000)
- polarity … SPI CPOL option (default=1)
- phase … SPI CPHA option (default=1)
- nirq_port … nIRQ port number (default None)
- nirq_pin … nIRQ pin number (default None)
i2c[index][,address,speed_kHz]
- index … optional index of I2C peripheral. Example: “i2c1” (default=0)
- address … I2C device address (default 0x10)
- speed_kHz … I2C clock in kHz (default 100)
- nirq_port … nIRQ port number (default None)
- nirq_pin … nIRQ pin number (default None)
Following types of interface configuration formats are supported:
- string with coma separated arguments i.e. spi1,0,15,1000,1
- string with coma separated keyword arguments (the order may not be maintained) i.e.spi1,port=0,speed_kHz=1000,nirq_port=1,nirq_pin=7
- string with combination of coma separated arguments and keyword arguments i.e.spi1,0,15,nirq_port=1,nirq_pin=7
Complete examples with USB filtering:
- usb,0x1fc9:0x0090,spi - SPI interface filtered by USB VID:PID
- usb,1-1.1,i2c,0x10,100 - I2C interface filtered by USB path
- usb,ABCD1234,spi1,0,15,1000 - SPI1 interface filtered by USB serial number
- spi - SPI interface without USB filtering (auto-detect first device)
-cb, --can <interface[,channel,bitrate,rxid,txid>#

CAN Bus settings

interface[,channel,bitrate,rxid,txid]
- interface … CAN interface name (refer to python-can library)
- channel … CAN channel number
- bitrate … CAN bitrate (default=1000000)
- rxid … default arbitration ID for RX (default=0x123)
- txid … default arbitration ID for TX (default=0x321)
-b, --buspal <spi[,speed,polarity,phase,lsb|msb] | i2c[,address,speed>#

Buspal settings

-x, --plugin <identifier=PLUGIN_IDENTIFIER[,param1=value1,param2=value2>#

Plugin interface settings.

Following format of plugin setting is supported:

identifier=<PLUGIN_IDENTIFIER>[,<key1>=<value1>,<key2>=<value2>,…]
- <PLUGIN_IDENTIFIER>: Corresponds to the ‘identifier’ attribute of the plugin class
- <key1>=<value1>: Represent a single interface parameter
Optional interface settings:
- Any number of optional <key>=<value> scan settings separated by comma can be defined
- The <key>=<value> pairs are used as keyword parameters for ‘scan’ method of a plugin class
--timeout <ms>#

Sets timeout when waiting on data over a serial line. The default is 5000 milliseconds.

-f, --family <family>#

[required] Select the chip family.

Options:

k32w148 | kw43b43zc2 | kw43b43zc3 | kw43b43zc6 | kw43b43zc7 | kw43l43z92 | kw43l43z93 | kw43l43z96 | kw43l43z97 | kw45b41z5 | kw45b41z8 | kw45z41052 | kw45z41053 | kw45z41082 | kw45z41083 | kw47b42z83 | kw47b42z96 | kw47b42z97 | kw47b42zb2 | kw47b42zb3 | kw47b42zb6 | kw47b42zb7 | kw47z42082 | kw47z42092 | kw47z420b2 | kw47z420b3 | lpc5502 | lpc5504 | lpc5506 | lpc5512 | lpc5514 | lpc5516 | lpc5526 | 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 | mcxa173 | mcxa174 | mcxa175 | mcxa176 | mcxa185 | mcxa186 | mcxa255 | mcxa256 | mcxa265 | mcxa266 | mcxa286 | mcxa287 | mcxa343 | mcxa344 | mcxa345 | mcxa346 | mcxa355 | mcxa356 | mcxa365 | mcxa366 | mcxa456 | mcxa457 | mcxa536 | mcxa537 | mcxa556 | mcxa557 | mcxa566 | mcxa567 | mcxa577 | mcxc151 | mcxc161 | mcxc162 | mcxl142 | mcxl143 | mcxl144 | mcxl253 | mcxl254 | mcxl255 | mcxn235 | mcxn236 | mcxn246 | mcxn246t | mcxn247 | mcxn247t | mcxn526 | mcxn527 | mcxn527t | mcxn536 | mcxn536t | mcxn537 | mcxn537t | mcxn546 | mcxn546t | mcxn547 | mcxn547t | mcxn556s | mcxn556t | mcxn557s | mcxn557t | mcxn946 | mcxn946t | mcxn947 | mcxn947t | mcxw235 | mcxw236 | mcxw706a | mcxw706c | mcxw706d | mcxw70ac | mcxw70ad | mcxw716a | mcxw716c | mcxw727a | mcxw727c | mcxw727d | mwct2012 | mwct2012a | mwct20d2 | mwct20d2a | nhs52s04 | sc668342 | sc668343

-r, --revision <revision>#

Chip revision; if not specified, most recent one will be used

-t, --type <area>#

Required Select PFR/IFR partition

Options:

cfpa | cmactable | cmpa | cmpa_cfg | cmpa_lc | cmpa_pswd | ifr | romcfg | update | update_cfpa | update_cfpa_cmpa

-bin, --binary <binary>#

Path to the BIN file with PFR data to write.

-c, --config <config>#

Path to the YAML/JSON configuration file.

-oc, --override-config <key_path=value>#

Allows override the individual configuration settings. The use is simple: ‘key_path=value’, like ‘family=mimxrt595s’ or in structural configuration with separating character ‘/’ like ‘containers/0/binary_container=my_container.bin’. It could be used multiple times.

-a, --add-seal#

Add seal mark digest at the end.