SPRUI30H November 2015 – May 2024 DRA745 , DRA746 , DRA750 , DRA756
The AHCI directs that interrupts be indicated in a two-tier structure and thus associated with different HBA ports. Considering the device SATA HBA single-port implementation for the first tier, only the SATA_IS[0] IPS bit should be considered. It indicates if the only port available to the user (HBA port 0) has pending interrupts.
For the second tier, the SATA_PxIS register (where x = 0) indicates which specific interrupt condition(s) occurs to trigger an interrupt on port 0. In most cases, software writes 0x1 (Write One to Clear) to clear these bits, and then writes 0x1 to the SATA_IS [0]IPS bit to clear the interrupt. However, some interrupts in the SATA_PxIS register have alternate methods of being cleared (for details, see Section 24.8.6.2.2, DWC_ahsata Register Description). Section 24.8.4.5.3, Interrupt Events Description, describes all interrupt generating conditions.
Figure 24-157 shows the SATA controller two-tier interrupt propagation structure. Besides SATA_IS[0], which gates all interrupts at the port 0 level, the tier 1 interrupt is globally gated by the SATA_GHC[1] IE bit.
Regardless of the device SATA controller single HBA port implementation, user software must read/write the tier 1 SATA_IS[0] IPS register bit to process interrupts.