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.
Note: In the page update process, both pages should be programmed with the current settings in order to prevent falling back to outdated values if the newest page is corrupted. It is also possible to discard the other page by erasing it.