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_PSCSS0_SAM62A_MAIN_PSC_WRAP_ECC_AGGR

1

SDL_PSRAMECC0_PSRAM256X32E_ECC_AGGR

2

SDL_PSRAMECC1_PSRAM256X32E_ECC_AGGR

3

SDL_MSRAM_64K0_MSRAM2KX256E_ECC_AGGR

4

SDL_WKUP_ECC_AGGR1_SAM62A_DM_MCU_ECC_AGGR

5

SDL_DMASS1_DMSS_CSI_AM62A_ECCAGGR

6

SDL_MCU_MSRAM_256K1_MSRAM32KX64E_ECC_AGGR

7

SDL_WKUP_VTM0_K3VTM_N16FFC_ECCAGGR

8

SDL_FSS0_FSS_UL_OSPI0_OSPI_WRAP_ECC_AGGR

9

SDL_MCU_R5FSS0_PULSAR_ULS_CPU0_ECC_AGGR

10

SDL_CPSW0_CPSW_3GUSS_CORE_ECC_CPSW_ECC_AGGR

11

SDL_MCU_MSRAM_256K0_MSRAM32KX64E_ECC_AGGR

12

SDL_GICSS0_GIC500SS_1_4_ECC_AGGR

13

SDL_ECC_AGGR1_SAM62A_SEC_MCU_ECC_AGGR

14

SDL_DMASS0_DMSS_AM62A_ECCAGGR

15

SDL_MMCSD1_EMMCSD4SS_ECC_AGGR_RXMEM

16

SDL_MMCSD1_EMMCSD4SS_ECC_AGGR_TXMEM

17

SDL_MMCSD2_EMMCSD4SS_ECC_AGGR_RXMEM

18

SDL_MMCSD2_EMMCSD4SS_ECC_AGGR_TXMEM

19

SDL_MMCSD0_EMMCSD8SS_ECC_AGGR_TXMEM

20

SDL_MMCSD0_EMMCSD8SS_ECC_AGGR_RXMEM

21

SDL_MCU_ECC_AGGR0_SAM62A_MCU_MCU_ECC_AGGR

22

SDL_SA3_SS0_SA3SS_AM62A_DMSS_ECCAGGR

23

SDL_SA3_SS0_SA3SS_AM62A_SA_UL_ECC_AGGR

24

SDL_WKUP_ECC_AGGR2_SAM62A_WKUP_SAFE_ECC_AGGR

25

SDL_WKUP_R5FSS0_PULSAR_UL_CPU0_ECC_AGGR

26

SDL_SMS0_SMS_HSM_ECC

27

SDL_SMS0_SMS_TIFS_ECC

28

SDL_MCU_ECC_AGGR1_SAM62A_MCU_PULSAR_UL_ECC_AGGR

29

SDL_C7X256V0_SAM62A_C7XV_WRAP_ECC_AGGR

30

SDL_USB1_USB2SS_16FFC_USB2SS_CORE_ECC_AGGR

31

SDL_USB0_USB2SS_16FFC_USB2SS_CORE_ECC_AGGR

32

SDL_WKUP_PSRAMECC_8K0_PSRAM8KX32E_ECC_AGGR

33

SDL_PDMA0_SAM62_PDMA_SPI_ECCAGGR

34

SDL_WKUP_ECC_AGGR0_SAM62A_DM_DM_ECC_AGGR

35

SDL_PDMA1_SAM62_PDMA_UART_ECCAGGR

36

SDL_MCAN0_MCANSS_MSGMEM_WRAP_ECC_AGGR

37

SDL_COMPUTE_CLUSTER0_SAM62A_A53_512KB_WRAP_A53_DUAL_WRAP_CBA_WRAP_A53_DUAL_WRAP_CBA_COREPAC_ECC_AGGR_CORE0

38

SDL_COMPUTE_CLUSTER0_SAM62A_A53_512KB_WRAP_A53_DUAL_WRAP_CBA_WRAP_A53_DUAL_WRAP_CBA_COREPAC_ECC_AGGR_CORE1

39

SDL_COMPUTE_CLUSTER0_SAM62A_A53_512KB_WRAP_A53_DUAL_WRAP_CBA_WRAP_A53_DUAL_WRAP_CBA_COREPAC_ECC_AGGR_CORE2

40

SDL_COMPUTE_CLUSTER0_SAM62A_A53_512KB_WRAP_A53_DUAL_WRAP_CBA_WRAP_A53_DUAL_WRAP_CBA_COREPAC_ECC_AGGR_CORE3

41

SDL_COMPUTE_CLUSTER0_SAM62A_A53_512KB_WRAP_A53_DUAL_WRAP_CBA_WRAP_A53_DUAL_WRAP_CBA_COREPAC_ECC_AGGR_COREPAC

42

SDL_MCU_MCAN0_MCANSS_MSGMEM_WRAP_ECC_AGGR

43

SDL_MCU_MCAN1_MCANSS_MSGMEM_WRAP_ECC_AGGR

44

SDL_ECC_AGGR0_SAM62A_SEC_HSM_ECC_AGGR

Supported Combinations

Parameter

Value

CPU + OS

mcu-r5fss0-0 nortos

Toolchain

ti-arm-clang

Board

am62dx-evm

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,

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

Select the memory to test…

0 …selected 0

ecc_aggrtest: [0] single bit error self test: SDL_PSCSS0_SAM62A_MAIN_PSC_WRAP_ECC_AGGR starting

ECC_Memory_init: [0] SDL_PSCSS0_SAM62A_MAIN_PSC_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 0x16, intSrc 0x16

High Priority Interrupt Executed

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

Select the memory to test…

5 …selected 5

ecc_aggrtest: [5] single bit error self test: SDL_DMASS1_DMSS_CSI_AM62A_ECCAGGR starting

ECC_Memory_init: [5] SDL_DMASS1_DMSS_CSI_AM62A_ECCAGGR 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 0x1f, intSrc 0x3f

High Priority Interrupt Executed

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

Inject test started not accessable RamId 1 starting

Injected ECC error and got ESM Interrupt

ESM Call back function called : instType 0x2, intType 0x1, grpChannel 0x1, index 0x1f, intSrc 0x3f

High Priority Interrupt Executed

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

Inject test started not accessable RamId 2 starting

Injected ECC error and got ESM Interrupt

ESM Call back function called : instType 0x2, intType 0x1, grpChannel 0x1, index 0x1f, intSrc 0x3f

High Priority Interrupt Executed

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

Inject test started not accessable RamId 3 starting

Injected ECC error and got ESM Interrupt

ESM Call back function called : instType 0x2, intType 0x1, grpChannel 0x1, index 0x1f, intSrc 0x3f

High Priority Interrupt Executed

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

Inject test started not accessable RamId 4 starting

Injected ECC error and got ESM Interrupt

ESM Call back function called : instType 0x2, intType 0x1, grpChannel 0x1, index 0x1f, intSrc 0x3f

High Priority Interrupt Executed

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

Inject test started not accessable RamId 5 starting

Injected ECC error and got ESM Interrupt

ESM Call back function called : instType 0x2, intType 0x1, grpChannel 0x1, index 0x1f, intSrc 0x3f

High Priority Interrupt Executed

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

Inject test started not accessable RamId 6 starting

Injected ECC error and got ESM Interrupt

ESM Call back function called : instType 0x2, intType 0x1, grpChannel 0x1, index 0x1f, intSrc 0x3f

High Priority Interrupt Executed

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

Inject test started not accessable RamId 7 starting

Injected ECC error and got ESM Interrupt

ESM Call back function called : instType 0x2, intType 0x1, grpChannel 0x1, index 0x1f, intSrc 0x3f

High Priority Interrupt Executed

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

Inject test started not accessable RamId 8 starting

Injected ECC error and got ESM Interrupt

ESM Call back function called : instType 0x2, intType 0x1, grpChannel 0x1, index 0x1f, intSrc 0x3f

High Priority Interrupt Executed

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

Select the memory to test…