5.6. ECC Safety Example

5.6.1. Introduction

This example shows setup and usage of some ECC Aggregators for a few events in the Main domain. It shows the following:

  • Setup of an ESM application callback to receive Single Error Correction (SEC) and Double Error Detection (DED) events and setup of ECC Aggregators in general

  • Triggering of ECC events for a small number of RAM IDs, including Interconnect type and Wrapper type

  • Printing out error information within the ECC callback upon reception of ECC events

This ECC example application shows basic examples of receiving interrupts from Main ESM, as well as gathering more details about these ECC events.

The following use cases are implemented in this example:

5.6.2. Use Cases

Use Case

Description

ESM

ECC Aggregator

ECC RAM ID

RAM ID Type

UC-1

Single DED error on Main ESM for wrapper RAM ID type

ESM0

SDL_ECC_MEMTYPE_MAIN_MSMC_AGGR0

SDL_COMPUTE_CLUSTER0_MSMC_ECC_AGGR0_CLEC_J7ES_CLEC_EDC_CTRL_BUSECC_RAM_ID

Wrapper

UC-2

Single SEC error on Main ESM for wrapper RAM ID type

ESM0

SDL_ECC_MEMTYPE_MAIN_MSMC_AGGR0

SDL_COMPUTE_CLUSTER0_MSMC_ECC_AGGR0_MSMC_MMR_BUSECC_RAM_ID

Wrapper

UC-3

Parity error injection on Main ESM for interconnect RAM ID type

ESM0

SDL_ECC_MEMTYPE_MAIN_MSMC_AGGR0

SDL_COMPUTE_CLUSTER0_MSMC_ECC_AGGR0_VBUSP_CFG_DSP4_P2P_DST_BUSECC_RAM_ID

Interconnect

5.6.3. Example Details

The example should be loaded to the hardware using the Secondary Boot Loader (SBL) from the SDK.

Example Name

Location

Build Command

ecc_app

[sdl_install_dir]/examples/ecc/

make ecc_app PROFILE=release

5.6.4. Expected Output

ECC Example Application
ECCC_Example_init: Init MAIN ESM complete

SDTF_init: MCU MSMC ECC Init complete

ECC_Example_init: ECC Callback Init complete for Main ESM



ESM Safety Example tests: starting

 MSMC Double bit error inject Example test UC-1: starting
  ESM Call back function called : instType 0x3, intType 0x2, grpChannel 0x1, index 0x10, intSrc 0x30
  Take action
 Low Priority Interrupt Executed

  ECC Error Call back function called : eccMemType 93, errorSrc 0x2, ramId 107, bitErrorOffset 0x00000000, bitErrorGroup 0


 MSMC Double bit error inject test: Subtype 0x6b test complete

 Waiting for ESM Interrupt



UC-1: Got Low priority ESM Interrupt



 MSMC Double bit error inject Example test UC-2: starting
  ESM Call back function called : instType 0x3, intType 0x1, grpChannel 0x1, index 0x11, intSrc 0x31
  Take action
 High Priority Interrupt Executed

  ECC Error Call back function called : eccMemType 93, errorSrc 0x1, ramId 20, bitErrorOffset 0x00000000, bitErrorGroup 0


 MSMC Double bit error inject test: Subtype 0x14 test complete

 Waiting for ESM Interrupt



 UC-2: Got High priority ESM Interrupt





**** MSMC Memory Parity TEST ****


  ESM Call back function called : instType 0x3, intType 0x2, grpChannel 0x1, index 0x10, intSrc 0x30
  Take action
 Low Priority Interrupt Executed

  ECC Error Call back function called : eccMemType 93, errorSrc 0x2, ramId 105, bitErrorOffset 0x00000000, bitErrorGroup 3


 MSMC_BUSECC_RAM Single bit error self test: Subtype 0x69 test complete

 Waiting for ESM Interrupt



 Memory Parity Error Test Complete



 ECC Safety Example tests: success
 ECC UC-1 and UC-2 Test
All Use_Cases have passed.
ecc_main.c:254:ECC_Example_app:PASS

-----------------------
1 Tests 0 Failures 0 Ignored
OK

5.6.5. Reference

ECC User Guide