![]() |
xilskey
Vitis Drivers API Documentation
|
This file contains the APIs for registering PUF, eFUSE programming and reading the PUF helper data, CHASH and Auxiliary data.
MODIFICATION HISTORY:
Ver Who Date Changes
6.1 vns 10/17/16 First release. vns 11/07/16 Fixed shutter value to 0x0100005e, as sysosc selection is fixed for PUF registration. 6.2 vns 02/18/17 Added masking for PUF auxiliary read. 6.6 vns 06/06/18 Added doxygen tags 6.7 arc 01/05/19 Fixed MISRA-C violations. arc 03/15/19 Modified initial default status value as XST_FAILURE mmd 03/17/19 Handled buffer underflow issue and added timeouts during syndrome data reading rama 03/25/19 Added polling routine for PUF ready state 6.8 psl 06/07/19 Added doxygen tags. psl 06/25/19 Fixed Coverity warnings. psl 06/28/19 Added doxygen tags. psl 07/05/19 Added Asserts for validation. psl 07/23/19 Fixed input validation. psl 07/29/19 Fixed MISRA-C violation vns 08/29/19 Initialized Status variables 6.9 kpt 02/16/20 Fixed Coverity warnings kpt 02/27/20 Removed XilSKey_Puf_Debug2 which is used only for debug purpose vns 03/18/20 Fixed Armcc compilation errors kal 03/18/20 Added Temp and Voltage checks before writing Puf Helper data, Puf Chash and Puf Aux. kpt 03/17/20 Replaced direct eFuse reads with cache reads and Error code is returned when user chooses read option as eFuse kal 04/09/20 Added Temp and Voltage checks before unlocking the controller. kal 05/14/20 Added Cache Reload in XilSKey_Write_Puf_EfusePs_SecureBits to reflect programmed bit when read from puf example. 7.0 am 10/04/20 Resolved MISRA C violations 7.2 am 07/13/21 Fixed doxygen warnings 7.4 kal 02/16/23 Increased usleep value to 6ms in Puf regeneration function nf 03/13/23 Fixed shifting of Puf auxiliary data in puf status register 7.6 har 04/02/24 Added description for XILSKEY_PUF_KEK_REGEN_RDY_TIMEOUT macro
Macros | |
| #define | XILSKEY_PUF_STATUS_SYN_WRD_RDY_TIMEOUT (500000U) |
| Status of PUF word syndrome ready timeout. More... | |
| #define | XILSKEY_PUF_KEK_REGEN_RDY_TIMEOUT (6000U) |
| Delay added to wait for key_rdy bit to be set during PUF regeneration. More... | |
Enumerations | |
| enum | XilsKey_PufRegistrationState { XSK_EFUSEPS_PUF_REGISTRATION_STARTED, XSK_EFUSEPS_PUF_REGISTRATION_COMPLETE } |
Functions | |
| u32 | XilSKey_ZynqMp_EfusePs_WritePufHelprData (const XilSKey_Puf *InstancePtr) |
| This function programs the PS eFUSEs with the PUF helper data. More... | |
| u32 | XilSKey_ZynqMp_EfusePs_ReadPufHelprData (u32 *Address) |
| This function reads the PUF helper data from eFUSE. More... | |
| u32 | XilSKey_ZynqMp_EfusePs_WritePufChash (const XilSKey_Puf *InstancePtr) |
| This function programs eFUSE with CHash value. More... | |
| u32 | XilSKey_ZynqMp_EfusePs_ReadPufChash (u32 *Address, u8 ReadOption) |
| This function reads eFUSE PUF CHash data from the eFUSE array or cache based on the user read option. More... | |
| u32 | XilSKey_ZynqMp_EfusePs_WritePufAux (const XilSKey_Puf *InstancePtr) |
| This function programs eFUSE PUF auxiliary data. More... | |
| u32 | XilSKey_ZynqMp_EfusePs_ReadPufAux (u32 *Address, u8 ReadOption) |
| This function reads eFUSE PUF auxiliary data from eFUSE array or cache based on user read option. More... | |
| u32 | XilSKey_Puf_Registration (XilSKey_Puf *InstancePtr) |
| This function performs registration of PUF which generates a new KEK and associated CHash, Auxiliary and PUF-syndrome data which are unique for each silicon. More... | |
| u32 | XilSKey_Puf_Regeneration (const XilSKey_Puf *InstancePtr) |
| This function regenerates the PUF data so that the PUF's output can be used as the key source to the AES-GCM hardware cryptographic engine. More... | |
| u32 | XilSKey_Write_Puf_EfusePs_SecureBits (const XilSKey_Puf_Secure *WriteSecureBits) |
| This function programs the eFUSE PUF secure bits. More... | |
| u32 | XilSKey_Read_Puf_EfusePs_SecureBits (XilSKey_Puf_Secure *SecureBitsRead, u8 ReadOption) |
| This function is used to read the PS eFUSE PUF secure bits from cache or from eFUSE array. More... | |
| #define XILSKEY_PUF_KEK_REGEN_RDY_TIMEOUT (6000U) |
Delay added to wait for key_rdy bit to be set during PUF regeneration.
Referenced by XilSKey_Puf_Regeneration().
| #define XILSKEY_PUF_STATUS_SYN_WRD_RDY_TIMEOUT (500000U) |
Status of PUF word syndrome ready timeout.