SPRUHZ7K August 2015 – April 2024 AM5706 , AM5708 , AM5716 , AM5718 , AM5718-HIREL
The following types commands are supported:
As opposed to NCQ, these commands are serviced, acknowledged one by one after a successful completion. The nonqueued SATA CL entries can take advantage of the PRD prefetching option indicated by the P flag in the corresponding CH (for more information, see the SATA specification). The ATA legacy commands are not supported by the SATA AHCI core.
ATAPI commands are supported by the SATA HBA engine. A request for an ATAPI command service is indicated by setting CH bit A to 0b1. The ATAPI command that the user builds into the ATAPI area of the command table can be 12 or 16 bytes in length and is indicated by the PIO Setup FIS sent by the SATA peripheral storage device requesting the ATAPI command. In addition, the SATA controller supports ATAPI active-LED generation (See Section 24.8.4.10, Activity LED Generation Functionality).
NCQ-commands are supported by the SATA controller HBA engine, the execution of which can be greatly facilitated by the CCC interrupt feature (for more information, see Section 24.8.4.5.5, Command Completion Coalescing Interrupts). As described in Section 24.8.1.1.2, Native Command Queuing, the NCQ commands have FPDMA queued command protocol mechanism, which implies that they are treated in a different way then standard SATA commands. The AHCI interface register set include specific registers, such as SATA_PxSACT, etc., to make the HBA aware of the outstanding NCQ slots in a command list. As opposed to standard nonqueued commands, NCQ commands are acknowledged before their actual completion, which accelerates the CL servicing for NCQ slots. The queue tag of the command requested by the SATA peripheral device is indicated to the HBA port by the TAG field in a DMA Setup FIS that an attached SATA peripheral device sends to the SATA controller host . The HBA then uses the tag value to index the NCQ commands updated by user software in the command list. The NCQ command descriptors are not allowed to use the prefetching option in CH because their order of execution is determined by the SATA target device.