2.4 Boot, BCFG and OTP Pages

Programming tools support reading and writing of NVR pages as they contain critical parameters for the device to run in the user-defined conditions, as well as to boot code.

The NVR pages start at address 0x0000_0000 and end at 0x0000_6FFF. For more details on each NVR page content, see the PIC32CX-BZ2 and WBZ45 Family Data Sheet (DS70005504).

One page in the Flash boot region is implemented as a one-time programmable called OTP. The user can only write, and cannot erase by page or chip erase (only by a bulk erase) in the OTP region. This region stores the user system calibration data that must survive a flash erase. The user can use NVMOTP to store and preserve identification values, such as, an Ethernet MAC address, OEM/ODM version numbers, board version numbers and so on. The other uses are for calibration values of circuits external to the chip but constant for a board design in which the chip exists.

One page of the Flash boot region is called BCFG or open boot. This region stores the configuration bits. These bits are set with #pragma directives embedded in the source file(s), or the user can program them with external IDEs, such as, Microchip MPLAB® X, using the configuration bits window. In either case, the user must erase the page first before writing new configuration bits using the page erase function described in Page Erase.

There is no difference in the programming algorithm for the Boot or NVR Flash pages from programming the 1 MB Flash panel pages except that the DSU.TESTMODE[3] (0x410000FC bit 3) must be set to ‘1’. QuadWord write programs the NVR FBCFGx 'fuses'. For more details, see NVR Fuses. The user needs to manipulate the differences in memory protection registers. For more details, see Programming.