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
When using CCS projects to build, import the CCS project for the required combination and build it using the CCS project menu (see Using SDK with CCS Projects).
When using makefiles to build, note the required combination and build using make command (see Using SDK with Makefiles)
Launch a CCS debug session and run the executable, see CCS Launch, Load and Run
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