The FSS module consists of the following 3
interfaces:
- Data Interface (S0): It is 64-bit
multi issue data interface with coherent in-band bypass, which has access to OSPI0 and can
be configured for ECCM and/or Authentication.
- ECC Interface (ECC_S0): It is a
16-bit data interface exported to carry ECC for read return data on S0. This is in sync
with S0. Please refer to section Error Correction Code (ECC) and Safety for more details.
- Config Interface: It is a 32-bit
Config interface used for configuration of the memory mapped registers within the FSS
through the Config CBASS. The Config CBASS takes configuration access and sends it to the
appropriate FSS module.
The FSS consists of Functional Safety And
Security module (FSAS module) , which includes three main FSS engines - Safety engine
(ECCM), Security engine (OTFA) and FOTA Accelerator.
- Safety Engine (ECCM): FSS
provides safety with in-line ECC (on-the-fly), implemented by the ECCM module, and
provides SECDED ECC protection to the data path to flash. Inline ECC consists of 4
syndromes per 32-byte chunk. It supports on-the-fly address translation to provide
software transparent view to account for additional storage of ECC data bytes. FSS also
supports RAM ECC for RAMs present in OSPI and for FOTA HW ENGINE program memory. FSS
also supports ECC_S0 interface that is in lockstep with S0 interface and carries ECC
associated with read data provided by S0 interface.
- Security Engine (OTFA): FSS
provides security features with In-line encryption/decryption/Authentication (AES/GCM)
on flash data, implemented by the OTFA module, to enable secure external flash use. It
supports on-the-fly address translation to provide software transparent view to account
for additional storage of MAC (Message Authentication Code). The MAC size is
programmable (8/12/16/20 bytes).
- FOTA Accelerator: FSS provides
Firmware Over the Air (FOTA) update feature, implemented by the FOTA Accelerator, which
involves writing updated firmware to flash. This is managed by SOC software as it
authenticates/validates the updated firmware, sequences the writes to flash and
rebooting. The FOTA accelerator supports SOC software in performing FOTA tasks. It is
possible to perform concurrent XIP read(s) while FOTA update happens in background, with
minimum XIP downtime and zero software overheads on MCU.
The various MMR Modules contain the
registers for use in the ECCM, OTFA, and other sub-modules inside FSS. The INTD module is
used to create pulse interrupts for FSAS ECCM logic and FOTA, to give out the SOC.
The Boot Segment module is responsible for
the address remapping of FSS Region 1, as explained in section FSS Boot Region and Selection.