xilloader
Vitis Drivers API Documentation
2ve_2vm/xloader_plat_secure.h File Reference

Macros

#define XLOADER_EFUSE_CACHE_JTAG_DIS_MASK   (0x00000004U)
 eFUSE cache JTAG disable mask More...
 
#define XLOADER_PMC_TAP_JTAG_STATUS_0   (0xF11A004CU)
 PMC TAP JTAG status 0. More...
 
#define XLOADER_PMC_TAP_JTAG_STATUS_DAP_STATUS_MASK   (0x00000001U << 23U)
 DAP status mask. More...
 
#define XLOADER_JTAG_SEC_GATE_CLOSE   (0x00U)
 JTAG secure gate close. More...
 
#define XLOADER_JTAG_SEC_GATE_OPEN   (0x01U)
 JTAG secure gate open. More...
 
#define XLOADER_DEVICE_STATE_POLL_INTERVAL   (1000U)
 Device state poll interval. More...
 
#define XLOADER_BBRAM_8_ADDRESS   (0xF11F0030U)
 Address of BBRAM_8 register used to store CL params. More...
 
#define XLOADER_BBRAM_8_MEM_ADDRESS   (0xF11F0050U)
 Address of register to read the value in BBRAM_8 register. More...
 
#define XLOADER_BBRAM_CL_COUNTER_MASK   (0x0FFFFFFFU)
 Mask to get the value of counter in Configuration Limiter register. More...
 
#define XLOADER_BBRAM_CL_MODE_MASK   (0x30000000U)
 Mask to get the value of mode in Configuration Limiter register. More...
 
#define XLOADER_BBRAM_CL_FEATURE_EN_MASK   (0xC0000000U)
 Mask to get the value of Feature enable in Configuration Limiter register. More...
 
#define XLOADER_CL_FEATURE_EN_SHIFT   (30U)
 CL Feature Enable Shift. More...
 
#define XLOADER_BBRAM_CL_FAILED_CONFIGS_MODE   (0x0U)
 Number of failed configurations selected as mode for Configuration Limiter. More...
 
#define XLOADER_BBRAM_CL_FEATURE_ENABLE   (0x3U)
 Value when Configuration Limiter feature is enabled. More...
 
#define XLOADER_PMC_TAP_INST_MASK_0_ENABLE_MASK   (0x79FFF8C1U)
 Mask to enable required instrcutions in Instruction Mask 0 register. More...
 
#define XLOADER_PMC_TAP_INST_MASK_1_ENABLE_MASK   (0x070BFF91U)
 Mask to enable required instrcutions in Instruction Mask 1 register. More...
 

Enumerations

enum  XLoader_SecErrCodes {
  XLOADER_SEC_AUTH_EN_PPK_HASH_NONZERO = 0x02, XLOADER_SEC_PPK_HASH_CALCULATION_FAIL, XLOADER_SEC_ALL_PPK_REVOKED_ERR, XLOADER_SEC_PPK_INVALID_BIT_ERR,
  XLOADER_SEC_PPK_HASH_ALLZERO_INVLD, XLOADER_SEC_PPK_HASH_COMPARE_FAIL, XLOADER_SEC_ALL_PPK_INVALID_ERR, XLOADER_SEC_SPK_HASH_CALCULATION_FAIL,
  XLOADER_SEC_RSA_AUTH_FAIL, XLOADER_SEC_RSA_PSS_SIGN_VERIFY_FAIL, XLOADER_SEC_ECDSA_AUTH_FAIL, XLOADER_SEC_ECDSA_INVLD_KEY_COORDINATES,
  XLOADER_SEC_INVALID_AUTH, XLOADER_SEC_REVOCATION_ID_OUTOFRANGE_ERR = 0x10, XLOADER_SEC_ID_REVOKED, XLOADER_SEC_BLACK_KEY_DEC_ERR,
  XLOADER_SEC_OBFUS_KEY_DEC_ERR, XLOADER_SEC_DEC_INVALID_KEYSRC_SEL, XLOADER_SEC_DATA_LEFT_FOR_DECRYPT_ERR, XLOADER_SEC_DECRYPT_REM_DATA_SIZE_MISMATCH,
  XLOADER_SEC_AES_OPERATION_FAILED, XLOADER_SEC_DPA_CM_ERR, XLOADER_SEC_PUF_REGN_ERRR, XLOADER_SEC_AES_KEK_DEC,
  XLOADER_SEC_RSA_PSS_ENC_BC_VALUE_NOT_MATCHED, XLOADER_SEC_RSA_PSS_HASH_COMPARE_FAILURE, XLOADER_SEC_ENC_ONLY_KEYSRC_ERR, XLOADER_SEC_ENC_ONLY_PUFHD_LOC_ERR,
  XLOADER_SEC_METAHDR_IV_ZERO_ERR, XLOADER_SEC_BLACK_IV_ZERO_ERR, XLOADER_SEC_IV_METAHDR_RANGE_ERROR, XLOADER_SEC_EFUSE_DPA_CM_MISMATCH_ERROR,
  XLOADER_SEC_RSA_MEMSET_SHA3_ARRAY_FAIL, XLOADER_SEC_RSA_MEMSET_VARSCOM_FAIL, XLOADER_SEC_MASKED_DB_MSB_ERROR, XLOADER_SEC_EFUSE_DB_PATTERN_MISMATCH_ERROR,
  XLOADER_SEC_MEMSET_ERROR, XLOADER_SEC_GLITCH_DETECTED_ERROR, XLOADER_SEC_ENC_DATA_NOT_ALIGNED_ERROR, XLOADER_SEC_KAT_FAILED_ERROR,
  XLOADER_SEC_KEY_CLEAR_FAILED_ERROR, XLOADER_SEC_CURVE_NOT_SUPPORTED, XLOADER_SEC_PRTN_HASH_NOT_PRESENT_IN_IHT_OP_DATA_ERR, XLOADER_SEC_PRTN_HASH_COMPARE_FAIL_ERR,
  XLOADER_SEC_AUTH_EN_PPK_HASH_NONZERO = 0x02, XLOADER_SEC_PPK_HASH_CALCULATION_FAIL, XLOADER_SEC_ALL_PPK_REVOKED_ERR, XLOADER_SEC_PPK_INVALID_BIT_ERR,
  XLOADER_SEC_PPK_HASH_ALLZERO_INVLD, XLOADER_SEC_PPK_HASH_COMPARE_FAIL, XLOADER_SEC_ALL_PPK_INVALID_ERR, XLOADER_SEC_SPK_HASH_CALCULATION_FAIL,
  XLOADER_SEC_RSA_AUTH_FAIL, XLOADER_SEC_RSA_PSS_SIGN_VERIFY_FAIL, XLOADER_SEC_ECDSA_AUTH_FAIL, XLOADER_SEC_ECDSA_INVLD_KEY_COORDINATES,
  XLOADER_SEC_INVALID_AUTH, XLOADER_SEC_REVOCATION_ID_OUTOFRANGE_ERR = 0x10, XLOADER_SEC_ID_REVOKED, XLOADER_SEC_BLACK_KEY_DEC_ERR,
  XLOADER_SEC_OBFUS_KEY_DEC_ERR, XLOADER_SEC_DEC_INVALID_KEYSRC_SEL, XLOADER_SEC_DATA_LEFT_FOR_DECRYPT_ERR, XLOADER_SEC_DECRYPT_REM_DATA_SIZE_MISMATCH,
  XLOADER_SEC_AES_OPERATION_FAILED, XLOADER_SEC_DPA_CM_ERR, XLOADER_SEC_PUF_REGN_ERRR, XLOADER_SEC_AES_KEK_DEC,
  XLOADER_SEC_RSA_PSS_ENC_BC_VALUE_NOT_MATCHED, XLOADER_SEC_RSA_PSS_HASH_COMPARE_FAILURE, XLOADER_SEC_ENC_ONLY_KEYSRC_ERR, XLOADER_SEC_ENC_ONLY_PUFHD_LOC_ERR,
  XLOADER_SEC_METAHDR_IV_ZERO_ERR, XLOADER_SEC_BLACK_IV_ZERO_ERR, XLOADER_SEC_IV_METAHDR_RANGE_ERROR, XLOADER_SEC_EFUSE_DPA_CM_MISMATCH_ERROR,
  XLOADER_SEC_RSA_MEMSET_SHA3_ARRAY_FAIL, XLOADER_SEC_RSA_MEMSET_VARSCOM_FAIL, XLOADER_SEC_MASKED_DB_MSB_ERROR, XLOADER_SEC_EFUSE_DB_PATTERN_MISMATCH_ERROR,
  XLOADER_SEC_MEMSET_ERROR, XLOADER_SEC_GLITCH_DETECTED_ERROR, XLOADER_SEC_ENC_DATA_NOT_ALIGNED_ERROR, XLOADER_SEC_KAT_FAILED_ERROR,
  XLOADER_SEC_KEY_CLEAR_FAILED_ERROR, XLOADER_SEC_STATE_CONFIG_MEASUREMENT_ERROR, XLOADER_SEC_CURVE_NOT_SUPPORTED, XLOADER_SEC_PRTN_HASH_NOT_PRESENT_IN_IHT_OP_DATA_ERR,
  XLOADER_SEC_PRTN_HASH_COMPARE_FAIL_ERR, XLOADER_SEC_AES_AAD_OPERATION_FAILED, XLOADER_SEC_LMS_SIGN_VERIFY_FAIL, XLOADER_SEC_LMS_PUBKEY_SIZE_VALIDATE_ERR,
  XLOADER_SEC_AUTH_EN_PPK_HASH_NONZERO = 0x02, XLOADER_SEC_PPK_HASH_CALCULATION_FAIL, XLOADER_SEC_ALL_PPK_REVOKED_ERR, XLOADER_SEC_PPK_INVALID_BIT_ERR,
  XLOADER_SEC_PPK_HASH_ALLZERO_INVLD, XLOADER_SEC_PPK_HASH_COMPARE_FAIL, XLOADER_SEC_ALL_PPK_INVALID_ERR, XLOADER_SEC_SPK_HASH_CALCULATION_FAIL,
  XLOADER_SEC_RSA_AUTH_FAIL, XLOADER_SEC_RSA_PSS_SIGN_VERIFY_FAIL, XLOADER_SEC_ECDSA_AUTH_FAIL, XLOADER_SEC_ECDSA_INVLD_KEY_COORDINATES,
  XLOADER_SEC_INVALID_AUTH, XLOADER_SEC_REVOCATION_ID_OUTOFRANGE_ERR = 0x10, XLOADER_SEC_ID_REVOKED, XLOADER_SEC_BLACK_KEY_DEC_ERR,
  XLOADER_SEC_OBFUS_KEY_DEC_ERR, XLOADER_SEC_DEC_INVALID_KEYSRC_SEL, XLOADER_SEC_DATA_LEFT_FOR_DECRYPT_ERR, XLOADER_SEC_DECRYPT_REM_DATA_SIZE_MISMATCH,
  XLOADER_SEC_AES_OPERATION_FAILED, XLOADER_SEC_DPA_CM_ERR, XLOADER_SEC_PUF_REGN_ERRR, XLOADER_SEC_AES_KEK_DEC,
  XLOADER_SEC_RSA_PSS_ENC_BC_VALUE_NOT_MATCHED, XLOADER_SEC_RSA_PSS_HASH_COMPARE_FAILURE, XLOADER_SEC_ENC_ONLY_KEYSRC_ERR, XLOADER_SEC_ENC_ONLY_PUFHD_LOC_ERR,
  XLOADER_SEC_METAHDR_IV_ZERO_ERR, XLOADER_SEC_BLACK_IV_ZERO_ERR, XLOADER_SEC_IV_METAHDR_RANGE_ERROR, XLOADER_SEC_EFUSE_DPA_CM_MISMATCH_ERROR,
  XLOADER_SEC_RSA_MEMSET_SHA3_ARRAY_FAIL, XLOADER_SEC_RSA_MEMSET_VARSCOM_FAIL, XLOADER_SEC_MASKED_DB_MSB_ERROR, XLOADER_SEC_EFUSE_DB_PATTERN_MISMATCH_ERROR,
  XLOADER_SEC_MEMSET_ERROR, XLOADER_SEC_GLITCH_DETECTED_ERROR, XLOADER_SEC_ENC_DATA_NOT_ALIGNED_ERROR, XLOADER_SEC_KAT_FAILED_ERROR,
  XLOADER_SEC_KEY_CLEAR_FAILED_ERROR, XLOADER_SEC_STATE_CONFIG_MEASUREMENT_ERROR, XLOADER_SEC_CURVE_NOT_SUPPORTED, XLOADER_SEC_PRTN_HASH_NOT_PRESENT_IN_IHT_OP_DATA_ERR,
  XLOADER_SEC_PRTN_HASH_COMPARE_FAIL_ERR
}
 

Functions

u32 XLoader_GetKekSrc (void)
 This function updates KEK red key availability status from boot header. More...
 
int XLoader_AesObfusKeySelect (u32 PdiKeySrc, u32 DecKeyMask, void *KeySrcPtr)
 This function provides Obfuscated Aes Key source. More...
 
int XLoader_AddDeviceStateChangeToScheduler (void)
 This function adds periodic checks of the device status change during secure boot. More...
 
int XLoader_CheckDeviceStateChange (void *Arg)
 This function checks the JTAG device state change. More...
 
int XLoader_UpdateCfgLimitCount (u32 UpdateFlag)
 This function updates the configuration limiter count if Configuration limiter feature is enabled in case of secure boot. More...
 
int XLoader_RsaKat (void)
 This function runs the KAT for RSA. More...
 
int XLoader_MaskGenFunc (XSecure_Sha3 *Sha3InstancePtr, u8 *Out, u32 OutLen, u8 *Input)
 Mask generation function with SHA3. More...
 

Macro Definition Documentation

#define XLOADER_BBRAM_8_ADDRESS   (0xF11F0030U)

Address of BBRAM_8 register used to store CL params.

Referenced by XLoader_UpdateCfgLimitCount().

#define XLOADER_BBRAM_8_MEM_ADDRESS   (0xF11F0050U)

Address of register to read the value in BBRAM_8 register.

Referenced by XLoader_UpdateCfgLimitCount().

#define XLOADER_BBRAM_CL_COUNTER_MASK   (0x0FFFFFFFU)

Mask to get the value of counter in Configuration Limiter register.

Referenced by XLoader_UpdateCfgLimitCount().

#define XLOADER_BBRAM_CL_FAILED_CONFIGS_MODE   (0x0U)

Number of failed configurations selected as mode for Configuration Limiter.

#define XLOADER_BBRAM_CL_FEATURE_EN_MASK   (0xC0000000U)

Mask to get the value of Feature enable in Configuration Limiter register.

Referenced by XLoader_UpdateCfgLimitCount().

#define XLOADER_BBRAM_CL_FEATURE_ENABLE   (0x3U)

Value when Configuration Limiter feature is enabled.

Referenced by XLoader_UpdateCfgLimitCount().

#define XLOADER_BBRAM_CL_MODE_MASK   (0x30000000U)

Mask to get the value of mode in Configuration Limiter register.

#define XLOADER_CL_FEATURE_EN_SHIFT   (30U)

CL Feature Enable Shift.

Referenced by XLoader_UpdateCfgLimitCount().

#define XLOADER_DEVICE_STATE_POLL_INTERVAL   (1000U)

Device state poll interval.

Referenced by XLoader_AddDeviceStateChangeToScheduler(), and XLoader_UpdateHandler().

#define XLOADER_EFUSE_CACHE_JTAG_DIS_MASK   (0x00000004U)

eFUSE cache JTAG disable mask

Referenced by XLoader_AddDeviceStateChangeToScheduler().

#define XLOADER_JTAG_SEC_GATE_CLOSE   (0x00U)

JTAG secure gate close.

Referenced by XLoader_CheckDeviceStateChange().

#define XLOADER_JTAG_SEC_GATE_OPEN   (0x01U)

JTAG secure gate open.

Referenced by XLoader_CheckDeviceStateChange().

#define XLOADER_PMC_TAP_INST_MASK_0_ENABLE_MASK   (0x79FFF8C1U)

Mask to enable required instrcutions in Instruction Mask 0 register.

#define XLOADER_PMC_TAP_INST_MASK_1_ENABLE_MASK   (0x070BFF91U)

Mask to enable required instrcutions in Instruction Mask 1 register.

#define XLOADER_PMC_TAP_JTAG_STATUS_0   (0xF11A004CU)

PMC TAP JTAG status 0.

Referenced by XLoader_CheckDeviceStateChange().

#define XLOADER_PMC_TAP_JTAG_STATUS_DAP_STATUS_MASK   (0x00000001U << 23U)

DAP status mask.

Referenced by XLoader_CheckDeviceStateChange().

Enumeration Type Documentation

enum XLoader_SecErrCodes
Enumerator
XLOADER_SEC_AUTH_EN_PPK_HASH_NONZERO 

0x02 Incorrect Authentication type selected

XLOADER_SEC_PPK_HASH_CALCULATION_FAIL 

0x03 PPK Hash calculation failed

XLOADER_SEC_ALL_PPK_REVOKED_ERR 

0x04 All PPKs are revoked

XLOADER_SEC_PPK_INVALID_BIT_ERR 

0x05 PPK Invalid bit is set

XLOADER_SEC_PPK_HASH_ALLZERO_INVLD 

0x06 PPK HAsh is all zero hence inavalid

XLOADER_SEC_PPK_HASH_COMPARE_FAIL 

0x07 HAsh comparison failed

XLOADER_SEC_ALL_PPK_INVALID_ERR 

0x08 All PPKs are invalid

XLOADER_SEC_SPK_HASH_CALCULATION_FAIL 

0x09 SPK HAsh calculation failed

XLOADER_SEC_RSA_AUTH_FAIL 

0x0A RSA signature is not verified

XLOADER_SEC_RSA_PSS_SIGN_VERIFY_FAIL 

0x0B RSA Pss signature verification failed

XLOADER_SEC_ECDSA_AUTH_FAIL 

0x0C ECDSA signature is not verified

XLOADER_SEC_ECDSA_INVLD_KEY_COORDINATES 

0x0D ECDSA invalid key coordinates

XLOADER_SEC_INVALID_AUTH 

0x0E Only RSA and ECDSA are supported

XLOADER_SEC_REVOCATION_ID_OUTOFRANGE_ERR 

0x10 Revocation ID is out of range

XLOADER_SEC_ID_REVOKED 

0x11 Revocation ID range not verified

XLOADER_SEC_BLACK_KEY_DEC_ERR 

0x12 Black key decryption error

XLOADER_SEC_OBFUS_KEY_DEC_ERR 

0x13 Obfuscated key decryption error

XLOADER_SEC_DEC_INVALID_KEYSRC_SEL 

0x14 Invalid key source selected for decryption

XLOADER_SEC_DATA_LEFT_FOR_DECRYPT_ERR 

0x15 Data still remaining for decryption

XLOADER_SEC_DECRYPT_REM_DATA_SIZE_MISMATCH 

0x16 Size mismatch for data remaining for decryption

XLOADER_SEC_AES_OPERATION_FAILED 

0x17 AES Operation failed

XLOADER_SEC_DPA_CM_ERR 

0x18 DPA CM Cfg Error

XLOADER_SEC_PUF_REGN_ERRR 

0x19 PUF regeneration error

XLOADER_SEC_AES_KEK_DEC 

0x1A AES KEK decryption

XLOADER_SEC_RSA_PSS_ENC_BC_VALUE_NOT_MATCHED 

0x1B RSA ENC 0xbc value is not matched

XLOADER_SEC_RSA_PSS_HASH_COMPARE_FAILURE 

0x1C RSA PSS verification hash is not matched

XLOADER_SEC_ENC_ONLY_KEYSRC_ERR 

0x1D Keysrc should be efuse black key for enc only

XLOADER_SEC_ENC_ONLY_PUFHD_LOC_ERR 

0x1E PUFHD location should be from eFuse for enc only

XLOADER_SEC_METAHDR_IV_ZERO_ERR 

0x1F eFuse IV should be non-zero for enc only

XLOADER_SEC_BLACK_IV_ZERO_ERR 

0x20 eFuse IV should be non-zero for enc only

XLOADER_SEC_IV_METAHDR_RANGE_ERROR 

0x21 Metahdr IV Range not matched with eFuse IV

XLOADER_SEC_EFUSE_DPA_CM_MISMATCH_ERROR 

0x22 Metahdr DpaCm & eFuse DpaCm values are not matched

XLOADER_SEC_RSA_MEMSET_SHA3_ARRAY_FAIL 

0x23 Error during memset for XSecure_RsaSha3Array

XLOADER_SEC_RSA_MEMSET_VARSCOM_FAIL 

0x24 Error during memset for Xsecure_Varsocm

XLOADER_SEC_MASKED_DB_MSB_ERROR 

0x25 Error in RSA EM MSB

XLOADER_SEC_EFUSE_DB_PATTERN_MISMATCH_ERROR 

0x26 Failed to verify DB check

XLOADER_SEC_MEMSET_ERROR 

0x27 Error during XPlmi_MemSetBytes

XLOADER_SEC_GLITCH_DETECTED_ERROR 

0x28 Error glitch detected

XLOADER_SEC_ENC_DATA_NOT_ALIGNED_ERROR 

0x29 Error encrypted data is not 128 bit aligned

XLOADER_SEC_KAT_FAILED_ERROR 

0x30 Secure KAT failed error

XLOADER_SEC_KEY_CLEAR_FAILED_ERROR 

0x31 Error when RED key clear failed

XLOADER_SEC_STATE_CONFIG_MEASUREMENT_ERROR 

0x32 Error when secure state config measurement failed

XLOADER_SEC_CURVE_NOT_SUPPORTED 

0x2C Error when ECC curve is not supported and trying to access

XLOADER_SEC_PRTN_HASH_NOT_PRESENT_IN_IHT_OP_DATA_ERR 

0x34 Error when partition hash is not present for respective partition

XLOADER_SEC_PRTN_HASH_COMPARE_FAIL_ERR 

0x35 Error when partition hash comparison is failed

XLOADER_SEC_AES_AAD_OPERATION_FAILED 

0x36 - Error in AES AAD Operation

XLOADER_SEC_LMS_SIGN_VERIFY_FAIL 

0x37 - Error in LMS sign verification due to error in SHA operation

XLOADER_SEC_LMS_PUBKEY_SIZE_VALIDATE_ERR 

0x38 - Error in LMS sign verification due to invalid public key size