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_C7X256V1_ECC_AGGR

1

SDL_WKUP_VTM0_K3VTM_N16FFC_ECCAGGR

2

SDL_PSRAMECC0_PSRAM256X32E_ECC_AGGR

3

SDL_IDOM0_PULSAR_PLL_ECC_AGGR10

4

SDL_IDOM0_PULSAR_PLL_ECC_AGGR8

5

SDL_MSRAM_1MB4_MSRAM32KX256E_ECC_AGGR

6

SDL_WKUP_R5FSS0_PULSAR_UL_CPU0_ECC_AGGR

7

SDL_FSS1_FSS_HB_WRAP_ECC_AGGR

8

SDL_FSS1_FSS_OSPI0_OSPI_WRAP_ECC_AGGR

9

SDL_FSS1_FSS_OSPI1_OSPI_WRAP_ECC_AGGR

10

SDL_ECC_AGGR3_AM275_R5_MAIN_IP_ECC_AGGR

11

SDL_SA3_SS0_SA3SS_AM62A_DMSS_ECCAGGR

12

SDL_SA3_SS0_SA3SS_AM62A_SA_UL_ECC_AGGR

13

SDL_MSRAM_1MB2_MSRAM32KX256E_ECC_AGGR

14

SDL_MSRAM_1MB1_MSRAM32KX256E_ECC_AGGR

15

SDL_C7X256V0_ECC_AGGR

16

SDL_MSRAM_1MB0_MSRAM32KX256E_ECC_AGGR

17

SDL_CPSW0_CPSW_3GUSS_AM62L_CORE_ECC_CPSW_ECC_AGGR

18

SDL_MMCSD0_EMMCSD8SS_ECC_AGGR_TXMEM

19

SDL_MMCSD0_EMMCSD8SS_ECC_AGGR_RXMEM

20

SDL_PDMA4_AM275_PDMA_SPI1_ECCAGGR

21

SDL_ECC_AGGR0_AM275_SEC_HSM_ECC_AGGR

22

SDL_IDOM0_MAIN_PLL_ECC_AGGR6_IDOM0_MAIN_PLL_ECC_AGGR

23

SDL_IDOM0_MAIN_PLL_ECC_AGGR4_IDOM0_MAIN_PLL_ECC_AGGR

24

SDL_SMS0_SMS_HSM_ECC

25

SDL_SMS0_SMS_TIFS_ECC

26

SDL_FSS0_FSS_OF_UL_FSAS_FOTA_FSS_OF_UL_FOTA_ACC_ECC_AGGR

27

SDL_FSS0_FSS_OF_UL_OSPI0_OSPI_WRAP_ECC_AGGR

28

SDL_MSRAM_1MB3_MSRAM32KX256E_ECC_AGGR

29

SDL_USB0_USB2SS_16FFC_USB2SS_CORE_ECC_AGGR

30

SDL_WKUP_PSRAMECC_8K0_PSRAM8KX32E_ECC_AGGR

31

SDL_MLB0_MLBSS2P0_MLBDIM_WRAP_ECC_AGGR

32

SDL_MCAN0_MCANSS_MSGMEM_WRAP_ECC_AGGR

33

SDL_ADC12FCC0_ADC12FC_16FFC_ADC12_CORE_FIFO_RAM_ECC_AGGR

34

SDL_R5FSS0_PULSAR_SL_CPU0_ECC_AGGR

35

SDL_R5FSS0_PULSAR_SL_CPU1_ECC_AGGR

36

SDL_R5FSS1_PULSAR_SL_CPU0_ECC_AGGR

37

SDL_R5FSS1_PULSAR_SL_CPU1_ECC_AGGR

38

SDL_WKUP_ECC_AGGR1_AM275_DM_MCU_ECC_AGGR

39

SDL_WKUP_ECC_AGGR0_AM275_DM_DM_ECC_AGGR

40

SDL_PDMA1_SAM62_PDMA_UART_ECCAGGR

41

SDL_MSRAM_1MB5_MSRAM32KX256E_ECC_AGGR

42

SDL_PDMA0_SAM67_PDMA_SPI_ECCAGGR

43

SDL_IDOM1_MAIN_PLL_ECC_AGGR5_IDOM1_MAIN_PLL_ECC_AGGR

44

SDL_IDOM1_MAIN_PLL_ECC_AGGR7_IDOM1_MAIN_PLL_ECC_AGGR

45

SDL_MCAN3_MCANSS_MSGMEM_WRAP_ECC_AGGR

46

SDL_MCAN2_MCANSS_MSGMEM_WRAP_ECC_AGGR

47

SDL_MCAN1_MCANSS_MSGMEM_WRAP_ECC_AGGR

48

SDL_DMASS0_ECC_AGGR_0

49

SDL_MCAN4_MCANSS_MSGMEM_WRAP_ECC_AGGR

50

SDL_IDOM1_PULSAR_PLL_ECC_AGGR9

51

SDL_IDOM1_PULSAR_PLL_ECC_AGGR11

52

SDL_WKUP_ECC_AGGR2_AM275_WKUP_SAFE_ECC_AGGR

53

SDL_WKUP_PSRAM2KX32E0_PSRAM2KX32E_ECC_AGGR

54

SDL_ECC_AGGR2_AM275_MAIN_SYS_IP_ECC_AGGR

Supported Combinations

Parameter

Value

CPU + OS

r5fss0-0 nortos

Toolchain

ti-arm-clang

Board

am275x-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…

5

…selected 5

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

ECC_Memory_init: [5] SDL_MSRAM_1MB4_MSRAM32KX256E_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 0x6, index 0x17, intSrc 0xd7

High Priority Interrupt Executed

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

Select the memory to test… 8

…selected 8

ecc_aggrtest: [8] single bit error self test: SDL_FSS1_FSS_OSPI0_OSPI_WRAP_ECC_AGGR starting

ECC_Memory_init: [8] SDL_FSS1_FSS_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 0xc, intSrc 0xc

High Priority Interrupt Executed

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

Select the memory to test…