SPRUJ55D September 2023 – July 2025 AM263P2 , AM263P2-Q1 , AM263P4 , AM263P4-Q1
FOTA Accelerator includes a FOTA HW ENGINE and supporting logic to provide configuration and data interface access to flash Controller (OSPI). This can be used by firmware running on the FOTA HW ENGINE to support FOTA firmware update while XIP is active. Purpose for FOTA support in hardware is to simplify software complexity associated with coordinating processes running in multiple CPUs and to reduce XIP downtime during FOTA write. This enables to perform concurrent XIP read(s) while FOTA update happen in background, with zero software overheads on processor cores. Primarily this is useful when using Read While Write (RWW) capable flash memory, which allows reads while write/erase is in progress (which can take >1ms to complete) in a different bank .
Figure 13-157 provides an overview of the FOTA Accelerator logic. This logic fits before the OTFA and ECCM blocks on the data path and between Config CBASS and OSPI on the configuration path.
FOTA supporting logic includes bus access logic for arbitrating configuration accesses between FOTA HW ENGINE and SOC to OSPI configuration registers and data accesses between FOTA HW ENGINE and SOC to data path to flash. It also includes a 512-byte FOTA write buffer for storing one page of updated image for writing to flash. SOC writes the updated FOTA firmware to this memory through the configuration interface. FOTA HW ENGINE will move data from this write buffer to flash after arbitration and gaining access to data interface.
FOTA write (using FOTA HW ENGINE) through OTFA protected address range and/or ECCM protected address range is NOT supported. FOTA write uses region 3, bypassing OTFA and ECCM regions. Thus, safety and security measures have to be taken accordingly, outside the FSS module, to ensure there is no system compromise. Also, FOTA_ADDR register has to be setup to use the actual physical address in flash. Memory Address Translation provides memory address translation information and how to pack MAC, data and ECC
FOTA functionality is configured and managed through FOTA MMR region (FOTA_GENREGS Registers) accessible through FSS config interface.
The FOTA HW ENGINE firmware is stored in a 2KB internal program memory (RAM). Also, an internal 256-byte data memory (RAM) is included for storing variables, context stack etc. These two memories are accessible through the 32-bit FSS config interface for preloading by system firmware. Due to limited space in the FOTA HW ENGINE program memory, firmware is expected to be specific to a given flash memory and is not intended to be a superset code covering all flash devices.
The FOTA HW ENGINE also includes debug functionality in a submodule called OCI (On-Chip Instrumentation). This debug logic can be accessed through JTAG, which is directly exported out of FSS for SOC level connectivity.
The FOTA HW ENGINE firmware provides FOTA completion status by writing to the IRQ status registers (FOTA_GENREGS_IRQ_STATUS_RAW) in FOTA MMR. It also gives out interrupts for FOTA completion status and error status.