The FSS provides data transfer to OSPI
through a single 64-bit S0 Data Interface, with data passing through ECCM/OTFA
modules. The FSS memory space is divided into three distinct regions, each 128MB in
size, for accessing flash memory. These regions are classified based on their
functional features:
- Address translation support
- Boot capability
- On-the-fly Encryption and Authentication (OTFA)
- Error Correction Code (ECC) protection
Each region can be configured independently to enable or disable these features
based on system requirements.
All these memory mapped regions map
to the same physical location in the flash.
Table 13-259 FSS Memory Regions
| FSS Regions |
SoC Address Range |
Size |
Region Features |
Description |
| Region 0 |
0x60000000 - 0x67FFFFFF |
128 MB |
Supports OTFA + ECC |
External Memory Space |
| Region 1 |
0x80000000 - 0x87FFFFFF |
128 MB |
Supports OTFA + ECC |
Boot Space |
| Supports Address Remap-ability feature |
| Region 3 |
0x88000000 - 0x8FFFFFFF |
128 MB |
NO OTFA + NO ECC |
External Memory Space - Bypass Region |
Note: There is no FSS Region 2.
- FSS Region 0 : Region 0
supports the following operations:
- Execute-In-Place (XIP)
- DMA reads
- DMA writes
This region is designed to handle flash or RAM data that requires
authentication and/or ECCM protection. It automatically performs address
translation to accommodate the additional space needed for ECC and MAC
data
- FSS Region 1 : This region
is similar to FSS Region 0, but can select 4KB to 128MB block, defined by the
_boot_segment_ and _boot_mask_ registers. See section FSS Boot Region and Selection for details.
Both FSS Region 0 and 1 have
address translation to make room for the authentication and ECCM words. As
mentioned above the main feature of FSS Region 1 that is not present in Region 0
and FSS Region 3 is Address Remapability using _boot_segment_ and
_boot_mask_ registers.
- FSS Region 3 :
Bypass
Region Primary Functions:
- Bypasses both ECC and OTFA processing
- Enables direct flash programming with pre-authenticated and
ECCM-protected data
- Supports error correction (scrubbing) operations: Used to scrub ECCM
errors in the event that the Flash takes a bit hit. That is to scrub
a single bit error in flash, it may be necessary to re-write an
entire block of flash. The FSS reports the untranslated block
address; the system will translate the address based on MAC and ECCM
modes to locate the real address in Flash or RAM for the scrubbing
operation.
Additional Uses:
- Used for validation of MAC and ECCM block programming
- FOTA (Firmware Over The Air) operations: Used by FOTA HW ENGINE for
flash writes in single interface RWW mode. It expects input data to be
pre-encrypted and pre-authenticated with ECC and MAC.
Note: When using this region, data must be properly
formatted with ECC and MAC before writing to flash.
It is important to note that FSS
regions are logical partitions internal to the FSS module and are completely
independent from the physical bank/region organization specified in the flash device
data sheet. FSS regions just defines the dataflow path to/ from flash. All FSS
Regions 0,1,3 map to the same physical location in the flash. The idea behind all 3
different FSS regions pointing to the same flash physical location is so that:
- While writing to flash using
Region 0 the data will go through the OTFA and ECC path and hence with be
Encrypted and Authenticated (padded with MAC and ECC).
- While writing to flash using
Region 3 the data will go as it is without any Encryption / Authentication.
(Bypasses OTFA and ECC)
- FSS Region 1 is called boot
space region as ROM uses FSS Region 1. If Address remap feature is enabled
in MSS-CTRL and is R5F/any other controller throws access to that address
range, then the access will be remapped to new location as explained in
FSS Boot Region and Selection.
Note: 128MBytes can be addressed using Address Bits[26:0] -> 27
Bits. Hence the upper 5 address Bits[31:27] are not relevant from perspective of
flash/memory device.