MCUXpresso SDK API Reference Manual
Rev. 0
NXP Semiconductors
|
The MCUXpresso SDK provides a peripheral driver for the Physical Unclonable Function (PUF) module of MCUXpresso SDK devices. The PUF controller provides a secure key storage without injecting or provisioning device unique PUF root key.
Blocking synchronous APIs are provided for generating the activation code, intrinsic key generation, storing and reconstructing keys using PUF hardware. The PUF operations are complete (and results are made availabe for further usage) when a function returns. When called, these functions do not return until an PUF operation is complete. These functions use main CPU for simple polling loops to determine operation complete or error status. The driver functions are not re-entrant. These functions provide typical interface to upper layer or application software.
PUF Driver is initialized by calling the PUF_Init() function, it resets the PUF module, enables it's clock and enables power to PUF SRAM. PUF Driver is deinitialized by calling the PUF_Deinit() function, it disables PUF module clock, asserts peripheral reset and disables power to PUF SRAM.
PUF operations provided by this driver are not re-entrant. Thus, application software shall ensure the PUF module operation is not requested from different tasks or interrupt service routines while an operation is in progress.
All APIs can be used from interrupt handler although execution time shall be considered (interrupt latency of equal and lower priority interrupts increases).
Refer to the driver examples codes located at <SDK_ROOT>/boards/<BOARD>/driver_examples/puf
Macros | |
#define | PUF_GET_KEY_CODE_SIZE_FOR_KEY_SIZE(x) ((160u + (((((x) << 3) + 255u) >> 8) << 8)) >> 3) |
Get Key Code size in bytes from key size in bytes at compile time. More... | |
Enumerations | |
enum | puf_key_slot_t { kPUF_KeySlot0 = 0U, kPUF_KeySlot1 = 1U } |
PUF key slot. More... | |
enum | |
PUF status return codes. More... | |
Driver version | |
#define | FSL_PUF_DRIVER_VERSION (MAKE_VERSION(2, 1, 3)) |
PUF driver version. More... | |
#define FSL_PUF_DRIVER_VERSION (MAKE_VERSION(2, 1, 3)) |
Version 2.1.3.
Current version: 2.1.3
Change log:
#define PUF_GET_KEY_CODE_SIZE_FOR_KEY_SIZE | ( | x | ) | ((160u + (((((x) << 3) + 255u) >> 8) << 8)) >> 3) |
enum puf_key_slot_t |
anonymous enum |