SPRUI30H November 2015 – May 2024 DRA745 , DRA746 , DRA750 , DRA756
The engine goes through the entire error-location process and results can be read. Table 15-515 and Table 15-516 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 ELM_IRQ 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 ELM_IRQ 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 |