xilskey
Vitis Drivers API Documentation
xilskey_puf_registration.h File Reference

Overview

This file contains header interface related information for PUF device and macros used in the driver.

Note
          User configurable parameters for PUF

    #define XSK_PUF_INFO_ON_UART                    FALSE
    TRUE will display syndrome data on the UART com port
    FALSE will display any data on UART com port.

    #define XSK_PUF_PROGRAM_EFUSE                   FALSE
    TRUE will program the generated syndrome data, CHash ,Auxiliary values,
    and the Black key.
    FALSE will not program data into eFUSE.

    #define XSK_PUF_IF_CONTRACT_MANUFACTURER        FALSE
    This should be enabled when application is hand over to contract
    manufacturer.
    TRUE will allow only authenticated application.
    FALSE authentication is not mandatory.

    #define XSK_PUF_REG_MODE                        XSK_PUF_MODE4K
    PUF registration is performed in 4K mode. Only 4K mode is supported and
    user should not modify this value.

    #define XSK_PUF_READ_SECUREBITS                 FALSE
    TRUE will read the status of the PUF secure bits from eFUSEs and will be
    displayed on UART.
    FALSE will not read the secure bits.

    #define XSK_PUF_PROGRAM_SECUREBITS              FALSE
    TRUE will program PUF secure bits based on the user input provided
    at XSK_PUF_SYN_INVALID, XSK_PUF_SYN_WRLK and XSK_PUF_REGISTER_DISABLE
    FALSE will not program any PUF secure bits.

    #define XSK_PUF_SYN_INVALID                     FALSE
    TRUE will permanently invalidates the already programmed syndrome data.
    FALSE will not modify anything

    #define XSK_PUF_SYN_WRLK                        FALSE
    TRUE will permanently disable programming syndrome data into eFUSEs.
    FALSE will not modify anything.

    #define XSK_PUF_REGISTER_DISABLE                FALSE
    TRUE will permanently disable PUF syndrome data registration.
    FALSE will not modify anything.

    #define XSK_PUF_RESERVED                                FALSE
    TRUE programs this reserved eFUSE bit.
    FALSE will not modify anything.

    #define         XSK_PUF_AES_KEY
    "0000000000000000000000000000000000000000000000000000000000000000"
    The value will be converted to hex buffer and encrypts
    this with PUF in order to generate black key ,the black key will get
    written to the PS eFUSE array when XSK_PUF_PROGRAM_EFUSE macro is set
    to TRUE.
    This value should be given in string format. It should be 64 characters
    long, valid characters are 0-9,a-f,A-F. Any other character is
    considered as invalid  and will not burn Black key.
    Note: Provided here should be red key and application calculates the
    black key and programs into eFUSE if XSK_PUF_PROGRAM_EFUSE macro is
    TRUE.
    To avoid programming eFUSE results can be displayed on UART com port
    by making XSK_PUF_INFO_ON_UART to TRUE.

    #define         XSK_PUF_BLACK_KEY_IV    "000000000000000000000000"
    The value mentioned here will be converted to hex buffer.
    This is Initialization vector(IV) used with the AES-GCM cryptographic
    hardware in order to generate encrypted red key, which is black key.
    This value should be given in string format. It should be 24 characters
    long, valid characters are 0-9,a-f,A-F. Any other character is
    considered as invalid string.
 MODIFICATION HISTORY:
 Ver   Who  Date        Changes


6.1 rp 17/10/16 First release. 6.2 vns 03/10/17 Added support for programming and reading one reserved bit 6.3 vns 10/05/18 Corrected the following macro XSK_PUF_IV to XSK_PUF_BLACK_KEY_IV and XSK_PUF_IF_CONTRACT_MANUFATURER to XSK_PUF_IF_CONTRACT_MANUFACTURER 6.8 psl 06/07/19 Added doxygen tags 7.5 ng 07/13/23 added SDT support

Macros

#define XSK_PUF_REG_MODE   XSK_PUF_MODE4K
 Registration Mode XPUF_MODE4K. More...
 
#define XPUF_INFO_ON_UART
 If defined, sends information on UART. More...
 
#define XPUF_FUSE_SYN_DATA
 If defined, writes syndrome data, black key, Aux and Chash values into eFUSE. More...
 
#define XPUF_CONTRACT_MANUFACTURER
 If defined, additional checks will be made to verify that app is authenticated before running. More...
 

Macro Definition Documentation

#define XPUF_CONTRACT_MANUFACTURER

If defined, additional checks will be made to verify that app is authenticated before running.

#define XPUF_FUSE_SYN_DATA

If defined, writes syndrome data, black key, Aux and Chash values into eFUSE.

#define XPUF_INFO_ON_UART

If defined, sends information on UART.

#define XSK_PUF_REG_MODE   XSK_PUF_MODE4K

Registration Mode XPUF_MODE4K.

Referenced by main().