There are two unused pages of OTP memory available for the customer to program. Each page status is held in the OTP_CUST1_STAT and OTP_CUST2_STAT registers. The registers provide information on the current status of the page such as:
- Load status (if loaded, loaded with error, loaded but failed)
- Programmed successfully or available to be programmed
- Programmed status
When a reset occurs, the device evaluates the OTP
page status and chooses the latest and valid OTP page to load. Page 2 has priority
over Page 1. If both pages have not been written, the factory OTP default are
loaded. Section 9.5.1 shows
all customer programmable OTP parameters. The register summary also shows the
default values when Customer OTP Page 1 and Page 2 are not programmed.
- A valid page is one where the
OTP_CUST*_STAT[PROGOK] = 1.
- When the page is selected for loading, the
OTP_CUST*_STAT1[LOADED] = 1.
- If a single error occurs in the loading of the page, the
page is loaded after the single error is corrected and the
OTP_CUST*_STAT1[LOADWRN] = 1.
- Additionally, the DEBUG_OTP_SEC_BLK
register is updated with the location of the error corrected
block.
- If a double error occurs, the loading of that block is
terminated and the hardware defaults of that block are loaded (as indicated
in Section 9.5.1).
- The overall page loading process is not terminated
for a DED, only the affected block is terminated.
- When a DED occurs, the
OTP_CUST*_STAT1[LOADERR] = 1. Additionally, the
DEBUG_OTP_DED_BLK register is updated with the block
where the double error occurred.