11.4.1 Fuse Area Selection
The user configuration (UserCfg) and boot configuration (BootCfg) pages contain a sequence number (FSEQ and BSEQ).
Each sequence number stored into the Flash consists of a 'true' and 'complement' 16-bit (halfword) value held in a single 32-bit word. The 'true' portion is held in the LS-halfword and the complement portion is held in the MS-halfword.
- Sequence numbers of each page are read with ECC detection.
- If an ECC double error is detected or the true and complemented portions do not match, the sequence number is declared in error.
- If the sequence number of a given page is in error, the other page is selected.
- If the sequence numbers are equal or both sequence numbers are in error, first page is selected (that is, the page located in panel 0).
- In the other cases, where the sequence numbers are valid, the page with the highest sequence number is selected.
Following this selection step, a complete integrity check of the selected page is done:
- The useful data of the selected page is read with ECC detection and checked for double errors.
- If the check fails, the other page is selected, and the check is restarted on that page.
If the two pages have errors, STATUS_ERR_USERCFG or STATUS_ERR_BOOTCFG is reported and interactive mode is called.
- On a successful check:
- Bootrom will update its pointer to the current valid page.