* 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).