xilnvm
Vitis Drivers API Documentation
xnvm_bbram.h File Reference

Overview

This file contains NVM library BBRAM API's declaration.

MODIFICATION HISTORY:
Ver   Who  Date        Changes


1.0 mmd 04/01/2019 Initial release 2.1 am 08/19/2020 Resolved MISRA C violations am 10/13/2020 Resolved MISRA C violations ana 10/15/2020 Updated doxygen comments 2.3 am 11/23/2020 Resolved MISRA C violation 3.1 skg 10/23/2022 Added In body comments for APIs kal 03/08/2023 Added new error code XNVM_BBRAM_ERROR_IN_DMA_XFER 3.3 ng 11/22/2023 Fixed doxygen grouping 3.5 hj 03/26/2025 Added new error code XNVM_BBRAM_ERROR_GP_WRITE_IN_SB

 
#define XNVM_BBRAM_AES_KEY_SIZE   XNVM_256_BITS_AES_KEY_LEN_IN_BYTES
 AES Key size. More...
 
#define XNVM_EFUSE_BBRAM_TAG   (u32)(0x8100U)
 BBRAM error codes. More...
 
#define XNVM_BBRAM_ERROR_PGM_MODE_ENABLE_TIMEOUT   (XNVM_EFUSE_BBRAM_TAG | 0x00U)
 Error in enabling BBRAM Program mode. More...
 
#define XNVM_BBRAM_ERROR_AES_CRC_DONE_TIMEOUT   (XNVM_EFUSE_BBRAM_TAG | 0x02U)
 Error in AES CRC Done. More...
 
#define XNVM_BBRAM_ERROR_AES_CRC_MISMATCH   (XNVM_EFUSE_BBRAM_TAG | 0x03U)
 Error in AES CRC verification. More...
 
#define XNVM_BBRAM_ERROR_LOCK_USR_DATA_WRITE   (XNVM_EFUSE_BBRAM_TAG | 0x04U)
 Error in BBRAM user data locking. More...
 
#define XNVM_BBRAM_ERROR_USR_DATA_WRITE_LOCKED   (XNVM_EFUSE_BBRAM_TAG | 0x05U)
 Error in BBRAM user data write, as BBRAM_8 reg is locked. More...
 
#define XNVM_BBRAM_ERROR_ZEROIZE_TIMEOUT   (XNVM_EFUSE_BBRAM_TAG | 0x10U)
 Error in BBRAM_ZEROIZE. More...
 
#define XNVM_BBRAM_ERROR_IN_DMA_XFER   (XNVM_EFUSE_BBRAM_TAG | 0x20U)
 Error in copying user key to PMC memory using DMA. More...
 
#define XNVM_BBRAM_INVALID_PARAM   (XNVM_EFUSE_BBRAM_TAG | 0x30U)
 Error, invalid parameter. More...
 
#define XNVM_BBRAM_ERROR_AES_INVALID_KEY_SIZE   (XNVM_EFUSE_BBRAM_TAG | 0x40U)
 Error, invalid AES key size. More...
 
int XNvm_BbramWriteAesKey (const u8 *Key, u16 KeyLen)
 This function does programming of key provided into BBRAM and validates CRC of the key stored in BBRAM with CRC of input key. More...
 
int XNvm_BbramLockUsrDataWrite (void)
 This function locks the user data written in BBRAM_8 that is making user data written in BBRAM as read only. More...
 
int XNvm_BbramWriteUsrData (u32 GeneralPurposeData)
 Writes user provided 32-bit data to BBRAM. More...
 
u32 XNvm_BbramReadUsrData (void)
 This function reads 32-bit user data from BBRAM_8 register. More...
 
int XNvm_BbramZeroize (void)
 This function zeroizes the BBRAM. More...
 

Macro Definition Documentation

#define XNVM_BBRAM_AES_KEY_SIZE   XNVM_256_BITS_AES_KEY_LEN_IN_BYTES

AES Key size.

< AES Key size in bytes

#define XNVM_BBRAM_ERROR_AES_CRC_DONE_TIMEOUT   (XNVM_EFUSE_BBRAM_TAG | 0x02U)

Error in AES CRC Done.

#define XNVM_BBRAM_ERROR_AES_CRC_MISMATCH   (XNVM_EFUSE_BBRAM_TAG | 0x03U)

Error in AES CRC verification.

#define XNVM_BBRAM_ERROR_AES_INVALID_KEY_SIZE   (XNVM_EFUSE_BBRAM_TAG | 0x40U)

Error, invalid AES key size.

#define XNVM_BBRAM_ERROR_IN_DMA_XFER   (XNVM_EFUSE_BBRAM_TAG | 0x20U)

Error in copying user key to PMC memory using DMA.

#define XNVM_BBRAM_ERROR_LOCK_USR_DATA_WRITE   (XNVM_EFUSE_BBRAM_TAG | 0x04U)

Error in BBRAM user data locking.

Referenced by XNvm_BbramLockUsrDataWrite().

#define XNVM_BBRAM_ERROR_PGM_MODE_ENABLE_TIMEOUT   (XNVM_EFUSE_BBRAM_TAG | 0x00U)

Error in enabling BBRAM Program mode.

#define XNVM_BBRAM_ERROR_USR_DATA_WRITE_LOCKED   (XNVM_EFUSE_BBRAM_TAG | 0x05U)

Error in BBRAM user data write, as BBRAM_8 reg is locked.

#define XNVM_BBRAM_ERROR_ZEROIZE_TIMEOUT   (XNVM_EFUSE_BBRAM_TAG | 0x10U)

Error in BBRAM_ZEROIZE.

Referenced by XNvm_BbramZeroize().

#define XNVM_BBRAM_INVALID_PARAM   (XNVM_EFUSE_BBRAM_TAG | 0x30U)

Error, invalid parameter.

#define XNVM_EFUSE_BBRAM_TAG   (u32)(0x8100U)

BBRAM error codes.

< BBRAM API error codes BBRAM ERRORs Offset