(es)ata drives may need an explicit spinup command?

Rick C. Petty rick-freebsd2008 at kiwi-computer.com
Thu Aug 6 21:30:52 UTC 2009


On Thu, Aug 06, 2009 at 10:56:44PM +0300, Alexander Motin wrote:
> Juergen Lock wrote:
> >So I tested esata on a siis pcie card with a 750G Seagate Freeagent Pro
> >drive and it does work - until the drive falls into powersave mode
> >after being idle for a little while. :(  (I had the drive on 1394
> >before on another box where it was able to recover from this condition,
> >but not on usb or esata - and the drive's 1394 interface died a while
> >ago and also esata is faster anyway...)
> >
> > And now I came across this patch for the linux ata driver:
> >	http://git.kernel.org/?p=linux/kernel/git/jgarzik/libata-dev.git;a=commitdiff;h=169439c2e35f01e7832a9b4fc8a7446980c3d593;hp=1e999736cafdffc374f22eed37b291129ef82e4e
> >
> > So my question is, could the same be done in our ata code?
> >I have a slight :) hope it would help this drive too at least as it
> >does seem to work on Linux...
> 
> I am not sure it is related to your case, as you said your drive works 
> for some time after plug. If drive spun-down automatically due to 
> inactivity, it should spin-up automatically also, as OS unable to track 
> that transition. 30 seconds of ATA command timeout should be sufficient 
> for drive to do this. Do you have any other symptoms?

I believe this patch is for something different.  Certain drives are
automatically spun down at power up.  One such drive is in my satellite
provider's DVR.  If you hook it up to regular SATA and power, it will never
spin up.  It requires a special ATA command to tell it to spin up.  I
believe the linux patch does precisely this.  I know there's a special
SATA power cable that tells the drive not to spin up until given the spinup
command, which I also found in my satellite provider's DVR.  Basically this
is done through pin 11:
	http://en.wikipedia.org/wiki/Serial_ATA#Power_supply

Although not every drive supports this feature.

-- Rick C. Petty


More information about the freebsd-current mailing list