xilnvm
Vitis Drivers API Documentation
versal_gen/versal_net/server/xnvm_efuse.h File Reference

Overview

This file contains function declarations of eFuse APIs.

MODIFICATION HISTORY:
Ver   Who  Date        Changes
----- ---- ---------- -------------------------------------------------------
3.0   kal  07/12/2022 Initial release
3.2   har  02/21/2023 Added support for writing ROM Rsvd bits
      kpt  07/26/2023 Removed XNvm_EfuseReadCacheRange
  vss  12/31/2023 Added support for Program the eFuse protection bits only once
Note

Macros

EFUSE masks
#define XNVM_EFUSE_PROTECTION_BIT_SECURITY_CONTROL_MASK
 < Protection bit masks of various eFuses More...
 
#define XNVM_EFUSE_PROTECTION_BIT_SECURITY_MISC_0_MASK
 
#define XNVM_EFUSE_PROTECTION_BIT_PPK_0_HASH_MASK
 
#define XNVM_EFUSE_PROTECTION_BIT_META_HEADER_IV_MASK
 
#define XNVM_EFUSE_PROTECTION_BIT_ME_ID_CODE_MASK
 
#define XNVM_EFUSE_PROTECTION_BIT_PUF_CHASH_MASK   ((u32)1U << XNVM_EFUSE_ROW_0_PUF_CHASH_PROT_COL_NUM)
 
#define XNVM_EFUSE_PROTECTION_BIT_SECURITY_MISC_1_MASK   ((u32)1U << XNVM_EFUSE_ROW_0_SEC_MISC1_PROT_COL_NUM)
 

Functions

int XNvm_EfuseWriteAesKey (u32 EnvDisFlag, XNvm_AesKeyType KeyType, XNvm_AesKey *EfuseKey)
 This function is used to take care of prerequisites to program below eFuses AES key User key 0 User key 1. More...
 
int XNvm_EfuseWritePpkHash (u32 EnvDisFlag, XNvm_PpkType PpkType, XNvm_PpkHash *EfuseHash)
 This function is used to to take care of prerequisitis to program below eFuses PPK0_HASH PPK1_HASH PPK2_HASH. More...
 
int XNvm_EfuseWriteIv (u32 EnvDisFlag, XNvm_IvType IvType, XNvm_Iv *EfuseIv)
 This function is used to to take care of prerequisitis to program below IV eFuses XNVM_EFUSE_ERR_WRITE_META_HEADER_IV XNVM_EFUSE_ERR_WRITE_BLK_OBFUS_IV XNVM_EFUSE_ERR_WRITE_PLM_IV XNVM_EFUSE_ERR_WRITE_DATA_PARTITION_IV. More...
 
int XNvm_EfuseCacheLoadNPrgmProtectionBits (void)
 This function reloads the cache of eFUSE so that can be directly read from cache and programs required protections eFuses. More...
 
int XNvm_EfuseWriteGlitchConfigBits (u32 EnvDisFlag, u32 GlitchConfig)
 This function is used to program Glitch Configuration given by the user. More...
 
int XNvm_EfuseWriteDecOnly (u32 EnvDisFlag)
 This function is used to program below DEC_ONLY fuses. More...
 
int XNvm_EfuseWriteRevocationID (u32 EnvDisFlag, u32 RevokeIdNum)
 This function writes Revocation eFuses. More...
 
int XNvm_EfuseWriteOffChipRevokeID (u32 EnvDisFlag, u32 OffchipIdNum)
 This function programs OffChip Revoke eFuses. More...
 
int XNvm_EfuseWriteMiscCtrlBits (u32 EnvDisFlag, u32 MiscCtrlBits)
 This function programs MiscCtrl eFuses. More...
 
int XNvm_EfuseWriteSecCtrlBits (u32 EnvDisFlag, u32 SecCtrlBits)
 This function programs SecCtrl eFuses. More...
 
int XNvm_EfuseWriteMisc1Bits (u32 EnvDisFlag, u32 Misc1Bits)
 This function programs Misc1Ctrl eFuses. More...
 
int XNvm_EfuseWriteBootEnvCtrlBits (u32 EnvDisFlag, u32 BootEnvCtrlBits)
 This function programs BootEnvCtrl eFuses. More...
 
int XNvm_EfuseWriteFipsInfo (u32 EnvDisFlag, u32 FipsMode, u32 FipsVersion)
 This function is used to to take care of prerequisitis to program FIPS mode and FIPS version eFuses. More...
 
int XNvm_EfuseWriteUds (u32 EnvDisFlag, XNvm_Uds *EfuseUds)
 This function programs UDS eFuses. More...
 
int XNvm_EfuseWriteDmeUserKey (u32 EnvDisFlag, XNvm_DmeKeyType KeyType, XNvm_DmeKey *EfuseKey)
 This function programs DME userkey eFuses. More...
 
int XNvm_EfuseWriteDmeRevoke (u32 EnvDisFlag, XNvm_DmeRevoke RevokeNum)
 This function programs DME Revoke eFuses. More...
 
int XNvm_EfuseWriteDisableInplacePlmUpdate (u32 EnvDisFlag)
 This function programs PLM_UPDATE eFuse. More...
 
int XNvm_EfuseWriteBootModeDisable (u32 EnvDisFlag, u32 BootModeMask)
 This function programs BootModeDisable eFuses. More...
 
int XNvm_EfuseWriteDmeMode (u32 EnvDisFlag, u32 DmeMode)
 This function programs DmeMode eFuses. More...
 
int XNvm_EfuseWritePuf (const XNvm_EfusePufHdAddr *PufHelperData)
 This function programs PUF ctrl and PUF helper data, Chash and Aux. More...
 
int XNvm_EfuseWriteCrc (u32 EnvDisFlag, u32 Crc)
 This function programs EFUSE_CRC_SALT eFuses. More...
 
int XNvm_EfuseWriteRomRsvdBits (u32 EnvDisFlag, u32 RomRsvdBits)
 This function programs ROM Rsvd Bits eFuses. More...
 
int XNvm_EfuseWritePufSecCtrl (u32 EnvDisFlag, u32 PufCtrlBits)
 This function programs Puf control bits specified by user. More...
 

Macro Definition Documentation

#define XNVM_EFUSE_PROTECTION_BIT_SECURITY_CONTROL_MASK
Value:
((u32)1U << XNVM_EFUSE_ROW_0_SEC_CTRL_PROT_0_COL_NUM) | \
((u32)1U << XNVM_EFUSE_ROW_0_SEC_CTRL_PROT_1_COL_NUM)

< Protection bit masks of various eFuses