xilskey: Added BBRAM PS functionality
Added BBRAM PS programming APIs for Zynq MP platform In BBRAM there is no provision for saperate CRC check CRC check can be performed only while programming AES key So user no need to calculate CRC of key if they provide key for programming CRC check will also be performed internally. User can also make BBRAM key to Zero at any time. Signed-off-by: VNSL Durga <vnsldurg@xilinx.com> Reviewed-by: Harini Katakam <harinik@xilinx.com>
This commit is contained in:
parent
e7aeea3a1f
commit
b92437c68b
4 changed files with 670 additions and 2 deletions
|
@ -1,6 +1,6 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* Copyright (C) 2013 - 2014 Xilinx, Inc. All rights reserved.
|
||||
* Copyright (C) 2013 - 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
|
@ -44,6 +44,7 @@
|
|||
* Ver Who Date Changes
|
||||
* ----- ---- -------- --------------------------------------------------------
|
||||
* 1.01a hk 09/18/13 First release
|
||||
* 4.0 vns 10/08/15 Added prototypes for ZynqMp BBRAM PS
|
||||
*
|
||||
****************************************************************************/
|
||||
#ifndef XILSKEY_BBRAM_H
|
||||
|
@ -192,10 +193,14 @@ typedef struct {
|
|||
|
||||
/************************** Function Prototypes *****************************/
|
||||
/*
|
||||
* Function for BBRAM program and vefiry algorithm
|
||||
* Function for BBRAM program and verify algorithm
|
||||
*/
|
||||
int XilSKey_Bbram_Program(XilSKey_Bbram *InstancePtr);
|
||||
|
||||
/* Functions to program AES key and function to zeroise AES key */
|
||||
u32 XilSKey_ZynqMp_Bbram_Program(u32 *AesKey);
|
||||
void XilSKey_ZynqMp_Bbram_Zeroise();
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -547,6 +547,20 @@ typedef enum {
|
|||
|
||||
}XSKEfusePs_ErrorCodes;
|
||||
|
||||
/**
|
||||
* ZynqMP PS BBRAM error codes
|
||||
*/
|
||||
typedef enum {
|
||||
XSK_ZYNQMP_BBRAMPS_ERROR_NONE = 0,
|
||||
XSK_ZYNQMP_BBRAMPS_ERROR_IN_PRGRMG_ENABLE = 0x01, /**< If this error is occurred
|
||||
* programming is not
|
||||
* possible */
|
||||
XSK_ZYNQMP_BBRAMPS_ERROR_IN_CRC_CHECK = 0xB000, /**< If this error is occurred
|
||||
* programming is done but CRC
|
||||
* check is failed */
|
||||
XSK_ZYNQMP_BBRAMPS_ERROR_IN_PRGRMG = 0xC000 /**< programming of key is failed */
|
||||
}XskZynqMp_Ps_Bbram_ErrorCodes;
|
||||
|
||||
/*
|
||||
* For backward compatibility with old error codes
|
||||
*/
|
||||
|
|
246
lib/sw_services/xilskey/src/xilskey_bbramps_zynqmp.c
Normal file
246
lib/sw_services/xilskey/src/xilskey_bbramps_zynqmp.c
Normal file
|
@ -0,0 +1,246 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* Copyright (C) 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
/*****************************************************************************/
|
||||
/**
|
||||
*
|
||||
* @file xilskey_bbramps_zynqmp.c
|
||||
*
|
||||
* This file contains the implementation of the interface functions for
|
||||
* programming BBRAM of ZynqMp.
|
||||
*
|
||||
* <pre>
|
||||
* MODIFICATION HISTORY:
|
||||
*
|
||||
* Ver Who Date Changes
|
||||
* ----- ------ -------- ------------------------------------------------------
|
||||
* 4.0 vns 10/08/15 First release
|
||||
* </pre>
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
/***************************** Include Files *********************************/
|
||||
|
||||
#include "xilskey_bbramps_zynqmp_hw.h"
|
||||
|
||||
/***************** Macros (Inline Functions) Definitions *********************/
|
||||
|
||||
|
||||
/**************************** Type Definitions *******************************/
|
||||
|
||||
|
||||
/************************** Function Prototypes ******************************/
|
||||
|
||||
static inline u32 XilSKey_ZynqMp_Bbram_PrgrmEn();
|
||||
static inline u32 XilSKey_ZynqMp_Bbram_CrcCalc(u32 *AesKey);
|
||||
extern u32 XilSKey_RowCrcCalculation(u32 PrevCRC, u32 Data, u32 Addr);
|
||||
|
||||
/************************** Variable Definitions *****************************/
|
||||
|
||||
|
||||
/************************** Function Definitions *****************************/
|
||||
|
||||
/*****************************************************************************/
|
||||
/**
|
||||
*
|
||||
* This function implements the BBRAM programming and verifying the key written.
|
||||
* Program and verification of AES will work only together.
|
||||
* CRC of the provided key will be calculated internally and verified.
|
||||
*
|
||||
* @param AesKey is a pointer to the key which has to be programmed.
|
||||
*
|
||||
* @return
|
||||
* - Error code from XskZynqMp_Ps_Bbram_ErrorCodes enum if it fails
|
||||
* - XST_SUCCESS if programming is done.
|
||||
*
|
||||
* @note None.
|
||||
*
|
||||
******************************************************************************/
|
||||
u32 XilSKey_ZynqMp_Bbram_Program(u32 *AesKey)
|
||||
{
|
||||
|
||||
u32 Status = XST_SUCCESS;
|
||||
u32 AesCrc;
|
||||
u32 *KeyPtr = AesKey;
|
||||
u32 StatusRead;
|
||||
u32 Offset;
|
||||
|
||||
/* Calculate CRC of AES */
|
||||
AesCrc = XilSKey_ZynqMp_Bbram_CrcCalc(AesKey);
|
||||
|
||||
/* Set in programming mode */
|
||||
Status = XilSKey_ZynqMp_Bbram_PrgrmEn();
|
||||
if (Status != XST_SUCCESS) {
|
||||
return (Status + XSK_ZYNQMP_BBRAMPS_ERROR_IN_PRGRMG);
|
||||
}
|
||||
|
||||
/* Program with provided key and check key written */
|
||||
Offset = XSK_ZYNQMP_BBRAM_0_OFFSET;
|
||||
while (Offset <= XSK_ZYNQMP_BBRAM_7_OFFSET) {
|
||||
XilSKey_WriteReg(XSK_ZYNQMP_BBRAM_BASEADDR, Offset, *KeyPtr);
|
||||
KeyPtr++;
|
||||
Offset = Offset + 4;
|
||||
}
|
||||
|
||||
XilSKey_WriteReg(XSK_ZYNQMP_BBRAM_BASEADDR,
|
||||
XSK_ZYNQMP_BBRAM_AES_CRC_OFFSET, AesCrc);
|
||||
|
||||
/* Check for CRC done */
|
||||
StatusRead = XilSKey_ReadReg(XSK_ZYNQMP_BBRAM_BASEADDR,
|
||||
XSK_ZYNQMP_BBRAM_STS_OFFSET);
|
||||
while ((StatusRead & XSK_ZYNQMP_BBRAM_STS_AES_CRC_DONE_MASK)
|
||||
== 0x00) {
|
||||
StatusRead =
|
||||
XilSKey_ReadReg(XSK_ZYNQMP_BBRAM_BASEADDR,
|
||||
XSK_ZYNQMP_BBRAM_STS_OFFSET);
|
||||
}
|
||||
|
||||
if ((StatusRead & XSK_ZYNQMP_BBRAM_STS_AES_CRC_PASS_MASK) !=
|
||||
XSK_ZYNQMP_BBRAM_STS_AES_CRC_PASS_MASK) {
|
||||
return XSK_ZYNQMP_BBRAMPS_ERROR_IN_CRC_CHECK;
|
||||
}
|
||||
|
||||
return Status;
|
||||
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/**
|
||||
*
|
||||
* This function zeroize's Bbram Key.
|
||||
*
|
||||
* @param None.
|
||||
*
|
||||
* @return None.
|
||||
*
|
||||
* @note BBRAM key will be zeroized.
|
||||
*
|
||||
******************************************************************************/
|
||||
void XilSKey_ZynqMp_Bbram_Zeroise()
|
||||
{
|
||||
|
||||
u32 Status;
|
||||
|
||||
XilSKey_WriteReg(XSK_ZYNQMP_BBRAM_BASEADDR, XSK_ZYNQMP_BBRAM_CTRL_OFFSET,
|
||||
XSK_ZYNQMP_BBRAM_CTRL_ZEROIZE_MASK);
|
||||
|
||||
Status = XilSKey_ReadReg(XSK_ZYNQMP_BBRAM_BASEADDR,
|
||||
XSK_ZYNQMP_BBRAM_STS_OFFSET);
|
||||
|
||||
while ((Status & XSK_ZYNQMP_BBRAM_STS_ZEROIZED_MASK) == 0x00) {
|
||||
Status = XilSKey_ReadReg(XSK_ZYNQMP_BBRAM_BASEADDR,
|
||||
XSK_ZYNQMP_BBRAM_STS_OFFSET);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/**
|
||||
*
|
||||
* This function enables programming and zeroizes Bbram.
|
||||
*
|
||||
* @param None
|
||||
*
|
||||
* @return
|
||||
* - Error code from XskZynqMp_Ps_Bbram_ErrorCodes enum if it fails
|
||||
* - XST_SUCCESS if programming is done.
|
||||
*
|
||||
* @note None.
|
||||
*
|
||||
******************************************************************************/
|
||||
static inline u32 XilSKey_ZynqMp_Bbram_PrgrmEn()
|
||||
{
|
||||
|
||||
u32 Status = XST_SUCCESS;
|
||||
u32 StatusRead;
|
||||
|
||||
XilSKey_WriteReg(XSK_ZYNQMP_BBRAM_BASEADDR,
|
||||
XSK_ZYNQMP_BBRAM_PGM_MODE_OFFSET,XSK_ZYNQMP_BBRAM_PGM_MODE_SET_VAL);
|
||||
|
||||
/* check for zeroized */
|
||||
StatusRead = XilSKey_ReadReg(XSK_ZYNQMP_BBRAM_BASEADDR,
|
||||
XSK_ZYNQMP_BBRAM_STS_OFFSET);
|
||||
|
||||
while ((StatusRead & XSK_ZYNQMP_BBRAM_STS_ZEROIZED_MASK) ==
|
||||
0x00) {
|
||||
StatusRead =
|
||||
XilSKey_ReadReg(XSK_ZYNQMP_BBRAM_BASEADDR,
|
||||
XSK_ZYNQMP_BBRAM_STS_OFFSET);
|
||||
}
|
||||
|
||||
StatusRead =
|
||||
XilSKey_ReadReg(XSK_ZYNQMP_BBRAM_BASEADDR,
|
||||
XSK_ZYNQMP_BBRAM_STS_OFFSET);
|
||||
|
||||
if ((StatusRead & XSK_ZYNQMP_BBRAM_STS_PGM_MODE_MASK) !=
|
||||
XSK_ZYNQMP_BBRAM_STS_PGM_MODE_MASK) {
|
||||
return XSK_ZYNQMP_BBRAMPS_ERROR_IN_PRGRMG_ENABLE;
|
||||
}
|
||||
|
||||
return Status;
|
||||
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/**
|
||||
*
|
||||
* This function calculates CRC of AES key.
|
||||
*
|
||||
* @param AesKey is a pointer to the key for which CRC has to be
|
||||
* calculated.
|
||||
*
|
||||
* @return CRC of AES key
|
||||
*
|
||||
* @note None.
|
||||
*
|
||||
******************************************************************************/
|
||||
static inline u32 XilSKey_ZynqMp_Bbram_CrcCalc(u32 *AesKey)
|
||||
{
|
||||
u32 Crc = 0;
|
||||
u32 Index;
|
||||
u32 Key_32 = 0;
|
||||
|
||||
for (Index = 0; Index < 9 ; Index++) {
|
||||
if (Index != 0) {
|
||||
Crc =
|
||||
XilSKey_RowCrcCalculation(
|
||||
Crc, AesKey[8 - Index], 9-Index);
|
||||
}
|
||||
else {
|
||||
Crc = XilSKey_RowCrcCalculation(Crc, Key_32, 9-Index);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return Crc;
|
||||
|
||||
}
|
403
lib/sw_services/xilskey/src/xilskey_bbramps_zynqmp_hw.h
Normal file
403
lib/sw_services/xilskey/src/xilskey_bbramps_zynqmp_hw.h
Normal file
|
@ -0,0 +1,403 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* Copyright (C) 2015 Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* Use of the Software is limited solely to applications:
|
||||
* (a) running on a Xilinx device, or
|
||||
* (b) that interact with a Xilinx device through a bus or interconnect.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of the Xilinx shall not be used
|
||||
* in advertising or otherwise to promote the sale, use or other dealings in
|
||||
* this Software without prior written authorization from Xilinx.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
/*****************************************************************************/
|
||||
/**
|
||||
*
|
||||
* @file xilskey_bbramps_zynqmp_hw.h
|
||||
*
|
||||
* This header file contains identifiers and register-level driver functions (or
|
||||
* macros) that can be used to access the Xilinx ZynqMp BBRAM controller.
|
||||
*
|
||||
* <pre>
|
||||
* MODIFICATION HISTORY:
|
||||
*
|
||||
* Ver Who Date Changes
|
||||
* ----- ------ -------- ------------------------------------------------------
|
||||
* 4.0 vns 10/08/15 First release
|
||||
* </pre>
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef __XSK_BBRAMPS_ZYNQMP_HW_H__
|
||||
#define __XSK_BBRAMPS_ZYNQMP_HW_H__
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/***************************** Include Files *********************************/
|
||||
|
||||
#include "xilskey_utils.h"
|
||||
#include "xil_io.h"
|
||||
#include "xilskey_bbram.h"
|
||||
|
||||
/************************** Constant Definitions *****************************/
|
||||
|
||||
/**************************** Type Definitions *******************************/
|
||||
|
||||
/***************** Macros (Inline Functions) Definitions *********************/
|
||||
|
||||
/** @name Bbram Base Address
|
||||
* @{
|
||||
*/
|
||||
#define XSK_ZYNQMP_BBRAM_BASEADDR 0xFFCD0000U /**< Bbram base address */
|
||||
/*@}*/
|
||||
|
||||
/** @name Register: BbramSts
|
||||
* @{
|
||||
*/
|
||||
#define XSK_ZYNQMP_BBRAM_STS_OFFSET 0x00000000U /**< Status
|
||||
* register offset */
|
||||
#define XSK_ZYNQMP_BBRAM_STS_RSTVAL 0x00000000U /**< Reset value */
|
||||
|
||||
#define XSK_ZYNQMP_BBRAM_STS_AES_CRC_PASS_SHIFT 9U
|
||||
/**< AES crc pass shift
|
||||
*/
|
||||
#define XSK_ZYNQMP_BBRAM_STS_AES_CRC_PASS_WIDTH 1U
|
||||
/**< AES crc pass width
|
||||
*/
|
||||
#define XSK_ZYNQMP_BBRAM_STS_AES_CRC_PASS_MASK 0x00000200U
|
||||
/**< AES crc pass
|
||||
* mask */
|
||||
#define XSK_ZYNQMP_BBRAM_STS_AES_CRC_PASS_DEFVAL 0x0U
|
||||
/**< AES crc pass
|
||||
* default value */
|
||||
|
||||
#define XSK_ZYNQMP_BBRAM_STS_AES_CRC_DONE_SHIFT 8U
|
||||
/**< AES CRC done
|
||||
* shift */
|
||||
#define XSK_ZYNQMP_BBRAM_STS_AES_CRC_DONE_WIDTH 1U
|
||||
/**< AES CRC done
|
||||
* width */
|
||||
#define XSK_ZYNQMP_BBRAM_STS_AES_CRC_DONE_MASK 0x00000100U
|
||||
/**< AES CRC done
|
||||
* mask */
|
||||
#define XSK_ZYNQMP_BBRAM_STS_AES_CRC_DONE_DEFVAL 0x0U
|
||||
/**< AES CRC done
|
||||
* default value */
|
||||
|
||||
#define XSK_ZYNQMP_BBRAM_STS_ZEROIZED_SHIFT 4U
|
||||
/**< Bbram zeroised
|
||||
* shift */
|
||||
#define XSK_ZYNQMP_BBRAM_STS_ZEROIZED_WIDTH 1U
|
||||
/**< Bbram zeroised
|
||||
* width */
|
||||
#define XSK_ZYNQMP_BBRAM_STS_ZEROIZED_MASK 0x00000010U
|
||||
/**< Bbram zeroised
|
||||
* mask */
|
||||
#define XSK_ZYNQMP_BBRAM_STS_ZEROIZED_DEFVAL 0x0U
|
||||
/**< Bbram zeroised
|
||||
* default value */
|
||||
|
||||
#define XSK_ZYNQMP_BBRAM_STS_PGM_MODE_SHIFT 0U
|
||||
/**< Bbram prgrmg mode
|
||||
* shift */
|
||||
#define XSK_ZYNQMP_BBRAM_STS_PGM_MODE_WIDTH 1U
|
||||
/**< Bbram prgrmg mode
|
||||
* width */
|
||||
#define XSK_ZYNQMP_BBRAM_STS_PGM_MODE_MASK 0x00000001U
|
||||
/**< Bbram prgrmg mode
|
||||
* mask */
|
||||
#define XSK_ZYNQMP_BBRAM_STS_PGM_MODE_DEFVAL 0x0U
|
||||
/**< Bbram prgrmg mode
|
||||
* default value */
|
||||
/*@}*/
|
||||
|
||||
/** @name Register: BbramCtrl
|
||||
* @{
|
||||
*/
|
||||
#define XSK_ZYNQMP_BBRAM_CTRL_OFFSET 0x00000004U
|
||||
/**< Cotrol reg offset */
|
||||
#define XSK_ZYNQMP_BBRAM_CTRL_RSTVAL 0x00000000U
|
||||
/**< Cotrol reg reset value */
|
||||
#define XSK_ZYNQMP_BBRAM_CTRL_ZEROIZE_SHIFT 0U
|
||||
/**< Cotrol reg zeroise shift */
|
||||
#define XSK_ZYNQMP_BBRAM_CTRL_ZEROIZE_WIDTH 1U
|
||||
/**< Cotrol reg zeroise width */
|
||||
#define XSK_ZYNQMP_BBRAM_CTRL_ZEROIZE_MASK 0x00000001U
|
||||
/**< Cotrol reg zeroise mask */
|
||||
#define XSK_ZYNQMP_BBRAM_CTRL_ZEROIZE_DEFVAL 0x0U
|
||||
/**< Cotrol reg default value*/
|
||||
/*@}*/
|
||||
|
||||
/** @name Register: BbramPgmMode
|
||||
* @{
|
||||
*/
|
||||
#define XSK_ZYNQMP_BBRAM_PGM_MODE_OFFSET 0x00000008U
|
||||
/**< Programming mode offset */
|
||||
#define XSK_ZYNQMP_BBRAM_PGM_MODE_RSTVAL 0x00000000U
|
||||
/**< prgrmg mode reset value */
|
||||
#define XSK_ZYNQMP_BBRAM_PGM_MODE_VAL_WIDTH 32U
|
||||
/**< prgrmg mode value width */
|
||||
#define XSK_ZYNQMP_BBRAM_PGM_MODE_VAL_MASK 0xffffffffU
|
||||
/**< prgrmg mode value mask */
|
||||
#define XSK_ZYNQMP_BBRAM_PGM_MODE_VAL_DEFVAL 0x0U
|
||||
/**< prgrmg mode default val */
|
||||
#define XSK_ZYNQMP_BBRAM_PGM_MODE_SET_VAL 0x757BDF0D
|
||||
/**< prgrmg mode set value */
|
||||
/*@}*/
|
||||
|
||||
/** @name Register: BbramAesCrc
|
||||
* @{
|
||||
*/
|
||||
#define XSK_ZYNQMP_BBRAM_AES_CRC_OFFSET 0x0000000CU
|
||||
/**< AES's CRC offset */
|
||||
#define XSK_ZYNQMP_BBRAM_AES_CRC_RSTVAL 0x00000000U
|
||||
/**< AES's CRC reset val */
|
||||
#define XSK_ZYNQMP_BBRAM_AES_CRC_VAL_SHIFT 0U
|
||||
/**< AES's CRC val shift */
|
||||
#define XSK_ZYNQMP_BBRAM_AES_CRC_VAL_WIDTH 32U
|
||||
/**< AES's CRC val width */
|
||||
#define XSK_ZYNQMP_BBRAM_AES_CRC_VAL_MASK 0xffffffffU
|
||||
/**< AES's CRC val mask */
|
||||
#define XSK_ZYNQMP_BBRAM_AES_CRC_VAL_DEFVAL 0x0U
|
||||
/**< AES's CRC default val */
|
||||
/*@}*/
|
||||
|
||||
/** @name Register: Bbram0
|
||||
* @{
|
||||
*/
|
||||
#define XSK_ZYNQMP_BBRAM_0_OFFSET 0x00000010U /**< Bbram0 offset */
|
||||
#define XSK_ZYNQMP_BBRAM_0_RSTVAL 0x00000000U /**< Bbram0 rst value */
|
||||
#define XSK_ZYNQMP_BBRAM_0_DATA_SHIFT 0U /**< Bbram0 data shift */
|
||||
#define XSK_ZYNQMP_BBRAM_0_DATA_WIDTH 32U /**< Bbram0 data width */
|
||||
#define XSK_ZYNQMP_BBRAM_0_DATA_MASK 0xffffffffU /**< Bbram0 data mask */
|
||||
#define XSK_ZYNQMP_BBRAM_0_DATA_DEFVAL 0x0U/**< Bbram0 def value */
|
||||
/*@}*/
|
||||
|
||||
/** @name Register: Bbram1
|
||||
* @{
|
||||
*/
|
||||
#define XSK_ZYNQMP_BBRAM_1_OFFSET 0x00000014U /**< Bbram1 offset */
|
||||
#define XSK_ZYNQMP_BBRAM_1_RSTVAL 0x00000000U /**< Bbram1 rst value */
|
||||
|
||||
#define XSK_ZYNQMP_BBRAM_1_DATA_SHIFT 0U /**< Bbram1 data shift */
|
||||
#define XSK_ZYNQMP_BBRAM_1_DATA_WIDTH 32U /**< Bbram1 data width */
|
||||
#define XSK_ZYNQMP_BBRAM_1_DATA_MASK 0xffffffffU /**< Bbram1 data mask */
|
||||
#define XSK_ZYNQMP_BBRAM_1_DATA_DEFVAL 0x0U/**< Bbram1 def value */
|
||||
/*@}*/
|
||||
|
||||
/** @name Register: Bbram2
|
||||
* @{
|
||||
*/
|
||||
#define XSK_ZYNQMP_BBRAM_2_OFFSET 0x00000018U /**< Bbram2 offset */
|
||||
#define XSK_ZYNQMP_BBRAM_2_RSTVAL 0x00000000U /**< Bbram2 rst value */
|
||||
|
||||
#define XSK_ZYNQMP_BBRAM_2_DATA_SHIFT 0U /**< Bbram2 data shift */
|
||||
#define XSK_ZYNQMP_BBRAM_2_DATA_WIDTH 32U /**< Bbram2 data width */
|
||||
#define XSK_ZYNQMP_BBRAM_2_DATA_MASK 0xffffffffU /**< Bbram2 data mask */
|
||||
#define XSK_ZYNQMP_BBRAM_2_DATA_DEFVAL 0x0U/**< Bbram2 def value */
|
||||
/*@}*/
|
||||
|
||||
/** @name Register: Bbram3
|
||||
* @{
|
||||
*/
|
||||
#define XSK_ZYNQMP_BBRAM_3_OFFSET 0x0000001CU/**< Bbram3 offset */
|
||||
#define XSK_ZYNQMP_BBRAM_3_RSTVAL 0x00000000U/**< Bbram3 rst value */
|
||||
|
||||
#define XSK_ZYNQMP_BBRAM_3_DATA_SHIFT 0U /**< Bbram3 data shift */
|
||||
#define XSK_ZYNQMP_BBRAM_3_DATA_WIDTH 32U/**< Bbram3 data width */
|
||||
#define XSK_ZYNQMP_BBRAM_3_DATA_MASK 0xffffffffU/**< Bbram3 data mask */
|
||||
#define XSK_ZYNQMP_BBRAM_3_DATA_DEFVAL 0x0U/**< Bbram3 def value */
|
||||
/*@}*/
|
||||
|
||||
/** @name Register: Bbram4
|
||||
* @{
|
||||
*/
|
||||
#define XSK_ZYNQMP_BBRAM_4_OFFSET 0x00000020U/**< Bbram4 offset */
|
||||
#define XSK_ZYNQMP_BBRAM_4_RSTVAL 0x00000000U/**< Bbram4 rst value */
|
||||
|
||||
#define XSK_ZYNQMP_BBRAM_4_DATA_SHIFT 0U /**< Bbram4 data shift */
|
||||
#define XSK_ZYNQMP_BBRAM_4_DATA_WIDTH 32U/**< Bbram4 data width */
|
||||
#define XSK_ZYNQMP_BBRAM_4_DATA_MASK 0xffffffffU/**< Bbram4 data mask */
|
||||
#define XSK_ZYNQMP_BBRAM_4_DATA_DEFVAL 0x0U/**< Bbram4 def value */
|
||||
/*@}*/
|
||||
|
||||
/** @name Register: Bbram5
|
||||
* @{
|
||||
*/
|
||||
#define XSK_ZYNQMP_BBRAM_5_OFFSET 0x00000024U/**< Bbram5 offset */
|
||||
#define XSK_ZYNQMP_BBRAM_5_RSTVAL 0x00000000U/**< Bbram5 rst value */
|
||||
|
||||
#define XSK_ZYNQMP_BBRAM_5_DATA_SHIFT 0U /**< Bbram5 data shift */
|
||||
#define XSK_ZYNQMP_BBRAM_5_DATA_WIDTH 32U/**< Bbram5 data width */
|
||||
#define XSK_ZYNQMP_BBRAM_5_DATA_MASK 0xffffffffU/**< Bbram5 data mask */
|
||||
#define XSK_ZYNQMP_BBRAM_5_DATA_DEFVAL 0x0U/**< Bbram5 def value */
|
||||
/*@}*/
|
||||
|
||||
/** @name Register: Bbram6
|
||||
* @{
|
||||
*/
|
||||
#define XSK_ZYNQMP_BBRAM_6_OFFSET 0x00000028U/**< Bbram6 offset */
|
||||
#define XSK_ZYNQMP_BBRAM_6_RSTVAL 0x00000000U/**< Bbram6 rst value */
|
||||
|
||||
#define XSK_ZYNQMP_BBRAM_6_DATA_SHIFT 0U /**< Bbram6 data shift */
|
||||
#define XSK_ZYNQMP_BBRAM_6_DATA_WIDTH 32U/**< Bbram6 data width */
|
||||
#define XSK_ZYNQMP_BBRAM_6_DATA_MASK 0xffffffffU/**< Bbram6 data mask */
|
||||
#define XSK_ZYNQMP_BBRAM_6_DATA_DEFVAL 0x0U/**< Bbram6 def value */
|
||||
/*@}*/
|
||||
|
||||
/** @name Register: Bbram7
|
||||
* @{
|
||||
*/
|
||||
#define XSK_ZYNQMP_BBRAM_7_OFFSET 0x0000002CU/**< Bbram7 offset */
|
||||
#define XSK_ZYNQMP_BBRAM_7_RSTVAL 0x00000000U/**< Bbram7 rst value */
|
||||
|
||||
#define XSK_ZYNQMP_BBRAM_7_DATA_SHIFT 0U /**< Bbram7 data shift */
|
||||
#define XSK_ZYNQMP_BBRAM_7_DATA_WIDTH 32U/**< Bbram7 data width */
|
||||
#define XSK_ZYNQMP_BBRAM_7_DATA_MASK 0xffffffffU/**< Bbram7 data mask */
|
||||
#define XSK_ZYNQMP_BBRAM_7_DATA_DEFVAL 0x0U /**< Bbram7 def value */
|
||||
/*@}*/
|
||||
|
||||
/** @name Register: Bbram8
|
||||
* @{
|
||||
*/
|
||||
#define XSK_ZYNQMP_BBRAM_8_OFFSET 0x00000030U/**< Bbram8 offset */
|
||||
#define XSK_ZYNQMP_BBRAM_8_RSTVAL 0x00000000U/**< Bbram8 rst value */
|
||||
|
||||
#define XSK_ZYNQMP_BBRAM_8_DATA_SHIFT 0U /**< Bbram8 data shift */
|
||||
#define XSK_ZYNQMP_BBRAM_8_DATA_WIDTH 32U/**< Bbram8 data width */
|
||||
#define XSK_ZYNQMP_BBRAM_8_DATA_MASK 0xffffffffU/**< Bbram8 data mask */
|
||||
#define XSK_ZYNQMP_BBRAM_8_DATA_DEFVAL 0x0U/**< Bbram8 def value */
|
||||
/*@}*/
|
||||
|
||||
/** @name Register: BbramSlverr
|
||||
* @{
|
||||
*/
|
||||
#define XSK_ZYNQMP_BBRAM_SLVERR_OFFSET 0x00000034U /**< Slave error control
|
||||
* offset */
|
||||
#define XSK_ZYNQMP_BBRAM_SLVERR_RSTVAL 0x00000000U /**< Slave error reg
|
||||
* reset value */
|
||||
|
||||
#define XSK_ZYNQMP_BBRAM_SLVERR_EN_SHIFT 0x0U /**< Slave error
|
||||
* enable shift */
|
||||
#define XSK_ZYNQMP_BBRAM_SLVERR_EN_WIDTH 0x1U /**< Slave error
|
||||
* enable width */
|
||||
#define XSK_ZYNQMP_BBRAM_SLVERR_EN_MASK 0x00000001U /**< Slave error
|
||||
* enable mask */
|
||||
#define XSK_ZYNQMP_BBRAM_SLVERR_EN_DEFVAL 0x0U /**< Slave error
|
||||
* enable def value*/
|
||||
/*@}*/
|
||||
|
||||
/** @name Register: BbramIsr
|
||||
* @{
|
||||
*/
|
||||
#define XSK_ZYNQMP_BBRAM_ISR_OFFSET 0x00000038U
|
||||
/**< ISR offset */
|
||||
#define XSK_ZYNQMP_BBRAM_ISR_RSTVAL 0x00000000U
|
||||
/**< ISR reset value */
|
||||
|
||||
#define XSK_ZYNQMP_BBRAM_ISR_APB_SLVERR_SHIFT 0x0U
|
||||
/**< ISR APB slave err
|
||||
* shift */
|
||||
#define XSK_ZYNQMP_BBRAM_ISR_APB_SLVERR_WIDTH 0x1U
|
||||
/**< ISR APB slave err
|
||||
* width */
|
||||
#define XSK_ZYNQMP_BBRAM_ISR_APB_SLVERR_MASK 0x00000001U
|
||||
/**< ISR APB slave err
|
||||
* maks */
|
||||
#define XSK_ZYNQMP_BBRAM_ISR_APB_SLVERR_DEFVAL 0x0U
|
||||
/**< ISR APB slave err
|
||||
* def value */
|
||||
/*@}*/
|
||||
|
||||
/** @name Register: BbramImr
|
||||
* @{
|
||||
*/
|
||||
#define XSK_ZYNQMP_BBRAM_IMR_OFFSET 0x0000003CU
|
||||
/**< IMR offset */
|
||||
#define XSK_ZYNQMP_BBRAM_IMR_RSTVAL 0x00000001U
|
||||
/**< IMR reset value */
|
||||
#define XSK_ZYNQMP_BBRAM_IMR_APB_SLVERR_SHIFT 0x0U
|
||||
/**< IMR APB slave err
|
||||
* shift */
|
||||
#define XSK_ZYNQMP_BBRAM_IMR_APB_SLVERR_WIDTH 0x1U
|
||||
/**< IMR APB slave err
|
||||
* width */
|
||||
#define XSK_ZYNQMP_BBRAM_IMR_APB_SLVERR_MASK 0x00000001U
|
||||
/**< IMR APB slave err
|
||||
* maks */
|
||||
#define XSK_ZYNQMP_BBRAM_IMR_APB_SLVERR_DEFVAL 0x1U
|
||||
/**< IMR APB slave err
|
||||
* def value */
|
||||
/*@}*/
|
||||
|
||||
/** @name Register: BbramIer
|
||||
* @{
|
||||
*/
|
||||
#define XSK_ZYNQMP_BBRAM_IER_OFFSET 0x00000040U
|
||||
/**< IER offset */
|
||||
#define XSK_ZYNQMP_BBRAM_IER_RSTVAL 0x00000000U
|
||||
/**< IER reset value */
|
||||
#define XSK_ZYNQMP_BBRAM_IER_APB_SLVERR_SHIFT 0U
|
||||
/**< IER APB slave err
|
||||
* shift */
|
||||
#define XSK_ZYNQMP_BBRAM_IER_APB_SLVERR_WIDTH 1U
|
||||
/**< IER APB slave err
|
||||
* width */
|
||||
#define XSK_ZYNQMP_BBRAM_IER_APB_SLVERR_MASK 0x00000001U
|
||||
/**< IER APB slave err
|
||||
* mask */
|
||||
#define XSK_ZYNQMP_BBRAM_IER_APB_SLVERR_DEFVAL 0x0U
|
||||
/**< IER APB slave err
|
||||
* def value */
|
||||
/*@}*/
|
||||
|
||||
/** @name Register: BbramIdr
|
||||
* @{
|
||||
*/
|
||||
#define XSK_ZYNQMP_BBRAM_IDR_OFFSET 0x00000044U
|
||||
/**< IDR offset */
|
||||
#define XSK_ZYNQMP_BBRAM_IDR_RSTVAL 0x00000000U
|
||||
/**< IDR reset value */
|
||||
#define XSK_ZYNQMP_BBRAM_IDR_APB_SLVERR_SHIFT 0x0U
|
||||
/**< IDR APB slave err
|
||||
* shift */
|
||||
#define XSK_ZYNQMP_BBRAM_IDR_APB_SLVERR_WIDTH 0x1U
|
||||
/**< IDR APB slave err
|
||||
* width */
|
||||
#define XSK_ZYNQMP_BBRAM_IDR_APB_SLVERR_MASK 0x00000001U
|
||||
/**< IDR APB slave err
|
||||
* mask */
|
||||
#define XSK_ZYNQMP_BBRAM_IDR_APB_SLVERR_DEFVAL 0x0U
|
||||
/**< IDR APB slave err
|
||||
* def value */
|
||||
/*@}*/
|
||||
|
||||
/***************** Macros (Inline Functions) Definitions ********************/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __XSK_BBRAMPS_ZYNQMP_HW__ */
|
Loading…
Add table
Reference in a new issue