AM263Px MCU+ SDK: ECC_AGGR Functions

| AM263Px MCU+ SDK 26.00.00 |

Functions
ECC_AGGR Functions
APIs for SDL IP Module » APIs for SDL ECC (ECC_AGGR) | APIs for SDL Module » APIs for SDL ECC

## Introduction

## Functions
int32_t | SDL_ECC_initEsm (const SDL_ESM_Inst esmInstType)
| Initializes an module for usage with ECC module. More...
int32_t | SDL_ECC_init (SDL_ECC_MemType eccMemType, const SDL_ECC_InitConfig_t *pECCInitConfig)
| Initializes ECC module for ECC detection. More...
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. More...
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. More...
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. More...
int32_t | SDL_ECC_getStaticRegisters (SDL_ECC_MemType eccMemType, SDL_ECC_staticRegs *pStaticRegs)
| Gets the static registers for the specified ECC instance. More...
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. More...
int32_t | SDL_ECC_ackIntr (SDL_ECC_MemType eccMemType, SDL_Ecc_AggrIntrSrc intrSrc)
| Acknowledge the ECC interrupt. More...
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 error is not supported an error is returned. More...
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. More...
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 functions when ECC errors occur. NOTE: This is application supplied and not part of the SDL If not supplied by application this will result in an linker error. More...
int32_t | SDL_ECC_tpccParity (SDL_ECC_MemType eccMemType, uint32_t bitValue, uint32_t paramregvalue, uint32_t regval)
| Injects TPCC Parity error. More...
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_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_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)

## Function Documentation

## ◆ SDL_ECC_initEsm()

int32_t SDL_ECC_initEsm | ( | const SDL_ESM_Inst | esmInstType | ) |

Initializes an module for usage with ECC module.

============================================================================*

Parameters

  esmInstType | Instance of

Returns
  SDL_PASS : Success; SDL_FAIL for failures

## ◆ SDL_ECC_init()

int32_t SDL_ECC_init | ( | SDL_ECC_MemType | eccMemType,
|  | const SDL_ECC_InitConfig_t * | pECCInitConfig
| ) |  |

Initializes ECC module for ECC detection.

============================================================================*

Parameters

  eccMemType | ECC memory type
  pECCInitConfig | Pointer to Ecc init configuration

Returns
  SDL_PASS : Success; SDL_FAIL for failuresn

## ◆ SDL_ECC_initMemory()

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.

============================================================================

Parameters

  eccMemType | ECC memory type
  memSubType | Memory subtype

Returns
  SDL_PASS : Success; SDL_FAIL for failures

## ◆ SDL_ECC_selfTest()

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.

============================================================================

Parameters

  eccMemType | ECC memory type
  memSubType | Memory subtype
  errorType | ECC Self test type
  pECCErrorConfig | Pointer to Error configuration
  selfTestTimeOut | Number of retries before time out

Returns
  SDL_PASS : Success; SDL_FAIL for failures

## ◆ SDL_ECC_injectError()

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.

============================================================================

Parameters

  eccMemType | ECC memory type
  memSubType | Memory subtype
  errorType | ECC error type
  pECCErrorConfig | Pointer to Error configuration

Returns
  SDL_PASS : Success; SDL_FAIL for failures

## ◆ SDL_ECC_getStaticRegisters()

int32_t SDL_ECC_getStaticRegisters | ( | SDL_ECC_MemType | eccMemType,
|  | SDL_ECC_staticRegs * | pStaticRegs
| ) |  |

Gets the static registers for the specified ECC instance.

============================================================================

Parameters

  eccMemType | ECC memory type
  pStaticRegs | Pointer to Static registers structure

Returns
  SDL_PASS : Success; SDL_FAIL for failures

## ◆ SDL_ECC_getErrorInfo()

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.

============================================================================

Parameters

  eccMemType | ECC memory type
  intrSrc | interrupt source
  pErrorInfo | Pointer to the Error Information

Returns
  SDL_PASS : Success; SDL_FAIL for failures

## ◆ SDL_ECC_ackIntr()

int32_t SDL_ECC_ackIntr | ( | SDL_ECC_MemType | eccMemType,
|  | SDL_Ecc_AggrIntrSrc | intrSrc
| ) |  |

Acknowledge the ECC interrupt.

============================================================================

Parameters

  eccMemType | ECC memory type
  intrSrc | interrupt source

Returns
  SDL_PASS : Success; SDL_FAIL for failures

## ◆ SDL_ECC_getESMErrorInfo()

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 error is not supported an error is returned.

============================================================================

Parameters

  instance | ESM instance
  intSrc | ESM interrupt number
  eccMemType | Pointer to the ECC memory type
  intrSrcType | Pointer to the interrupt source type

Returns
  SDL_PASS : Success; SDL_FAIL for failures

## ◆ SDL_ECC_clearNIntrPending()

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.

============================================================================

Parameters

  eccMemType | ECC memory type
  memSubType | Memory subtype
  intrSrc | interrupt source
  subType | error subtype (valid for EDC types only)
  numEvents | number of pending interrupts to clear

Returns
  SDL_PASS : Success; SDL_FAIL for failures

## ◆ SDL_ECC_applicationCallbackFunction()

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 functions when ECC errors occur. NOTE: This is application supplied and not part of the SDL If not supplied by application this will result in an linker error.

============================================================================

Parameters

  eccMemType | ECC Memory Type
  errorSrc | Error source for the ECC error event.
  address | Address at which the ECC error occurred.
  ramId | RAM ID at which the ECC error occurred.
  bitErrorOffset | Offset at which the ECC error occurred.
  bitErrorGroup | group checker that reported the error (Interconnect ECC type only).

## ◆ SDL_ECC_tpccParity()

int32_t SDL_ECC_tpccParity | ( | SDL_ECC_MemType | eccMemType,
|  | uint32_t | bitValue,
|  | uint32_t | paramregvalue,
|  | uint32_t | regval
| ) |  |

Injects TPCC Parity error.

============================================================================

Parameters

  eccMemType | Memory type for ECC AGGR
  bitValue | : Bit Value to set particular register
  paramregvalue | select param register
  regval | : value to be written into param register

Returns
  SDL_PASS : Success; SDL_EFAIL for failures

## ◆ SDL_ecc_aggrGetRevision()

int32_t SDL_ecc_aggrGetRevision | ( | const SDL_ecc_aggrRegs * | pEccAggrRegs,
|  | uint32_t * | pRev
| ) |  |

SDL_ecc_aggrGetRevision

Description
This function returns the revision information for the ECC Aggregator

Arguments
pEccAggrRegs A pointer (of type SDL_ecc_aggrRegs*) to the base address of the ECC Aggregator module
pRev A pointer (of type uint32_t) to hold the rev ID value of the ECC Aggregator module Revision information. See design specification for details.

Return Value
SDL_PASS Success
SDL_EBADARGS Failure, indicate the bad input arguments

Pre Condition
None

Post Condition
None

## ◆ SDL_ecc_aggrGetNumRams()

int32_t SDL_ecc_aggrGetNumRams | ( | const SDL_ecc_aggrRegs * | pEccAggrRegs,
|  | uint32_t * | pNumRams
| ) |  |

SDL_ecc_aggrGetNumRams

Description
This function returns the number of RAMs serviced by this ECC Aggregator

Arguments
pEccAggrRegs A pointer (of type SDL_ecc_aggrRegs*) to the base address of the ECC Aggregator module
pNumRams A pointer (of type uint32_t) to hold the value of number of RAMs serviced by this ECC Aggregator

Return Value
SDL_PASS Success
SDL_EBADARGS Failure, indicate the bad input arguments

Pre Condition
None

Post Condition
None

## ◆ SDL_ecc_aggrReadEccRamReg()

int32_t SDL_ecc_aggrReadEccRamReg | ( | SDL_ecc_aggrRegs * | pEccAggrRegs,
|  | uint32_t | ramId,
|  | uint32_t | regOffset,
|  | uint32_t * | pRegVal
| ) |  |

SDL_ecc_aggrReadEccRamReg

Description
This function reads the specified ECC wrapper register from the specific ECC RAM

Arguments
pEccAggrRegs A pointer (of type SDL_ecc_aggrRegs*) to the base address of the ECC Aggregator module
ramId RAM identifier (0..SDL_ecc_aggrGetNumRams()-1)
regOffset Byte offset of the ECC wrapper register to read (must be in the range of 0x10..0x24)
pRegVal A pointer (of uint32_t) to hold the value of the specified ECC wrapper register

Return Value
SDL_PASS Success
SDL_EBADARGS Failure, indicate the arguments such as ramId and/or regOffset are invalid

Pre Condition
None

Post Condition
None

## ◆ SDL_ecc_aggrReadEccRamWrapRevReg()

int32_t SDL_ecc_aggrReadEccRamWrapRevReg | ( | SDL_ecc_aggrRegs * | pEccAggrRegs,
|  | uint32_t | ramId,
|  | uint32_t * | pRegVal
| ) |  |

SDL_ecc_aggrReadEccRamWrapRevReg

Description
This function reads the ECC wrapper revision register from the specific ECC RAM

Arguments
pEccAggrRegs A pointer (of type SDL_ecc_aggrRegs*) to the base address of the ECC Aggregator module
ramId RAM identifier (0..SDL_ecc_aggrGetNumRams()-1)

pRegVal A pointer (of type uint32_t) to hold the value of the ECC wrapper revision register

Return Value
SDL_PASS Success
SDL_EBADARGS Failure, indicate the bad input arguments

Pre Condition
None

Post Condition
None

## ◆ SDL_ecc_aggrReadEccRamCtrlReg()

int32_t SDL_ecc_aggrReadEccRamCtrlReg | ( | SDL_ecc_aggrRegs * | pEccAggrRegs,
|  | uint32_t | ramId,
|  | uint32_t * | pRegVal
| ) |  |

SDL_ecc_aggrReadEccRamCtrlReg

Description
This function reads the specified ECC wrapper control register from the specific ECC RAM

Arguments
pEccAggrRegs A pointer (of type SDL_ecc_aggrRegs*) to the base address of the ECC Aggregator module
ramId RAM identifier (0..SDL_ecc_aggrGetNumRams()-1)

pRegVal A pointer (of type uint32_t) to hold the value of the ECC control register

Return Value
SDL_PASS Success
SDL_EBADARGS Failure, indicate the bad input arguments

Pre Condition
None

Post Condition
None

## ◆ SDL_ecc_aggrReadEccRamErrCtrlReg()

int32_t SDL_ecc_aggrReadEccRamErrCtrlReg | ( | SDL_ecc_aggrRegs * | pEccAggrRegs,
|  | uint32_t | ramId,
|  | uint32_t | instSelect,
|  | uint32_t * | pRegVal
| ) |  |

SDL_ecc_aggrReadEccRamErrCtrlReg

Description
This function reads the specified ECC wrapper error control register from the specific ECC RAM

Arguments
pEccAggrRegs A pointer (of type SDL_ecc_aggrRegs*) to the base address of the ECC Aggregator module
ramId RAM identifier (0..SDL_ecc_aggrGetNumRams()-1)
instSelect Instance selector (0..1) of the specified register to read

pRegVal A pointer (of type uint32_t) to hold the value of the ECC Error control register

Return Value
SDL_PASS Success
SDL_EBADARGS Failure, indicate the bad input arguments

## ◆ SDL_ecc_aggrReadEccRamErrStatReg()

int32_t SDL_ecc_aggrReadEccRamErrStatReg | ( | SDL_ecc_aggrRegs * | pEccAggrRegs,
|  | uint32_t | ramId,
|  | uint32_t | instSelect,
|  | uint32_t * | pRegVal
| ) |  |

SDL_ecc_aggrReadEccRamErrStatReg

Description
This function reads the specified ECC wrapper error status register from the specific ECC RAM

Arguments
pEccAggrRegs A pointer (of type SDL_ecc_aggrRegs*) to the base address of the ECC Aggregator module
ramId RAM identifier (0..SDL_ecc_aggrGetNumRams()-1)
instSelect Instance selector (0..1) of the specified register to read

pRegVal A pointer (of type uint32_t) to hold the value of the ECC error status register

Return Value
SDL_PASS Success
SDL_EBADARGS Failure, indicate the bad input arguments

## ◆ SDL_ecc_aggrWriteEccRamReg()

int32_t SDL_ecc_aggrWriteEccRamReg | ( | SDL_ecc_aggrRegs * | pEccAggrRegs,
|  | uint32_t | ramId,
|  | uint32_t | regOffset,
|  | uint32_t | val
| ) |  |

SDL_ecc_aggrWriteEccRamReg

Description
This function writes a value into the specified ECC wrapper register in the specific ECC RAM

Arguments
pEccAggrRegs A pointer (of type SDL_ecc_aggrRegs*) to the base address of the ECC Aggregator module
ramId RAM identifier (0..SDL_ecc_aggrGetNumRams()-1)
regOffset Byte offset of the ECC wrapper register to write (must be in the range of 0x10..0x24)
val The 32-bit value to write into the register

Return Value
SDL_PASS Success
SDL_EBADARGS Failure, indicate the bad input arguments

Pre Condition
None

Post Condition
None

## ◆ SDL_ecc_aggrWriteEccRamCtrlReg()

int32_t SDL_ecc_aggrWriteEccRamCtrlReg | ( | SDL_ecc_aggrRegs * | pEccAggrRegs,
|  | uint32_t | ramId,
|  | uint32_t | val
| ) |  |

SDL_ecc_aggrWriteEccRamCtrlReg

Description
This function write a value into the ECC wrapper control register in the specific ECC RAM

Arguments
pEccAggrRegs A pointer (of type SDL_ecc_aggrRegs*) to the base address of the ECC Aggregator module
ramId RAM identifier (0..SDL_ecc_aggrGetNumRams()-1)
val The 32-bit value to write into the register

Return Value
SDL_PASS Success
SDL_EBADARGS Failure, indicate the bad input arguments

Pre Condition
None

Post Condition
None

## ◆ SDL_ecc_aggrWriteEccRamErrCtrlReg()

int32_t SDL_ecc_aggrWriteEccRamErrCtrlReg | ( | SDL_ecc_aggrRegs * | pEccAggrRegs,
|  | uint32_t | ramId,
|  | uint32_t | instSelect,
|  | uint32_t | val
| ) |  |

SDL_ecc_aggrWriteEccRamErrCtrlReg

Description
This function writes a value into the specified ECC wrapper error control register in the specific ECC RAM

Arguments
pEccAggrRegs A pointer (of type SDL_ecc_aggrRegs*) to the base address of the ECC Aggregator module
ramId RAM identifier (0..SDL_ecc_aggrGetNumRams()-1)
instSelect Instance selector (0..1) of the specified register to write
val The 32-bit value to write into the register

Return Value
SDL_PASS Success
SDL_EBADARGS Failure, indicate the bad input arguments

Pre Condition
None

Post Condition
None

## ◆ SDL_ecc_aggrWriteEccRamErrStatReg()

int32_t SDL_ecc_aggrWriteEccRamErrStatReg | ( | SDL_ecc_aggrRegs * | pEccAggrRegs,
|  | uint32_t | ramId,
|  | uint32_t | instSelect,
|  | uint32_t | val
| ) |  |

SDL_ecc_aggrWriteEccRamErrStatReg

Description
This function write a value into the specified ECC wrapper error status register in the specific ECC RAM

Arguments
pEccAggrRegs A pointer (of type SDL_ecc_aggrRegs*) to the base address of the ECC Aggregator module
ramId RAM identifier (0..SDL_ecc_aggrGetNumRams()-1)
instSelect Instance selector (0..1) of the specified register to write
val The 32-bit value to write into the register

Return Value
SDL_PASS Success
SDL_EBADARGS Failure, indicate the bad input arguments

Pre Condition
None

Post Condition
None

## ◆ SDL_ecc_aggrConfigEccRam()

int32_t SDL_ecc_aggrConfigEccRam | ( | SDL_ecc_aggrRegs * | pEccAggrRegs,
|  | uint32_t | ramId,
|  | bool | bEnable,
|  | bool | bEccCheck,
|  | bool | bEnableRMW
| ) |  |

SDL_ecc_aggrConfigEccRam

Description
This function is used to configure the ECC capabilities of the specified ECC RAM

Arguments
pEccAggrRegs A pointer (of type SDL_ecc_aggrRegs*) to the base address of the ECC Aggregator module
ramId RAM identifier (0..SDL_ecc_aggrGetNumRams()-1)
bEnable If true, then enable ECC generation. ECC is completely bypassed if both fEnable and fEccCheck are 0.
bEccCheck If true, then enable ECC check. ECC is completely bypassed if both fEnable and fEccCheck are 0.
bfEnableRMW If true, then enable read-modify-write on partial word writes

Return Value
SDL_PASS Success
SDL_EBADARGS Failure, indicate the bad input arguments

Pre Condition
None

Post Condition
None

## ◆ SDL_ecc_aggrVerifyConfigEccRam()

int32_t SDL_ecc_aggrVerifyConfigEccRam | ( | SDL_ecc_aggrRegs * | pEccAggrRegs,
|  | uint32_t | ramId,
|  | bool | bEnable,
|  | bool | bEccCheck,
|  | bool | bEnableRMW
| ) |  |

SDL_ecc_aggrVerifyConfigEccRam

Description
This function is used to verify the configure the ECC capabilities of the specified ECC RAM

Arguments
pEccAggrRegs A pointer (of type SDL_ecc_aggrRegs*) to the base address of the ECC Aggregator module
ramId RAM identifier (0..SDL_ecc_aggrGetNumRams()-1)
bEnable If true, then enable ECC generation. ECC is completely bypassed if both fEnable and fEccCheck are 0.
bEccCheck If true, then enable ECC check. ECC is completely bypassed if both fEnable and fEccCheck are 0.
bfEnableRMW If true, then enable read-modify-write on partial word writes

Return Value
SDL_PASS Success, indicates the configuration is successful
SDL_EFAIL Failure, indicates the expected configuration failed
SDL_EBADARGS Failure, indicate the bad input arguments

Pre Condition
SDL_ecc_aggrConfigEccRam() is called previously with the same arguments

Post Condition
None

## ◆ SDL_ecc_aggrGetEccRamErrorStatus()

int32_t SDL_ecc_aggrGetEccRamErrorStatus | ( | SDL_ecc_aggrRegs * | pEccAggrRegs,
|  | uint32_t | ramId,
|  | SDL_Ecc_AggrEccRamErrorStatusInfo * | pEccErrorStatus
| ) |  |

SDL_ecc_aggrGetEccRamErrorStatus

Description
This function is used to get the error status of the specified ECC Wrapper type RAM id

Arguments
pEccAggrRegs A pointer (of type SDL_ecc_aggrRegs*) to the base address of the ECC Aggregator module
ramId RAM identifier (0..SDL_ecc_aggrGetNumRams()-1)
pEccErrorStatus A pointer to a SDL_Ecc_AggrEccRamErrorStatusInfo structure containing returned error information

Return Value
SDL_PASS Success
SDL_EBADARGS Failure, indicate the bad input arguments

Pre Condition
None

Post Condition
None

## ◆ SDL_ecc_aggrForceEccRamError()

int32_t SDL_ecc_aggrForceEccRamError | ( | SDL_ecc_aggrRegs * | pEccAggrRegs,
|  | uint32_t | ramId,
|  | const SDL_Ecc_AggrErrorInfo * | pEccForceError
| ) |  |

SDL_ecc_aggrForceEccRamError

Description
This function is used to force an ECC error on the specified ECC Wrapper type RAM id

Arguments
pEccAggrRegs A pointer (of type SDL_ecc_aggrRegs*) to the base address of the ECC Aggregator module
ramId RAM identifier (0..SDL_ecc_aggrGetNumRams()-1)
pEccForceError A pointer to a SDL_Ecc_AggrErrorInfo structure containing force error information

Return Value
SDL_PASS Success
SDL_EBADARGS Failure, indicate the bad input arguments

Pre Condition
None

Post Condition
None

## ◆ SDL_ecc_aggrAckIntr()

int32_t SDL_ecc_aggrAckIntr | ( | SDL_ecc_aggrRegs * | pEccAggrRegs,
|  | SDL_Ecc_AggrIntrSrc | intrSrc
| ) |  |

SDL_ecc_aggrAckIntr

Description
This function is used to acknowledged a pending interrupt and to send the next interrupt to the host

Arguments
pEccAggrRegs A pointer (of type SDL_ecc_aggrRegs*) to the base address of the ECC Aggregator module
intrSrc The interrupt source (SDL_ECC_AGGR_INTR_SRC_SINGLE_BIT or SDL_ECC_AGGR_INTR_SRC_DOUBLE_BIT) to acknowledge

Return Value
SDL_PASS Success
SDL_EBADARGS Failure, indicate the bad input arguments

Pre Condition
None

Post Condition
None

## ◆ SDL_ecc_aggrIsEccRamIntrPending()

int32_t SDL_ecc_aggrIsEccRamIntrPending | ( | SDL_ecc_aggrRegs * | pEccAggrRegs,
|  | uint32_t | ramId,
|  | SDL_Ecc_AggrIntrSrc | intrSrc,
|  | bool * | pIsPend
| ) |  |

SDL_ecc_aggrIsEccRamIntrPending

Description
This function returns the pending interrupt status of the specified interrupt source from the specified ECC RAM

Arguments
pEccAggrRegs A pointer (of type SDL_ecc_aggrRegs*) to the base address of the ECC Aggregator module
ramId RAM identifier (0..SDL_ecc_aggrGetNumRams()-1)
intrSrc The interrupt source (SDL_ECC_AGGR_INTR_SRC_SINGLE_BIT, SDL_ECC_AGGR_INTR_SRC_DOUBLE_BIT, or SDL_ECC_ADDR_ERROR_TYPE_SUCCESSIVE_SINGLE_BITS)

pIsPend A Pointer (of type bool) to hold the state as below true An interrupt of the specified type is pending false An interrupt of the specified type is not pending, or the ramId and/or intrSrc arguments are invalid

Return Value
SDL_PASS Success
SDL_EBADARGS Failure, indicate the bad input arguments

Pre Condition
None

Post Condition
None

## ◆ SDL_ecc_aggrSetEccRamIntrPending()

int32_t SDL_ecc_aggrSetEccRamIntrPending | ( | SDL_ecc_aggrRegs * | pEccAggrRegs,
|  | uint32_t | ramId,
|  | SDL_Ecc_AggrIntrSrc | intrSrc
| ) |  |

SDL_ecc_aggrSetEccRamIntrPending

Description
This function is used to forceably set the pending status of the specified interrupt source on the specified ECC RAM

Arguments
pEccAggrRegs A pointer (of type SDL_ecc_aggrRegs*) to the base address of the ECC Aggregator module
ramId RAM identifier (0..SDL_ecc_aggrGetNumRams()-1)
intrSrc The interrupt source (SDL_ECC_AGGR_INTR_SRC_SINGLE_BIT, SDL_ECC_AGGR_INTR_SRC_DOUBLE_BIT, or SDL_ECC_ADDR_ERROR_TYPE_SUCCESSIVE_SINGLE_BITS)

Return Value
SDL_PASS Success
SDL_EBADARGS Failure, indicate the bad input arguments

Pre Condition
None

Post Condition
None

## ◆ SDL_ecc_aggrSetEccRamNIntrPending()

int32_t SDL_ecc_aggrSetEccRamNIntrPending | ( | SDL_ecc_aggrRegs * | pEccAggrRegs,
|  | uint32_t | ramId,
|  | SDL_Ecc_AggrIntrSrc | intrSrc,
|  | uint32_t | numEvents
| ) |  |

SDL_ecc_aggrSetEccRamNIntrPending

Description
This function is used to forceably set the pending status of the specified interrupt source on the specified ECC RAM Note that multiple events can be triggerred in one call.

Arguments
pEccAggrRegs A pointer (of type SDL_ecc_aggrRegs*) to the base address of the ECC Aggregator module
ramId RAM identifier (0..SDL_ecc_aggrGetNumRams()-1)
intrSrc The interrupt source (SDL_ECC_AGGR_INTR_SRC_SINGLE_BIT, SDL_ECC_AGGR_INTR_SRC_DOUBLE_BIT, or SDL_ECC_ADDR_ERROR_TYPE_SUCCESSIVE_SINGLE_BITS)
numEvents 1 - 3 are valid number of events to set; 0 or > 3 invalid.

Return Value
SDL_PASS Success
SDL_EBADARGS Failure, indicate the bad input arguments

Pre Condition
None

Post Condition
None

## ◆ SDL_ecc_aggrClrEccRamIntrPending()

int32_t SDL_ecc_aggrClrEccRamIntrPending | ( | SDL_ecc_aggrRegs * | pEccAggrRegs,
|  | uint32_t | ramId,
|  | SDL_Ecc_AggrIntrSrc | intrSrc
| ) |  |

SDL_ecc_aggrClrEccRamIntrPending

Description
This function is used to clear the pending status of the specified interrupt source on the specified ECC RAM

Arguments
pEccAggrRegs A pointer (of type SDL_ecc_aggrRegs*) to the base address of the ECC Aggregator module
ramId RAM identifier (0..SDL_ecc_aggrGetNumRams()-1)
intrSrc The interrupt source (SDL_ECC_AGGR_INTR_SRC_SINGLE_BIT, SDL_ECC_AGGR_INTR_SRC_DOUBLE_BIT, or SDL_ECC_ADDR_ERROR_TYPE_SUCCESSIVE_SINGLE_BITS)

Return Value
SDL_PASS Success
SDL_EBADARGS Failure, indicate the bad input arguments

Pre Condition
None

Post Condition
None

## ◆ SDL_ecc_aggrClrEccRamNIntrPending()

int32_t SDL_ecc_aggrClrEccRamNIntrPending | ( | SDL_ecc_aggrRegs * | pEccAggrRegs,
|  | uint32_t | ramId,
|  | SDL_Ecc_AggrIntrSrc | intrSrc,
|  | uint32_t | numEvents
| ) |  |

SDL_ecc_aggrClrEccRamIntrPending

Description
This function is used to clear the pending status of the specified interrupt source on the specified ECC RAM Note that multiple events can be cleared in one call.

Arguments
pEccAggrRegs A pointer (of type SDL_ecc_aggrRegs*) to the base address of the ECC Aggregator module
ramId RAM identifier (0..SDL_ecc_aggrGetNumRams()-1)
intrSrc The interrupt source (SDL_ECC_AGGR_INTR_SRC_SINGLE_BIT, SDL_ECC_AGGR_INTR_SRC_DOUBLE_BIT, or SDL_ECC_ADDR_ERROR_TYPE_SUCCESSIVE_SINGLE_BITS)

Return Value
SDL_PASS Success
SDL_EBADARGS Failure, indicate the bad input arguments

Pre Condition
None

Post Condition
None

## ◆ SDL_ecc_aggrIsIntrPending()

int32_t SDL_ecc_aggrIsIntrPending | ( | const SDL_ecc_aggrRegs * | pEccAggrRegs,
|  | uint32_t | ramId,
|  | SDL_Ecc_AggrIntrSrc | intrSrc,
|  | bool * | pIsPend
| ) |  |

SDL_ecc_aggrIsIntrPending

Description
This function returns the pending interrupt status for the specified ECC interrupt source from the ECC RAM specified by ramId.

Arguments
pEccAggrRegs A pointer (of type SDL_ecc_aggrRegs*) to the base address of the ECC Aggregator module
ramId RAM identifier (0..SDL_ecc_aggrGetNumRams()-1)
intrSrc The interrupt source (SDL_ECC_AGGR_INTR_SRC_SINGLE_BIT or SDL_ECC_AGGR_INTR_SRC_DOUBLE_BIT; valid only for the SDL_ecc_aggrIsIntrPending function)

pIsPend A pointer (of type bool) to hold the status as below true An interrupt of the specified type is pending false An interrupt of the specified type is not pending, or the ramId and/or intrSrc arguments are invalid

Return Value
SDL_PASS Success
SDL_EBADARGS Failure, indicate the bad input arguments

Pre Condition
None

Post Condition
None

## ◆ SDL_ecc_aggrIsAnyIntrPending()

int32_t SDL_ecc_aggrIsAnyIntrPending | ( | const SDL_ecc_aggrRegs * | pEccAggrRegs,
|  | uint32_t | ramId,
|  | bool * | pIsPend
| ) |  |

SDL_ecc_aggrIsAnyIntrPending

Description
This function returns the pending interrupt status for any interrupt source from the ECC RAM specified by ramId.

Arguments
pEccAggrRegs A pointer (of type SDL_ecc_aggrRegs*) to the base address of the ECC Aggregator module
ramId RAM identifier (0..SDL_ecc_aggrGetNumRams()-1)

Return Value
SDL_PASS Success
SDL_EBADARGS Failure, indicate the bad input arguments

Pre Condition
None

Post Condition
None

## ◆ SDL_ecc_aggrEnableIntr()

int32_t SDL_ecc_aggrEnableIntr | ( | const SDL_ecc_aggrRegs * | pEccAggrRegs,
|  | uint32_t | ramId,
|  | SDL_Ecc_AggrIntrSrc | intrSrc
| ) |  |

SDL_ecc_aggrEnableIntr

Description
This function enables the interrupt for the specified interrupt source on the RAM specified by ramId

Arguments
pEccAggrRegs A pointer (of type SDL_ecc_aggrRegs*) to the base address of the ECC Aggregator module
ramId RAM identifier (0..SDL_ecc_aggrGetNumRams()-1)
intrSrc The interrupt source (SDL_ECC_AGGR_INTR_SRC_SINGLE_BIT or SDL_ECC_AGGR_INTR_SRC_DOUBLE_BIT)

Return Value
SDL_PASS Success
SDL_EBADARGS Failure, indicate the bad input arguments

Pre Condition
None

Post Condition
None

## ◆ SDL_ecc_aggrDisableIntr()

int32_t SDL_ecc_aggrDisableIntr | ( | const SDL_ecc_aggrRegs * | pEccAggrRegs,
|  | uint32_t | ramId,
|  | SDL_Ecc_AggrIntrSrc | intrSrc
| ) |  |

SDL_ecc_aggrDisableIntr

Description
This function disables the interrupt for the specified interrupt source on the RAM specified by ramId

Arguments
pEccAggrRegs A pointer (of type SDL_ecc_aggrRegs*) to the base address of the ECC Aggregator module
ramId RAM identifier (0..SDL_ecc_aggrGetNumRams()-1)
intrSrc The interrupt source (SDL_ECC_AGGR_INTR_SRC_SINGLE_BIT or SDL_ECC_AGGR_INTR_SRC_DOUBLE_BIT)

Return Value
SDL_PASS Success
SDL_EBADARGS Failure, indicate the bad input arguments

Pre Condition
None

Post Condition
None

## ◆ SDL_ecc_aggrEnableAllIntr()

int32_t SDL_ecc_aggrEnableAllIntr | ( | const SDL_ecc_aggrRegs * | pEccAggrRegs,
|  | uint32_t | ramId
| ) |  |

SDL_ecc_aggrEnableAllIntr

Description
This function enables the interrupts for all of the available interrupt sources on the RAM specified by ramId

Arguments
pEccAggrRegs A pointer (of type SDL_ecc_aggrRegs*) to the base address of the ECC Aggregator module
ramId RAM identifier (0..SDL_ecc_aggrGetNumRams()-1)

Return Value
SDL_PASS Success
SDL_EBADARGS Failure, indicates the bad input arguments

Pre Condition
None

Post Condition
None

## ◆ SDL_ecc_aggrDisableAllIntr()

int32_t SDL_ecc_aggrDisableAllIntr | ( | const SDL_ecc_aggrRegs * | pEccAggrRegs,
|  | uint32_t | ramId
| ) |  |

SDL_ecc_aggrDisableAllIntr

Description
This function disables the interrupts for all of the available interrupt sources on the RAM specified by ramId

Arguments
pEccAggrRegs A pointer (of type SDL_ecc_aggrRegs*) to the base address of the ECC Aggregator module
ramId RAM identifier (0..SDL_ecc_aggrGetNumRams()-1)

Return Value
SDL_PASS Success
SDL_EBADARGS Failure, indicates the bad input arguments

Pre Condition
None

Post Condition
None

## ◆ SDL_ecc_aggrEnableIntrs()

int32_t SDL_ecc_aggrEnableIntrs | ( | const SDL_ecc_aggrRegs * | pEccAggrRegs,
|  | SDL_Ecc_AggrIntrSrc | intrSrc
| ) |  |

SDL_ecc_aggrEnableIntrs

Description
This function enables the interrupt for the specified interrupt source on all ECC RAMs serviced by this aggregator

Arguments
pEccAggrRegs A pointer (of type SDL_ecc_aggrRegs*) to the base address of the ECC Aggregator module
intrSrc The interrupt source (SDL_ECC_AGGR_INTR_SRC_SINGLE_BIT or SDL_ECC_AGGR_INTR_SRC_DOUBLE_BIT)

Return Value
SDL_PASS Success
SDL_EBADARGS Failure, indicates the bad input arguments

Pre Condition
None

Post Condition
None

## ◆ SDL_ecc_aggrDisableIntrs()

int32_t SDL_ecc_aggrDisableIntrs | ( | const SDL_ecc_aggrRegs * | pEccAggrRegs,
|  | SDL_Ecc_AggrIntrSrc | intrSrc
| ) |  |

SDL_ecc_aggrDisableIntrs

Description
This function disables the interrupts for the specified interrupt source on all ECC RAMs serviced by this aggregator

Arguments
pEccAggrRegs A pointer (of type SDL_ecc_aggrRegs*) to the base address of the ECC Aggregator module
intrSrc The interrupt source (SDL_ECC_AGGR_INTR_SRC_SINGLE_BIT or SDL_ECC_AGGR_INTR_SRC_DOUBLE_BIT)

Return Value
SDL_PASS Success
SDL_EBADARGS Failure, indicates the bad input arguments

Pre Condition
None

Post Condition
None

## ◆ SDL_ecc_aggrEnableAllIntrs()

int32_t SDL_ecc_aggrEnableAllIntrs | ( | const SDL_ecc_aggrRegs * | pEccAggrRegs | ) |

SDL_ecc_aggrEnableAllIntrs

Description
This function enables the interrupts for all of the available interrupt sources on all ECC RAMs serviced by this aggregator

Arguments
pEccAggrRegs A pointer (of type SDL_ecc_aggrRegs*) to the base address of the ECC Aggregator module

Return Value
SDL_PASS Success
SDL_EBADARGS Failure, indicates the bad input arguments

Pre Condition
None

Post Condition
None

## ◆ SDL_ecc_aggrDisableAllIntrs()

int32_t SDL_ecc_aggrDisableAllIntrs | ( | const SDL_ecc_aggrRegs * | pEccAggrRegs | ) |

SDL_ecc_aggrDisableAllIntrs

Description
This function disables the interrupts for all of the available interrupt sources on all ECC RAMs serviced by this aggregator

Arguments
pEccAggrRegs A pointer (of type SDL_ecc_aggrRegs*) to the base address of the ECC Aggregator module

Return Value
SDL_PASS Success
SDL_EBADARGS Failure, indicates the bad input arguments

Pre Condition
None

Post Condition
None

## ◆ SDL_ecc_aggrReadStaticRegs()

int32_t SDL_ecc_aggrReadStaticRegs | ( | SDL_ecc_aggrRegs * | pEccAggrRegs,
|  | SDL_ECC_staticRegs * | pEccAggrStaticRegs
| ) |  |

SDL_ecc_aggrReadStaticRegs

Description
This function reads the static registers for ECC aggregator

Arguments
pEccAggrRegs A pointer (of type SDL_ecc_aggrRegs*) to the base address of the ECC Aggregator module
pEccAggrStaticRegs A pointer (of type SDL_ECC_staticRegs*) to hold the static register values

Return Value
SDL_PASS Success
SDL_EBADARGS Failure, indicates the bad input arguments

Pre Condition
None

Post Condition
None

## ◆ SDL_ecc_aggrIntrEnableCtrl()

int32_t SDL_ecc_aggrIntrEnableCtrl | ( | SDL_ecc_aggrRegs * | pEccAggrRegs,
|  | const SDL_ecc_aggrEnableCtrl * | pEnableCtrl
| ) |  |

SDL_ecc_aggrIntrEnableCtrl

Description
This function reads the static registers for ECC aggregator

Arguments
pEccAggrRegs A pointer (of type SDL_ecc_aggrRegs*) to the base address of the ECC Aggregator module
pEnableCtrl A pointer (of type SDL_ecc_aggrEnableCtrl*) to hold the interrupt enable control values

Return Value
SDL_PASS Success
SDL_EBADARGS Failure, indicates the bad input arguments

Pre Condition
None

Post Condition
None

## ◆ SDL_ecc_aggrIntrStatusCtrl()

int32_t SDL_ecc_aggrIntrStatusCtrl | ( | SDL_ecc_aggrRegs * | pEccAggrRegs,
|  | const SDL_ecc_aggrStatusCtrl * | pStatusCtrl
| ) |  |

SDL_ecc_aggrIntrStatusCtrl

Description
This function writes the ECC Aggregator Status registers for timeout and parity count values

Arguments
pEccAggrRegs A pointer (of type SDL_ecc_aggrRegs*) to the base address of the ECC Aggregator module
pStatusCtrl A pointer (of type SDL_ecc_aggrStatusCtrl*) to hold the interrupt status control and count values

Return Value
SDL_PASS Success
SDL_EBADARGS Failure, indicates the bad input arguments

Pre Condition
None

Post Condition
None

## ◆ SDL_ecc_aggrIntrGetStatus()

int32_t SDL_ecc_aggrIntrGetStatus | ( | const SDL_ecc_aggrRegs * | pEccAggrRegs,
|  | SDL_ecc_aggrStatusCtrl * | pStatusCtrl
| ) |  |

SDL_ecc_aggrIntrGetStatus

Description
This function reads the ECC Aggregator Status registers for timeout and parity count values

Arguments
pEccAggrRegs A pointer (of type SDL_ecc_aggrRegs*) to the base address of the ECC Aggregator module
pStatusCtrl A pointer (of type SDL_ecc_aggrStatusCtrl*) to read the timeout and parity count values

Return Value
SDL_PASS Success
SDL_EBADARGS Failure, indicates the bad input arguments

Pre Condition
None

Post Condition
None