xilnvm
Vitis Drivers API Documentation
xnvm_bbram.c File Reference

Overview

This file contains NVM library BBRAM functions.

MODIFICATION HISTORY:
Ver   Who  Date        Changes


1.0 mmd 04/01/2019 Initial release 2.0 kal 11/14/2019 Added error check when BBRAM keylen is not 128 or 256. 2.1 am 08/19/2020 Resolved MISRA C violations. kal 09/03/2020 Fixed Security CoE review comments am 10/13/2020 Resolved MISRA C violations 2.3 am 11/23/2020 Resolved MISRA C violation Rule 10.6 kal 12/23/2020 Disable BBRAM programming in error case also kal 01/27/2021 Zeroize BBRAM in case of CRC mismatch Zeroize BBRAM User Data in case of write failure 2.4 kal 07/13/2021 Fixed doxygen warnings kal 08/03/2021 Removed clearing BBRAM UsrData in case for write failure 3.0 kal 08/01/2022 Added redundancy to XNvm_BbramEnablePgmMode function dc 08/29/2022 Changed u8 to u32 type 3.1 skg 10/23/2022 Added In body comments for APIs 3.4 pre 09/11/2024 Removed zeroization before writing key ng 09/20/2024 Fixed doxygen grouping 3.5 pre 11/21/2024 Removed zeroization before writing key 3.5 hj 26/03/2025 Return explicit error code on General Purpose BBRAM8 write request in SB har 04/10/2025 Modified to read user data from XNVM_BBRAM_8_MEM_REG for versal_2ve_2vm

 

Macros

#define REVERSE_POLYNOMIAL   (0x82F63B78U)
 Polynomial used for CRC calculation. More...
 

Functions

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_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_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...