![]() |
xilnvm
Vitis Drivers API Documentation
|
This file contains eFuse functions of xilnvm library and provides the access to program eFUSE.
MODIFICATION HISTORY:
Ver Who Date Changes
3.0 kal 07/16/2022 Initial release dc 08/29/2022 Changed u8 to u32 type kal 09/29/2022 Removed unlock and lock of eFuse controller from the XNvm_EfuseCacheReload function 3.1 skg 10/25/2022 Added in body comments for APIs kal 03/07/2023 Added volatile keyword for Status variables 3.2 kum 04/11/2023 Moved Env monitor API's from versal xnvm_efuse.c to make use for both versal and versalnet vss 09/19/2023 Fixed MISRA-C Rule 8.7 violation 3.3 vss 12/31/2023 Added support for Program the eFuse protection bits only once ng 11/22/2023 Fixed doxygen grouping
Macros | |
eFuse macro definitions | |
| #define | XNVM_ONE_MICRO_SECOND (1U) |
| < One Micro Second Timeout More... | |
| #define | XNVM_EFUSE_TPGM_DIV (200000UL) |
| TRD Divisor value. More... | |
| #define | XNVM_EFUSE_TRD_DIV (4608294UL) |
| TRMD Divisor value. More... | |
| #define | XNVM_EFUSE_TRMD_DIV (2000000UL) |
| TSU_H_PS Divisor value. More... | |
| #define | XNVM_EFUSE_TSU_H_PS_DIV (4807692UL) |
| TSU_H_PS_CS Divisor value. More... | |
| #define | XNVM_EFUSE_TSU_H_PS_CS_DIV (6993007UL) |
| TSU_H_CS Divisor value. More... | |
| #define | XNVM_EFUSE_TSU_H_CS_DIV (5434783UL) |
| Default secure value for 32 bit. More... | |
| #define | XNVM_EFUSE_SEC_DEF_VAL_ALL_BIT_SET (0xFFFFFFFFU) |
| Default secure value for 8 bit. More... | |
| #define | XNVM_EFUSE_SEC_DEF_VAL_BYTE_SET (0xFFU) |
| Sysmon VCCPMC Amux ctrl value. More... | |
| #define | XNVM_EFUSE_SYSMON_VCCPMC_AMUX_CTRL (0x0bU) |
| Sysmon VCCPMC Abus sw1 value. More... | |
| #define | XNVM_EFUSE_SYSMON_VCCPMC_ABUS_SW1 (0x00U) |
| Sysmon VCCPMC Abus sw0 value. More... | |
| #define | XNVM_EFUSE_SYSMON_VCCPMC_ABUS_SW0 (0x02U) |
| Sysmon VCCPMC mode value. More... | |
| #define | XNVM_EFUSE_SYSMON_VCCPMC_MODE (0x00U) |
| Sysmon number of measurement registers. More... | |
| #define | XNVM_EFUSE_SYSMON_NUM_MEASURE_REGS (0x20U) |
| Sysmon number of supplies per flag. More... | |
| #define | XNVM_EFUSE_SYSMON_NUM_SUPPLIES_PER_FLAG (32U) |
| Sysmon Psv timeout value. More... | |
| #define | XNVM_EFUSE_SYSMONPSV_TIMEOUT (100000U) |
| Fraction multiplier value. More... | |
| #define | XNVM_EFUSE_FRACTION_MUL_VALUE (1000000U) |
| eFuse word length More... | |
| #define | XNVM_EFUSE_WORD_LEN (4U) |
Functions | |
| void | XNvm_EfuseDisablePowerDown (void) |
| This function disables power down of eFUSE macros. More... | |
| int | XNvm_EfuseCacheReload (void) |
| This function reloads the eFUSE cache, so that eFUSE values can be directly read from cache. More... | |
| int | XNvm_EfuseSetReadMode (XNvm_EfuseRdMode RdMode) |
| This function sets read mode of eFUSE controller. More... | |
| void | XNvm_EfuseSetRefClk (void) |
| This function sets reference clock of eFUSE controller. More... | |
| void | XNvm_EfuseEnableProgramming (void) |
| This function enables programming mode of eFUSE controller. More... | |
| int | XNvm_EfuseDisableProgramming (void) |
| This function disables programming mode of eFUSE controller. More... | |
| int | XNvm_EfuseResetReadMode (void) |
| This function disables Margin Read mode of eFUSE controller. More... | |
| void | XNvm_EfuseInitTimers (void) |
| This function initializes eFUSE controller timers. More... | |
| int | XNvm_EfuseSetupController (XNvm_EfuseOpMode Op, XNvm_EfuseRdMode RdMode) |
| This function setups eFUSE controller for given operation and read mode. More... | |
| int | XNvm_EfuseCheckForTBits (void) |
| This function checks whether Tbits are programmed or not. More... | |
| u32 | XNvm_GetSysmonSupplyRegId (UINTPTR SysmonpsvSatBaseAddr) |
| This function reads root register ID where measurement is stored in Root SysMon. More... | |
| int | XNvm_EfuseTempAndVoltChecks (const XSysMonPsv *SysMonInstPtr) |
| This function performs the Temparature and Voltage checks to ensure that they are in limits before eFuse programming. More... | |
| u32 | XNvm_EfuseReadProtectionBits (u32 Mask) |
| This function reads the corresponding eFuse protection bits. More... | |
| #define XNVM_EFUSE_FRACTION_MUL_VALUE (1000000U) |
eFuse word length
Referenced by XNvm_EfuseTempAndVoltChecks().
| #define XNVM_EFUSE_SEC_DEF_VAL_ALL_BIT_SET (0xFFFFFFFFU) |
Default secure value for 8 bit.
Referenced by XNvm_EfuseSetReadMode(), XNvm_EfuseTempAndVoltChecks(), and XNvm_GetSysmonSupplyRegId().
| #define XNVM_EFUSE_SEC_DEF_VAL_BYTE_SET (0xFFU) |
Sysmon VCCPMC Amux ctrl value.
Referenced by XNvm_EfuseSetReadMode().
| #define XNVM_EFUSE_SYSMON_NUM_MEASURE_REGS (0x20U) |
Sysmon number of supplies per flag.
Referenced by XNvm_GetSysmonSupplyRegId().
| #define XNVM_EFUSE_SYSMON_NUM_SUPPLIES_PER_FLAG (32U) |
Sysmon Psv timeout value.
Referenced by XNvm_EfuseTempAndVoltChecks().
| #define XNVM_EFUSE_SYSMON_VCCPMC_ABUS_SW0 (0x02U) |
Sysmon VCCPMC mode value.
Referenced by XNvm_GetSysmonSupplyRegId().
| #define XNVM_EFUSE_SYSMON_VCCPMC_ABUS_SW1 (0x00U) |
Sysmon VCCPMC Abus sw0 value.
Referenced by XNvm_GetSysmonSupplyRegId().
| #define XNVM_EFUSE_SYSMON_VCCPMC_AMUX_CTRL (0x0bU) |
Sysmon VCCPMC Abus sw1 value.
Referenced by XNvm_GetSysmonSupplyRegId().
| #define XNVM_EFUSE_SYSMON_VCCPMC_MODE (0x00U) |
Sysmon number of measurement registers.
Referenced by XNvm_GetSysmonSupplyRegId().
| #define XNVM_EFUSE_SYSMONPSV_TIMEOUT (100000U) |
Fraction multiplier value.
Referenced by XNvm_EfuseTempAndVoltChecks().
| #define XNVM_EFUSE_TPGM_DIV (200000UL) |
TRD Divisor value.
Referenced by XNvm_EfuseInitTimers().
| #define XNVM_EFUSE_TRD_DIV (4608294UL) |
TRMD Divisor value.
Referenced by XNvm_EfuseInitTimers().
| #define XNVM_EFUSE_TRMD_DIV (2000000UL) |
TSU_H_PS Divisor value.
Referenced by XNvm_EfuseInitTimers().
| #define XNVM_EFUSE_TSU_H_CS_DIV (5434783UL) |
Default secure value for 32 bit.
Referenced by XNvm_EfuseInitTimers().
| #define XNVM_EFUSE_TSU_H_PS_CS_DIV (6993007UL) |
TSU_H_CS Divisor value.
Referenced by XNvm_EfuseInitTimers().
| #define XNVM_EFUSE_TSU_H_PS_DIV (4807692UL) |
TSU_H_PS_CS Divisor value.
Referenced by XNvm_EfuseInitTimers().
| #define XNVM_ONE_MICRO_SECOND (1U) |