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:

Organization

SPSDK is organized into modules:

List of SPSDK modules

Module name

Description

apps

This module contains various applications delivered with SPSDK.

crypto

Module for crypto operations (certificate and key management).

dat

This module contains support for Debug Authentication Tool.

debuggers

Wrappers for various types of debuggers.

image

Module implementing functionality of srktool, dcdgen, mkimage and other similar tools.

mboot

Module implementing communication with the MCU Bootloader.

pfr

Module for working with Protected Flash Region.

sbfile

Module implementing SBFile.

sdp

Module implementing the SDP communication protocol.

shadowregs

This module contains support for Shadow Registers Tool.

tp

Trust provisioning.

utils

Module containing various functions/modules used throughout the SPSDK.

Supported Devices

Supported OS

  • Windows 10, 64-bit

  • Ubuntu 18.04 or above, 64-bit

  • Mac OS 10.15 or above, x64, ARM64

Supported Environment

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

Versioning

In a given version spsdk x.y.z

  • x major version (currently locked to 1; think 0 in classic SemVer)

  • y minor version

  • z patch version

CLI/API stability notice

SPSDK is still in alpha (as noted in PyPI) and should be treated as such

  • Major releases are not planed in the foreseeable future

  • Minor release may break compatibility!!!

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

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