Re: Hack to fix not working spindown over Firewire

From: Stefan Richter
Date: Fri May 09 2008 - 14:32:53 EST


On 7 May, Tino Keitel wrote at LKML and LSML:

[PL-3507 in Raidsonic Icy Box needs power condition 2 or 3 in the START
STOP UNIT command in order to spin down]

> On Wed, Apr 30, 2008 at 15:31:41 +0200, Stefan Richter wrote:
>> According to the description of Active,
>> Idle, Standby, Sleep in RBC, we do most certainly want code 1 on resume,
>> and rather 3 than 2 on suspend. 5 instead of 3 or 2 might even be better
>
> FYI, sg_start --pc=3 also spins down the drive here.
>
>> from the POV of energy consumption but a "device reset may be required
>> before access to the device is allowed" which I'd rather not deal with.
>>
>> Tino, does the scsi stack log the device as "Direct-Access-RBC" after it
>> was plugged in?
>
> Yes:
>
> scsi 7:0:0:0: Direct-Access-RBC WDC WD32 00JB-00KFA0 PQ: 0 ANSI: 4


I tested a few FireWire disks now.

1) FireWire to IDE or to SATA chipset
2) start bit is honored:
"sg_start --stop" stops the motor and "sg_start" restarts it
3) power condition field is honored:
"sg_start --pc=3" stops the motor and "sg_start --pc=1 restarts it
4) peripheral device type claimed by the firmware
5) vendor and model of the enclosure


1) 2) 3) 4) 5)
bridge start pc PDT enclosure
--------------------------------------------------------------
INIC-2430 yes yes SBC AVLAB 2.5" Drive Kit
INIC-2430 yes yes SBC IOI FWB-IDE01AB, 1 HDD
INIC-2430 yes yes SBC IOI FWB-IDE01AB, 2 HDDs, JBOD

OXFW911 yes yes RBC MacPower Icecube
OXUF922 yes yes RBC MacPower Icecube 800+
OXFW912 yes yes RBC MacPower Igloo
OXFW912 yes yes RBC VulcanTech DualDrive 2nd gen.
OXUF924DSB yes yes SBC MacPower Taurus, 1 HDD
OXUF924DSB no no SBC MacPower Taurus, 2 HDDs, JBOD

PL-3507 no no RBC MacPower Prefect II

TSB42AA9 no yes SBC DViCO MomoBay CX-1
TSB42AA9A yes yes RBC DViCO MomoBay FX-3A


General remarks:

Several disks don't require an "sg_start" or "sg_start --pc=1" to spin
up again; they do so on next access. Some even ignore "sg_start --pc=1"
and do not start the motor until the next access (e.g. read access). I
did not test systematically whether "sg_start" or "sg_start --pc=1" are
required at all. (Proper support of "sg_start --pc=1" is beneficial in
so far as the high-latency operation which spin-up is happens when it is
expected, not sometime later.)

The firmwares of CX-1, FX-3A, AVLAB, and Prefect II implement
auto-spin-down after some time of inactivity (different from firmware to
firmware) and auto-spin-up on subsequent access.

Remarks on individual enclosures/ firmwares:

MacPower Taurus
---------------
I could not test RAID0 and RAID1 due to lack of spare disks.

MacPower Prefect II
-------------------
This is a 5.25" enclosure, i.e. primarily meant for CD/DVD-ROM/R/W. I
tested it with a HDD here. The firmware is from MacPower, not from
Prolific. Power conditions 2 or 5 don't spin the disk down either.

MomoBay CX-1
------------
"sg_start --stop" stops the motor, but "sg_start" fails with unit
attention. Subsequent read commands after "sg_start --stop" time out.
I.e. "sg_start --stop" causes CX-1 to go offline. It needs to be
power-cycled after that.

MomoBay FX-3A
-------------
"sg_start --stop" works. "sg_start" ends with unit attention, but
starts the motor. Subsequent read commands succeed.


Conclusions so far:

- Some PL-3507 based devices, notably those with a later firmware from
Prolific, spin down if power condition 2 or 3 is set. Others don't.

- The old and in several ways quirky DViCO CX-1 must not be exposed to
START STOP UNIT with start flag off.

- There is alas no correlation between the PDT and support for either
variant of spin down/ spin up.

I hope to test another PL-3507 device and an Apple Mac in target mode
soon. I will then post a patch for the sbp2/scsi/sd stack based on
Tino's patch and the current findings which switches all SBP-2 HDDs to
using the power condition field in sd_start_stop_device().

I also have two devices which probably contain old SYM13FWxxx bridges.
Alas I can't test them with HDDs because they are sealed CD-RW
enclosures which cannot be opened without damage.
--
Stefan Richter
-=====-==--- -=-= -=--=
http://arcgraph.de/sr/


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/