37.19.3.1 Error Location

The PMECC Error Location controller provides hardware acceleration for determining roots of polynomials over two finite fields: GF(2^13) and GF(2^14). It integrates 32 fully programmable coefficients. These coefficients belong to GF(2^13) or GF(2^14). The coefficient programmed in PMERRLOC{i} is the coefficient of X ^ i in the polynomial.

The search operation is started as soon as a write access is detected in the PMECC Error Location Enable (HSMC_ELEN) register and can be disabled by writing to the PMECC Error Location Disable (HSMC_ELDIS) register. Initialize HSMC_ELEN.ENINIT with the number of galois field elements to test.

Table 37-17. ENINIT Field Value for a Sector Size of 512 Bytes
Error Correcting Capability ENINIT Value
2 4122
4 4148
8 4200
12 4252
24 4408
32 4512
Table 37-18. ENINIT Field Value for a Sector Size of 1024 Bytes
Error Correcting Capability ENINIT Value
2 8220
4 8248
8 8304
12 8360
24 8528
32 8640

While the PMECC engine searches for roots, the BUSY field in the PMECC Error Location Status register (HSMC_ELSR) remains asserted. An interrupt is asserted at the end of the computation, and the DONE bit in the PMECC Error Location Interrupt Status register (HSMC_ELSIR) is set. The HSMC_ELISR.ERR_CNT field shows the number of errors. The PMECC Error Location x registers (HSMC_ERRLOCx) show the error position.