AM62x MCU+ SDK  10.01.00
sdl_ip_ecc.h File Reference

Introduction

Header file containing various enumerations, structure definitions and function declarations for the ECC Aggregator Ip.


(C) Copyright 2015-2021, Texas Instruments, Inc.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

Neither the name of Texas Instruments Incorporated nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Go to the source code of this file.

Data Structures

struct  SDL_Ecc_AggrErrorInfo
 This structure contains error forcing information used by the SDL_ecc_aggrForceEccRamError function. More...
 
struct  SDL_Ecc_AggrEccRamErrorStatusInfo
 This structure contains error status information returned by the SDL_ecc_aggrGetEccRamGetErrorStatus function. More...
 
struct  SDL_Ecc_AggrEDCInterconnectErrorInfo
 This structure contains error forcing information used by the SDL_ecc_aggrForceEDCInterconnectError function. More...
 
struct  SDL_Ecc_AggrEDCInterconnectErrorStatusInfo
 This structure contains error status information returned by the SDL_ecc_aggrGetEDCInterconnectErrorStatus function. More...
 
struct  SDL_ecc_aggrEnableCtrl
 This structure contains the ECC aggr enable error config. More...
 
struct  SDL_ecc_aggrStatusCtrl
 This structure contains the ECC aggr status config. More...
 
struct  SDL_ECC_staticRegs
 This structure contains the static register group for Ecc aggregator used by the SDL_ecc_aggrReadStaticRegs function. More...
 

Macros

#define SDL_ECC_AGGR_INTR_SRC_NONE   ((uint32_t) 0U)
 
#define SDL_ECC_AGGR_INTR_SRC_SINGLE_BIT   ((uint32_t) 1U)
 
#define SDL_ECC_AGGR_INTR_SRC_DOUBLE_BIT   ((uint32_t) 2U)
 
#define SDL_ECC_ADDR_ERROR_TYPE_SUCCESSIVE_SINGLE_BITS   ((uint32_t) 3U)
 
#define SDL_ECC_AGGR_INTR_SRC_INVALID   ((uint32_t) 4U)
 
#define SDL_ECC_AGGR_SELECT_ERR_CTRL1   (0U)
 This defines the types of possible ECC error controller instances. More...
 
#define SDL_ECC_AGGR_SELECT_ERR_CTRL2   (1U)
 
#define SDL_ECC_AGGR_MAX_NUM_RAM_ERR_CTRL   (2U)
 
#define SDL_ECC_AGGR_SELECT_ERR_STAT1   (0U)
 This defines the types of possible ECC error status instances. More...
 
#define SDL_ECC_AGGR_SELECT_ERR_STAT2   (1U)
 
#define SDL_ECC_AGGR_SELECT_ERR_STAT3   (2U)
 
#define SDL_ECC_AGGR_MAX_NUM_RAM_ERR_STAT   (3U)
 
#define SDL_ECC_AGGR_NUM_ENABLE_REGISTERS   (8U)
 This defines the number of enable registers. More...
 
#define SDL_ECC_AGGR_VALID_TIMEOUT_ERR   (1U)
 
#define SDL_ECC_AGGR_VALID_PARITY_ERR   (2U)
 
#define SDL_ECC_AGGR_INJECT_PATTERN_ZERO   ((uint32_t) 0U)
 
#define SDL_ECC_AGGR_INJECT_PATTERN_F   ((uint32_t) 1U)
 
#define SDL_ECC_AGGR_INJECT_PATTERN_A   ((uint32_t) 2U)
 
#define SDL_ECC_AGGR_INJECT_PATTERN_5   ((uint32_t) 3U)
 
#define SDL_ECC_EGGR_INJECT_PATTERN_MAX   (SDL_ECC_AGGR_INJECT_PATTERN_A)
 
#define SDL_ECC_AGGR_ERROR_SUBTYPE_NORMAL   ((uint32_t) 0U)
 
#define SDL_ECC_AGGR_ERROR_SUBTYPE_INJECT   ((uint32_t) 1U)
 

Typedefs

typedef uint32_t SDL_Ecc_AggrIntrSrc
 This enumerator defines the types of possible ECC errors. More...
 
typedef uint8_t SDL_ecc_aggrValid
 This defines the valid ecc aggr error configuration. More...
 
typedef uint32_t SDL_Ecc_injectPattern
 This enumerator defines the types of ECC patterns. More...
 
typedef uint32_t SDL_Ecc_AggrEDCErrorSubType
 This enumerator defines the types of possible EDC errors. More...
 

Functions

int32_t SDL_ecc_aggrGetRevision (const SDL_ecc_aggrRegs *pEccAggrRegs, uint32_t *pRev)
 
int32_t SDL_ecc_aggrGetNumRams (const SDL_ecc_aggrRegs *pEccAggrRegs, uint32_t *pNumRams)
 
int32_t SDL_ecc_aggrReadEccRamReg (SDL_ecc_aggrRegs *pEccAggrRegs, uint32_t ramId, uint32_t regOffset, uint32_t *pRegVal)
 
int32_t SDL_ecc_aggrReadEccRamWrapRevReg (SDL_ecc_aggrRegs *pEccAggrRegs, uint32_t ramId, uint32_t *pRegVal)
 
int32_t SDL_ecc_aggrReadEccRamCtrlReg (SDL_ecc_aggrRegs *pEccAggrRegs, uint32_t ramId, uint32_t *pRegVal)
 
int32_t SDL_ecc_aggrReadEccRamErrCtrlReg (SDL_ecc_aggrRegs *pEccAggrRegs, uint32_t ramId, uint32_t instSelect, uint32_t *pRegVal)
 
int32_t SDL_ecc_aggrReadEccRamErrStatReg (SDL_ecc_aggrRegs *pEccAggrRegs, uint32_t ramId, uint32_t instSelect, uint32_t *pRegVal)
 
int32_t SDL_ecc_aggrWriteEccRamReg (SDL_ecc_aggrRegs *pEccAggrRegs, uint32_t ramId, uint32_t regOffset, uint32_t val)
 
int32_t SDL_ecc_aggrWriteEccRamCtrlReg (SDL_ecc_aggrRegs *pEccAggrRegs, uint32_t ramId, uint32_t val)
 
int32_t SDL_ecc_aggrWriteEccRamErrCtrlReg (SDL_ecc_aggrRegs *pEccAggrRegs, uint32_t ramId, uint32_t instSelect, uint32_t val)
 
int32_t SDL_ecc_aggrWriteEccRamErrStatReg (SDL_ecc_aggrRegs *pEccAggrRegs, uint32_t ramId, uint32_t instSelect, uint32_t val)
 
int32_t SDL_ecc_aggrConfigEccRam (SDL_ecc_aggrRegs *pEccAggrRegs, uint32_t ramId, bool bEnable, bool bEccCheck, bool bEnableRMW)
 
int32_t SDL_ecc_aggrVerifyConfigEccRam (SDL_ecc_aggrRegs *pEccAggrRegs, uint32_t ramId, bool bEnable, bool bEccCheck, bool bEnableRMW)
 
int32_t SDL_ecc_aggrGetEccRamErrorStatus (SDL_ecc_aggrRegs *pEccAggrRegs, uint32_t ramId, SDL_Ecc_AggrEccRamErrorStatusInfo *pEccErrorStatus)
 
int32_t SDL_ecc_aggrForceEccRamError (SDL_ecc_aggrRegs *pEccAggrRegs, uint32_t ramId, const SDL_Ecc_AggrErrorInfo *pEccForceError)
 
int32_t SDL_ecc_aggrReadEDCInterconnectReg (SDL_ecc_aggrRegs *pEccAggrRegs, uint32_t ramId, uint32_t regOffset, uint32_t *pRegVal)
 
int32_t SDL_ecc_aggrWriteEDCInterconnectReg (SDL_ecc_aggrRegs *pEccAggrRegs, uint32_t ramId, uint32_t regOffset, uint32_t val)
 
int32_t SDL_ecc_aggrConfigEDCInterconnect (SDL_ecc_aggrRegs *pEccAggrRegs, uint32_t ramId, bool bEccCheck)
 
int32_t SDL_ecc_aggrVerifyConfigEDCInterconnect (SDL_ecc_aggrRegs *pEccAggrRegs, uint32_t ramId, bool bEccCheck)
 
int32_t SDL_ecc_aggrGetEDCInterconnectErrorStatus (SDL_ecc_aggrRegs *pEccAggrRegs, uint32_t ramId, SDL_Ecc_AggrEDCInterconnectErrorStatusInfo *pEccErrorStatus)
 
int32_t SDL_ecc_aggrForceEDCInterconnectError (SDL_ecc_aggrRegs *pEccAggrRegs, uint32_t ramId, const SDL_Ecc_AggrEDCInterconnectErrorInfo *pEccForceError)
 
int32_t SDL_ecc_aggrAckIntr (SDL_ecc_aggrRegs *pEccAggrRegs, SDL_Ecc_AggrIntrSrc intrSrc)
 
int32_t SDL_ecc_aggrIsEccRamIntrPending (SDL_ecc_aggrRegs *pEccAggrRegs, uint32_t ramId, SDL_Ecc_AggrIntrSrc intrSrc, bool *pIsPend)
 
int32_t SDL_ecc_aggrSetEccRamIntrPending (SDL_ecc_aggrRegs *pEccAggrRegs, uint32_t ramId, SDL_Ecc_AggrIntrSrc intrSrc)
 
int32_t SDL_ecc_aggrSetEccRamNIntrPending (SDL_ecc_aggrRegs *pEccAggrRegs, uint32_t ramId, SDL_Ecc_AggrIntrSrc intrSrc, uint32_t numEvents)
 
int32_t SDL_ecc_aggrClrEccRamIntrPending (SDL_ecc_aggrRegs *pEccAggrRegs, uint32_t ramId, SDL_Ecc_AggrIntrSrc intrSrc)
 
int32_t SDL_ecc_aggrClrEccRamNIntrPending (SDL_ecc_aggrRegs *pEccAggrRegs, uint32_t ramId, SDL_Ecc_AggrIntrSrc intrSrc, uint32_t numEvents)
 
int32_t SDL_ecc_aggrIsEDCInterconnectIntrPending (SDL_ecc_aggrRegs *pEccAggrRegs, uint32_t ramId, SDL_Ecc_AggrIntrSrc intrSrc, bool *pIsPend)
 
int32_t SDL_ecc_aggrSetEDCInterconnectNIntrPending (SDL_ecc_aggrRegs *pEccAggrRegs, uint32_t ramId, SDL_Ecc_AggrIntrSrc intrSrc, SDL_Ecc_AggrEDCErrorSubType subType, uint32_t numEvents)
 
int32_t SDL_ecc_aggrClrEDCInterconnectNIntrPending (SDL_ecc_aggrRegs *pEccAggrRegs, uint32_t ramId, SDL_Ecc_AggrIntrSrc intrSrc, SDL_Ecc_AggrEDCErrorSubType subType, uint32_t numEvents)
 
int32_t SDL_ecc_aggrIsIntrPending (const SDL_ecc_aggrRegs *pEccAggrRegs, uint32_t ramId, SDL_Ecc_AggrIntrSrc intrSrc, bool *pIsPend)
 
int32_t SDL_ecc_aggrIsAnyIntrPending (const SDL_ecc_aggrRegs *pEccAggrRegs, uint32_t ramId, bool *pIsPend)
 
int32_t SDL_ecc_aggrEnableIntr (const SDL_ecc_aggrRegs *pEccAggrRegs, uint32_t ramId, SDL_Ecc_AggrIntrSrc intrSrc)
 
int32_t SDL_ecc_aggrDisableIntr (const SDL_ecc_aggrRegs *pEccAggrRegs, uint32_t ramId, SDL_Ecc_AggrIntrSrc intrSrc)
 
int32_t SDL_ecc_aggrEnableAllIntr (const SDL_ecc_aggrRegs *pEccAggrRegs, uint32_t ramId)
 
int32_t SDL_ecc_aggrDisableAllIntr (const SDL_ecc_aggrRegs *pEccAggrRegs, uint32_t ramId)
 
int32_t SDL_ecc_aggrEnableIntrs (const SDL_ecc_aggrRegs *pEccAggrRegs, SDL_Ecc_AggrIntrSrc intrSrc)
 
int32_t SDL_ecc_aggrDisableIntrs (const SDL_ecc_aggrRegs *pEccAggrRegs, SDL_Ecc_AggrIntrSrc intrSrc)
 
int32_t SDL_ecc_aggrEnableAllIntrs (const SDL_ecc_aggrRegs *pEccAggrRegs)
 
int32_t SDL_ecc_aggrDisableAllIntrs (const SDL_ecc_aggrRegs *pEccAggrRegs)
 
int32_t SDL_ecc_aggrReadStaticRegs (SDL_ecc_aggrRegs *pEccAggrRegs, SDL_ECC_staticRegs *pEccAggrStaticRegs)
 
int32_t SDL_ecc_aggrIntrEnableCtrl (SDL_ecc_aggrRegs *pEccAggrRegs, const SDL_ecc_aggrEnableCtrl *pEnableCtrl)
 
int32_t SDL_ecc_aggrIntrStatusCtrl (SDL_ecc_aggrRegs *pEccAggrRegs, const SDL_ecc_aggrStatusCtrl *pStatusCtrl)
 
int32_t SDL_ecc_aggrIntrGetStatus (const SDL_ecc_aggrRegs *pEccAggrRegs, SDL_ecc_aggrStatusCtrl *pStatusCtrl)