This section describes the features supplied by the SATA controller module. The SATA controller complies with the following standards:
- Serial ATA Standard specification (revision 2.6)
- Serial ATA Advanced Host Controller Interface specification (revision 1.1). The device SATA host controller also complies with the Serial ATA Advanced Host Controller Interface specification (revision 1.3), excluding support for the port multiplier FIS-based switching feature.
The main features of the SATA host controller are:
- Serial ATA 1.5-Gbps and 3-Gbps speeds (SATA-1 and SATA-2)
- Integrated RxFIFO and TxFIFO RAM data buffers
- Support of all SATA power management features
- AHCI support of 64-bit addressing mode (see device limitation note below)
- HBA port associated Internal DMA engine
- Hardware-assisted NCQ for up to 32 entries
- Command completion coalescing (CCC) interrupts
- Support of port multiplier with command-based switching
- Activity LED generation
Additionally, link layer supports:
- 8b/10b encoding and decoding functionality
- RX elasticity buffer
- TX OOB sequence generation
- RX OOB sequence generation
The differences between the SATA host controller and a standard SATA host controller defined by the Serial ATA Gold Standard specification (v2.6) are:
- Staggered spin-up is not supported (only one HBA AHCI port embedded).
- Only one port is supported by the device-embedded SATA HBA from up to 32 possible, according to the standard.
- The SATA controller is AHCI-mode compliant only and does not support standard ATA legacy modes of operation.
- Cold presence detection signals are not available. The SATA controller targets support for permanently attached SATA drives only.
The following features are NOT supported by the SATA host subsystem:
- Far-end analog loopback
- Cold presence detect (CPD) signal is not available at the system level. As a consequence, the SATA device hot-plug operation is not supported.
- Mechanical presence switch signal is not available at system level.
- Message signaled interrupts
- PHY layer functionalities of SATA controller are not integrated. These are assigned to the SATA_PHY transceiver integrated at the device level (outside SATA controller module itself).
The SATA controller master (DMA) interface features:
- 32-bit data
- 36 bits of the AHCI master address bus (byte-aligned addressing) implemented in the device. See device limitation note below.
- 1-bit tag-ID port, but the tag value is 1 on all accesses (that is, the feature is not used)
- Sequential burst support (16 x 32 bit – Dwords)
Note: Even though the SATA AHCI Controller supports 64-bit -addressing mode, only 36-lower bits of the 64-bit address bus are integrated (meaningful) in the device. This defines a 64-GiB AHCI master address space.
The SATA controller slave interface features:
- 32-bit data, 13-bit (byte-aligned) address
- Single access (no burst support)
- All accesses are expected to be 4 bytes wide, 32-bit aligned.
Note: Accesses smaller than 4 bytes wide (that is, byte enable patterns different from 4’b1111) are functional and do not generate an error. Misaligned addresses do not generate an error.
As can be seen in Figure 24-151, the SATA Controller has all events merged to a single interrupt output - SATA_IRQ, mapped to the device Interrupt Crossbar.