31.6 Boot Loader Lock Bits

If no boot loader capability is needed, the entire Flash is available for application code. The boot loader has two separate sets of boot lock bits which can be set independently. This gives the user a unique flexibility to select different levels of protection.

The user can select:

  • To protect the entire Flash from a software update by the MCU
  • To protect only the boot loader Flash section from a software update by the MCU
  • To protect only the application Flash section from a software update by the MCU
  • Allow software update in the entire Flash

The boot lock bits can be set in software and in Serial or Parallel Programming mode, but they can be cleared by a chip erase command only. The general Write Lock (Lock Bit mode 2) does not control the programming of the Flash memory by SPM instruction. Similarly, the general Read/Write Lock (Lock Bit mode 1) does not control reading nor writing by LPM/SPM, if it is attempted.

Table 31-3. Boot Lock Bit0 Protection Modes (Application Section)
BLB0 ModeBLB02BLB01Protection
111No restrictions for SPM or LPM accessing the application section.
210SPM is not allowed to write to the application section.
300SPM is not allowed to write to the application section, and LPM executing from the boot loader section is not allowed to read from the application section. If interrupt vectors are placed in the boot loader section, interrupts are disabled while executing from the application section.
401LPM executing from the boot loader section is not allowed to read from the application section. If interrupt vectors are placed in the boot loader section, interrupts are disabled while executing from the application section.
Note: “1” means unprogrammed, “0” means programmed.
Table 31-4. Boot Lock Bit1 Protection Modes (Boot Loader Section)
BLB1 ModeBLB12BLB11Protection
111No restrictions for SPM or LPM accessing the boot loader section.
210SPM is not allowed to write to the boot loader section.
300SPM is not allowed to write to the boot loader section, and LPM executing from the application section is not allowed to read from the boot loader section. If interrupt vectors are placed in the application section, interrupts are disabled while executing from the boot loader section.
401LPM executing from the application section is not allowed to read from the boot loader section. If interrupt vectors are placed in the application section, interrupts are disabled while executing from the boot loader section.
Note: “1” means unprogrammed, “0” means programmed.