The I-cache and D-cache are being protected by Error Correcting Code (ECC) which performs Single Error Correction (SEC) and Double Error Detection (DED).The detected errors are reported via ESM. Single bit errors are corrected, and double bit errors are detected.The following steps are performed to test the error injection and detection of I-cache and D-cache in R5F.
ECC_Test_init: Exception init complete
ESM_Memory_init: Init ESM complete
ECC_Memory_init: R5FSS0 CORE0 ECC initialization is completed
ECC R5F Cache test started for aggregator = SDL_R5FSS0_PULSAR_SL_CPU0_ECC_AGGR
Starting Tests for Itag - single error correction
I_Cache 1-bit Error Injection : Starting for RAM ID = 0
Waiting for ESM Interrupt
Injected 1-bit error and got ESM Interrupt for ram_Id = 0
I_Cache 1-bit Error Injection : Starting for RAM ID = 1
Waiting for ESM Interrupt
Injected 1-bit error and got ESM Interrupt for ram_Id = 1
I_Cache 1-bit Error Injection : Starting for RAM ID = 2
Waiting for ESM Interrupt
Injected 1-bit error and got ESM Interrupt for ram_Id = 2
I_Cache 1-bit Error Injection : Starting for RAM ID = 3
Waiting for ESM Interrupt
Injected 1-bit error and got ESM Interrupt for ram_Id = 3
Starting Tests for IData - single error correction
I_Cache 1-bit Error Injection : Starting for RAM ID = 4
Waiting for ESM Interrupt
Injected 1-bit error and got ESM Interrupt for ram_Id = 4
I_Cache 1-bit Error Injection : Starting for RAM ID = 5
Waiting for ESM Interrupt
Injected 1-bit error and got ESM Interrupt for ram_Id = 5
I_Cache 1-bit Error Injection : Starting for RAM ID = 6
Waiting for ESM Interrupt
Injected 1-bit error and got ESM Interrupt for ram_Id = 6
I_Cache 1-bit Error Injection : Starting for RAM ID = 7
Waiting for ESM Interrupt
Injected 1-bit error and got ESM Interrupt for ram_Id = 7
Starting Tests for Dtag - single error correction
D_Cache Error Injection : Starting for RAM ID = 8
Waiting for ESM Interrupt
Injected error and got ESM Interrupt for ram_Id = 8
D_Cache Error Injection : Starting for RAM ID = 9
Waiting for ESM Interrupt
Injected error and got ESM Interrupt for ram_Id = 9
D_Cache Error Injection : Starting for RAM ID = 10
Waiting for ESM Interrupt
Injected error and got ESM Interrupt for ram_Id = 10
D_Cache Error Injection : Starting for RAM ID = 11
Waiting for ESM Interrupt
Injected error and got ESM Interrupt for ram_Id = 11
Starting Tests for DDirty cache - single error correction
D_Cache Error Injection : Starting for RAM ID = 12
Waiting for ESM Interrupt
Injected error and got ESM Interrupt for ram_Id = 12
Starting Tests for Ddata cache - single error correction
D_Cache Error Injection : Starting for RAM ID = 13
Waiting for ESM Interrupt
Injected error and got ESM Interrupt for ram_Id = 13
D_Cache Error Injection : Starting for RAM ID = 14
Waiting for ESM Interrupt
Injected error and got ESM Interrupt for ram_Id = 14
D_Cache Error Injection : Starting for RAM ID = 15
Waiting for ESM Interrupt
Injected error and got ESM Interrupt for ram_Id = 15
D_Cache Error Injection : Starting for RAM ID = 16
Waiting for ESM Interrupt
Injected error and got ESM Interrupt for ram_Id = 16
D_Cache Error Injection : Starting for RAM ID = 17
Waiting for ESM Interrupt
Injected error and got ESM Interrupt for ram_Id = 17
D_Cache Error Injection : Starting for RAM ID = 18
Waiting for ESM Interrupt
Injected error and got ESM Interrupt for ram_Id = 18
D_Cache Error Injection : Starting for RAM ID = 19
Waiting for ESM Interrupt
Injected error and got ESM Interrupt for ram_Id = 19
D_Cache Error Injection : Starting for RAM ID = 20
Waiting for ESM Interrupt
Injected error and got ESM Interrupt for ram_Id = 20
Starting Tests for Dtag cache - double error detection
D_Cache Error Injection : Starting for RAM ID = 8
Waiting for ESM Interrupt
Injected error and got ESM Interrupt for ram_Id = 8
D_Cache Error Injection : Starting for RAM ID = 9
Waiting for ESM Interrupt
Injected error and got ESM Interrupt for ram_Id = 9
D_Cache Error Injection : Starting for RAM ID = 10
Waiting for ESM Interrupt
Injected error and got ESM Interrupt for ram_Id = 10
D_Cache Error Injection : Starting for RAM ID = 11
Waiting for ESM Interrupt
Injected error and got ESM Interrupt for ram_Id = 11
Starting Tests for Ddirty cache - double error detection
D_Cache Error Injection : Starting for RAM ID = 12
Waiting for ESM Interrupt
Injected error and got ESM Interrupt for ram_Id = 12
Starting Tests for Ddata cache - double error detection
D_Cache Error Injection : Starting for RAM ID = 13
Waiting for ESM Interrupt
Injected error and got ESM Interrupt for ram_Id = 13
D_Cache Error Injection : Starting for RAM ID = 14
Waiting for ESM Interrupt
Injected error and got ESM Interrupt for ram_Id = 14
D_Cache Error Injection : Starting for RAM ID = 15
Waiting for ESM Interrupt
Injected error and got ESM Interrupt for ram_Id = 15
D_Cache Error Injection : Starting for RAM ID = 16
Waiting for ESM Interrupt
Injected error and got ESM Interrupt for ram_Id = 16
D_Cache Error Injection : Starting for RAM ID = 17
Waiting for ESM Interrupt
Injected error and got ESM Interrupt for ram_Id = 17
D_Cache Error Injection : Starting for RAM ID = 18
Waiting for ESM Interrupt
Injected error and got ESM Interrupt for ram_Id = 18
D_Cache Error Injection : Starting for RAM ID = 19
Waiting for ESM Interrupt
Injected error and got ESM Interrupt for ram_Id = 19
D_Cache Error Injection : Starting for RAM ID = 20
Waiting for ESM Interrupt
Injected error and got ESM Interrupt for ram_Id = 20
All tests have passed.