Chapter 4 Memory
MC9S08DZ60 Series Data Sheet, Rev. 4
Freescale Semiconductor
59
4.5.7
Block Protection
The block protection feature prevents the protected region of Flash or EEPROM from program or erase
changes. Block protection is controlled through the Flash and EEPROM protection register (FPROT). The
EPS bits determine the protected region of EEPROM and the FPS bits determine the protected region of
After exit from reset, FPROT is loaded with the contents of the NVPROT location, which is in the
nonvolatile register block of the Flash memory. Any FPROT write that attempts to decrease the size of the
protected region will be ignored. Because NVPROT is within the last sector of Flash, if any amount of
memory is protected, NVPROT is itself protected and cannot be unprotected (intentionally or
unintentionally) by the application software. FPROT can be written through background debug
commands, which provides a way to erase and reprogram protected Flash memory.
One use for block protection is to block protect an area of Flash memory for a bootloader program. this
bootloader program can call a routine outside of Flash that can be used to sector erase the rest of the Flash
memory and reprogram it. The bootloader is protected even if MCU power is lost during an erase and
reprogram operation.
4.5.8
Vector Redirection
While any Flash is block protected, the reset and interrupt vectors will be protected. Vector redirection
allows users to modify interrupt vector information without unprotecting bootloader and reset vector
space. Vector redirection is enabled by programming the FNORED bit in the NVOPT register located at
address 0xFFBF to 0. For redirection to occur, at least some portion of the Flash memory must be block
protected by programming the NVPROT register located at address 0xFFBD. All interrupt vectors
(memory locations 0xFFC0–0xFFFD) are redirected, though the reset vector (0xFFFE:0xFFFF) is not.
For example, if 1536 bytes of Flash are protected, the protected address region is from 0xFA00 through
0xFFFF. The interrupt vectors (0xFFC0–0xFFFD) are redirected to the locations 0xF9C0–0xF9FD. If
vector redirection is enabled and an interrupt occurs, the values in the locations 0xF9E0:0xF9E1 are used
for the vector instead of the values in the locations 0xFFE0:0xFFE1. This allows the user to reprogram the
unprotected portion of the Flash with new program code including new interrupt vector values while
leaving the protected area, which includes the default vector locations, unchanged.
4.5.9
Security
The MC9S08DZ60 Series includes circuitry to prevent unauthorized access to the contents of Flash,
EEPROM, and RAM memory. When security is engaged, Flash, EEPROM, and RAM are considered
secure resources. Direct-page registers, high-page registers, and the background debug controller are
considered unsecured resources. Programs executing within secure memory have normal access to any
MCU memory locations and resources. Attempts to access a secure memory location with a program
executing from an unsecured memory space or through the background debug interface are blocked (writes
are ignored and reads return all 0s).
Security is engaged or disengaged based on the state of two register bits (SEC[1:0]) in the FOPT register.
During reset, the contents of the nonvolatile location NVOPT are copied from Flash into the working
FOPT register in high-page register space. A user engages security by programming the NVOPT location,