[Webinar] Learn how to a build a cloud-first strategyRegister Now


How to put the interface into Partial mode for AHCI via software ?

Posted on 2012-09-03
Medium Priority
Last Modified: 2012-09-06
According to AHCI spec, software can initiate interface power management state transitions if the link layer is currently in the L_IDLE state. System Software Initiated
PxCMD.ICC is used by system software to initiate interface power management state transitions. The request to transition to a different interface power management state shall only be acted on by the HBA if the Link layer is currently in the L_IDLE state. If the HBA’s Link layer is not in the L_IDLE state when the PxCMD.ICC field is written, the request shall be ignored. The HBA shall not perform a transition directly from Partial to Slumber or from Slumber to Partial based on a new value being written to PxCMD.ICC. If the link is currently in a Partial or Slumber interface power management state, it is software’s responsibility to bring the link to the active state before requesting a transition to a different interface power management state. The time from the request written to PxCMD.ICC until the link is active is bounded by the maximum recovery times from Partial or Slumber as outlined in the Serial ATA Revision 2.6 specification.

After reading involved document I summarize the steps as below trying to put the interface into the Partial state:

1) issue read/write commands to device first
2) after commands completed while loop to check if PxCMD.ICC = 0 or not
3) (... wait until PxCMD.ICC = 0 and this means the HBA is ready to to accept a new interface command...)
4) set PxCMD.ICC = 2(2 indicates "Partial" state)
5) wait for PxCMD.ICC back to "0" (spec said HBA will update this back to idle finally...)
6) while loop to check if PxSSTS.IPM = 2 (where 2 means: current interface is in Partial state)

The result was: PxSSTS is not equal to "2" for a long time and I guess the interface did not enter the partial state correctly...

@ In this configuration HBA registers CAP.SSC = PSC = 1 and I set PxSCTL.IPM = 0(no interface restrictions)

My questions are:

[1] Do I have to check if device support this transition ?  
[2] How to put into the Slumber state ?

Thanks !
Question by:liaoo
1 Comment

Accepted Solution

liaoo earned 0 total points
ID: 38366367
I found below descriptions in sata spec (about identify device data ) :

Word 76: Serial ATA capabilities
Bit 9 when set to one indicates that the Serial ATA device supports the Partial and Slumber interface power management states when initiated by the host. Devices shall support either host initiated interface power management or device-initiated interface power management. If word 78 bit 3 is cleared to zero, then word 77 bit 9 shall be set to one

And I found this bit is 0 for the testing drive. After using the other drive with that bit = 1 entering Partial or Slumber state is OK.

Can I conclude that this bit decides if drive support these state transitions ?

Featured Post

Free learning courses: Active Directory Deep Dive

Get a firm grasp on your IT environment when you learn Active Directory best practices with Veeam! Watch all, or choose any amount, of this three-part webinar series to improve your skills. From the basics to virtualization and backup, we got you covered.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

The article will include the best Data Recovery Tools along with their Features, Capabilities, and their Download Links. Hope you’ll enjoy it and will choose the one as required by you.
We look at whether swapping a controller board on a failed hard drive is likely to solve the problem.
The viewer will learn how to successfully download and install the SARDU utility on Windows 7, without downloading adware.
Finding and deleting duplicate (picture) files can be a time consuming task. My wife and I, our three kids and their families all share one dilemma: Managing our pictures. Between desktops, laptops, phones, tablets, and cameras; over the last decade…
Suggested Courses
Course of the Month20 days, 10 hours left to enroll

867 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question