The OSPI module has the following
features:
- Support for single, dual,
quad (QSPI mode) or octal I/O bus widths.
- Memory mapped ‘direct’ mode
of operation for performing flash data transfers and executing code from
flash memory.
- Software triggered 'indirect'
mode of operation for performing low latency and non-processor intensive
flash data transfers.
- Local SRAM of configurable
size to reduce advanced high-performance bus overhead and buffer flash data
during indirect transfers.
- Set of software advanced
peripheral bus accessible flash control registers to perform any flash
command, including data transfers up to 8-bytes at a time.
- Additional addressable memory
bank to accommodate more than 8-bytes at a time.
- Support for XIP, sometimes
referred to as continuous mode.
- Support for DDR Mode and DTR
protocol (including Octal DDR protocol with DQS for Octal-SPI devices)
- Programmable device
sizes.
- Programmable write protected
regions to block system writes from taking effect.
- Programmable delays between
transactions.
- Legacy mode allowing software
direct access to low level transmit and receive FIFOs, bypassing the higher
layer processes.
- An independent reference
clock to decouple bus clock from SPI clock – allows slow system clocks.
- Programmable baud rate
generator to generate OSPI clocks.
- Features included to improve
high speed read data capture mechanism.
- Option to use adapted clocks
or DQS to further improve read data capturing.
- Programmable interrupt
generation.
- Up to four external device
selects - OSPI and QSPI devices can be mixed
- Programmable data decoder,
enables continuous addressing mode for each of the connected devices and
auto-detection of boundaries between devices.
- Supports BOOT mode.
- Bidirectional CRC on
Multiple-SPI interface.
- Handling ECC errors for flash
devices with embedded correction engine.
- Full integration with PHY
module dedicated to more flexible and power efficient transfers.
- Supports RESET_OUT[1-0] and
ECC_FAIL pins for external flash devices where ECC is checked on the
flash.
- Automatic Flash device status
polling for programming operation (Auto HW Polling)