SPRUHZ7K August 2015 – April 2024 AM5706 , AM5708 , AM5716 , AM5718 , AM5718-HIREL
The engine goes through the entire error-location process and results can be read. Table 15-353 and Table 15-354 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 |