AM275 FreeRTOS SDK  11.01.00
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
  • Printing out error information within the ECC callback upon reception of ECC events

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...
1
...selected 1
ecc_aggrtest: [1] single bit error self test: SDL_WKUP_VTM0_K3VTM_N16FFC_ECCAGGR starting
ECC_Memory_init: [1] SDL_WKUP_VTM0_K3VTM_N16FFC_ECCAGGR ECC Init complete
Self test started RamId 0 starting
Self test started RamId 0 completed
Self test started RamId 1 starting
Self test started RamId 1 completed
Self test started RamId 2 starting
Self test started RamId 2 completed
Self test started RamId 3 starting
Self test started RamId 3 completed
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
Select the memory to test...