Zynq UltraScale+ MPSoC eFUSE PS APIs - 2023.1 English

Standalone Library Documentation: BSP and Libraries Document Collection (UG643)

Document ID
UG643
Release Date
2023-05-16
Version
2023.1 English

This chapter provides a linked summary and detailed descriptions of the Zynq MPSoC UltraScale+ eFUSE PS APIs.

Example Usage

  • For programming eFUSEs other than the PUF, the Zynq UltraScale+ MPSoC example application should contain the xilskey_efuseps_zynqmp_example.c and the xilskey_efuseps_zynqmp_input.h files.
  • For PUF registration, programming PUF helper data, AUX, chash, and black key, the Zynq UltraScale+ MPSoC example application should contain the xilskey_puf_registration.c and the xilskey_puf_registration.h files.
  • For more details on the user configurable parameters, refer Zynq UltraScale+ MPSoC User-Configurable PS eFUSE Parameters and Zynq UltraScale+ MPSoC User-Configurable PS PUF Parameters.

This file contains the PS eFUSE API's of Zynq UltraScale+ MPSoC to program/read the eFUSE array.

Table 1. Quick Function Reference
Type Member Arguments
u32 XilSKey_ZynqMp_EfusePs_CheckAesKeyCrc
  • u32 CrcValue
u32 XilSKey_ZynqMp_EfusePs_ReadUserFuse
  • u32 * UseFusePtr
  • u8 UserFuse_Num
  • u8 ReadOption
u32 XilSKey_ZynqMp_EfusePs_ReadPpk0Hash
  • u32 * Ppk0Hash
  • u8 ReadOption
u32 XilSKey_ZynqMp_EfusePs_ReadPpk1Hash
  • u32 * Ppk1Hash
  • u8 ReadOption
u32 XilSKey_ZynqMp_EfusePs_ReadSpkId
  • u32 * SpkId
  • u8 ReadOption
void XilSKey_ZynqMp_EfusePs_ReadDna
  • u32 * DnaRead
u32 XilSKey_ZynqMp_EfusePs_ReadSecCtrlBits
  • XilSKey_SecCtrlBits * ReadBackSecCtrlBits
  • u8 ReadOption
u32 XilSKey_ZynqMp_EfusePs_CacheLoad
  • void
u32 XilSKey_ZynqMp_EfusePs_Write
  • XilSKey_ZynqMpEPs * InstancePtr
u32 XilSkey_ZynqMpEfuseAccess
  • const u32 AddrHigh
  • const u32 AddrLow
void XilSKey_ZynqMp_EfusePs_SetTimerValues
  • void
u32 XilSKey_ZynqMp_EfusePs_ReadRow
  • u8 Row
  • XskEfusePs_Type EfuseType
  • u32 * RowData
u32 XilSKey_ZynqMp_EfusePs_SetWriteConditions
  • void
u32 XilSKey_ZynqMp_EfusePs_WriteAndVerifyBit
  • u8 Row
  • u8 Column
  • XskEfusePs_Type EfuseType
u32 XilSKey_ZynqMp_EfusePs_Init
  • void
u32 XilSKey_ZynqMp_EfusePs_CheckForZeros
  • u8 RowStart
  • u8 RowEnd
  • XskEfusePs_Type EfuseType
u32 XilSKey_ZynqMp_EfusePs_ProgramPufAsUserFuses
  • const XilSKey_PufEfuse * PufFuse
u32 XilSKey_ZynqMp_EfusePs_ReadPufAsUserFuses
  • EfuseAccess
u32 XilSKey_ZynqMp_EfusePs_WritePufHelprData
  • const XilSKey_Puf * InstancePtr
u32 XilSKey_ZynqMp_EfusePs_ReadPufHelprData
  • u32 * Address
u32 XilSKey_ZynqMp_EfusePs_WritePufChash
  • const XilSKey_Puf * InstancePtr
u32 XilSKey_ZynqMp_EfusePs_ReadPufChash
  • u32 * Address
  • u8 ReadOption
u32 XilSKey_ZynqMp_EfusePs_WritePufAux
  • const XilSKey_Puf * InstancePtr
u32 XilSKey_ZynqMp_EfusePs_ReadPufAux
  • u32 * Address
  • u8 ReadOption
u32 XilSKey_Write_Puf_EfusePs_SecureBits
  • const XilSKey_Puf_Secure * WriteSecureBits
u32 XilSKey_Read_Puf_EfusePs_SecureBits
  • XilSKey_Puf_Secure * SecureBitsRead
  • u8 ReadOption
u32 XilSKey_Puf_Registration
  • XilSKey_Puf * InstancePtr
u32 XilSKey_Puf_Regeneration
  • const XilSKey_Puf * InstancePtr