SPRUJ28E November 2021 – September 2024 AM68 , AM68A , TDA4AL-Q1 , TDA4VE-Q1 , TDA4VL-Q1
The engine goes through the entire error-location process and results can be read. Table 12-216 and Table 12-217 describe the processing completion for continuous and page modes, respectively.
Step | Register/Bit Field/Programming Model | Value |
---|---|---|
Wait until process is complete for syndrome polynomial i: Wait until the interrupt is generated, or poll the status register. | ||
Read for which i the error-location process is complete. | ELM_IRQSTATUS[i] LOC_VALID_i | 0x1 |
IF the process fails (too many errors): | ELM_LOCATION_STATUS_i[8] ECC_CORRECTABLE | 0x0 |
It is software dependant. | ||
ELSE (process successful, the engine completes): | ELM_LOCATION_STATUS_i[8] ECC_CORRECTABLE | 0x1 |
Read the number of errors. | ELM_LOCATION_STATUS_i[4-0] ECC_NB_ERRORS | |
Read the error-location bit addresses for syndrome polynomial i of the ECC_NB_ERRORS first registers. Software must correct errors in the data buffer. | ELM_ERROR_LOCATION_0_i[12-0] ECC_ERROR_LOCATION | |
ELM_ERROR_LOCATION_1_i[12-0] ECC_ERROR_LOCATION | ||
... | ||
ELM_ERROR_LOCATION_15_i[12-0] ECC_ERROR_LOCATION | ||
ENDIF | ||
Clear the corresponding i interrupt. | ELM_IRQSTATUS[i] LOC_VALID_i | 0x1 |
A new syndrome polynomial can be processed after the end of processing (ELM_SYNDROME_FRAGMENT_6_i[16] SYNDROME_VALID = 0x0) and after the exit status register check (ELM_LOCATION_STATUS_i).
Step | Register/Bit Field/Programming Model | Value |
---|---|---|
Wait until process is complete for syndrome polynomial i: Wait until the interrupt is generated, or poll the status register. | ||
Wait for page completed interrupt: All error locations are valid. | ELM_IRQSTATUS[8] PAGE_VALID | 0x1 |
Repeat the following actions the necessary number of times. That is, once for each valid defined block in the page. | ||
Read the process exit status. | ELM_LOCATION_STATUS_i[8] ECC_CORRECTABLE | |
IF the process fails (too many errors): | ELM_LOCATION_STATUS_i[8] ECC_CORRECTABLE | 0x0 |
It is software dependent. | ||
ELSE (process successful, the engine completes): | ELM_LOCATION_STATUS_i[8] ECC_CORRECTABLE | 0x1 |
Read the number of errors. | ELM_LOCATION_STATUS_i[4-0] ECC_NB_ERRORS | |
Read the error-location bit addresses for syndrome polynomial i of the ECC_NB_ERRORS first registers. | ELM_ERROR_LOCATION_0_i[12-0] ECC_ERROR_LOCATION | |
ELM_ERROR_LOCATION_1_i[12-0] ECC_ERROR_LOCATION | ||
... | ||
ELM_ERROR_LOCATION_15_i[12-0] ECC_ERROR_LOCATION | ||
ENDIF | ||
End Repeat | ||
Clear the ELM_IRQSTATUS register. | ELM_IRQSTATUS | 0x1FF |
Next page can be correctly processed after a page is fully processed, when all tagged polynomials have been processed (ELM_IRQSTATUS[i] LOC_VALID_i = 0x1 for all syndrome polynomials i used in the page).