47 #ifndef INCLUDE_SDL_ECC_H_ 48 #define INCLUDE_SDL_ECC_H_ 53 #include "sdl_common.h" 54 #include <src/ip/sdl_ip_ecc.h> 158 #define SDL_ECC_MEMTYPE_MCU_R5F0_CORE (0u) 160 #define SDL_ECC_MEMTYPE_MCU_R5F1_CORE (1u) 162 #define SDL_ECC_MEMTYPE_MCU_ADC0 (2u) 164 #define SDL_ECC_MEMTYPE_MCU_ADC1 (3u) 166 #define SDL_ECC_MEMTYPE_MCU_CPSW0 (4u) 168 #define SDL_ECC_MEMTYPE_MCU_FSS0_HPB0 (5u) 170 #define SDL_ECC_MEMTYPE_MCU_FSS0_OSPI0 (6u) 172 #define SDL_ECC_MEMTYPE_MCU_FSS0_OSPI1 (7u) 174 #define SDL_ECC_MEMTYPE_MCU_MCAN0 (8u) 176 #define SDL_ECC_MEMTYPE_MCU_MCAN1 (9u) 178 #define SDL_ECC_MEMTYPE_MCU_MSRAM0 (10u) 180 #define SDL_ECC_MEMTYPE_MCU_NAVSS0 (11u) 182 #define SDL_ECC_MEMTYPE_MCU_PDMA0 (12u) 184 #define SDL_ECC_MEMTYPE_MCU_PDMA1 (13u) 186 #define SDL_ECC_MEMTYPE_MCU_PSRAM0 (14u) 188 #define SDL_ECC_MEMTYPE_MCU_CBASS_ECC_AGGR0 (15u) 194 #define SDL_ECC_MEMTYPE_MAIN_MSMC_AGGR0 (16u) 196 #define SDL_ECC_MEMTYPE_MAIN_MSMC_AGGR1 (17u) 198 #define SDL_ECC_MEMTYPE_MAIN_MSMC_AGGR2 (18u) 201 #define SDL_ECC_MEMTYPE_MAIN_A72_AGGR0 (19u) 203 #define SDL_ECC_MEMTYPE_MAX (SDL_ECC_MEMTYPE_MAIN_A72_AGGR0 + 1U) 216 #define SDL_ECC_R5F_MEM_SUBTYPE_ITAG_RAM0_VECTOR_ID (0U) 218 #define SDL_ECC_R5F_MEM_SUBTYPE_ITAG_RAM1_VECTOR_ID (1U) 220 #define SDL_ECC_R5F_MEM_SUBTYPE_ITAG_RAM2_VECTOR_ID (2U) 222 #define SDL_ECC_R5F_MEM_SUBTYPE_ITAG_RAM3_VECTOR_ID (3U) 224 #define SDL_ECC_R5F_MEM_SUBTYPE_IDATA_BANK0_VECTOR_ID (4U) 226 #define SDL_ECC_R5F_MEM_SUBTYPE_IDATA_BANK1_VECTOR_ID (5U) 228 #define SDL_ECC_R5F_MEM_SUBTYPE_IDATA_BANK2_VECTOR_ID (6U) 230 #define SDL_ECC_R5F_MEM_SUBTYPE_IDATA_BANK3_VECTOR_ID (7U) 232 #define SDL_ECC_R5F_MEM_SUBTYPE_DTAG_RAM0_VECTOR_ID (8U) 234 #define SDL_ECC_R5F_MEM_SUBTYPE_DTAG_RAM1_VECTOR_ID (9U) 236 #define SDL_ECC_R5F_MEM_SUBTYPE_DTAG_RAM2_VECTOR_ID (10U) 238 #define SDL_ECC_R5F_MEM_SUBTYPE_DTAG_RAM3_VECTOR_ID (11U) 240 #define SDL_ECC_R5F_MEM_SUBTYPE_DDIRTY_RAM_VECTOR_ID (12U) 242 #define SDL_ECC_R5F_MEM_SUBTYPE_DDATA_RAM0_VECTOR_ID (13U) 244 #define SDL_ECC_R5F_MEM_SUBTYPE_DDATA_RAM1_VECTOR_ID (14U) 246 #define SDL_ECC_R5F_MEM_SUBTYPE_DDATA_RAM2_VECTOR_ID (15U) 248 #define SDL_ECC_R5F_MEM_SUBTYPE_DDATA_RAM3_VECTOR_ID (16U) 250 #define SDL_ECC_R5F_MEM_SUBTYPE_DDATA_RAM4_VECTOR_ID (17U) 252 #define SDL_ECC_R5F_MEM_SUBTYPE_DDATA_RAM5_VECTOR_ID (18U) 254 #define SDL_ECC_R5F_MEM_SUBTYPE_DDATA_RAM6_VECTOR_ID (19U) 256 #define SDL_ECC_R5F_MEM_SUBTYPE_DDATA_RAM7_VECTOR_ID (20U) 258 #define SDL_ECC_R5F_MEM_SUBTYPE_ATCM0_BANK0_VECTOR_ID (21U) 260 #define SDL_ECC_R5F_MEM_SUBTYPE_ATCM0_BANK1_VECTOR_ID (22U) 262 #define SDL_ECC_R5F_MEM_SUBTYPE_B0TCM0_BANK0_VECTOR_ID (23U) 264 #define SDL_ECC_R5F_MEM_SUBTYPE_B0TCM0_BANK1_VECTOR_ID (24U) 266 #define SDL_ECC_R5F_MEM_SUBTYPE_B1TCM0_BANK0_VECTOR_ID (25U) 268 #define SDL_ECC_R5F_MEM_SUBTYPE_B1TCM0_BANK1_VECTOR_ID (26U) 270 #define SDL_ECC_R5F_MEM_SUBTYPE_KS_VIM_RAM_VECTOR_ID (27U) 272 #define SDL_ECC_R5F_MEM_SUBTYPE_VBUSM2AXI_EDC_VECTOR_ID (28U) 274 #define SDL_ECC_R5F_MEM_SUBTYPE_AXI2VBUSM_MEM_MST_WRITE_EDC_VECTOR_ID (29U) 276 #define SDL_ECC_R5F_MEM_SUBTYPE_AXI2VBUSM_MEM_MST_READ_EDC_VECTOR_ID (30U) 278 #define SDL_ECC_R5F_MEM_SUBTYPE_AXI2VBUSM_PERIPH_MST_WRITE_EDC_VECTOR_ID (31U) 280 #define SDL_ECC_R5F_MEM_SUBTYPE_AXI2VBUSM_PERIPH_MST_READ_EDC_VECTOR_ID (32U) 282 #define SDL_ECC_R5F_MEM_SUBTYPE_AHB2VBUSP_EDC_VECTOR_ID (33U) 284 #define SDL_ECC_R5F_MEM_SUBTYPE_SCRP_EDC_VECTOR_ID (34U) 286 #define SDL_ECC_R5F_MEM_SUBTYPE_ECC_AGGR_EDC_ID (35U) 289 #define SDL_ECC_MAIN_MSMC_MEM_INTERCONN_SUBTYPE (20) 291 #define SDL_ECC_MAIN_MSMC_CACHE_TAG_MEM_INTERCONN_SUBTYPE (85) 293 #define SDL_ECC_MAIN_MSMC_MEM_WRAPPER_SUBTYPE (100) 295 #define SDL_ECC_MAIN_MSMC_MEM_CLEC_EDC_CTRL_BUSECC_SUBTYPE (107) 301 #define SDL_ECC_MCU_CBASS_MEM_SUBTYPE_WR_RAMECC_ID (0U) 303 #define SDL_ECC_MCU_CBASS_MEM_SUBTYPE_RD_RAMECC_ID (1U) 305 #define SDL_ECC_MCU_CBASS_MEM_SUBTYPE_EDC_CTRL_ID (2U) 324 typedef struct SDL_ECC_InitConfig_s
337 typedef struct SDL_ECC_InjectErrorConfig_s
351 typedef struct SDL_ECC_ErrorInfo_s
428 uint32_t selfTestTimeOut);
554 uint64_t bitErrorOffset,
555 uint32_t bitErrorGroup);
SDL_ECC_AggregatorType
This enumerator defines the different ECC aggregator types
Definition: sdl_ecc.h:96
int32_t SDL_ECC_init(SDL_ECC_MemType eccMemType, const SDL_ECC_InitConfig_t *pECCInitConfig)
Initializes ECC module for ECC detection.
SDL_ESM_Inst
Defines the different ESM instance types
Definition: ip/sdl_esm.h:165
int32_t SDL_ECC_initMemory(SDL_ECC_MemType eccMemType, SDL_ECC_MemSubType memSubType)
Initializes Memory to be ready for ECC error detection. Assumes ECC is already enabled.
uint32_t SDL_Ecc_AggrEDCErrorSubType
This enumerator defines the types of possible EDC errors.
Definition: sdl_ip_ecc.h:187
Definition: sdl_ecc.h:119
Definition: sdl_ecc.h:113
int32_t SDL_ECC_getESMErrorInfo(SDL_ESM_Inst instance, uint32_t intSrc, SDL_ECC_MemType *eccMemType, SDL_Ecc_AggrIntrSrc *intrSrcType)
Retrieves the ECC error information for the specified ESM error. If it isn't an ECC error or the ECC ...
uint32_t bitErrorGroup
Definition: sdl_ecc.h:365
SDL_ECC_MemSubType memSubType
Definition: sdl_ecc.h:355
void SDL_ECC_applicationCallbackFunction(SDL_ECC_MemType eccMemType, uint32_t errorSrc, uint32_t address, uint32_t ramId, uint64_t bitErrorOffset, uint32_t bitErrorGroup)
Application provided external callback function for ECC handling Called inside the reference function...
uint32_t chkGrp
Definition: sdl_ecc.h:343
This structure defines the inject error configuration
Definition: sdl_ecc.h:337
int32_t SDL_ECC_initEsm(const SDL_ESM_Inst esmInstType)
Initializes an module for usage with ECC module.
SDL_Ecc_AggrIntrSrc intrSrc
Definition: sdl_ecc.h:357
int32_t SDL_ECC_injectError(SDL_ECC_MemType eccMemType, SDL_ECC_MemSubType memSubType, SDL_ECC_InjectErrorType errorType, const SDL_ECC_InjectErrorConfig_t *pECCErrorConfig)
Injects ECC error at specified location Assumes ECC is already enabled.
This structure contains the static register group for Ecc aggregator used by the SDL_ecc_aggrReadStat...
Definition: sdl_ip_ecc.h:348
uint32_t numRams
Definition: sdl_ecc.h:326
This structure defines the error status information
Definition: sdl_ecc.h:351
SDL_ECC_RamIdType
This enumerator defines the different ECC RAM ID types
Definition: sdl_ecc.h:135
uint32_t SDL_ECC_MemType
This enumerator indicate ECC memory type.
Definition: sdl_ecc.h:154
int32_t SDL_ECC_getErrorInfo(SDL_ECC_MemType eccMemType, SDL_Ecc_AggrIntrSrc intrSrc, SDL_ECC_ErrorInfo_t *pErrorInfo)
Retrieves the ECC error information for the specified memtype and interrupt source.
SDL_ECC_MemSubType * pMemSubTypeList
Definition: sdl_ecc.h:329
uint64_t bitErrorOffset
Definition: sdl_ecc.h:363
void SDL_ECC_registerVIMDEDHandler(SDL_ECC_VIMDEDVector_t VIMDEDHandler)
Register Handler for VIM DED ECC error.
This structure defines the elements of ECC Init configuration
Definition: sdl_ecc.h:324
int32_t SDL_ECC_ackIntr(SDL_ECC_MemType eccMemType, SDL_Ecc_AggrIntrSrc intrSrc)
Acknowledge the ECC interrupt.
Definition: sdl_ecc.h:117
Definition: sdl_ecc.h:136
uint32_t flipBitMask
Definition: sdl_ecc.h:341
int32_t SDL_ECC_selfTest(SDL_ECC_MemType eccMemType, SDL_ECC_MemSubType memSubType, SDL_ECC_InjectErrorType errorType, const SDL_ECC_InjectErrorConfig_t *pECCErrorConfig, uint32_t selfTestTimeOut)
Runs self test by injecting and error and monitor response Assumes ECC is already enabled.
void(* SDL_ECC_VIMDEDVector_t)(void)
Definition: sdl_ecc.h:311
Header file contains enumerations, structure definitions and function declarations for SDL Error Sign...
uint32_t * pErrMem
Definition: sdl_ecc.h:339
uint32_t SDL_ECC_MemSubType
This enumerator indicate ECC memory Sub Type.
Definition: sdl_ecc.h:210
SDL_ECC_MemType eccMemType
Definition: sdl_ecc.h:353
int32_t SDL_ECC_clearNIntrPending(SDL_ECC_MemType eccMemType, SDL_ECC_MemSubType memSubType, SDL_Ecc_AggrIntrSrc intrSrc, SDL_Ecc_AggrEDCErrorSubType subType, uint32_t numEvents)
Clears N pending interrupts for the specified memtype, subtype and interrupt source.
Definition: sdl_ecc.h:127
Definition: sdl_ecc.h:111
uint32_t SDL_Ecc_AggrIntrSrc
This enumerator defines the types of possible ECC errors.
Definition: sdl_ip_ecc.h:106
Definition: sdl_ecc.h:125
int32_t SDL_ECC_getStaticRegisters(SDL_ECC_MemType eccMemType, SDL_ECC_staticRegs *pStaticRegs)
Gets the static registers for the specified ECC instance.
Definition: sdl_ecc.h:115
Definition: sdl_ecc.h:123
uint32_t bitErrCnt
Definition: sdl_ecc.h:359
Definition: sdl_ecc.h:121
Definition: sdl_ecc.h:138
void(* SDL_ECC_ErrorCallback_t)(uint32_t errorSrc, uint32_t address)
Definition: sdl_ecc.h:308
SDL_ECC_InjectErrorType
ECC Inject error types.
Definition: sdl_ecc.h:109
uint32_t injectBitErrCnt
Definition: sdl_ecc.h:361