xilnvm
Vitis Drivers API Documentation
XilNvm eFUSE Client APIs

Macros

#define XNVM_SLR_INDEX_SHIFT   (6U)
 < Slr index shift constant More...
 
#define XNVM_SLR_INDEX_0   (0U)
 SLR Index 0. More...
 
#define XNVM_SLR_INDEX_1   (1U)
 SLR Index 1. More...
 
#define XNVM_SLR_INDEX_2   (2U)
 SLR Index 2. More...
 
#define XNVM_SLR_INDEX_3   (3U)
 SLR Index 3. More...
 
#define XNVM_WORD_LEN   (4U)
 Word length. More...
 

Functions

int XNvm_EfuseWrite (const XNvm_ClientInstance *InstancePtr, const u64 DataAddr)
 This function sends IPI request to program eFuses with user provided data. More...
 
int XNvm_EfuseWriteIVs (const XNvm_ClientInstance *InstancePtr, const u64 IvAddr, const u32 EnvDisFlag)
 This function sends IPI request to program IV eFuses with user provided data. More...
 
int XNvm_EfuseRevokePpk (const XNvm_ClientInstance *InstancePtr, const XNvm_PpkType PpkRevoke, const u32 EnvDisFlag)
 This function sends IPI request to program PPK_INVLD eFuse requested by the user. More...
 
int XNvm_EfuseWriteRevocationId (const XNvm_ClientInstance *InstancePtr, const u32 RevokeId, const u32 EnvDisFlag)
 This function sends IPI request to program revoke id eFuses requested by the user. More...
 
int XNvm_EfuseWriteUserFuses (const XNvm_ClientInstance *InstancePtr, const u64 UserFuseAddr, const u32 EnvDisFlag)
 This function sends IPI request to program User eFuses requested by the user. More...
 
int XNvm_EfuseReadIv (const XNvm_ClientInstance *InstancePtr, const u64 IvAddr, const XNvm_IvType IvType)
 This function sends IPI request to read IV eFuses requested by the user. More...
 
int XNvm_EfuseReadRevocationId (const XNvm_ClientInstance *InstancePtr, const u64 RevokeIdAddr, const XNvm_RevocationId RevokeIdNum)
 This function sends IPI request to read Revocation ID eFuses requested by the user. More...
 
int XNvm_EfuseReadUserFuses (const XNvm_ClientInstance *InstancePtr, const u64 UserFuseAddr)
 This function sends IPI request to read User eFuses requested by the user. More...
 
int XNvm_EfuseReadMiscCtrlBits (const XNvm_ClientInstance *InstancePtr, const u64 MiscCtrlBits)
 This function sends IPI request to read MiscCtrlBits requested by the user. More...
 
int XNvm_EfuseReadSecCtrlBits (const XNvm_ClientInstance *InstancePtr, const u64 SecCtrlBits)
 This function sends IPI request to read SecCtrlBits requested by the user. More...
 
int XNvm_EfuseReadSecMisc1Bits (const XNvm_ClientInstance *InstancePtr, const u64 SecMisc1Bits)
 This function sends IPI request to read SecMisc1Bits requested by the user. More...
 
int XNvm_EfuseReadBootEnvCtrlBits (const XNvm_ClientInstance *InstancePtr, const u64 BootEnvCtrlBits)
 This function sends IPI request to read BootEnvCtrlBits requested by the user. More...
 
int XNvm_EfuseReadPufSecCtrlBits (const XNvm_ClientInstance *InstancePtr, const u64 PufSecCtrlBits)
 This function sends IPI request to read PufSecCtrlBits requested by the user. More...
 
int XNvm_EfuseReadOffchipRevokeId (const XNvm_ClientInstance *InstancePtr, const u64 OffChidIdAddr, const XNvm_OffchipId OffChipIdNum)
 This function sends IPI request to read OffChip ID eFuses requested by the user. More...
 
int XNvm_EfuseReadPpkHash (const XNvm_ClientInstance *InstancePtr, const u64 PpkHashAddr, const XNvm_PpkType PpkHashType)
 This function sends IPI request to read PpkHash requested by the user. More...
 
int XNvm_EfuseReadDecOnly (const XNvm_ClientInstance *InstancePtr, const u64 DecOnlyAddr)
 This function sends IPI request to read DecEfuseOnly eFuses requested by the user. More...
 
int XNvm_EfuseReadDna (const XNvm_ClientInstance *InstancePtr, const u64 DnaAddr)
 This function sends IPI request to read DNA eFuses requested by the user. More...
 
int XNvm_EfuseWritePuf (const XNvm_ClientInstance *InstancePtr, const u64 PufHdAddr)
 This function sends IPI request to program Puf helper data requested by the user. More...
 
int XNvm_EfuseReadPuf (const XNvm_ClientInstance *InstancePtr, const u64 PufHdAddr)
 This function sends IPI request to read Puf helper data requested by the user. More...
 
int XNvm_EfuseWrite (XNvm_ClientInstance *InstancePtr, const u64 DataAddr)
 This function sends IPI request to program eFuses with user provided data. More...
 
int XNvm_EfuseWriteIVs (XNvm_ClientInstance *InstancePtr, const u64 IvAddr, const u32 EnvDisFlag)
 This function sends IPI request to program IV as requested by the user. More...
 
int XNvm_EfuseWriteDiceUds (XNvm_ClientInstance *InstancePtr, const u64 UdsAddr, const u32 EnvDisFlag)
 This function sends IPI request to program DICE UDS. More...
 
int XNvm_WriteDmePrivateKey (XNvm_ClientInstance *InstancePtr, u32 DmeKeyType, const u64 DmeKeyAddr, const u32 EnvDisFlag)
 This function sends IPI request to program encrypted DME private key. More...
 
int XNvm_EfuseWriteDmeMode (XNvm_ClientInstance *InstancePtr, u32 DmeMode, const u32 EnvDisFlag)
 This function sends IPI request to program DME mode requested by the user. More...
 
int XNvm_EfuseWriteSecCtrlBits (XNvm_ClientInstance *InstancePtr, u32 SecCtrlBits, const u32 EnvDisFlag)
 This function sends IPI request to program Secure Control Bits requested by the user. More...
 
int XNvm_EfuseWritePufCtrlBits (XNvm_ClientInstance *InstancePtr, u32 PufCtrlBits, const u32 EnvDisFlag)
 This function sends IPI request to program Puf Control Bits requested by the user. More...
 
int XNvm_EfuseWriteMiscCtrlBits (XNvm_ClientInstance *InstancePtr, u32 MiscCtrlBits, const u32 EnvDisFlag)
 This function sends IPI request to program Misc Control Bits requested by the user. More...
 
int XNvm_EfuseWriteBootModeDis (XNvm_ClientInstance *InstancePtr, u32 BootModeDisBits, const u32 EnvDisFlag)
 This function sends IPI request to program BootMode disable efuse bits requested by the user. More...
 
int XNvm_EfuseWriteSecMisc1Bits (XNvm_ClientInstance *InstancePtr, u32 SecMisc1Bits, const u32 EnvDisFlag)
 This function sends IPI request to program Sec Misc 1 Bits requested by the user. More...
 
int XNvm_EfuseWriteBootEnvCtrlBits (XNvm_ClientInstance *InstancePtr, u32 BootEnvCtrlBits, const u32 EnvDisFlag)
 This function sends IPI request to program Boot Env Ctrl Bits requested by the user. More...
 
int XNvm_EfuseWriteRomRsvdBits (XNvm_ClientInstance *InstancePtr, u32 RomRsvdBits, const u32 EnvDisFlag)
 This function sends IPI request to program ROM Rsvd Bits requested by the user. More...
 
int XNvm_EfuseWriteGlitchConfigBits (XNvm_ClientInstance *InstancePtr, u32 GlitchCfgBits, const u32 EnvDisFlag)
 This function sends IPI request to program Glitch Cfg Bits requested by the user. More...
 
int XNvm_EfuseWritePlmUpdate (XNvm_ClientInstance *InstancePtr, const u32 EnvDisFlag)
 This function sends IPI request to program PLM update bit. More...
 
int XNvm_EfuseWriteDecOnly (XNvm_ClientInstance *InstancePtr, const u32 EnvDisFlag)
 This function sends IPI request to program Dec Only eFuses. More...
 
int XNvm_EfuseWriteFipsInfo (XNvm_ClientInstance *InstancePtr, const u16 FipsMode, const u16 FipsVersion, const u32 EnvDisFlag)
 This function sends IPI request to program FIPS info eFuses. More...
 
int XNvm_EfuseWriteRevocationId (XNvm_ClientInstance *InstancePtr, const u32 RevokeIdNum, const u32 EnvDisFlag)
 This function sends IPI request to program Revocation Id eFuses. More...
 
int XNvm_EfuseWriteOffChipRevocationId (XNvm_ClientInstance *InstancePtr, const u32 OffChipRevokeIdNum, const u32 EnvDisFlag)
 This function sends IPI request to program off chip Revocation Id eFuses. More...
 
int XNvm_EfuseWritePuf (XNvm_ClientInstance *InstancePtr, const u64 PufHdAddr)
 This function sends IPI request to program Puf helper data requested by the user. More...
 
int XNvm_EfuseReadPuf (XNvm_ClientInstance *InstancePtr, u64 PufHdAddr)
 This function sends IPI request to read Puf data from the eFUSE cache. More...
 
int XNvm_EfuseReadIv (XNvm_ClientInstance *InstancePtr, const u64 IvAddr, const XNvm_IvType IvType)
 This function sends IPI request to read IV eFuses requested by the user. More...
 
int XNvm_EfuseReadRevocationId (XNvm_ClientInstance *InstancePtr, const u64 RevokeIdAddr, const XNvm_RevocationId RevokeIdNum)
 This function sends IPI request to read Revocation ID eFuses requested by the user. More...
 
int XNvm_EfuseReadUserFuses (XNvm_ClientInstance *InstancePtr, u64 UserFuseAddr)
 This function sends IPI request to read User eFuses requested by the user. More...
 
int XNvm_EfuseReadMiscCtrlBits (XNvm_ClientInstance *InstancePtr, const u64 MiscCtrlBits)
 This function sends IPI request to read MiscCtrlBits requested by the user. More...
 
int XNvm_EfuseReadSecCtrlBits (XNvm_ClientInstance *InstancePtr, const u64 SecCtrlBits)
 This function sends IPI request to read SecCtrlBits requested by the user. More...
 
int XNvm_EfuseReadSecMisc1Bits (XNvm_ClientInstance *InstancePtr, const u64 SecMisc1Bits)
 This function sends IPI request to read SecMisc1Bits requested by the user. More...
 
int XNvm_EfuseReadBootEnvCtrlBits (XNvm_ClientInstance *InstancePtr, const u64 BootEnvCtrlBits)
 This function sends IPI request to read BootEnvCtrlBits requested by the user. More...
 
int XNvm_EfuseReadPufSecCtrlBits (XNvm_ClientInstance *InstancePtr, const u64 PufSecCtrlBits)
 This function sends IPI request to read PufSecCtrlBits requested by the user. More...
 
int XNvm_EfuseReadOffchipRevokeId (XNvm_ClientInstance *InstancePtr, const u64 OffChipIdAddr, const XNvm_OffchipId OffChipIdNum)
 This function sends IPI request to read OffChip ID eFuses requested by the user. More...
 
int XNvm_EfuseReadPpkHash (XNvm_ClientInstance *InstancePtr, const u64 PpkHashAddr, const XNvm_PpkType PpkHashType)
 This function sends IPI request to read PpkHash requested by the user. More...
 
int XNvm_EfuseReadDecOnly (XNvm_ClientInstance *InstancePtr, const u64 DecOnlyAddr)
 This function sends IPI request to read DecEfuseOnly eFuses requested by the user. More...
 
int XNvm_EfuseReadDna (XNvm_ClientInstance *InstancePtr, const u64 DnaAddr)
 This function sends IPI request to read DNA eFuses requested by the user. More...
 
int XNvm_EfuseReadBootModeDis (XNvm_ClientInstance *InstancePtr, const u64 BootModeDisAddr)
 This function sends IPI request to read BootModeDisable eFuses requested by the user. More...
 
int XNvm_EfuseReadRomRsvdBits (XNvm_ClientInstance *InstancePtr, const u64 RomRsvdBits)
 This function sends IPI request to read RomRsvdBits requested by the user. More...
 
int XNvm_EfuseReadDmeMode (XNvm_ClientInstance *InstancePtr, const u64 DmeModeAddr)
 This function sends IPI request to read DME Mode eFuses requested by the user. More...
 
int XNvm_EfuseReadFipsInfoBits (XNvm_ClientInstance *InstancePtr, const u64 FipsInfoBits)
 This function sends IPI request to read FIPS info bits requested by the user. More...
 

Macro Definition Documentation

#define XNVM_SLR_INDEX_0   (0U)

SLR Index 0.

#define XNVM_SLR_INDEX_1   (1U)

SLR Index 1.

#define XNVM_SLR_INDEX_2   (2U)

SLR Index 2.

#define XNVM_SLR_INDEX_3   (3U)

SLR Index 3.

#define XNVM_SLR_INDEX_SHIFT   (6U)

< Slr index shift constant

SlrIndexs constants

Function Documentation

int XNvm_EfuseReadBootEnvCtrlBits ( const XNvm_ClientInstance *  InstancePtr,
const u64  BootEnvCtrlBits 
)

This function sends IPI request to read BootEnvCtrlBits requested by the user.

Parameters
InstancePtrPointer to the client instance
BootEnvCtrlBitsAddress of the output buffer to store the BootEnvCtrlBits eFuses data
Returns
  • XST_SUCCESS If the read is successful
  • XST_INVALID_PARAM If there is a input validation failure
  • XST_FAILURE If there is a failure

Validate input parameters. Return XST_INVALID_PARAM, if input parameters are invalid.

Send read boot env ctrl CDO to PLM to read Boot Environment control bits from eFuse cache. Return XST_FAILURE if IPI request processing fails in PLM.

References XNVM_API_ID_EFUSE_READ_BOOT_ENV_CTRL_BITS, XNvm_ProcessMailbox(), and XNVM_SLR_INDEX_SHIFT.

int XNvm_EfuseReadBootEnvCtrlBits ( XNvm_ClientInstance *  InstancePtr,
const u64  BootEnvCtrlBits 
)

This function sends IPI request to read BootEnvCtrlBits requested by the user.

Parameters
InstancePtrPointer to the client instance
BootEnvCtrlBitsAddress of the output buffer to store the BootEnvCtrlBits eFuses data
Returns
  • XST_SUCCESS If the read is successful
  • ErrorCode If there is a failure

Validate input parameters. Return XST_INVALID_PARAM, If input parameters are invalid.

Send EfuseReadBootEnvCtrlBits CDO over IPI request to the PLM. Wait for IPI response from PLM with a default timeout of 300 seconds. If the timeout exceeds then return error else return the status of the IPI response

References XNVM_EFUSE_CACHE_BOOT_ENV_CTRL_SYSMON_TEMP_EN_MASK, XNvm_ProcessMailbox(), and XNVM_WORD_LEN.

int XNvm_EfuseReadBootModeDis ( XNvm_ClientInstance *  InstancePtr,
const u64  BootModeDisAddr 
)

This function sends IPI request to read BootModeDisable eFuses requested by the user.

Parameters
InstancePtrPointer to the client instance
BootModeDisAddrAddress of the output buffer to store the BootModeDisable eFuses data
Returns
  • XST_SUCCESS If the read is successful
    • ErrorCode If there is a failure

Validate input parameters. Return XST_INVALID_PARAM, if input parameters are invalid.

Send an IPI request to the PLM by using the XNVM_API_ID_EFUSE_READ_CACHE CDO command. Wait for IPI response from PLM with a default timeout of 300 seconds. If the timeout exceeds then error is returned otherwise it returns the status of the IPI response

References XNvm_ProcessMailbox(), and XNVM_WORD_LEN.

int XNvm_EfuseReadDecOnly ( const XNvm_ClientInstance *  InstancePtr,
const u64  DecOnlyAddr 
)

This function sends IPI request to read DecEfuseOnly eFuses requested by the user.

Parameters
InstancePtrPointer to the client instance
DecOnlyAddrAddress of the output buffer to store the DecEfuseOnly eFuses data
Returns
  • XST_SUCCESS If the read is successful
  • XST_INVALID_PARAM If there is a input validation failure
  • XST_FAILURE If there is a failure

Validate input parameters. Return XST_INVALID_PARAM if input parameters are invalid.

Send read dec_only CDO to PLM to read decrypt eFuse only bits from eFuse cache. Return XST_FAILURE if IPI request processing fails in PLM.

References XNVM_API_ID_EFUSE_READ_DEC_EFUSE_ONLY, XNvm_ProcessMailbox(), and XNVM_SLR_INDEX_SHIFT.

int XNvm_EfuseReadDecOnly ( XNvm_ClientInstance *  InstancePtr,
const u64  DecOnlyAddr 
)

This function sends IPI request to read DecEfuseOnly eFuses requested by the user.

Parameters
InstancePtrPointer to the client instance
DecOnlyAddrAddress of the output buffer to store the DecEfuseOnly eFuses data
Returns
  • XST_SUCCESS If the read is successful
  • ErrorCode If there is a failure

Validate input parameters. Return XST_INVALID_PARAM, if input parameters are invalid.

Send an IPI request to the PLM by using the XNVM_API_ID_EFUSE_READ_CACHE CDO command. Wait for IPI response from PLM with a default timeout of 300 seconds. If the timeout exceeds then error is returned otherwise it returns the status of the IPI response

References XNvm_ProcessMailbox(), and XNVM_WORD_LEN.

int XNvm_EfuseReadDmeMode ( XNvm_ClientInstance *  InstancePtr,
const u64  DmeModeAddr 
)

This function sends IPI request to read DME Mode eFuses requested by the user.

Parameters
InstancePtrPointer to the client instance
DmeModeAddrAddress of the output buffer to store the DecEfuseOnly eFuses data
Returns
  • XST_SUCCESS If the read is successful
    • ErrorCode If there is a failure

Validate input parameters. Return XST_INVALID_PARAM, if input parameters are invalid.

Send an IPI request to the PLM by using the XNVM_API_ID_EFUSE_READ_CACHE CDO command. Wait for IPI response from PLM with a default timeout of 300 seconds. If the timeout exceeds then error is returned otherwise it returns the status of the IPI response

References XNvm_ProcessMailbox(), and XNVM_WORD_LEN.

int XNvm_EfuseReadDna ( const XNvm_ClientInstance *  InstancePtr,
const u64  DnaAddr 
)

This function sends IPI request to read DNA eFuses requested by the user.

Parameters
InstancePtrPointer to the client instance
DnaAddrAddress of the output buffer to store the DNA eFuses data
Returns
  • XST_SUCCESS If the read is successful
  • XST_INVALID_PARAM If there is a input validation failure
  • XST_FAILURE If there is a failure

Validate input parameters. Return XST_INVALID_PARAM if input parameters are invalid.

Send read dna CDO to PLM to read DNA bits from eFuse cache. Return XST_FAILURE if IPI request processing fails in PLM.

References XNVM_API_ID_EFUSE_READ_DNA, XNvm_ProcessMailbox(), and XNVM_SLR_INDEX_SHIFT.

int XNvm_EfuseReadDna ( XNvm_ClientInstance *  InstancePtr,
const u64  DnaAddr 
)

This function sends IPI request to read DNA eFuses requested by the user.

Parameters
InstancePtrPointer to the client instance
DnaAddrAddress of the output buffer to store the DNA eFuses data
Returns
  • XST_SUCCESS If the read is successful
  • ErrorCode If there is a failure

Validate input parameters. Return XST_INVALID_PARAM, if input parameters are invalid.

Send an IPI request to the PLM by using the XNVM_API_ID_EFUSE_READ_CACHE CDO command. Wait for IPI response from PLM with a default timeout of 300 seconds. If the timeout exceeds then error is returned otherwise it returns the status of the IPI response

References XNvm_ProcessMailbox(), and XNVM_WORD_LEN.

int XNvm_EfuseReadFipsInfoBits ( XNvm_ClientInstance *  InstancePtr,
const u64  FipsInfoBits 
)

This function sends IPI request to read FIPS info bits requested by the user.

Parameters
InstancePtrPointer to the client instance
FipsInfoBitsAddress of the output buffer to store the RomRsvdBits eFuses data
Returns
  • XST_SUCCESS If the read is successful
  • ErrorCode If there is a failure

Perform input parameter validation on InstancePtr. Return XST_INVALID_PARAM If input parameters are invalid.

Send an IPI request to the PLM by using the XNVM_API_ID_EFUSE_READ_CACHE CDO command. Wait for IPI response from PLM with a default timeout of 300 seconds. If the timeout exceeds then error is returned otherwise it returns the status of the IPI response

Send an IPI request to the PLM by using the XNVM_API_ID_EFUSE_READ_CACHE CDO command. Wait for IPI response from PLM with a default timeout of 300 seconds. If the timeout exceeds then error is returned otherwise it returns the status of the IPI response

References XNVM_EFUSE_CACHE_DME_FIPS_FIPS_MODE_MASK, XNVM_EFUSE_CACHE_IP_DISABLE_0_FIPS_VERSION_2_1_MASK, XNvm_ProcessMailbox(), and XNVM_WORD_LEN.

int XNvm_EfuseReadIv ( const XNvm_ClientInstance *  InstancePtr,
const u64  IvAddr,
const XNvm_IvType  IvType 
)

This function sends IPI request to read IV eFuses requested by the user.

Parameters
InstancePtrPointer to the client instance
IvAddrAddress of the output buffer to store the IV eFuse data
IvTypeType of the IV to read out
Returns
  • XST_SUCCESS If the read is successful
  • XST_INVALID_PARAM If there is a input validation failure
  • XST_FAILURE If there is a failure

Validate input parameters. Return XST_INVALID_PARAM if input parameters are invalid

Send Read IV CDO to PLM to read user specified IV from eFuse cache. Return XST_FAILURE if IPI request processing fails in PLM.

References XNVM_API_ID_EFUSE_READ_IV, XNvm_ProcessMailbox(), and XNVM_SLR_INDEX_SHIFT.

int XNvm_EfuseReadIv ( XNvm_ClientInstance *  InstancePtr,
const u64  IvAddr,
const XNvm_IvType  IvType 
)

This function sends IPI request to read IV eFuses requested by the user.

Parameters
InstancePtrPointer to the client instance
IvAddrAddress of the output buffer to store the IV eFuse data
IvTypeType of the IV to read out
Returns
  • XST_SUCCESS If the read is successful
  • ErrorCode If there is a failure

Validate input parameters. Return XST_INVALID_PARAM, if input parameters are invalid.

Send XNvm_EfuseReadIv CDO over IPI request to the PLM. Wait for IPI response from PLM with a default timeout of 300 seconds. If the timeout exceed return error else return the status of the IPI response

References XNVM_EFUSE_CACHE_METAHEADER_IV_RANGE_0_OFFSET, XNvm_ProcessMailbox(), and XNVM_WORD_LEN.

int XNvm_EfuseReadMiscCtrlBits ( const XNvm_ClientInstance *  InstancePtr,
const u64  MiscCtrlBits 
)

This function sends IPI request to read MiscCtrlBits requested by the user.

Parameters
InstancePtrPointer to the client instance
MiscCtrlBitsAddress of the output buffer to store the MiscCtrlBits eFuses data
Returns
  • XST_SUCCESS If the read is successful
  • XST_INVALID_PARAM If there is a input validation failure
  • XST_FAILURE If there is a failure

Validate input parameters. Return XST_INVALID_PARAM, if input parameters are invalid.

Send read misc_ctrl CDO to PLM to read miscellaneous control eFuses from eFuse cache. Return XST_FAILURE if IPI request processing fails in PLM.

References XNVM_API_ID_EFUSE_READ_MISC_CTRL_BITS, XNvm_ProcessMailbox(), and XNVM_SLR_INDEX_SHIFT.

int XNvm_EfuseReadMiscCtrlBits ( XNvm_ClientInstance *  InstancePtr,
const u64  MiscCtrlBits 
)

This function sends IPI request to read MiscCtrlBits requested by the user.

Parameters
InstancePtrPointer to the client instance
MiscCtrlBitsAddress of the output buffer to store the MiscCtrlBits eFuses data
Returns
  • XST_SUCCESS If the read is successful
  • ErrorCode If there is a failure

Validate input parameters. Return XST_INVALID_PARAM, If input parameters are invalid.

Send EfuseReadMiscCtrlBits CDO over IPI request to the PLM. Wait for IPI response from PLM with a default timeout of 300 seconds. If the timeout exceeds then return error else return the status of the IPI response.

References XNVM_EFUSE_CACHE_MISC_CTRL_GD_HALT_BOOT_EN_1_0_MASK, XNvm_ProcessMailbox(), and XNVM_WORD_LEN.

int XNvm_EfuseReadOffchipRevokeId ( const XNvm_ClientInstance *  InstancePtr,
const u64  OffChidIdAddr,
const XNvm_OffchipId  OffChipIdNum 
)

This function sends IPI request to read OffChip ID eFuses requested by the user.

Parameters
InstancePtrPointer to the client instance
OffChidIdAddrAddress of the output buffer to store the OffChip ID eFuse data
OffChipIdNumOffChip ID number to be read out
Returns
  • XST_SUCCESS If the read is successful
  • XST_INVALID_PARAM If there is a input validation failure
  • XST_FAILURE If there is a failure

Validate input parameters. Return XST_INVALID_PARAM if input parameters are invalid.

Send read Offchip revoke CDO to PLM to read user specified Offchip revoke registers from eFuse cache. Return XST_FAILURE if IPI request processing fails in PLM.

References XNVM_API_ID_EFUSE_READ_OFFCHIP_REVOCATION_ID, XNvm_ProcessMailbox(), and XNVM_SLR_INDEX_SHIFT.

int XNvm_EfuseReadOffchipRevokeId ( XNvm_ClientInstance *  InstancePtr,
const u64  OffChipIdAddr,
const XNvm_OffchipId  OffChipIdNum 
)

This function sends IPI request to read OffChip ID eFuses requested by the user.

Parameters
InstancePtrPointer to the client instance
OffChipIdAddrAddress of the output buffer to store the OffChip ID eFuse data
OffChipIdNumOffChip ID number to be read out
Returns
  • XST_SUCCESS If the read is successful
  • ErrorCode If there is a failure

Validate input parameters. Return XST_INVALID_PARAM, if input parameters are invalid.

Send EfuseReadOffchipRevokeId CDO over IPI request to the PLM. Wait for IPI response from PLM with a default timeout of 300 seconds. If the timeout exceeds then return error else return the status of the IPI response.

References XNvm_ProcessMailbox(), and XNVM_WORD_LEN.

int XNvm_EfuseReadPpkHash ( const XNvm_ClientInstance *  InstancePtr,
const u64  PpkHashAddr,
const XNvm_PpkType  PpkHashType 
)

This function sends IPI request to read PpkHash requested by the user.

Parameters
InstancePtrPointer to the client instance
PpkHashAddrAddress of the output buffer to store the PpkHashAddr eFuses data
PpkHashTypeType of the PpkHash to be read out
Returns
  • XST_SUCCESS If the read is successful
  • XST_INVALID_PARAM If there is a input validation failure
  • XST_FAILURE If there is a failure

Validate input parameters. Return XST_INVALID_PARAM, if input parameters are invalid.

Send read ppk hash CDO to PLM to read user specified PPK from eFuse cache. Return XST_FAILURE if IPI request processing fails in PLM.

References XNVM_API_ID_EFUSE_READ_PPK_HASH, XNvm_ProcessMailbox(), and XNVM_SLR_INDEX_SHIFT.

int XNvm_EfuseReadPpkHash ( XNvm_ClientInstance *  InstancePtr,
const u64  PpkHashAddr,
const XNvm_PpkType  PpkHashType 
)

This function sends IPI request to read PpkHash requested by the user.

Parameters
InstancePtrPointer to the client instance
PpkHashAddrAddress of the output buffer to store the PpkHashAddr eFuses data
PpkHashTypeType of the PpkHash to be read out
Returns
  • XST_SUCCESS If the read is successful
  • ErrorCode If there is a failure

Validate input parameters. Return XST_INVALID_PARAM, if input parameters are invalid.

Send EfuseReadPpkHash CDO over IPI request to the PLM. Wait for IPI response from PLM with a default timeout of 300 seconds. If the timeout exceeds then return error else return the status of the IPI response.

References XNvm_ProcessMailbox(), and XNVM_WORD_LEN.

int XNvm_EfuseReadPuf ( XNvm_ClientInstance *  InstancePtr,
u64  PufHdAddr 
)

This function sends IPI request to read Puf data from the eFUSE cache.

Parameters
InstancePtrPointer to the client instance
PufHdAddrAddress of the XNvm_EfusePufHdAddr structure where the user provided helper data to be programmed
Returns
  • XST_SUCCESS If the programming is successful
  • ErrorCode If there is a failure

Validate input parameters. Return XST_INVALID_PARAM, if input parameters are invalid.

Read Puf helper data.

Read Puf Chash.

Read Puf Aux data.

Read RO Swap.

Send XNvm_EfuseReadPuf CDO over IPI request to the PLM. Wait for IPI response from PLM with a default timeout of 300 seconds. If the timeout exceeds then return error else return the status of the IPI response.

References XNvm_EfusePufHdAddr::Aux, XNvm_EfusePufHdAddr::Chash, XNvm_EfusePufHdAddr::EfuseSynData, XNvm_ProcessMailbox(), XNVM_PUF_FORMATTED_SYN_DATA_LEN_IN_WORDS, and XNVM_WORD_LEN.

int XNvm_EfuseReadPuf ( const XNvm_ClientInstance *  InstancePtr,
const u64  PufHdAddr 
)

This function sends IPI request to read Puf helper data requested by the user.

Parameters
InstancePtrPointer to the client instance
PufHdAddrAddress of the output buffer to store the Puf helper data
Returns
  • XST_SUCCESS If the read is successful
  • XST_INVALID_PARAM If there is a input validation failure
  • XST_FAILURE If there is a failure

Validate input parameters. Return XST_INVALID_PARAM if input parameters are invalid.

Send read puf CDO to PLM to read PUF helper data from eFuse cache. Return XST_FAILURE if IPI request processing fails in PLM.

References XNVM_API_ID_EFUSE_READ_PUF, XNvm_ProcessMailbox(), and XNVM_SLR_INDEX_SHIFT.

int XNvm_EfuseReadPufSecCtrlBits ( const XNvm_ClientInstance *  InstancePtr,
const u64  PufSecCtrlBits 
)

This function sends IPI request to read PufSecCtrlBits requested by the user.

Parameters
InstancePtrPointer to the client instance
PufSecCtrlBitsAddress of the output buffer to store the PufSecCtrlBits eFuses data
Returns
  • XST_SUCCESS If the read is successful
  • XST_INVALID_PARAM If there is a input validation failure
  • XST_FAILURE If there is a failure

Validate input parameters. Return XST_INVALID_PARAM if input parameters are invalid.

Send read puf ctrl CDO to PLM to read user specified Puf security control eFuses from eFuse cache. Return XST_FAILURE if IPI request processing fails in PLM.

References XNVM_API_ID_EFUSE_READ_PUF_SEC_CTRL_BITS, XNvm_ProcessMailbox(), and XNVM_SLR_INDEX_SHIFT.

int XNvm_EfuseReadPufSecCtrlBits ( XNvm_ClientInstance *  InstancePtr,
const u64  PufSecCtrlBits 
)

This function sends IPI request to read PufSecCtrlBits requested by the user.

Parameters
InstancePtrPointer to the client instance
PufSecCtrlBitsAddress of the output buffer to store the PufSecCtrlBits eFuses data
Returns
  • XST_SUCCESS If the read is successful
  • ErrorCode If there is a failure

Validate input parameters. Return XST_INVALID_PARAM, if input parameters are invalid.

Send EfuseReadPufSecCtrlBits CDO over IPI request to the PLM. Wait for IPI response from PLM with a default timeout of 300 seconds. If the timeout exceeds then return error else return the status of the IPI response.

References XNVM_EFUSE_CACHE_PUF_ECC_PUF_CTRL_REGEN_DIS_MASK, XNvm_ProcessMailbox(), and XNVM_WORD_LEN.

int XNvm_EfuseReadRevocationId ( const XNvm_ClientInstance *  InstancePtr,
const u64  RevokeIdAddr,
const XNvm_RevocationId  RevokeIdNum 
)

This function sends IPI request to read Revocation ID eFuses requested by the user.

Parameters
InstancePtrPointer to the client instance
RevokeIdAddrAddress of the output buffer to store the Revocation ID eFuse data
RevokeIdNumRevocation ID to be read out
Returns
  • XST_SUCCESS If the read is successful
  • XST_INVALID_PARAM If there is a input validation failure
  • XST_FAILURE If there is a failure

Validate input parameters. Return XST_INVALID_PARAM, if input parameters are invalid.

Send read revocation id CDO to PLM to read user specified Revocation ID from eFuse cache. Return XST_FAILURE if IPI request processing fails in PLM.

References XNVM_API_ID_EFUSE_READ_REVOCATION_ID, XNvm_ProcessMailbox(), and XNVM_SLR_INDEX_SHIFT.

int XNvm_EfuseReadRevocationId ( XNvm_ClientInstance *  InstancePtr,
const u64  RevokeIdAddr,
const XNvm_RevocationId  RevokeIdNum 
)

This function sends IPI request to read Revocation ID eFuses requested by the user.

Parameters
InstancePtrPointer to the client instance
RevokeIdAddrAddress of the output buffer to store the Revocation ID eFuse data
RevokeIdNumRevocation ID to be read out
Returns
  • XST_SUCCESS If the read is successful
  • ErrorCode If there is a failure

Validate input parameters. Return XST_INVALID_PARAM, if input parameters are invalid.

Send XNvm_EfuseReadRevocationId CDO over IPI request to the PLM. Wait for IPI response from PLM with a default timeout of 300 seconds. If the timeout exceeds return error else return the status of the IPI response.

References XNvm_ProcessMailbox(), and XNVM_WORD_LEN.

int XNvm_EfuseReadRomRsvdBits ( XNvm_ClientInstance *  InstancePtr,
const u64  RomRsvdBits 
)

This function sends IPI request to read RomRsvdBits requested by the user.

Parameters
InstancePtrPointer to the client instance
RomRsvdBitsAddress of the output buffer to store the RomRsvdBits eFuses data
Returns
  • XST_SUCCESS If the read is successful
    • ErrorCode If there is a failure

Perform input parameter validation on InstancePtr. Return XST_INVALID_PARAM If input parameters are invalid.

Send an IPI request to the PLM by using the XNVM_API_ID_EFUSE_READ_CACHE CDO command. Wait for IPI response from PLM with a default timeout of 300 seconds. If the timeout exceeds then error is returned otherwise it returns the status of the IPI response

References XNVM_EFUSE_CACHE_ROM_RSVD_PLM_UPDATE_MASK, XNvm_ProcessMailbox(), and XNVM_WORD_LEN.

int XNvm_EfuseReadSecCtrlBits ( const XNvm_ClientInstance *  InstancePtr,
const u64  SecCtrlBits 
)

This function sends IPI request to read SecCtrlBits requested by the user.

Parameters
InstancePtrPointer to the client instance
SecCtrlBitsAddress of the output buffer to store the SecCtrlBits eFuses data
Returns
  • XST_SUCCESS If the read is successful
  • XST_INVALID_PARAM If there is a input validation failure
  • XST_FAILURE If there is a failure

Validate input parameters. Return XST_INVALID_PARAM, if input parameters are invalid.

Send read sec_ctrl CDO to PLM to read security control eFuses from eFuse cache. Return XST_FAILURE if IPI request processing fails in PLM.

References XNVM_API_ID_EFUSE_READ_SEC_CTRL_BITS, XNvm_ProcessMailbox(), and XNVM_SLR_INDEX_SHIFT.

int XNvm_EfuseReadSecCtrlBits ( XNvm_ClientInstance *  InstancePtr,
const u64  SecCtrlBits 
)

This function sends IPI request to read SecCtrlBits requested by the user.

Parameters
InstancePtrPointer to the client instance
SecCtrlBitsAddress of the output buffer to store the SecCtrlBits eFuses data
Returns
  • XST_SUCCESS If the read is successful
  • ErrorCode If there is a failure

Validate input parameters. Return XST_INVALID_PARAM, if input parameters are invalid.

Send EfuseReadSecCtrlBits CDO over IPI request to the PLM. Wait for IPI response from PLM with a default timeout of 300 seconds. If the timeout exceeds then return error else return the status of the IPI response.

References XNVM_EFUSE_CACHE_SECURITY_CONTROL_REG_INIT_DIS_1_0_MASK, XNvm_ProcessMailbox(), and XNVM_WORD_LEN.

int XNvm_EfuseReadSecMisc1Bits ( const XNvm_ClientInstance *  InstancePtr,
const u64  SecMisc1Bits 
)

This function sends IPI request to read SecMisc1Bits requested by the user.

Parameters
InstancePtrPointer to the client instance
SecMisc1BitsAddress of the output buffer to store the SecMisc1Bits eFuses data
Returns
  • XST_SUCCESS If the read is successful
  • XST_INVALID_PARAM If there is a input validation failure
  • XST_FAILURE If there is a failure

Validate input parameters. Return XST_INVALID_PARAM, if input parameters are invalid.

Send read misc1 ctrl CDO to PLM to read security and miscellaneous 1 control from eFuse cache. Return XST_FAILURE, if IPI request processing fails in PLM.

References XNVM_API_ID_EFUSE_READ_SEC_MISC1_BITS, XNvm_ProcessMailbox(), and XNVM_SLR_INDEX_SHIFT.

int XNvm_EfuseReadSecMisc1Bits ( XNvm_ClientInstance *  InstancePtr,
const u64  SecMisc1Bits 
)

This function sends IPI request to read SecMisc1Bits requested by the user.

Parameters
InstancePtrPointer to the client instance
SecMisc1BitsAddress of the output buffer to store the SecMisc1Bits eFuses data
Returns
  • XST_SUCCESS If the read is successful
  • ErrorCode If there is a failure

Perform input parameter validation on InstancePtr. Return XST_INVALID_PARAM, if input parameters are invalid.

Send EfuseReadSecMisc1Bits CDO over IPI request to the PLM. Wait for IPI response from PLM with a default timeout of 300 seconds. If the timeout exceeds then return error else return status of the IPI response.

References XNVM_EFUSE_CACHE_SEC_MISC_1_LPD_MBIST_EN_2_0_MASK, XNvm_ProcessMailbox(), and XNVM_WORD_LEN.

int XNvm_EfuseReadUserFuses ( const XNvm_ClientInstance *  InstancePtr,
const u64  UserFuseAddr 
)

This function sends IPI request to read User eFuses requested by the user.

Parameters
InstancePtrPointer to the client instance
UserFuseAddrAddress of the output buffer to store the User eFuse data
Returns
  • XST_SUCCESS If the read is successful
  • XST_INVALID_PARAM If there is a input validation failure
  • XST_FAILURE If there is a failure

Validate input parameters. Return XST_INVALID_PARAM, if input parameters are invalid.

Send read use efuses CDO to PLM to read user specified user eFuses from eFuse cache. Return XST_FAILURE if IPI request processing fails in PLM.

References XNVM_API_ID_EFUSE_READ_USER_FUSES, XNvm_ProcessMailbox(), and XNVM_SLR_INDEX_SHIFT.

int XNvm_EfuseReadUserFuses ( XNvm_ClientInstance *  InstancePtr,
u64  UserFuseAddr 
)

This function sends IPI request to read User eFuses requested by the user.

Parameters
InstancePtrPointer to the client instance
UserFuseAddrAddress of the output buffer to store the User eFuse data
Returns
  • XST_SUCCESS If the read is successful
  • ErrorCode If there is a failure

Validate input parameters. Return XST_INVALID_PARAM, if input parameters are invalid.

Send XNvm_EfuseReadUserFuses CDO over IPI request to the PLM. Wait for IPI response from PLM with a default timeout of 300 seconds. If the timeout exceeds return error else return the status of the IPI response.

References XNvm_IsDmeModeEn(), XNvm_ProcessMailbox(), and XNVM_WORD_LEN.

int XNvm_EfuseRevokePpk ( const XNvm_ClientInstance *  InstancePtr,
const XNvm_PpkType  PpkRevoke,
const u32  EnvDisFlag 
)

This function sends IPI request to program PPK_INVLD eFuse requested by the user.

Parameters
InstancePtrPointer to the client instance
PpkRevokeType of PPK_INVLD to be revoked
EnvDisFlagFlag that tells whether to enable/disable Environmental monitoring in XilNvm
Returns
  • XST_SUCCESS If the programming is successful
  • XST_INVALID_PARAM If there is a input validation failure
  • XST_FAILURE If there is a failure

Validate input parameters. Return XST_INVALID_PARAM if input parameters are invalid.

Link shared memory for IPI usage. If shared memory is not assigned return XST_FAILURE.

Zeroize the shared memory.

Sends CDO to PLM to write eFuses to revoke the user specified PPK. Return XST_FAILURE if IPI request not success

References XNVM_API_ID_EFUSE_WRITE, XNvm_DCacheFlushRange, XNvm_ProcessMailbox(), and XNVM_SLR_INDEX_SHIFT.

int XNvm_EfuseWrite ( XNvm_ClientInstance *  InstancePtr,
const u64  DataAddr 
)

This function sends IPI request to program eFuses with user provided data.

Parameters
InstancePtrPointer to the client instance
DataAddrAddress of the data structure where the eFUSE data to be programmed is stored
Returns
  • XST_SUCCESS If the eFUSE programming is successful
  • ErrorCode If there is a failure

Implementation

Validate input parameters. Return XST_INVALID_PARAM, If input parameters are invalid.

Validate AES,UsrKey,PPK0,PPK1,PPK2,IVs write request. If validation is success, Send XNvm_EfuseWrite CDO over IPI to the PLM. Wait for IPI response from PLM with a default timeout of 300 seconds. If the timeout exceeds then return the error else return status of the IPI response.

Validates PPK hash and sends an IPI request to the PLM by using the XNVM_API_ID_EFUSE_WRITE_PPK_HASH CDO command. Wait for IPI response from PLM with a default timeout of 300 seconds. If the timeout exceeds then error is returned otherwise it returns the status of the IPI response

Validates IV and sends an IPI request to the PLM by using the XNVM_API_ID_EFUSE_WRITE_IV CDO command. Wait for IPI response from PLM with a default timeout of 300 seconds. If the timeout exceeds then error is returned otherwise it returns the status of the IPI response

References XNvm_EfuseWriteIVs(), and XNvm_ProcessMailbox().

int XNvm_EfuseWrite ( const XNvm_ClientInstance *  InstancePtr,
const u64  DataAddr 
)

This function sends IPI request to program eFuses with user provided data.

Parameters
InstancePtrPointer to the client instance
DataAddrAddress of the data structure where the eFUSE data to be programmed is stored
Returns
  • XST_SUCCESS If the eFUSE programming is successful
  • XST_INVALID_PARAM If there is a input validation failure
  • XST_FAILURE If there is a failure

Validate input parameters. Return XST_INVALID_PARAM if input parameters are invalid.

Sends EFUSE WRITE CDO to PLM through IPI. Return XST_FAILURE if IPI request of sending CDO not success.

References XNVM_API_ID_EFUSE_WRITE, XNvm_ProcessMailbox(), and XNVM_SLR_INDEX_SHIFT.

Referenced by XNvm_EfuseRevokePpk(), XNvm_EfuseWriteIVs(), XNvm_EfuseWriteRevocationId(), and XNvm_EfuseWriteUserFuses().

int XNvm_EfuseWriteBootEnvCtrlBits ( XNvm_ClientInstance *  InstancePtr,
u32  BootEnvCtrlBits,
const u32  EnvDisFlag 
)

This function sends IPI request to program Boot Env Ctrl Bits requested by the user.

Parameters
InstancePtrPointer to the client instance
BootEnvCtrlBitsValue of BootEnvCtrl Bits to be programmed
EnvDisFlagEnvironmental monitoring flag set by the user. When set to true it will not check for voltage and temparature limits.
Returns
  • XST_SUCCESS If the programming is successful
    • ErrorCode If there is a failure

Perform input parameter validation on InstancePtr. Return XST_INVALID_PARAM If input parameters are invalid.

Send an IPI request to the PLM by using the XNVM_API_ID_EFUSE_WRITE_BOOT_ENV_CTRL_BITS CDO command. Wait for IPI response from PLM with a default timeout of 300 seconds

References XNvm_ProcessMailbox(), and XNVM_WORD_LEN.

int XNvm_EfuseWriteBootModeDis ( XNvm_ClientInstance *  InstancePtr,
u32  BootModeDisBits,
const u32  EnvDisFlag 
)

This function sends IPI request to program BootMode disable efuse bits requested by the user.

Parameters
InstancePtrPointer to the client instance
BootModeDisBitsValue of Boot mode disable Bits to be programmed
EnvDisFlagEnvironmental monitoring flag set by the user. When set to true it will not check for voltage and temparature limits.
Returns
  • XST_SUCCESS If the programming is successful
  • ErrorCode If there is a failure

Perform input parameter validation on InstancePtr. Return XST_INVALID_PARAM If input parameters are invalid.

Send an IPI request to the PLM by using the XNVM_API_ID_EFUSE_WRITE_BOOT_MODE_DISABLE CDO command. Wait for IPI response from PLM with a default timeout of 300 seconds

References XNvm_ProcessMailbox(), and XNVM_WORD_LEN.

int XNvm_EfuseWriteDecOnly ( XNvm_ClientInstance *  InstancePtr,
const u32  EnvDisFlag 
)

This function sends IPI request to program Dec Only eFuses.

Parameters
InstancePtrPointer to the client instance
EnvDisFlagEnvironmental monitoring flag set by the user. When set to true it will not check for voltage and temparature limits.
Returns
  • XST_SUCCESS If the programming is successful
  • ErrorCode If there is a failure

Validate input parameters. Return XST_INVALID_PARAM, If input parameters are invalid.

Send XNvm_EfuseWriteSecCtrl CDO over IPI to the PLM. Wait for IPI response from PLM with a default timeout of 300 seconds.

References XNvm_ProcessMailbox(), and XNVM_WORD_LEN.

int XNvm_EfuseWriteDiceUds ( XNvm_ClientInstance *  InstancePtr,
const u64  UdsAddr,
const u32  EnvDisFlag 
)

This function sends IPI request to program DICE UDS.

Parameters
InstancePtrPointer to the client instance
UdsAddrAddress of the UDS to be programmed
EnvDisFlagEnvironmental monitoring flag set by the user. when set to true it will not check for voltage and temparature limits.
Returns
  • XST_SUCCESS If the programming is successful
    • ErrorCode If there is a failure

Perform input parameter validation on InstancePtr. Return XST_INVALID_PARAM If input parameters are invalid

Send an IPI request to the PLM by using the XNVM_API_ID_EFUSE_WRITE_UDS CDO command. Wait for IPI response from PLM with a default timeout of 300 seconds

References XNvm_ProcessMailbox(), and XNVM_WORD_LEN.

int XNvm_EfuseWriteDmeMode ( XNvm_ClientInstance *  InstancePtr,
u32  DmeMode,
const u32  EnvDisFlag 
)

This function sends IPI request to program DME mode requested by the user.

Parameters
InstancePtrPointer to the client instance
DmeModeValue of DME mode to be programmed
EnvDisFlagEnvironmental monitoring flag set by the user. When set to true it will not check for voltage and temparature limits.
Returns
  • XST_SUCCESS If the programming is successful
    • ErrorCode If there is a failure

Perform input parameter validation on InstancePtr. Return XST_INVALID_PARAM If input parameters are invalid.

Send an IPI request to the PLM by using the XNVM_API_ID_EFUSE_WRITE_DME_MODE CDO command. Wait for IPI response from PLM with a default timeout of 300 seconds

References XNvm_ProcessMailbox(), and XNVM_WORD_LEN.

int XNvm_EfuseWriteFipsInfo ( XNvm_ClientInstance *  InstancePtr,
const u16  FipsMode,
const u16  FipsVersion,
const u32  EnvDisFlag 
)

This function sends IPI request to program FIPS info eFuses.

Parameters
InstancePtrPointer to the client instance
FipsModeFIPS mode which needs to be programmed
FipsVersionFIPS version which needs to be programmed
EnvDisFlagEnvironmental monitoring flag set by the user. When set to true it will not check for voltage and temparature limits.
Returns
  • XST_SUCCESS If the programming is successful
  • ErrorCode If there is a failure

Validate input parameters. Return XST_INVALID_PARAM, if input parameters are invalid.

Send XNvm_EfuseWritePufCtrl CDO over IPI request to the PLM. Wait for IPI response from PLM with a default timeout of 300 seconds.

References XNvm_ProcessMailbox(), and XNVM_WORD_LEN.

int XNvm_EfuseWriteGlitchConfigBits ( XNvm_ClientInstance *  InstancePtr,
u32  GlitchCfgBits,
const u32  EnvDisFlag 
)

This function sends IPI request to program Glitch Cfg Bits requested by the user.

Parameters
InstancePtrPointer to the client instance
GlitchCfgBitsValue of Glitch Cfg Bits to be programmed
EnvDisFlagEnvironmental monitoring flag set by the user. When set to true it will not check for voltage and temparature limits.
Returns
  • XST_SUCCESS If the programming is successful
    • ErrorCode If there is a failure

Perform input parameter validation on InstancePtr. Return XST_INVALID_PARAM If input parameters are invalid.

Send an IPI request to the PLM by using the XNVM_API_ID_EFUSE_WRITE_GLITCH_CONFIG CDO command. Wait for IPI response from PLM with a default timeout of 300 seconds

References XNvm_ProcessMailbox(), and XNVM_WORD_LEN.

int XNvm_EfuseWriteIVs ( XNvm_ClientInstance *  InstancePtr,
const u64  IvAddr,
const u32  EnvDisFlag 
)

This function sends IPI request to program IV as requested by the user.

Parameters
InstancePtrPointer to the client instance
IvAddrAddress of the IV to be programmed
EnvDisFlagEnvironmental monitoring flag set by the user. when set to true it will not check for voltage and temparature limits.
Returns
  • XST_SUCCESS If the programming is successful
  • ErrorCode If there is a failure

Validate input parameters. Return XST_INVALID_PARAM, if input parameters are invalid.

Get shared memory allocated by the user using XMailbox_GetSharedMem API, to store data structure in the user memory. Perform validation on the size of the shared memory, if size is less than the total size return XST_FAILURE.

Fill the EfuseData structure with the IV address, Environmental disable flag.

Send XNvm_EfuseWriteIv CDO over IPI to the PLM. Wait for IPI response from PLM with a default timeout of 300 seconds.

References XNvm_ProcessMailbox().

int XNvm_EfuseWriteIVs ( const XNvm_ClientInstance *  InstancePtr,
const u64  IvAddr,
const u32  EnvDisFlag 
)

This function sends IPI request to program IV eFuses with user provided data.

Parameters
InstancePtrPointer to the client instance
IvAddrAddress of the data structure where the eFUSE data to be programmed is stored
EnvDisFlagFlag that tells weather to enable/disable Environmental monitoring in XilNvm
Returns
  • XST_SUCCESS If the programming is successful
  • XST_INVALID_PARAM If there is a input validation failure
  • XST_FAILURE If there is a failure

Validate input parameters. Return XST_INVALID_PARAM if input parameters are invalid.

Link Shared memory for IPI usage. If shared memory is not assigned return XST_FAILURE.

Zeroize the shared memory.

Sends EFUSE WRITE IV CDO to PLM through IPI request. Return XST_FAILURE if IPI request is failed

References XNVM_API_ID_EFUSE_WRITE, XNvm_DCacheFlushRange, XNvm_ProcessMailbox(), and XNVM_SLR_INDEX_SHIFT.

Referenced by XNvm_EfuseWrite().

int XNvm_EfuseWriteMiscCtrlBits ( XNvm_ClientInstance *  InstancePtr,
u32  MiscCtrlBits,
const u32  EnvDisFlag 
)

This function sends IPI request to program Misc Control Bits requested by the user.

Parameters
InstancePtrPointer to the client instance
MiscCtrlBitsValue of Misc Control Bits to be programmed
EnvDisFlagEnvironmental monitoring flag set by the user. When set to true it will not check for voltage and temparature limits.
Returns
  • XST_SUCCESS If the programming is successful
    • ErrorCode If there is a failure

Perform input parameter validation on InstancePtr. Return XST_INVALID_PARAM If input parameters are invalid.

Send an IPI request to the PLM by using the XNVM_API_ID_EFUSE_WRITE_MISC_CTRL_BITS CDO command. Wait for IPI response from PLM with a default timeout of 300 seconds

References XNvm_ProcessMailbox(), and XNVM_WORD_LEN.

int XNvm_EfuseWriteOffChipRevocationId ( XNvm_ClientInstance *  InstancePtr,
const u32  OffChipRevokeIdNum,
const u32  EnvDisFlag 
)

This function sends IPI request to program off chip Revocation Id eFuses.

Parameters
InstancePtrPointer to the client instance
OffChipRevokeIdNumOff Chip Revocation ID number which needs to be programmed
EnvDisFlagEnvironmental monitoring flag set by the user. When set to true it will not check for voltage and temparature limits.
Returns
  • XST_SUCCESS If the programming is successful
  • ErrorCode If there is a failure

Validate input parameters. Return XST_INVALID_PARAM, if input parameters are invalid.

Send XNvm_EfuseWriteRomRsvd CDO over IPI request to the PLM. Wait for IPI response from PLM with a default timeout of 300 seconds.

References XNvm_ProcessMailbox(), and XNVM_WORD_LEN.

int XNvm_EfuseWritePlmUpdate ( XNvm_ClientInstance *  InstancePtr,
const u32  EnvDisFlag 
)

This function sends IPI request to program PLM update bit.

Parameters
InstancePtrPointer to the client instance
EnvDisFlagEnvironmental monitoring flag set by the user. When set to true it will not check for voltage and temparature limits.
Returns
- XST_SUCCESS - If the programming is successful
  • ErrorCode - If there is a failure

Perform input parameter validation on InstancePtr. Return XST_INVALID_PARAM If input parameters are invalid.

Send an IPI request to the PLM by using the XNVM_API_ID_EFUSE_WRITE_PLM_UPDATE CDO command. Wait for IPI response from PLM with a default timeout of 300 seconds

References XNvm_ProcessMailbox(), and XNVM_WORD_LEN.

int XNvm_EfuseWritePuf ( XNvm_ClientInstance *  InstancePtr,
const u64  PufHdAddr 
)

This function sends IPI request to program Puf helper data requested by the user.

Parameters
InstancePtrPointer to the client instance
PufHdAddrAddress of the XNvm_EfusePufHdAddr structure where the user provided helper data to be programmed
Returns
  • XST_SUCCESS If the programming is successful
  • ErrorCode If there is a failure

Validate input parameters. Return XST_INVALID_PARAM, if input parameters are invalid.

Send XNvm_EfuseWritePuf CDO over IPI request to the PLM. Wait for IPI response from PLM with a default timeout of 300 seconds. If the timeout exceeds then return error else return status of the IPI response.

References XNvm_ProcessMailbox(), and XNVM_WORD_LEN.

int XNvm_EfuseWritePuf ( const XNvm_ClientInstance *  InstancePtr,
const u64  PufHdAddr 
)

This function sends IPI request to program Puf helper data requested by the user.

Parameters
InstancePtrPointer to the client instance
PufHdAddrAddress of the XNvm_EfusePufHdAddr structure where the user provided helper data to be programmed
Returns
  • XST_SUCCESS If the programming is successful
  • XST_INVALID_PARAM If there is a input validation failure
  • XST_FAILURE If there is a failure

Validate input parameters. Return XST_INVALID_PARAM if input parameters are invalid.

Send write puf CDO to PLM to write PUF helper data to eFuses. Return XST_FAILURE if IPI request processing fails in PLM.

References XNVM_API_ID_EFUSE_WRITE_PUF, XNvm_DCacheFlushRange, XNvm_ProcessMailbox(), and XNVM_SLR_INDEX_SHIFT.

int XNvm_EfuseWritePufCtrlBits ( XNvm_ClientInstance *  InstancePtr,
u32  PufCtrlBits,
const u32  EnvDisFlag 
)

This function sends IPI request to program Puf Control Bits requested by the user.

Parameters
InstancePtrPointer to the client instance
PufCtrlBitsValue of Puf Control Bits to be programmed
EnvDisFlagEnvironmental monitoring flag set by the user. When set to true it will not check for voltage and temparature limits.
Returns
  • XST_SUCCESS If the programming is successful
    • ErrorCode If there is a failure

Perform input parameter validation on InstancePtr. Return XST_INVALID_PARAM If input parameters are invalid.

Send an IPI request to the PLM by using the XNVM_API_ID_EFUSE_WRITE_PUF_CTRL_BITS CDO command. Wait for IPI response from PLM with a default timeout of 300 seconds.

References XNvm_ProcessMailbox(), and XNVM_WORD_LEN.

int XNvm_EfuseWriteRevocationId ( XNvm_ClientInstance *  InstancePtr,
const u32  RevokeIdNum,
const u32  EnvDisFlag 
)

This function sends IPI request to program Revocation Id eFuses.

Parameters
InstancePtrPointer to the client instance
RevokeIdNumRevocation ID number which needs to be programmed
EnvDisFlagEnvironmental monitoring flag set by the user. When set to true it will not check for voltage and temparature limits.
Returns
  • XST_SUCCESS If the programming is successful
  • ErrorCode If there is a failure

Validate input parameters. Return XST_INVALID_PARAM, if input parameters are invalid.

Send XNvm_EfuseWriteMiscCtrl CDO over IPI request to the PLM. Wait for IPI response from PLM with a default timeout of 300 seconds.

References XNVM_API_ID_EFUSE_WRITE_REVOCATION_ID, XNvm_ProcessMailbox(), and XNVM_WORD_LEN.

int XNvm_EfuseWriteRevocationId ( const XNvm_ClientInstance *  InstancePtr,
const u32  RevokeId,
const u32  EnvDisFlag 
)

This function sends IPI request to program revoke id eFuses requested by the user.

Parameters
InstancePtrPointer to the client instance
RevokeIdRevokeId number to be revoked
EnvDisFlagFlag that tells whether to enable/disable Environmental monitoring in XilNvm
Returns
  • XST_SUCCESS If the programming is successful
  • XST_INVALID_PARAM If there is a input validation failure
  • XST_FAILURE If there is a failure

Validate input parameters. Return XST_INVALID_PARAM if input parameters are invalid.

Link shared memory for IPI usage. If shared memory is not assigned return XST_FAILURE.

Zeroize the shared memory.

Send Revocation Id CDO to PLM to write to the user specified revocation eFuses. Return XST_FAILURE, if IPI request status is not success.

References XNVM_API_ID_EFUSE_WRITE, XNvm_DCacheFlushRange, XNvm_ProcessMailbox(), and XNVM_SLR_INDEX_SHIFT.

int XNvm_EfuseWriteRomRsvdBits ( XNvm_ClientInstance *  InstancePtr,
u32  RomRsvdBits,
const u32  EnvDisFlag 
)

This function sends IPI request to program ROM Rsvd Bits requested by the user.

Parameters
InstancePtrPointer to the client instance
RomRsvdBitsValue of ROM Rsvd Bits to be programmed
EnvDisFlagEnvironmental monitoring flag set by the user. When set to true it will not check for voltage and temparature limits.
Returns
  • XST_SUCCESS If the programming is successful
  • ErrorCode If there is a failure

Perform input parameter validation on InstancePtr. Return XST_INVALID_PARAM If input parameters are invalid.

Send an IPI request to the PLM by using the XNVM_API_ID_EFUSE_WRITE_ROM_RSVD CDO command. Wait for IPI response from PLM with a default timeout of 300 seconds

References XNvm_ProcessMailbox(), and XNVM_WORD_LEN.

int XNvm_EfuseWriteSecCtrlBits ( XNvm_ClientInstance *  InstancePtr,
u32  SecCtrlBits,
const u32  EnvDisFlag 
)

This function sends IPI request to program Secure Control Bits requested by the user.

Parameters
InstancePtrPointer to the client instance
SecCtrlBitsValue of Secure Control Bits to be programmed
EnvDisFlagEnvironmental monitoring flag set by the user. When set to true it will not check for voltage and temparature limits.
Returns
  • XST_SUCCESS If the programming is successful
    • ErrorCode If there is a failure

Perform input parameter validation on InstancePtr. Return XST_INVALID_PARAM If input parameters are invalid.

Send an IPI request to the PLM by using the XNVM_API_ID_EFUSE_WRITE_SEC_CTRL_BITS CDO command. Wait for IPI response from PLM with a default timeout of 300 seconds

References XNvm_ProcessMailbox(), and XNVM_WORD_LEN.

int XNvm_EfuseWriteSecMisc1Bits ( XNvm_ClientInstance *  InstancePtr,
u32  SecMisc1Bits,
const u32  EnvDisFlag 
)

This function sends IPI request to program Sec Misc 1 Bits requested by the user.

Parameters
InstancePtrPointer to the client instance
SecMisc1BitsValue of Sec Misc 1 Bits to be programmed
EnvDisFlagEnvironmental monitoring flag set by the user. When set to true it will not check for voltage and temparature limits.
Returns
  • XST_SUCCESS If the programming is successful
  • ErrorCode If there is a failure

Perform input parameter validation on InstancePtr. Return XST_INVALID_PARAM If input parameters are invalid.

Send an IPI request to the PLM by using the XNVM_API_ID_EFUSE_WRITE_MISC1_CTRL_BITS CDO command. Wait for IPI response from PLM with a default timeout of 300 seconds

References XNvm_ProcessMailbox(), and XNVM_WORD_LEN.

int XNvm_EfuseWriteUserFuses ( const XNvm_ClientInstance *  InstancePtr,
const u64  UserFuseAddr,
const u32  EnvDisFlag 
)

This function sends IPI request to program User eFuses requested by the user.

Parameters
InstancePtrPointer to the client instance
UserFuseAddrAddress of the XNvm_EfuseUserData structure where the user provided data to be programmed
EnvDisFlagFlag that tells whether to enable/disable Environmental monitoring in XilNvm
Returns
  • XST_SUCCESS If the programming is successful
  • XST_INVALID_PARAM If there is a input validation failure
  • XST_FAILURE If there is a failure

Validate input parameters. Return XST_INVALID_PARAM if input parameters are invalid.

Link shared memory for IPI usage. If shared memory is not assigned return XST_FAILURE.

Zeroize the shared memory.

Send eFUSE write CDO to PLM to write user specified user eFuses. Return XST_FAILURE if IPI request processing fails in PLM.

References XNVM_API_ID_EFUSE_WRITE, XNvm_DCacheFlushRange, XNvm_ProcessMailbox(), and XNVM_SLR_INDEX_SHIFT.

int XNvm_WriteDmePrivateKey ( XNvm_ClientInstance *  InstancePtr,
u32  DmeKeyType,
const u64  DmeKeyAddr,
const u32  EnvDisFlag 
)

This function sends IPI request to program encrypted DME private key.

Parameters
InstancePtrPointer to the client instance
DmeKeyTypeType of DME Key which needs to be programmed
DmeKeyAddrAddress of the encrypted DME private key to be programmed
EnvDisFlagEnvironmental monitoring flag set by the user. when set to true it will not check for voltage and temparature limits.
Returns
  • XST_SUCCESS If the programming is successful
    • ErrorCode If there is a failure

Perform input parameter validation on InstancePtr. Return XST_INVALID_PARAM If input parameters are invalid

Send an IPI request to the PLM by using the XNVM_API_ID_EFUSE_WRITE_DME_KEY CDO command. Wait for IPI response from PLM with a default timeout of 300 seconds

References XNvm_ProcessMailbox(), and XNVM_WORD_LEN.