SPRUI30H November 2015 – May 2024 DRA745 , DRA746 , DRA750 , DRA756
The SATA controller supports CCC, which can be thought of as interrupt pacing. Instead of being generated for every command completed, an interrupt can be triggered based on a certain number of commands completed and/or a timer time-out. This significantly reduces the load on the CPU by not allowing software to receive an interrupt every time a command is processed. Software can thus queue many commands or wait for many received FISes and process them as a batch. All CCC functions are controlled by the SATA_CCC_CTL, SATA_CCC_PORTS, and SATA_TIMER1MS registers. Setting SATA_CCC_PORTS[0]PRT = 0x1 makes the only available SATA controller HBA port 0 - CCC-aware. The SATA_CCC_CTL register can be used to program CCC logic to trigger an interrupt whenever a certain number of commands are complete and/or a timeout value (as specified by the TV field of SATA_CCC_CTL and SATA_TIMER1MS registers) occurs. For specific programming instructions, see the SATA_CCC_CTL description.