Introduction#

Secure Provisioning SDK (SPSDK) is a unified, reliable, and easy to use Python SDK library working across the NXP MCU portfolio providing a strong foundation from quick customer prototyping up to production deployment.

The library allows the user to connect and communicate with the device, configure the device, prepare, download, and upload data including security operations.

It is delivered in a form of:

  • Applications - applications which could be called from command-line using Python virtual environment,

  • APIs - functions in form of Python library.

_images/spsdk-architecture.png

Delivery#

SPSDK is delivered to:

Rblhost#

If you are interested in using the blhost tool, consider rblhost as a faster alternative. Implemented in Rust, rblhost offers similar functionality for interacting with MCU bootloader.

For more information and usage examples, visit the rblhost tool on GitHub or Crates.

Organization#

SPSDK is organized into modules:

List of SPSDK modules#

Module name

Description

apps

SPSDK applications package.

crypto

SPSDK cryptographic operations module.

dat

SPSDK Debug Authentication Tool support module.

debuggers

SPSDK debugger interface wrappers.

dice

SPSDK DICE (Device Identifier Composition Engine) operations.

dk6

SPSDK DK6 device programming support.

el2go

SPSDK EdgeLock 2GO Trust Provisioning package.

ele

SPSDK EdgeLock Enclave support module.

fuses

SPSDK Fuses support utilities.

image

SPSDK image processing and generation utilities.

lpcprog

SPSDK LPC programming package.

mboot

SPSDK MCU Bootloader communication module.

memcfg

SPSDK Memory Configuration utilities.

pfr

SPSDK Protected Flash Region (PFR) management utilities.

sbfile

SPSDK SBFile format implementation.

sdp

SPSDK SDP (Serial Download Protocol) communication module.

she

SPSDK SHE (Secure Hardware Extension) support module.

uboot

SPSDK U-Boot device support utilities.

utils

SPSDK utilities package initialization module.

wpc

SPSDK WPC (Wireless Power Consortium) operations support.

Supported OS#

  • Windows 10 and 11, 64bit

  • Ubuntu 22.04.1 LTS

  • Mac OS Sonoma 14

Supported Environment#

SPSDK is tested on Python 3.10+ interpreter, old version 2.x is not supported.

Versioning#

In a given version spsdk x.y.z

  • x major version (SemVer)

  • y minor version

  • z patch version

CLI/API stability notice#

  • Minor release may break compatibility!!!

  • Patch release will not break backward compatibility (any occurrence is treated as a bug)

New features might be implemented in both patch and minor releases.

Disclaimer#

All products, including those with advanced security features, may be subject to unidentified vulnerabilities. Customers are responsible for the design and operation of their applications and products to reduce the effect of these vulnerabilities on the customer’s applications and products. NXP accepts no liability for any security vulnerability. Customers are responsible for the design and operation of their applications and products and are responsible to implement appropriate design and operating safeguards to minimize the risk of potential security vulnerabilities associated with their applications and products.