linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* libata SATA support for Sil 3726 port multiplier
@ 2006-07-04  5:53 Fredrik Sjoholm
  2006-07-11 16:24 ` Jeremy Jackson
  0 siblings, 1 reply; 6+ messages in thread
From: Fredrik Sjoholm @ 2006-07-04  5:53 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: linux-ide


Hello Jeff,

i'm using your libata SATA PMP support with a Sil 3132 chip + 3726 port 
multiplier with 5 drives. in order to get it to work, i had to make the 
following addition in ata_pm_quirks() [libata-pm.c]

 	if (vendor == 0x1095 && devid == 0x4726) {
 		*nr_ports -= 2;
 		*link_flags |= ATA_LFLAG_HRST_TO_RESUME;
 	}
+       else if (vendor == 0x1095 && devid == 0x3726) {
+		*nr_ports -= 1;
+		*link_flags |= ATA_LFLAG_HRST_TO_RESUME;
+	}

without the ATA_LFLAG_HRST_TO_RESUME flag, the detection times out, 
retries after 5 seconds and eventually gives up; after which only the 1st 
drive on the multiplier is detected. it's also interesting that both 4726 
& 3726 apparently report an incorrect but _different_ number of drives...

with this fix, it works perfectly; nice job on PMP!

fredrik sjoholm

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: libata SATA support for Sil 3726 port multiplier
  2006-07-04  5:53 libata SATA support for Sil 3726 port multiplier Fredrik Sjoholm
@ 2006-07-11 16:24 ` Jeremy Jackson
  2006-07-12  2:17   ` Fredrik Sjoholm
  0 siblings, 1 reply; 6+ messages in thread
From: Jeremy Jackson @ 2006-07-11 16:24 UTC (permalink / raw)
  To: Fredrik Sjoholm; +Cc: Jeff Garzik, linux-ide

What device do you have with a 3726?  I have tried contacting Silicon 
Image directly, but they do not know of any products that are *not* 
external eSATA enclosures.  If anyone knows of these (for sale - not 
demo boards), I'd like to hear about it.

Fredrik Sjoholm wrote:
> 
> Hello Jeff,
> 
> i'm using your libata SATA PMP support with a Sil 3132 chip + 3726 port 
> multiplier with 5 drives. in order to get it to work, i had to make the 
> following addition in ata_pm_quirks() [libata-pm.c]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: libata SATA support for Sil 3726 port multiplier
  2006-07-11 16:24 ` Jeremy Jackson
@ 2006-07-12  2:17   ` Fredrik Sjoholm
  2006-07-18 23:46     ` Tejun Heo
  0 siblings, 1 reply; 6+ messages in thread
From: Fredrik Sjoholm @ 2006-07-12  2:17 UTC (permalink / raw)
  To: Jeremy Jackson; +Cc: Jeff Garzik, linux-ide


Hi,

The 3726 multiplier is in fact built into an external box:

 	http://www.datoptic.com/cgi-bin/web.cgi?product=Sbox-P&detail=yes

I connected the box with the 3726 multiplier to a 3132 based pci-x card 
via an eSATA cable.

There is one remaining quirk which i didn't notice before emailing you the 
mini-fix: When booting cold, the spin-up of each drive happens 
sequentially and the 5 second retry isn't enough for each drive to get 
ready. This wouldn't have been a problem except for the fact that even the 
latest version (7.3.13) of the Sil3132 BIOS doesn't bother detecting and 
spinning-up anything except the 1st drive on the multiplier. On subsequent 
bootups, with drives already spinning, it work right away.

I guess it would be nice to spin-up all drives in rapid succession, and 
then retry them all at once every few seconds, but all i did was to 
increase the timeout to 15 seconds which works too.


here are the dmesg outputs:

1. warm start, everything ok:

 	http://www.sjoholm.com/sata/dmesg.warmspin-ok

2. cold start, 5 second timeouts. only 1st drive usable:

 	http://www.sjoholm.com/sata/dmesg.spinup5-fail

3. cold start, ssleep(15)'s in libata-eh.c, all drives ok:

 	http://www.sjoholm.com/sata/dmesg.spinup15-ok


fredrik



On Tue, 11 Jul 2006, Jeremy Jackson wrote:

> What device do you have with a 3726?  I have tried contacting Silicon Image 
> directly, but they do not know of any products that are *not* external eSATA 
> enclosures.  If anyone knows of these (for sale - not demo boards), I'd like 
> to hear about it.
>
> Fredrik Sjoholm wrote:
>>
>>  Hello Jeff,
>>
>>  i'm using your libata SATA PMP support with a Sil 3132 chip + 3726 port
>>  multiplier with 5 drives. in order to get it to work, i had to make the
>>  following addition in ata_pm_quirks() [libata-pm.c]
>
>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: libata SATA support for Sil 3726 port multiplier
  2006-07-12  2:17   ` Fredrik Sjoholm
@ 2006-07-18 23:46     ` Tejun Heo
  2006-07-18 23:55       ` Fredrik Sjoholm
  2006-07-19  0:21       ` Edward Falk
  0 siblings, 2 replies; 6+ messages in thread
From: Tejun Heo @ 2006-07-18 23:46 UTC (permalink / raw)
  To: Fredrik Sjoholm; +Cc: Jeremy Jackson, Jeff Garzik, linux-ide

Hello, Fredrik.

Fredrik Sjoholm wrote:
> 
> Hi,
> 
> The 3726 multiplier is in fact built into an external box:
> 
>     http://www.datoptic.com/cgi-bin/web.cgi?product=Sbox-P&detail=yes
> 
> I connected the box with the 3726 multiplier to a 3132 based pci-x card 
> via an eSATA cable.
> 
> There is one remaining quirk which i didn't notice before emailing you 
> the mini-fix: When booting cold, the spin-up of each drive happens 
> sequentially and the 5 second retry isn't enough for each drive to get 
> ready. This wouldn't have been a problem except for the fact that even 
> the latest version (7.3.13) of the Sil3132 BIOS doesn't bother detecting 
> and spinning-up anything except the 1st drive on the multiplier. On 
> subsequent bootups, with drives already spinning, it work right away.
> 
> I guess it would be nice to spin-up all drives in rapid succession, and 
> then retry them all at once every few seconds, but all i did was to 
> increase the timeout to 15 seconds which works too.

Yes, we have yet to implement staggered spinup support with someway to 
control the number of concurrently spun up devices.  It's on my agenda. 
  SATA staggered spinup is enabled by loading certain pin in the power 
connector during power-up.  So, it is the enclosure which determines 
whether staggered spin-up is enabled or disabled.  Your enclosure may 
have a dip switch or something to control that.

> here are the dmesg outputs:
> 
> 1. warm start, everything ok:
> 
>     http://www.sjoholm.com/sata/dmesg.warmspin-ok
> 
> 2. cold start, 5 second timeouts. only 1st drive usable:
> 
>     http://www.sjoholm.com/sata/dmesg.spinup5-fail
> 
> 3. cold start, ssleep(15)'s in libata-eh.c, all drives ok:
> 
>     http://www.sjoholm.com/sata/dmesg.spinup15-ok

Can you try new version and see how it acts?

http://home-tj.org/files/libata-tj-stable/libata-tj-2.6.17.4-20060710.tar.bz2

It probably won't fix the problem but hardreset implementation has 
changed and it would help me understanding how spinning up device acts. 
  Also, turning on CONFIG_PRINTK_TIME (Kernel Hacking -> Show timing 
information on printks) will be nice.

Thanks.

-- 
tejun

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: libata SATA support for Sil 3726 port multiplier
  2006-07-18 23:46     ` Tejun Heo
@ 2006-07-18 23:55       ` Fredrik Sjoholm
  2006-07-19  0:21       ` Edward Falk
  1 sibling, 0 replies; 6+ messages in thread
From: Fredrik Sjoholm @ 2006-07-18 23:55 UTC (permalink / raw)
  To: Tejun Heo; +Cc: Jeremy Jackson, Jeff Garzik, linux-ide



Hi,

i already downloaded the 2.6.17.4 verion patch a few days ago, and it's 
working perfectly. i haven't tried it with any drives unplugged yet, which 
i had planned to do since i saw that you hardcoded the fan-out to 5 
drives. although i'm sure it'll still detect having less than 5 actual 
drives plugged into the multiplier elsewhere in the code.

if there's any special case you'd like me to test, i'd be happy to (oh no, 
another reboot... ;-)

fredrik


On Tue, 18 Jul 2006, Tejun Heo wrote:

> Hello, Fredrik.
>
> Fredrik Sjoholm wrote:
>>
>>  Hi,
>>
>>  The 3726 multiplier is in fact built into an external box:
>>
>>      http://www.datoptic.com/cgi-bin/web.cgi?product=Sbox-P&detail=yes
>>
>>  I connected the box with the 3726 multiplier to a 3132 based pci-x card
>>  via an eSATA cable.
>>
>>  There is one remaining quirk which i didn't notice before emailing you the
>>  mini-fix: When booting cold, the spin-up of each drive happens
>>  sequentially and the 5 second retry isn't enough for each drive to get
>>  ready. This wouldn't have been a problem except for the fact that even the
>>  latest version (7.3.13) of the Sil3132 BIOS doesn't bother detecting and
>>  spinning-up anything except the 1st drive on the multiplier. On subsequent
>>  bootups, with drives already spinning, it work right away.
>>
>>  I guess it would be nice to spin-up all drives in rapid succession, and
>>  then retry them all at once every few seconds, but all i did was to
>>  increase the timeout to 15 seconds which works too.
>
> Yes, we have yet to implement staggered spinup support with someway to 
> control the number of concurrently spun up devices.  It's on my agenda.  SATA 
> staggered spinup is enabled by loading certain pin in the power connector 
> during power-up.  So, it is the enclosure which determines whether staggered 
> spin-up is enabled or disabled.  Your enclosure may have a dip switch or 
> something to control that.
>
>>  here are the dmesg outputs:
>>
>>  1. warm start, everything ok:
>>
>>      http://www.sjoholm.com/sata/dmesg.warmspin-ok
>>
>>  2. cold start, 5 second timeouts. only 1st drive usable:
>>
>>      http://www.sjoholm.com/sata/dmesg.spinup5-fail
>>
>>  3. cold start, ssleep(15)'s in libata-eh.c, all drives ok:
>>
>>      http://www.sjoholm.com/sata/dmesg.spinup15-ok
>
> Can you try new version and see how it acts?
>
> http://home-tj.org/files/libata-tj-stable/libata-tj-2.6.17.4-20060710.tar.bz2
>
> It probably won't fix the problem but hardreset implementation has changed 
> and it would help me understanding how spinning up device acts.  Also, 
> turning on CONFIG_PRINTK_TIME (Kernel Hacking -> Show timing information on 
> printks) will be nice.
>
> Thanks.
>
> -- 
> tejun
>
>
>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: libata SATA support for Sil 3726 port multiplier
  2006-07-18 23:46     ` Tejun Heo
  2006-07-18 23:55       ` Fredrik Sjoholm
@ 2006-07-19  0:21       ` Edward Falk
  1 sibling, 0 replies; 6+ messages in thread
From: Edward Falk @ 2006-07-19  0:21 UTC (permalink / raw)
  To: Tejun Heo; +Cc: Fredrik Sjoholm, Jeremy Jackson, Jeff Garzik, linux-ide


> Yes, we have yet to implement staggered spinup support with someway to 
> control the number of concurrently spun up devices.  It's on my agenda. 
>  SATA staggered spinup is enabled by loading certain pin in the power 
> connector during power-up.  So, it is the enclosure which determines 
> whether staggered spin-up is enabled or disabled.  Your enclosure may 
> have a dip switch or something to control that.

Doing staggered spinup properly is a tricky thing -- the sequence that 
spins up the drive is the same sequence that detects the drive.  This 
means that simply probing the controller for disk drives will spin them 
up.  So staggered spinup means staggered probling.  Tricky.

	-ed falk

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2006-07-19  0:22 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-07-04  5:53 libata SATA support for Sil 3726 port multiplier Fredrik Sjoholm
2006-07-11 16:24 ` Jeremy Jackson
2006-07-12  2:17   ` Fredrik Sjoholm
2006-07-18 23:46     ` Tejun Heo
2006-07-18 23:55       ` Fredrik Sjoholm
2006-07-19  0:21       ` Edward Falk

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).