SDL ECC SEC

Introduction

This example takes an aggregator index as input from the user and performs single bit error test for the corresponding aggregator. It involves the following steps:

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

  • Triggering of ECC events for all the RAM IDs, including Interconnect type and Wrapper type

  • Capturing ESM interrupt and ECC error details in the application callbacks for subsequent reporting, including the interrupt level, ESM source, RAM ID, and bit error information

Aggregators Supported

The following aggregators can be tested using this example.

Aggregator Index

ECC Aggregator

0

SDL_WKUP_R5FSS0_PULSAR_UL_CPU0_ECC_AGGR

1

SDL_DSS_DSI0_K3_DSS_DSI_DSI_TOP_ECC_AGGR_SYS

2

SDL_PSRAMECC0_PSRAM256X32E_ECC_AGGR

3

SDL_PSRAMECC1_PSRAM256X32E_ECC_AGGR

4

SDL_MSRAM_64K0_MSRAM2KX256E_ECC_AGGR

5

SDL_WKUP_ECC_AGGR2

6

SDL_ECC_AGGR0_SAM67_SEC_HSM_ECC_AGGR

7

SDL_DMASS1_DMSS_CSI_AM62A_ECCAGGR

8

SDL_MCU_MSRAM_256K1_MSRAM32KX64E_ECC_AGGR

9

SDL_WKUP_VTM0_K3VTM_N16FFC_ECCAGGR

10

SDL_WKUP_ECC_AGGR1

11

SDL_FSS0_FSS_UL_OSPI0_OSPI_WRAP_ECC_AGGR

12

SDL_MCU_R5FSS0_PULSAR_ULS_CPU0_ECC_AGGR

13

SDL_GICSS0_GIC500SS_1_4_ECC_AGGR

14

SDL_CPSW0_CPSW_3GUSS_AM67_CORE_ECC_CPSW_ECC_AGGR

15

SDL_CSI_RX_IF0_CSI_RX_IF_ECC_AGGR

16

SDL_PSCSS0_SAM67_MAIN_PSC_WRAP_ECC_AGGR

17

SDL_MMCSD2_EMMCSD4SS_ECC_AGGR_RXMEM

18

SDL_MMCSD2_EMMCSD4SS_ECC_AGGR_TXMEM

19

SDL_SA3_SS0_SA3SS_AM62A_DMSS_ECCAGGR

20

SDL_SA3_SS0_SA3SS_AM62A_SA_UL_ECC_AGGR

21

SDL_MCU_MCAN1_MCANSS_MSGMEM_WRAP_ECC_AGGR

22

SDL_WKUP_ECC_AGGR0

23

SDL_DMASS0_ECC_AGGR_0

24

SDL_PDMA0_SAM67_PDMA_SPI_ECCAGGR

25

SDL_MCU_ECC_AGGR1_SAM62A_MCU_PULSAR_UL_ECC_AGGR

26

SDL_USB1_USB2SS_16FFC_USB2SS_CORE_ECC_AGGR

27

SDL_USB0_USB2SS_16FFC_USB2SS_CORE_ECC_AGGR

28

SDL_MCU_MSRAM_256K0_MSRAM32KX64E_ECC_AGGR

29

SDL_MMCSD1_EMMCSD4SS_ECC_AGGR_RXMEM

30

SDL_MMCSD1_EMMCSD4SS_ECC_AGGR_TXMEM

31

SDL_WKUP_PSRAMECC_8K0_PSRAM8KX32E_ECC_AGGR

32

SDL_PDMA1_SAM62_PDMA_UART_ECCAGGR

33

SDL_MCU_ECC_AGGR0

34

SDL_MCAN1_MCANSS_MSGMEM_WRAP_ECC_AGGR

35

SDL_MCAN0_MCANSS_MSGMEM_WRAP_ECC_AGGR

36

SDL_MMCSD0_EMMC8SS_16FFC_ECC_AGGR_TXMEM

37

SDL_MMCSD0_EMMC8SS_16FFC_ECC_AGGR_RXMEM

38

SDL_COMPUTE_CLUSTER0_SAM62A_A53_512KB_WRAP_A53_DUAL_WRAP_CBA_WRAP_A53_DUAL_WRAP_CBA_COREPAC_ECC_AGGR_CORE0

39

SDL_COMPUTE_CLUSTER0_SAM62A_A53_512KB_WRAP_A53_DUAL_WRAP_CBA_WRAP_A53_DUAL_WRAP_CBA_COREPAC_ECC_AGGR_CORE1

40

SDL_COMPUTE_CLUSTER0_SAM62A_A53_512KB_WRAP_A53_DUAL_WRAP_CBA_WRAP_A53_DUAL_WRAP_CBA_COREPAC_ECC_AGGR_CORE2

41

SDL_COMPUTE_CLUSTER0_SAM62A_A53_512KB_WRAP_A53_DUAL_WRAP_CBA_WRAP_A53_DUAL_WRAP_CBA_COREPAC_ECC_AGGR_CORE3

42

SDL_COMPUTE_CLUSTER0_SAM62A_A53_512KB_WRAP_A53_DUAL_WRAP_CBA_WRAP_A53_DUAL_WRAP_CBA_COREPAC_ECC_AGGR_COREPAC

43

SDL_MCU_MCAN0_MCANSS_MSGMEM_WRAP_ECC_AGGR

Supported Combinations

Parameter

Value

CPU + OS

mcu-r5fss0-0 nortos

Toolchain

ti-arm-clang

Board

am62px-sk

Example folder

examples/sdl/ecc_sec/

Steps to Run the Example

Sample Output

Shown below is a sample output when the application is run for a couple of aggregators,

[MCU_R5FSS0_0]
ECC Example Application

ECC_Test_init: Init MCU ESM complete

ECC_Test_init: Init MAIN ESM complete

ECC_Test_init: ECC Callback Init complete for MCU ESM

ECC_Test_init: ECC Callback Init complete for Main ESM

ECC SDL API tests: starting

Refer the User Guide for the aggregator information

Select the memory to test...
11

...selected 11

ecc_aggrtest: [11] single bit error self test: SDL_FSS0_FSS_UL_OSPI0_OSPI_WRAP_ECC_AGGR starting




ECC_Memory_init: [11] SDL_FSS0_FSS_UL_OSPI0_OSPI_WRAP_ECC_AGGR ECC Init complete

Inject test started not accessable RamId 0 starting

Injected ECC error and got ESM Interrupt

ESM Call back function called : instType 0x2, intType 0x1, grpChannel 0x0, index 0xb, intSrc 0xb 

High Priority Interrupt Executed

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

Select the memory to test...
29

...selected 29

ecc_aggrtest: [29] single bit error self test: SDL_MMCSD1_EMMCSD4SS_ECC_AGGR_RXMEM starting




ECC_Memory_init: [29] SDL_MMCSD1_EMMCSD4SS_ECC_AGGR_RXMEM ECC Init complete

Inject test started not accessable RamId 0 starting

Injected ECC error and got ESM Interrupt

ESM Call back function called : instType 0x2, intType 0x1, grpChannel 0x1, index 0x1a, intSrc 0x3a 

High Priority Interrupt Executed

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