4.2.2 Flash Access Control Introduction
The Flash Access Control (FAC) is a Freescale or third-party configurable memory
protection scheme optimized to allow end users to utilize software libraries while offering
programmable restrictions to these libraries. The flash memory is divided into equal size
segments that provide protection to proprietary software libraries. The protection of these
segments is controlled as the FAC provides a cycle-by-cycle evaluation of the access
rights for each transaction routed to the on-chip flash memory. Configurability allows an
increasing number of protected segments while supporting two levels of vendors adding
their proprietary software to a device.
Flash access control aligns to the three privilege levels supported by ARM Cortex-M
family products where the most secure state - supervisor/privileged secure - aligns to the
execute-only and supervisor-only access control. The unsecure state of user non-secure
aligns to no access control states set, and the mid-level state where user secure aligns to
using the access control of execute-only.
Control for this protection scheme is implemented in Program Once NVM locations and
is configurable through a Program Once flash command operations. The NVM locations
controlling FAC are unaffected by Erase All Blocks flash command and debug interface
initiated mass erase operations.
NOTE
The FAC protection scheme has eight XACC and eight SACC
registers to control up to 64 segments. For program flash sizes
128KB or less, the memory is divided into 32 segments,
controlled by the four lower-order XACC and SACC registers.
4.3 Flash Memory Map
The flash memory and the flash registers are located at different base addresses as shown
in the following figure. The base address for each is specified in
Program flash
Flash configuration field
Program flash base address
Flash memory base address
Registers
Figure 4-2. Flash memory map
Flash Memory Map
K22F Sub-Family Reference Manual , Rev. 3, 7/2014
140
Freescale Semiconductor, Inc.