linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Serial ATA (SATA) for Linux status report
@ 2003-12-03 20:44 Jeff Garzik
  2003-12-03 23:27 ` Andre Tomt
                   ` (5 more replies)
  0 siblings, 6 replies; 35+ messages in thread
From: Jeff Garzik @ 2003-12-03 20:44 UTC (permalink / raw)
  To: linux-kernel, linux-ide, linux-scsi




Editor's preface:  This is clearly a first draft, only covering the
basics.  In order for this document to be effective, I request that
users and developers send me (or post) their SATA driver questions and
issues.  I will do my best to address them here.


Serial ATA (SATA) for Linux
status report
Dec 3, 2003


Hardware support
================


Intel ICH5
----------
Summary:  No TCQ.  Looks like a PATA controller, but with a few added,
non-standard SATA port controls.

libata driver status:  Production, but see issue #2, #3.

drivers/ide driver status:  Production, but see issue #1, #2.


Issue #1:  Depending on BIOS settings, IDE driver may lock up computer
when probing drives.

Issue #2:  Excessive interrupts are seen in some configurations.

Issue #3:  "Enhanced mode" or "SATA-only mode" may need to be set in BIOS.


Intel ICH6 ("AHCI")
-------------------
Summary:  Per-device queues, full SATA control including hotplug
and PM.

libata driver status:  In development.


Promise
-------
Summary:  Per-host queues on all controllers.  Full SATA control
including hotplug and PM on all but one controller.

libata driver status:  Beta.


Silicon Image 3112
------------------
Summary:  No TCQ.  Looks like a PATA controller, but with full SATA
control including hotplug and PM.

libata driver status:  Alpha.

drivers/ide driver status:  Production, but see issue #4.

Issue #4:  Need to have the most recent fixes posted to lkml, for stable
operation and full performance (where possible).


Broadcom/ServerWorks/Apple
--------------------------
Summary:  Huge per-device queues, full SATA control including hotplug
and PM.

libata driver status:  Beta.


VIA
---
Summary:  No TCQ.  Looks like a PATA controller, but with full SATA
control including hotplug and PM.

libata driver status:  Beta.




Software support
================


Basic Serial ATA support
------------------------
The "ATA host state machine", the core of the entire driver, is
considered production-stable.

The error handling is _very_ simple, but at this stage that is an
advantage.  Error handling code anywhere is inevitably both complex and
sorely under-tested.  libata error handling is intentionally simple.
Positives:  Easy to review and verify correctness.  Never data
corruption.  Negatives:  if an error occurs, libata will simply send
the error back the block layer.  There are limited retries by the block
layer, depending on the type of error, but there is never a bus reset.

Or in other words:  "it's better to stop talking to the disk than
compound existing problems with further problems."

As Serial ATA matures, and host- and device-side errata become apparent,
the error handling will be slowly refined.  I am planning to work with a
few (kind!) disk vendors, to obtain special drives/firmwares that allow
me to inject faults, and otherwise exercise error handling code.



Queueing support
----------------
Even though some SATA host controllers on the market already support
command queueing (a.k.a. "TCQ"), libata does not yet support it.

However, libata was designed from the ground-up to support queueing, so
I need only change a few lines of code, and write two functions, to
enable this behavior.

Queueing will be enabled in libata soon, but to do so requires a long
stretch of testing on a large variety of controllers and drives.  This
is very time-intensive, and is the largest part of this task.


Tangent:  Host-based queueing and Native Command Queueing

Queueing is the process of sending multiple commands to a single device,
without waiting for prior commands to finish.  This increases
performance and reduces latency.  There are three types of queueing in
the ATA world:

1) "legacy TCQ" -- some PATA devices support this.  Just ignore it,
it's going away.

2) "host-based TCQ" -- the host controller supports a queue of drive
commands, whether or not the drive supports it.

3) "Native Command Queueing" -- both host and drive cooperate in the
queueing and execution of drive commands.  This should provide the
highest performance and lowest latency of all three options.


#1 is support by drivers/ide _only_.  libata will not support this.
#2 will soon be supported by libata.
#3 will be supported by libata when hardware is available from drive
manufacturers.


Hotplug support
---------------
All SATA is hotplug.

libata does not support hotplug... yet.



Power Management support
------------------------
Over and above the power management specified in the ATA/ATAPI
specification, one can aggressively control the power consumption of
SATA hosts, the SATA bus, and the SATA device.



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

* Re: Serial ATA (SATA) for Linux status report
  2003-12-03 20:44 Serial ATA (SATA) for Linux status report Jeff Garzik
@ 2003-12-03 23:27 ` Andre Tomt
  2003-12-03 23:36   ` Jeff Garzik
  2003-12-04  8:17 ` Arnaud Launay
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 35+ messages in thread
From: Andre Tomt @ 2003-12-03 23:27 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: linux-kernel, linux-ide, linux-scsi

On Wed, 2003-12-03 at 21:44, Jeff Garzik wrote:
> Intel ICH5
> ----------
> Summary:  No TCQ.  Looks like a PATA controller, but with a few added,
> non-standard SATA port controls.

<snip>

> Intel ICH6 ("AHCI")
> -------------------
> Summary:  Per-device queues, full SATA control including hotplug
> and PM.

Hi jeff! :)

One question - with "including hotplug", does that mean some set hotplug
standard? Reason I'm asking is, we have a few servers from SuperMicro,
with a ICH5R S-ATA controller that claims it's supporting hotplug, but
hotplug is not in your ICH5-summary.

PS, libata works great on those systems, good work!


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

* Re: Serial ATA (SATA) for Linux status report
  2003-12-03 23:27 ` Andre Tomt
@ 2003-12-03 23:36   ` Jeff Garzik
  2003-12-04  0:21     ` Miquel van Smoorenburg
                       ` (3 more replies)
  0 siblings, 4 replies; 35+ messages in thread
From: Jeff Garzik @ 2003-12-03 23:36 UTC (permalink / raw)
  To: Andre Tomt; +Cc: linux-kernel, linux-ide, linux-scsi

Andre Tomt wrote:
> On Wed, 2003-12-03 at 21:44, Jeff Garzik wrote:
> 
>>Intel ICH5
>>----------
>>Summary:  No TCQ.  Looks like a PATA controller, but with a few added,
>>non-standard SATA port controls.

> One question - with "including hotplug", does that mean some set hotplug
> standard? Reason I'm asking is, we have a few servers from SuperMicro,
> with a ICH5R S-ATA controller that claims it's supporting hotplug, but
> hotplug is not in your ICH5-summary.

Alas, there is no hotplug support in the ICH5 or ICH5-R SATA hardware.

One could argue there is "coldplug" support in that hardware -- disable 
the entire interface, including any active devices, then re-enable and 
re-scan -- but it's a bit of a hack.  If there's enough demand, I could 
write some code for that.  It would involve something like

	# /sbin/sata off
	{ plug in or remove a device }
	# /sbin/sata on

You really, really, really don't want to actually unplug a SATA drive 
while it's active, on ICH5 hardware.

	Jeff




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

* Re: Serial ATA (SATA) for Linux status report
  2003-12-03 23:36   ` Jeff Garzik
@ 2003-12-04  0:21     ` Miquel van Smoorenburg
  2003-12-04  0:59     ` Samuel Flory
                       ` (2 subsequent siblings)
  3 siblings, 0 replies; 35+ messages in thread
From: Miquel van Smoorenburg @ 2003-12-04  0:21 UTC (permalink / raw)
  To: linux-scsi, linux-kernel

In article <3FCE737C.1080105@pobox.com>,
Jeff Garzik  <jgarzik@pobox.com> wrote:
>Andre Tomt wrote:
>> On Wed, 2003-12-03 at 21:44, Jeff Garzik wrote:
>> 
>>>Intel ICH5
>>>----------
>>>Summary:  No TCQ.  Looks like a PATA controller, but with a few added,
>>>non-standard SATA port controls.
>
>> One question - with "including hotplug", does that mean some set hotplug
>> standard? Reason I'm asking is, we have a few servers from SuperMicro,
>> with a ICH5R S-ATA controller that claims it's supporting hotplug, but
>> hotplug is not in your ICH5-summary.
>
>Alas, there is no hotplug support in the ICH5 or ICH5-R SATA hardware.
>
>One could argue there is "coldplug" support in that hardware -- disable 
>the entire interface, including any active devices, then re-enable and 
>re-scan -- but it's a bit of a hack.  If there's enough demand, I could 
>write some code for that.

Please. Several vendors now have 1U boxes with 2 swappable SATA
drives, and many of those vendors (e.g. supermicro) use
motherboards with the ICH5 SATA chipset.

We're about to buy a few too, and we intend to use the drivers
in RAID0 mode. The ability to swap a drive without powering down
the whole box is quite essential.

Mike.


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

* Re: Serial ATA (SATA) for Linux status report
  2003-12-03 23:36   ` Jeff Garzik
  2003-12-04  0:21     ` Miquel van Smoorenburg
@ 2003-12-04  0:59     ` Samuel Flory
  2003-12-04  1:02     ` Andre Tomt
  2003-12-04 13:38     ` Justin Cormack
  3 siblings, 0 replies; 35+ messages in thread
From: Samuel Flory @ 2003-12-04  0:59 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: Andre Tomt, linux-kernel, linux-ide, linux-scsi

Jeff Garzik wrote:
> Andre Tomt wrote:
> 
>> On Wed, 2003-12-03 at 21:44, Jeff Garzik wrote:
>>
>>> Intel ICH5
>>> ----------
>>> Summary:  No TCQ.  Looks like a PATA controller, but with a few added,
>>> non-standard SATA port controls.
> 
> 
>> One question - with "including hotplug", does that mean some set hotplug
>> standard? Reason I'm asking is, we have a few servers from SuperMicro,
>> with a ICH5R S-ATA controller that claims it's supporting hotplug, but
>> hotplug is not in your ICH5-summary.
> 
> 
> Alas, there is no hotplug support in the ICH5 or ICH5-R SATA hardware.
> 
> One could argue there is "coldplug" support in that hardware -- disable 
> the entire interface, including any active devices, then re-enable and 
> re-scan -- but it's a bit of a hack.  If there's enough demand, I could 
> write some code for that.  It would involve something like
> 
>     # /sbin/sata off
>     { plug in or remove a device }
>     # /sbin/sata on
> 
> You really, really, really don't want to actually unplug a SATA drive 
> while it's active, on ICH5 hardware.
>

   In theroy the scsi driver allows you kill a drive, and do rescan by 
echoing to /proc/scsi.scsi.  I know it worked under 2.4 with sca drive 
on a hotswap backplane.  This was over a year ago.  So it may have been 
broken.

scsi.c:
  * Usage: echo "scsi add-single-device 0 1 2 3" >/proc/scsi/scsi
          * with  "0 1 2 3" replaced by your "Host Channel Id Lun".


         /*
          * Usage: echo "scsi remove-single-device 0 1 2 3" >/proc/scsi/scsi
          * with  "0 1 2 3" replaced by your "Host Channel Id Lun".
          *

PS-  Yes I know says it isn't for hotswap, and that it's prebeta.  This 
comment dates back to at least 2.2.  It's worked for least 4 years.
-- 
There is no such thing as obsolete hardware.
Merely hardware that other people don't want.
(The Second Rule of Hardware Acquisition)
Sam Flory  <sflory@rackable.com>


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

* Re: Serial ATA (SATA) for Linux status report
  2003-12-03 23:36   ` Jeff Garzik
  2003-12-04  0:21     ` Miquel van Smoorenburg
  2003-12-04  0:59     ` Samuel Flory
@ 2003-12-04  1:02     ` Andre Tomt
  2003-12-04 13:38     ` Justin Cormack
  3 siblings, 0 replies; 35+ messages in thread
From: Andre Tomt @ 2003-12-04  1:02 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: linux-kernel, linux-ide

On Thu, 2003-12-04 at 00:36, Jeff Garzik wrote:
> Andre Tomt wrote:
> > One question - with "including hotplug", does that mean some set hotplug
> > standard? Reason I'm asking is, we have a few servers from SuperMicro,
> > with a ICH5R S-ATA controller that claims it's supporting hotplug, but
> > hotplug is not in your ICH5-summary.
> 
> Alas, there is no hotplug support in the ICH5 or ICH5-R SATA hardware.
> 
> One could argue there is "coldplug" support in that hardware -- disable 
> the entire interface, including any active devices, then re-enable and 
> re-scan -- but it's a bit of a hack.  If there's enough demand, I could 
> write some code for that.  It would involve something like
> 
> 	# /sbin/sata off
> 	{ plug in or remove a device }
> 	# /sbin/sata on
> 
> You really, really, really don't want to actually unplug a SATA drive 
> while it's active, on ICH5 hardware.

Hmm. There is a backplane involved, that might change things a little.

Quoting the manual:
"A Serial ATA controller is incorporated into the 875P chipset to
provide a two-port Serial ATA subsystem, which is RAID 0 and RAID 1
supported. The Serial ATA drives are hot-swappable units. Note: The
operating system you use must have RAID support to enable the hot-swap
capability and RAID function of the Serial ATA drives."

"The Serial ATA drives plug into a backplane that provides power, drive
ID and bus termination. A RAID controller can be used with the backplane
to provide data security. The operating system you use must have RAID
support to enable the hot-swap capability of the Serial ATA drives."

The wording here is a little confusing, but hot-swap seems to work quite
well with intels windows fakeraid-drivers, at least. One just pushes the
"i'm going to pull you out now"-button on the tray, and pull the drive
tray out. Maybe it triggers an event to the fakeraid-driver, wich then
powers down the bus? black backplane-magic?

Anyways, REAL S-ATA hardware RAID controllers are pretty cheap over here
nowadays..

[trimmed off linux-scsi]


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

* Re: Serial ATA (SATA) for Linux status report
  2003-12-03 20:44 Serial ATA (SATA) for Linux status report Jeff Garzik
  2003-12-03 23:27 ` Andre Tomt
@ 2003-12-04  8:17 ` Arnaud Launay
  2003-12-04 15:01   ` Jeff Garzik
  2003-12-09  9:39 ` Petr Sebor
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 35+ messages in thread
From: Arnaud Launay @ 2003-12-04  8:17 UTC (permalink / raw)
  To: linux-kernel, linux-ide, linux-scsi

Le Wed, Dec 03, 2003 at 03:44:46PM -0500, Jeff Garzik a écrit:
> Intel ICH5
> ----------
> Summary:  No TCQ.  Looks like a PATA controller, but with a few
> added, non-standard SATA port controls.

No plan to add the so-called "raid" capabilities of the 82801EB ?

> Silicon Image 3112

Same here, is support for the 3114 underway ? Saw a message from
Andre Hedrick back in July saying he had something seemingly
working, but there's no news since...

(Andre, no rant here, just a question. It's for personal use and
I'm grateful you do that on your freetime).

	Arnaud.

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

* Re: Serial ATA (SATA) for Linux status report
  2003-12-03 23:36   ` Jeff Garzik
                       ` (2 preceding siblings ...)
  2003-12-04  1:02     ` Andre Tomt
@ 2003-12-04 13:38     ` Justin Cormack
  2003-12-04 14:54       ` Jeff Garzik
  3 siblings, 1 reply; 35+ messages in thread
From: Justin Cormack @ 2003-12-04 13:38 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: Andre Tomt, Kernel mailing list, linux-ide, linux-scsi

On Wed, 2003-12-03 at 23:36, Jeff Garzik wrote:
> Andre Tomt wrote:
> > On Wed, 2003-12-03 at 21:44, Jeff Garzik wrote:
> > 
> >>Intel ICH5
> >>----------
> >>Summary:  No TCQ.  Looks like a PATA controller, but with a few added,
> >>non-standard SATA port controls.
> 
> > One question - with "including hotplug", does that mean some set hotplug
> > standard? Reason I'm asking is, we have a few servers from SuperMicro,
> > with a ICH5R S-ATA controller that claims it's supporting hotplug, but
> > hotplug is not in your ICH5-summary.
> 
> Alas, there is no hotplug support in the ICH5 or ICH5-R SATA hardware.
> 
> One could argue there is "coldplug" support in that hardware -- disable 
> the entire interface, including any active devices, then re-enable and 
> re-scan -- but it's a bit of a hack.  If there's enough demand, I could 
> write some code for that.  It would involve something like
> 
> 	# /sbin/sata off
> 	{ plug in or remove a device }
> 	# /sbin/sata on
> 
> You really, really, really don't want to actually unplug a SATA drive 
> while it's active, on ICH5 hardware.

How does it work on other hardware?

Justin



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

* Re: Serial ATA (SATA) for Linux status report
  2003-12-04 13:38     ` Justin Cormack
@ 2003-12-04 14:54       ` Jeff Garzik
  0 siblings, 0 replies; 35+ messages in thread
From: Jeff Garzik @ 2003-12-04 14:54 UTC (permalink / raw)
  To: Justin Cormack; +Cc: Andre Tomt, Kernel mailing list, linux-ide, linux-scsi

Justin Cormack wrote:
> On Wed, 2003-12-03 at 23:36, Jeff Garzik wrote:
> 
>>Andre Tomt wrote:
>>
>>>On Wed, 2003-12-03 at 21:44, Jeff Garzik wrote:
>>>
>>>
>>>>Intel ICH5
>>>>----------
>>>>Summary:  No TCQ.  Looks like a PATA controller, but with a few added,
>>>>non-standard SATA port controls.
>>
>>>One question - with "including hotplug", does that mean some set hotplug
>>>standard? Reason I'm asking is, we have a few servers from SuperMicro,
>>>with a ICH5R S-ATA controller that claims it's supporting hotplug, but
>>>hotplug is not in your ICH5-summary.
>>
>>Alas, there is no hotplug support in the ICH5 or ICH5-R SATA hardware.
>>
>>One could argue there is "coldplug" support in that hardware -- disable 
>>the entire interface, including any active devices, then re-enable and 
>>re-scan -- but it's a bit of a hack.  If there's enough demand, I could 
>>write some code for that.  It would involve something like
>>
>>	# /sbin/sata off
>>	{ plug in or remove a device }
>>	# /sbin/sata on
>>
>>You really, really, really don't want to actually unplug a SATA drive 
>>while it's active, on ICH5 hardware.
> 
> 
> How does it work on other hardware?


Just yank the cord :)

	Jeff




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

* Re: Serial ATA (SATA) for Linux status report
  2003-12-04  8:17 ` Arnaud Launay
@ 2003-12-04 15:01   ` Jeff Garzik
  2003-12-05 17:42     ` Mickael Marchand
  0 siblings, 1 reply; 35+ messages in thread
From: Jeff Garzik @ 2003-12-04 15:01 UTC (permalink / raw)
  To: Arnaud Launay; +Cc: linux-kernel, linux-ide, linux-scsi

Arnaud Launay wrote:
> Le Wed, Dec 03, 2003 at 03:44:46PM -0500, Jeff Garzik a écrit:
> 
>>Intel ICH5
>>----------
>>Summary:  No TCQ.  Looks like a PATA controller, but with a few
>>added, non-standard SATA port controls.
> 
> 
> No plan to add the so-called "raid" capabilities of the 82801EB ?

AFAIK the raid capabilities are entirely in software.

And Intel just wrote and posted this component.  Look for "iswraid" in 
the linux-kernel archives.


>>Silicon Image 3112
> 
> 
> Same here, is support for the 3114 underway ? Saw a message from

Underway, but beyond that cannot comment :)

	Jeff




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

* Re: Serial ATA (SATA) for Linux status report
  2003-12-04 15:01   ` Jeff Garzik
@ 2003-12-05 17:42     ` Mickael Marchand
  2003-12-05 17:47       ` Jeff Garzik
  0 siblings, 1 reply; 35+ messages in thread
From: Mickael Marchand @ 2003-12-05 17:42 UTC (permalink / raw)
  To: Jeff Garzik, linux-kernel

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,

as I was too impatient, I wrote a quick hack for it.
Now I can see my drives on the 3114 controller.
RAID does not seem to work but I can access my SATA drives in normal mode.

hdparm gives a 57 Mb/s output.
I had no error/crash/corruption, it appears to work correctly.

It works on 2.4.23 and 2.6.0-test11 with libata.
basically, you just need to add the PCI id for 3114 just like 3112 in 
sata_sil.c, load the module and enjoy.
I presume 3112 and 3114 chips are mostly identical.

I have tested this on 2 Tyan motherboards with Sil 3114 inside

I can generate a patch in a few moments if you want it.

cheers,
Mik


Le Thursday 04 December 2003 16:01, Jeff Garzik a écrit :
> Arnaud Launay wrote:
> > Le Wed, Dec 03, 2003 at 03:44:46PM -0500, Jeff Garzik a écrit:
> >>Intel ICH5
> >>----------
> >>Summary:  No TCQ.  Looks like a PATA controller, but with a few
> >>added, non-standard SATA port controls.
> >
> > No plan to add the so-called "raid" capabilities of the 82801EB ?
>
> AFAIK the raid capabilities are entirely in software.
>
> And Intel just wrote and posted this component.  Look for "iswraid" in
> the linux-kernel archives.
>
> >>Silicon Image 3112
> >
> > Same here, is support for the 3114 underway ? Saw a message from
>
> Underway, but beyond that cannot comment :)
>
> 	Jeff
>
>
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (GNU/Linux)

iD8DBQE/0MN5yOYzc4nQ8j0RApGlAJ9WZxYY5wos+epXPsz4W/SPgOa7rQCfcKx1
lbblGOkp3DKKQUcRyN978us=
=KBJD
-----END PGP SIGNATURE-----

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

* Re: Serial ATA (SATA) for Linux status report
  2003-12-05 17:42     ` Mickael Marchand
@ 2003-12-05 17:47       ` Jeff Garzik
  2003-12-05 18:07         ` [PATCH] Silicon image 3114 SATA link (really basic support) Mickael Marchand
  2003-12-05 18:16         ` Serial ATA (SATA) for Linux status report Kevin P. Fleming
  0 siblings, 2 replies; 35+ messages in thread
From: Jeff Garzik @ 2003-12-05 17:47 UTC (permalink / raw)
  To: Mickael Marchand; +Cc: linux-kernel

Mickael Marchand wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Hi,
> 
> as I was too impatient, I wrote a quick hack for it.
> Now I can see my drives on the 3114 controller.
> RAID does not seem to work but I can access my SATA drives in normal mode.
> 
> hdparm gives a 57 Mb/s output.
> I had no error/crash/corruption, it appears to work correctly.
> 
> It works on 2.4.23 and 2.6.0-test11 with libata.
> basically, you just need to add the PCI id for 3114 just like 3112 in 
> sata_sil.c, load the module and enjoy.
> I presume 3112 and 3114 chips are mostly identical.
> 
> I have tested this on 2 Tyan motherboards with Sil 3114 inside
> 
> I can generate a patch in a few moments if you want it.


Yes, a tested patch would be great, thanks!

	Jeff




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

* [PATCH] Silicon image 3114 SATA link (really basic support)
  2003-12-05 17:47       ` Jeff Garzik
@ 2003-12-05 18:07         ` Mickael Marchand
  2003-12-09 18:22           ` Aron Rubin
  2003-12-05 18:16         ` Serial ATA (SATA) for Linux status report Kevin P. Fleming
  1 sibling, 1 reply; 35+ messages in thread
From: Mickael Marchand @ 2003-12-05 18:07 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: linux-kernel

[-- Attachment #1: Type: Text/Plain, Size: 1347 bytes --]

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

here it is ;) (for 2.6.0-test11)
it includes patches in siimage.c but it did not work IIRC (lost interrupt).
(don't compile siimage inside the kernel, it would not boot)

enjoy,

cheers,
Mik

Le Friday 05 December 2003 18:47, Jeff Garzik a écrit :
> Mickael Marchand wrote:
> > -----BEGIN PGP SIGNED MESSAGE-----
> > Hash: SHA1
> >
> > Hi,
> >
> > as I was too impatient, I wrote a quick hack for it.
> > Now I can see my drives on the 3114 controller.
> > RAID does not seem to work but I can access my SATA drives in normal
> > mode.
> >
> > hdparm gives a 57 Mb/s output.
> > I had no error/crash/corruption, it appears to work correctly.
> >
> > It works on 2.4.23 and 2.6.0-test11 with libata.
> > basically, you just need to add the PCI id for 3114 just like 3112 in
> > sata_sil.c, load the module and enjoy.
> > I presume 3112 and 3114 chips are mostly identical.
> >
> > I have tested this on 2 Tyan motherboards with Sil 3114 inside
> >
> > I can generate a patch in a few moments if you want it.
>
> Yes, a tested patch would be great, thanks!
>
> 	Jeff
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (GNU/Linux)

iD8DBQE/0MlPyOYzc4nQ8j0RAtFpAJ4hemZoIMnFcBjBXYjGD/uCXJ3d/QCfbjT6
KigiRN0fY1PPveJIiJyKCdE=
=KemZ
-----END PGP SIGNATURE-----

[-- Attachment #2: sil3114.patch --]
[-- Type: text/x-diff, Size: 3861 bytes --]

diff -ru linux-2.6.0-test11.orig/drivers/ide/pci/siimage.c linux-2.6.0-test11/drivers/ide/pci/siimage.c
--- linux-2.6.0-test11.orig/drivers/ide/pci/siimage.c	2003-11-26 20:43:35.000000000 +0000
+++ linux-2.6.0-test11/drivers/ide/pci/siimage.c	2003-12-05 15:44:28.000000000 +0000
@@ -55,6 +55,7 @@
 	switch(pdev->device)
 	{
 		case PCI_DEVICE_ID_SII_3112:
+		case PCI_DEVICE_ID_SII_3114:
 		case PCI_DEVICE_ID_SII_1210SA:
 			return 1;
 		case PCI_DEVICE_ID_SII_680:
@@ -1178,6 +1179,7 @@
 static struct pci_device_id siimage_pci_tbl[] = {
 	{ PCI_VENDOR_ID_CMD, PCI_DEVICE_ID_SII_680,  PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
 	{ PCI_VENDOR_ID_CMD, PCI_DEVICE_ID_SII_3112, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 1},
+	{ PCI_VENDOR_ID_CMD, PCI_DEVICE_ID_SII_3114, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 1},
 	{ PCI_VENDOR_ID_CMD, PCI_DEVICE_ID_SII_1210SA, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 2},
 	{ 0, },
 };
diff -ru linux-2.6.0-test11.orig/drivers/ide/pci/siimage.h linux-2.6.0-test11/drivers/ide/pci/siimage.h
--- linux-2.6.0-test11.orig/drivers/ide/pci/siimage.h	2003-11-26 20:44:17.000000000 +0000
+++ linux-2.6.0-test11/drivers/ide/pci/siimage.h	2003-12-05 15:46:50.000000000 +0000
@@ -13,7 +13,7 @@
 #undef SIIMAGE_BUFFERED_TASKFILE
 #undef SIIMAGE_LARGE_DMA
 
-#define SII_DEBUG 0
+#define SII_DEBUG 1
 
 #if SII_DEBUG
 #define siiprintk(x...)	printk(x)
@@ -72,6 +72,18 @@
 		.extra		= 0,
 	},{	/* 2 */
 		.vendor		= PCI_VENDOR_ID_CMD,
+		.device		= PCI_DEVICE_ID_SII_3114,
+		.name		= "SiI3114 Serial ATA",
+		.init_chipset	= init_chipset_siimage,
+		.init_iops	= init_iops_siimage,
+		.init_hwif	= init_hwif_siimage,
+		.channels	= 2,
+		.autodma	= AUTODMA,
+		.enablebits	= {{0x00,0x00,0x00}, {0x00,0x00,0x00}},
+		.bootable	= ON_BOARD,
+		.extra		= 0,
+	},{	/* 3 */
+		.vendor		= PCI_VENDOR_ID_CMD,
 		.device		= PCI_DEVICE_ID_SII_1210SA,
 		.name		= "Adaptec AAR-1210SA",
 		.init_chipset	= init_chipset_siimage,
diff -ru linux-2.6.0-test11.orig/drivers/scsi/Kconfig linux-2.6.0-test11/drivers/scsi/Kconfig
--- linux-2.6.0-test11.orig/drivers/scsi/Kconfig	2003-11-26 20:45:32.000000000 +0000
+++ linux-2.6.0-test11/drivers/scsi/Kconfig	2003-12-05 15:54:20.000000000 +0000
@@ -441,7 +441,7 @@
 
 config SCSI_SATA_SIL
 	tristate "Silicon Image SATA support"
-	depends on SCSI_SATA && PCI && BROKEN
+	depends on SCSI_SATA && PCI
 	help
 	  This option enables support for Silicon Image Serial ATA.
 
diff -ru linux-2.6.0-test11.orig/drivers/scsi/sata_sil.c linux-2.6.0-test11/drivers/scsi/sata_sil.c
--- linux-2.6.0-test11.orig/drivers/scsi/sata_sil.c	2003-11-26 20:42:46.000000000 +0000
+++ linux-2.6.0-test11/drivers/scsi/sata_sil.c	2003-12-05 15:50:32.000000000 +0000
@@ -39,6 +39,7 @@
 
 enum {
 	sil_3112		= 0,
+	sil_3114		= 1,
 
 	SIL_IDE0_TF		= 0x80,
 	SIL_IDE0_CTL		= 0x8A,
@@ -62,6 +63,7 @@
 
 static struct pci_device_id sil_pci_tbl[] = {
 	{ 0x1095, 0x3112, PCI_ANY_ID, PCI_ANY_ID, 0, 0, sil_3112 },
+	{ 0x1095, 0x3114, PCI_ANY_ID, PCI_ANY_ID, 0, 0, sil_3114 },
 	{ }	/* terminate list */
 };
 
@@ -119,6 +121,14 @@
 		.pio_mask	= 0x03,			/* pio3-4 */
 		.udma_mask	= 0x7f,			/* udma0-6; FIXME */
 		.port_ops	= &sil_ops,
+	}, /* sil_3114 */
+	{
+		.sht		= &sil_sht,
+		.host_flags	= ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY |
+				  ATA_FLAG_SRST | ATA_FLAG_MMIO,
+		.pio_mask	= 0x03,			/* pio3-4 */
+		.udma_mask	= 0x7f,			/* udma0-6; FIXME */
+		.port_ops	= &sil_ops,
 	},
 };
 
diff -ru linux-2.6.0-test11.orig/include/linux/pci_ids.h linux-2.6.0-test11/include/linux/pci_ids.h
--- linux-2.6.0-test11.orig/include/linux/pci_ids.h	2003-11-26 20:43:39.000000000 +0000
+++ linux-2.6.0-test11/include/linux/pci_ids.h	2003-12-05 15:48:28.000000000 +0000
@@ -882,6 +882,7 @@
 
 #define PCI_DEVICE_ID_SII_680		0x0680
 #define PCI_DEVICE_ID_SII_3112		0x3112
+#define PCI_DEVICE_ID_SII_3114		0x3114
 #define PCI_DEVICE_ID_SII_1210SA	0x0240
 
 #define PCI_VENDOR_ID_VISION		0x1098

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

* Re: Serial ATA (SATA) for Linux status report
  2003-12-05 17:47       ` Jeff Garzik
  2003-12-05 18:07         ` [PATCH] Silicon image 3114 SATA link (really basic support) Mickael Marchand
@ 2003-12-05 18:16         ` Kevin P. Fleming
  2003-12-05 18:29           ` Jeff Garzik
  1 sibling, 1 reply; 35+ messages in thread
From: Kevin P. Fleming @ 2003-12-05 18:16 UTC (permalink / raw)
  To: LKML

Jeff Garzik wrote:

> Yes, a tested patch would be great, thanks!
> 

(hijacking this subthread, sorry)

Jeff, you mentioned in the status report "don't remove an operating disk 
from an ICH5, hotplug is not supported".

Does this mean hardware damage, or just serious libata/ICH5 confusion? 
I've got a six-disk server here with two disks on an ICH5 and four on an 
SATA150 TX4, and I really would like to be able to hot-replace a disk in 
case of a failure. If the ICH5 cannort support this, I'm going to have 
to get a 3ware card.


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

* Re: Serial ATA (SATA) for Linux status report
  2003-12-05 18:16         ` Serial ATA (SATA) for Linux status report Kevin P. Fleming
@ 2003-12-05 18:29           ` Jeff Garzik
  0 siblings, 0 replies; 35+ messages in thread
From: Jeff Garzik @ 2003-12-05 18:29 UTC (permalink / raw)
  To: Kevin P. Fleming; +Cc: LKML

Kevin P. Fleming wrote:
> Jeff Garzik wrote:
> 
>> Yes, a tested patch would be great, thanks!
>>
> 
> (hijacking this subthread, sorry)
> 
> Jeff, you mentioned in the status report "don't remove an operating disk 
> from an ICH5, hotplug is not supported".
> 
> Does this mean hardware damage, or just serious libata/ICH5 confusion? 
> I've got a six-disk server here with two disks on an ICH5 and four on an 
> SATA150 TX4, and I really would like to be able to hot-replace a disk in 
> case of a failure. If the ICH5 cannort support this, I'm going to have 
> to get a 3ware card.


_Probably_ no hardware damage, but I do not know for sure.  I do not it 
will likely lockup, and data corruption is also a possibility.

As I mentioned in another email, ICH5 hardware does not support hot 
removal.  HOWEVER.  If the OS driver is given sufficient notice, it can 
shut down the port, and the sysadmin may then unplug the SATA cable.

As a tangent, your TX4 hardware fully supports hotplug, but libata does 
not yet support it.

	Jeff




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

* Re: Serial ATA (SATA) for Linux status report
  2003-12-03 20:44 Serial ATA (SATA) for Linux status report Jeff Garzik
  2003-12-03 23:27 ` Andre Tomt
  2003-12-04  8:17 ` Arnaud Launay
@ 2003-12-09  9:39 ` Petr Sebor
  2003-12-09 19:59 ` J. Ryan Earl
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 35+ messages in thread
From: Petr Sebor @ 2003-12-09  9:39 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: linux-kernel

Just a little warning:

I have got a situation where the kernel won't boot when probing
for partition tables on SATA drives. I understand that this is
probably not related to libsata in any way... but... here it goes:

system is UP AMD Opteron 244/debian/sid
gcc (GCC) 3.3.3 20031206 (prerelease) (Debian)
binutils: Version: 2.14.90.0.7-3
kernel 2.6.0-test11

when compiling new kernel on a kernel optimized for Opteron
on an opteron machine, the kernel wont boot...

libata version 0.81 loaded.
sata_via version 0.11
ata1: SATA max UDMA/133 cmd 0xC000 ctl 0xC402 bmdma 0xD000 irq 20
ata2: SATA max UDMA/133 cmd 0xC800 ctl 0xCC02 bmdma 0xD008 irq 20
ata1: dev 0 cfg 49:2f00 82:346b 83:7f21 84:4003 85:3469 86:3c01 87:4003 
88:203f
ata1: dev 0 ATA, max UDMA/100, 488397168 sectors (lba48)
ata1: dev 0 configured for UDMA/100
scsi0 : sata_via
ata2: dev 0 cfg 49:2f00 82:346b 83:7f21 84:4003 85:3469 86:3c01 87:4003 
88:407f
ata2: dev 0 ATA, max UDMA/133, 72303840 sectors (lba48)
ata2: dev 0 configured for UDMA/133
scsi1 : sata_via
   Vendor: ATA       Model: WDC WD2500JD-00F  Rev: 0.81
   Type:   Direct-Access                      ANSI SCSI revision: 05
   Vendor: ATA       Model: WDC WD360GD-00FN  Rev: 0.81
   Type:   Direct-Access                      ANSI SCSI revision: 05
SCSI device sda: 488397168 512-byte hdwr sectors (250059 MB)
SCSI device sda: drive cache: write through
  sda: sda1
^^^ hangs right here with DMA timeout

when compiling new kernel on a kernel optimized for Athlon
on an opteron machine, the kernel boots ok
(same gcc, same binutils, same machine, just an athlon optimized kernel)

... the boot continues like this:
SCSI device sda: 488397168 512-byte hdwr sectors (250059 MB)
SCSI device sda: drive cache: write through
  sda: sda1 sda2
Attached scsi disk sda at scsi0, channel 0, id 0, lun 0
SCSI device sdb: 72303840 512-byte hdwr sectors (37020 MB)
SCSI device sdb: drive cache: write through
  sdb: sdb1
Attached scsi disk sdb at scsi1, channel 0, id 0, lun 0
Attached scsi generic sg0 at scsi0, channel 0, id 0, lun 0,  type 0
Attached scsi generic sg1 at scsi1, channel 0, id 0, lun 0,  type 0
mice: PS/2 mouse device common for all mice
... and so on

Happened after I remotely restarted quite important server,
had to get up really early to workaround this :-)
[by compiling new opteron optimized kernel on an non opteron
kernel... duh, could wood chuck chuck a wood if wood chuck chuck ....]

I have no idea what might be wrong...

Regards,
Petr

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

* Re: [PATCH] Silicon image 3114 SATA link (really basic support)
  2003-12-05 18:07         ` [PATCH] Silicon image 3114 SATA link (really basic support) Mickael Marchand
@ 2003-12-09 18:22           ` Aron Rubin
  2003-12-09 18:54             ` Mickael Marchand
  0 siblings, 1 reply; 35+ messages in thread
From: Aron Rubin @ 2003-12-09 18:22 UTC (permalink / raw)
  To: Mickael Marchand, linux-ide, linux-kernel

Mickael Marchand wrote:
> here it is ;) (for 2.6.0-test11)
> it includes patches in siimage.c but it did not work IIRC (lost interrupt).
> (don't compile siimage inside the kernel, it would not boot)

Your messages seem to be conflicting. Does this work or not or just 
enough to see messages? I am dealing with the same exact thing for the 
3512 chipset.

Aron


-- 

ssh aron@rubinium.org cat /dev/brain | grep ^work:

Aron Rubin                       Member, Engineering Staff
Lockheed Martin                  E-Mail: arubin@atl.lmco.com
Advanced Technology Laboratories Phone:  856.792.9865
3 Executive Campus               Fax:    856.792.9930
Cherry Hill, NJ USA 08002        Web:    http://www.atl.lmco.com


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

* Re: [PATCH] Silicon image 3114 SATA link (really basic support)
  2003-12-09 18:22           ` Aron Rubin
@ 2003-12-09 18:54             ` Mickael Marchand
  2003-12-09 20:14               ` Bartlomiej Zolnierkiewicz
  0 siblings, 1 reply; 35+ messages in thread
From: Mickael Marchand @ 2003-12-09 18:54 UTC (permalink / raw)
  To: Aron Rubin, linux-ide, linux-kernel

[-- Attachment #1: Type: Text/Plain, Size: 1287 bytes --]

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Le Tuesday 09 December 2003 19:22, Aron Rubin a écrit :
> Mickael Marchand wrote:
> > here it is ;) (for 2.6.0-test11)
> > it includes patches in siimage.c but it did not work IIRC (lost
> > interrupt). (don't compile siimage inside the kernel, it would not boot)
>
> Your messages seem to be conflicting. Does this work or not or just
> enough to see messages? I am dealing with the same exact thing for the
> 3512 chipset.
>
> Aron

Hi,

there are 2 drivers in the kernel for SATA drives.
first one is the IDE way in drivers/ide/pci/siimage.c (sata drives appears as 
hde,hdf etc ). 
the second drive is in libata in drivers/scsi/sata_sil.c (sata drives appears 
as sda,sdb etc ...) (the one I use daily)

the attached patch makes _both_ drivers work (whereas the previous one made 
only the libata one working)

I have not yet tested if the 4 sata ports works. I think I need to change the 
"channels" setting to have support for all ports (at least 2 ports work for 
me). I will try that later.

Cheers,
Mik
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (GNU/Linux)

iD8DBQE/1hpiyOYzc4nQ8j0RAjGTAJsETf+ARzNoIEuHbrakP/6p/jb+hwCgifj0
f9SZw9X2/1i6sYTx72MpEcE=
=doIM
-----END PGP SIGNATURE-----

[-- Attachment #2: sil3114.patch --]
[-- Type: text/x-diff, Size: 3957 bytes --]

diff -u -r linux-2.6.0-test11.orig/drivers/ide/pci/siimage.c linux-2.6.0-test11/drivers/ide/pci/siimage.c
--- linux-2.6.0-test11.orig/drivers/ide/pci/siimage.c	2003-11-26 21:43:35.000000000 +0100
+++ linux-2.6.0-test11/drivers/ide/pci/siimage.c	2003-12-06 13:56:30.000000000 +0100
@@ -55,6 +55,7 @@
 	switch(pdev->device)
 	{
 		case PCI_DEVICE_ID_SII_3112:
+		case PCI_DEVICE_ID_SII_3114:
 		case PCI_DEVICE_ID_SII_1210SA:
 			return 1;
 		case PCI_DEVICE_ID_SII_680:
@@ -1178,7 +1179,8 @@
 static struct pci_device_id siimage_pci_tbl[] = {
 	{ PCI_VENDOR_ID_CMD, PCI_DEVICE_ID_SII_680,  PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
 	{ PCI_VENDOR_ID_CMD, PCI_DEVICE_ID_SII_3112, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 1},
-	{ PCI_VENDOR_ID_CMD, PCI_DEVICE_ID_SII_1210SA, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 2},
+	{ PCI_VENDOR_ID_CMD, PCI_DEVICE_ID_SII_3114, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 2},
+	{ PCI_VENDOR_ID_CMD, PCI_DEVICE_ID_SII_1210SA, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 3},
 	{ 0, },
 };
 
diff -u -r linux-2.6.0-test11.orig/drivers/ide/pci/siimage.h linux-2.6.0-test11/drivers/ide/pci/siimage.h
--- linux-2.6.0-test11.orig/drivers/ide/pci/siimage.h	2003-11-26 21:44:17.000000000 +0100
+++ linux-2.6.0-test11/drivers/ide/pci/siimage.h	2003-12-05 16:46:50.000000000 +0100
@@ -13,7 +13,7 @@
 #undef SIIMAGE_BUFFERED_TASKFILE
 #undef SIIMAGE_LARGE_DMA
 
-#define SII_DEBUG 0
+#define SII_DEBUG 1
 
 #if SII_DEBUG
 #define siiprintk(x...)	printk(x)
@@ -72,6 +72,18 @@
 		.extra		= 0,
 	},{	/* 2 */
 		.vendor		= PCI_VENDOR_ID_CMD,
+		.device		= PCI_DEVICE_ID_SII_3114,
+		.name		= "SiI3114 Serial ATA",
+		.init_chipset	= init_chipset_siimage,
+		.init_iops	= init_iops_siimage,
+		.init_hwif	= init_hwif_siimage,
+		.channels	= 2,
+		.autodma	= AUTODMA,
+		.enablebits	= {{0x00,0x00,0x00}, {0x00,0x00,0x00}},
+		.bootable	= ON_BOARD,
+		.extra		= 0,
+	},{	/* 3 */
+		.vendor		= PCI_VENDOR_ID_CMD,
 		.device		= PCI_DEVICE_ID_SII_1210SA,
 		.name		= "Adaptec AAR-1210SA",
 		.init_chipset	= init_chipset_siimage,
diff -u -r linux-2.6.0-test11.orig/drivers/scsi/Kconfig linux-2.6.0-test11/drivers/scsi/Kconfig
--- linux-2.6.0-test11.orig/drivers/scsi/Kconfig	2003-11-26 21:45:32.000000000 +0100
+++ linux-2.6.0-test11/drivers/scsi/Kconfig	2003-12-05 16:54:20.000000000 +0100
@@ -441,7 +441,7 @@
 
 config SCSI_SATA_SIL
 	tristate "Silicon Image SATA support"
-	depends on SCSI_SATA && PCI && BROKEN
+	depends on SCSI_SATA && PCI
 	help
 	  This option enables support for Silicon Image Serial ATA.
 
diff -u -r linux-2.6.0-test11.orig/drivers/scsi/sata_sil.c linux-2.6.0-test11/drivers/scsi/sata_sil.c
--- linux-2.6.0-test11.orig/drivers/scsi/sata_sil.c	2003-11-26 21:42:46.000000000 +0100
+++ linux-2.6.0-test11/drivers/scsi/sata_sil.c	2003-12-05 16:50:32.000000000 +0100
@@ -39,6 +39,7 @@
 
 enum {
 	sil_3112		= 0,
+	sil_3114		= 1,
 
 	SIL_IDE0_TF		= 0x80,
 	SIL_IDE0_CTL		= 0x8A,
@@ -62,6 +63,7 @@
 
 static struct pci_device_id sil_pci_tbl[] = {
 	{ 0x1095, 0x3112, PCI_ANY_ID, PCI_ANY_ID, 0, 0, sil_3112 },
+	{ 0x1095, 0x3114, PCI_ANY_ID, PCI_ANY_ID, 0, 0, sil_3114 },
 	{ }	/* terminate list */
 };
 
@@ -119,6 +121,14 @@
 		.pio_mask	= 0x03,			/* pio3-4 */
 		.udma_mask	= 0x7f,			/* udma0-6; FIXME */
 		.port_ops	= &sil_ops,
+	}, /* sil_3114 */
+	{
+		.sht		= &sil_sht,
+		.host_flags	= ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY |
+				  ATA_FLAG_SRST | ATA_FLAG_MMIO,
+		.pio_mask	= 0x03,			/* pio3-4 */
+		.udma_mask	= 0x7f,			/* udma0-6; FIXME */
+		.port_ops	= &sil_ops,
 	},
 };
 
diff -u -r linux-2.6.0-test11.orig/include/linux/pci_ids.h linux-2.6.0-test11/include/linux/pci_ids.h
--- linux-2.6.0-test11.orig/include/linux/pci_ids.h	2003-11-26 21:43:39.000000000 +0100
+++ linux-2.6.0-test11/include/linux/pci_ids.h	2003-12-06 13:59:45.000000000 +0100
@@ -882,6 +882,7 @@
 
 #define PCI_DEVICE_ID_SII_680		0x0680
 #define PCI_DEVICE_ID_SII_3112		0x3112
+#define PCI_DEVICE_ID_SII_3114		0x3114
 #define PCI_DEVICE_ID_SII_1210SA	0x0240
 
 #define PCI_VENDOR_ID_VISION		0x1098


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

* Re: Serial ATA (SATA) for Linux status report
  2003-12-03 20:44 Serial ATA (SATA) for Linux status report Jeff Garzik
                   ` (2 preceding siblings ...)
  2003-12-09  9:39 ` Petr Sebor
@ 2003-12-09 19:59 ` J. Ryan Earl
  2004-01-14 22:18 ` Greg Stark
  2004-01-18 13:32 ` Witold Krecicki
  5 siblings, 0 replies; 35+ messages in thread
From: J. Ryan Earl @ 2003-12-09 19:59 UTC (permalink / raw)
  To: Jeff Garzik, linux-kernel, linux-ide, linux-scsi

On Wednesday 03 December 2003 02:44 pm, Jeff Garzik wrote:
> Queueing support
> 3) "Native Command Queueing" -- both host and drive cooperate in the
> queueing and execution of drive commands.  This should provide the
> highest performance and lowest latency of all three options.

Has anyone gotten their hands on any Silicon Image 3124 hardware?  It was 
announced 3 months ago and supports PCI-X plus it's designed to support 
whatever the final SATA 2.0 spec ends up being.  Full NCQ support.

http://www.siliconimage.com/products/sii3124.asp

> Hotplug support
> ---------------
> All SATA is hotplug.
>
> libata does not support hotplug... yet.

Hot-Plug seems like one of the most universally supported features.  What will 
it take to get it working?  And what will it take to get it working on 2.4?  
Is that a major feature we'll just have to wait for in libata?

I personally need hot-swap on production servers.

-ryan


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

* Re: [PATCH] Silicon image 3114 SATA link (really basic support)
  2003-12-09 18:54             ` Mickael Marchand
@ 2003-12-09 20:14               ` Bartlomiej Zolnierkiewicz
  2003-12-12  0:07                 ` Mickael Marchand
  0 siblings, 1 reply; 35+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2003-12-09 20:14 UTC (permalink / raw)
  To: Mickael Marchand; +Cc: Aron Rubin, linux-ide, linux-kernel


On Tuesday 09 of December 2003 19:54, Mickael Marchand wrote:

> the attached patch makes _both_ drivers work (whereas the previous one made
> only the libata one working)

Great!  Now I know it is really working.

I've already corrected your previous patch and included it in -bart1 patch:
http://www.kernel.org/pub/linux/kernel/people/bart/2.6.0-test11-bart1/broken-out/ide-siimage-sil3114.patch

Yes, I forgot to send you corrected patch, sorry. :-)

--bart


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

* Re: [PATCH] Silicon image 3114 SATA link (really basic support)
  2003-12-09 20:14               ` Bartlomiej Zolnierkiewicz
@ 2003-12-12  0:07                 ` Mickael Marchand
  0 siblings, 0 replies; 35+ messages in thread
From: Mickael Marchand @ 2003-12-12  0:07 UTC (permalink / raw)
  To: linux-ide, linux-kernel

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,

if anyone is able to tell me how to find the io address of the SATA ports I 
could make this patch support the 4 drives of Sil3114 (only the 2 first are 
working atm).
As I really don't know how to find this, I prefer ask to the kernel experts ;)
Once I have this info, making the patch is a matter of a few minutes I think

I tried looking at lspci/scanpci outputs but could not really find any usefull 
informations recording io ports.

Cheers,
Mik

Le Tuesday 09 December 2003 21:14, Bartlomiej Zolnierkiewicz a écrit :
> On Tuesday 09 of December 2003 19:54, Mickael Marchand wrote:
> > the attached patch makes _both_ drivers work (whereas the previous one
> > made only the libata one working)
>
> Great!  Now I know it is really working.
>
> I've already corrected your previous patch and included it in -bart1 patch:
> http://www.kernel.org/pub/linux/kernel/people/bart/2.6.0-test11-bart1/broke
>n-out/ide-siimage-sil3114.patch
>
> Yes, I forgot to send you corrected patch, sorry. :-)
>
> --bart
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (GNU/Linux)

iD8DBQE/2QbVyOYzc4nQ8j0RAhO/AJ9bm0gJ7uwGlKquhXaIYm1GMRBVWQCdGPwn
wbQskwDqvS7PI54zTefPquM=
=p1UV
-----END PGP SIGNATURE-----

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

* Re: Serial ATA (SATA) for Linux status report
  2003-12-03 20:44 Serial ATA (SATA) for Linux status report Jeff Garzik
                   ` (3 preceding siblings ...)
  2003-12-09 19:59 ` J. Ryan Earl
@ 2004-01-14 22:18 ` Greg Stark
  2004-01-14 22:56   ` Erik Andersen
  2004-01-14 23:12   ` Erik Steffl
  2004-01-18 13:32 ` Witold Krecicki
  5 siblings, 2 replies; 35+ messages in thread
From: Greg Stark @ 2004-01-14 22:18 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: linux-kernel, linux-ide, linux-scsi


Jeff Garzik <jgarzik@pobox.com> writes:

> Intel ICH5
>
> Issue #2: Excessive interrupts are seen in some configurations.

I guess I'm seeing this problem. I'm trying to get my P4P800 motherboard with
an ICH5 chipset working completely. So far I've been living without the cdrom
or DVD players. I see lots of other posts on linux-kernel about the same
problems:

Whenever I try to access the cdrom my system becomes unusable. Due to high
interrupts, typically over 150k/s. I thought libata would help, but I don't
understand how to use the PATA drive and the cdrom drives while I'm using it.

The situation is that I have two SATA drives, a PATA drive and two cdrom
drives (actually one CD burner and one DVD drive). They are 

Primary Master:   PATA Drive
Secondary Master: CD Burner
Secondary Slave:  DVD-Rom
SATA-1:           SATA Drive
SATA-2:           SATA Drive

I've tried 2.4.23pre4 (no libata), 2.6.1 (IDE drivers), and 2.6.1 (with scsi
libata drivers) with the following results:

2.4.23pre4: as soon as the cdrom is touched I see bursts of 150k interrupts
    per second and the system becomes unresponsive momentarily every few
    seconds.

2.6.1 with regular IDE drivers: same as above except the system feels
    responsive except for disk i/o. I see printks of "Disabling interrupt #18"
    and all disk i/o freezes for a few seconds.

2.6.1 with scsi ata_piix driver: the SATA drives show up and work fine but the
    PATA drive and the cdroms doesn't show up at all. This is true even when I
    compile with the CONFIG_IDE, CONFIG_BLK_DEV_IDE, and CONFIG_BLK_DEV_IDECD
    enabled.


-- 
greg


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

* Re: Serial ATA (SATA) for Linux status report
  2004-01-14 22:18 ` Greg Stark
@ 2004-01-14 22:56   ` Erik Andersen
  2004-01-14 23:31     ` James Courtier-Dutton
  2004-01-14 23:32     ` Raphael Rigo
  2004-01-14 23:12   ` Erik Steffl
  1 sibling, 2 replies; 35+ messages in thread
From: Erik Andersen @ 2004-01-14 22:56 UTC (permalink / raw)
  To: Greg Stark; +Cc: Jeff Garzik, linux-kernel, linux-ide, linux-scsi

On Wed Jan 14, 2004 at 05:18:34PM -0500, Greg Stark wrote:
> 
> Jeff Garzik <jgarzik@pobox.com> writes:
> 
> > Intel ICH5
> >
> > Issue #2: Excessive interrupts are seen in some configurations.
> 
> I guess I'm seeing this problem. I'm trying to get my P4P800 motherboard with
> an ICH5 chipset working completely. So far I've been living without the cdrom
> or DVD players. I see lots of other posts on linux-kernel about the same
> problems:

I have the same deal.  My offer to send Jeff a P4P800 motherboard
to test with is still open....

 -Erik

--
Erik B. Andersen             http://codepoet-consulting.com/
--This message was written using 73% post-consumer electrons--

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

* Re: Serial ATA (SATA) for Linux status report
  2004-01-14 22:18 ` Greg Stark
  2004-01-14 22:56   ` Erik Andersen
@ 2004-01-14 23:12   ` Erik Steffl
  1 sibling, 0 replies; 35+ messages in thread
From: Erik Steffl @ 2004-01-14 23:12 UTC (permalink / raw)
  To: Greg Stark; +Cc: Jeff Garzik, linux-kernel, linux-ide, linux-scsi

Greg Stark wrote:
> Jeff Garzik <jgarzik@pobox.com> writes:
> 
> 
>>Intel ICH5
>>
>>Issue #2: Excessive interrupts are seen in some configurations.
> 
> 
> I guess I'm seeing this problem. I'm trying to get my P4P800 motherboard with
> an ICH5 chipset working completely. So far I've been living without the cdrom
> or DVD players. I see lots of other posts on linux-kernel about the same
> problems:
> 
> Whenever I try to access the cdrom my system becomes unusable. Due to high
> interrupts, typically over 150k/s. I thought libata would help, but I don't
> understand how to use the PATA drive and the cdrom drives while I'm using it.
> 
> The situation is that I have two SATA drives, a PATA drive and two cdrom
> drives (actually one CD burner and one DVD drive). They are 
> 
> Primary Master:   PATA Drive
> Secondary Master: CD Burner
> Secondary Slave:  DVD-Rom
> SATA-1:           SATA Drive
> SATA-2:           SATA Drive
> 
> I've tried 2.4.23pre4 (no libata), 2.6.1 (IDE drivers), and 2.6.1 (with scsi
> libata drivers) with the following results:
> 
> 2.4.23pre4: as soon as the cdrom is touched I see bursts of 150k interrupts
>     per second and the system becomes unresponsive momentarily every few
>     seconds.
> 
> 2.6.1 with regular IDE drivers: same as above except the system feels
>     responsive except for disk i/o. I see printks of "Disabling interrupt #18"
>     and all disk i/o freezes for a few seconds.
> 
> 2.6.1 with scsi ata_piix driver: the SATA drives show up and work fine but the
>     PATA drive and the cdroms doesn't show up at all. This is true even when I
>     compile with the CONFIG_IDE, CONFIG_BLK_DEV_IDE, and CONFIG_BLK_DEV_IDECD
>     enabled.

   I have intel D865PERL, three IDE HDs, one CD burner, one SATA disk, 
using scsi ata, kernel 2.4.21-ac4 with libata5 patches (libata patches 
needed beacause SATA driver is over 133GB), seems to be working fine, I 
am not using CD burner very often but I didn't see any instability when 
I used it (read or burn CDs).

   When I use cdparanoia to rip audio CDs the system is quite slow but 
that was always the case (even with different MB, no SATA, different 
kernels etc.)

   Using SATA disk as IDE disk caused the system to freeze during boot 
(right after the HDs were detected)

	erik


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

* Re: Serial ATA (SATA) for Linux status report
  2004-01-14 22:56   ` Erik Andersen
@ 2004-01-14 23:31     ` James Courtier-Dutton
  2004-01-15  0:41       ` Jeff Garzik
  2004-01-14 23:32     ` Raphael Rigo
  1 sibling, 1 reply; 35+ messages in thread
From: James Courtier-Dutton @ 2004-01-14 23:31 UTC (permalink / raw)
  To: andersen; +Cc: Greg Stark, Jeff Garzik, linux-kernel, linux-ide, linux-scsi

Erik Andersen wrote:
> On Wed Jan 14, 2004 at 05:18:34PM -0500, Greg Stark wrote:
> 
>>Jeff Garzik <jgarzik@pobox.com> writes:
>>
>>
>>>Intel ICH5
>>>
>>>Issue #2: Excessive interrupts are seen in some configurations.
>>
>>I guess I'm seeing this problem. I'm trying to get my P4P800 motherboard with
>>an ICH5 chipset working completely. So far I've been living without the cdrom
>>or DVD players. I see lots of other posts on linux-kernel about the same
>>problems:
> 
> 
> I have the same deal.  My offer to send Jeff a P4P800 motherboard
> to test with is still open....
> 
>  -Erik
> 
> --
> Erik B. Andersen             http://codepoet-consulting.com/

I have a ABIT IC7-G motherboard with the ICH5 chipset.
No reported problems with it. I would be happy to do some tests, just in 
case I have not actually noticed the problems.

hda=DVD-ROM
hdb=DVD writer
hdc=SATA Seagate Hard Disc 160 Gig.
hdd=Empty.

I do sometimes have problems during BIOS startup, with it not detecting 
the SATA hard disc, but pressing the reset button a few times fixes that.

Jan 14 01:01:17 new kernel: Uniform Multi-Platform E-IDE driver 
revision: 7.00alpha2
Jan 14 01:01:17 new kernel: ide: Assuming 33MHz system bus speed for PIO 
modes; override with idebus=xx
Jan 14 01:01:17 new kernel: ICH5-SATA: IDE controller at PCI slot 
0000:00:1f.2
Jan 14 01:01:17 new kernel: ICH5-SATA: chipset revision 2
Jan 14 01:01:17 new kernel: ICH5-SATA: not 100%% native mode: will probe 
irqs later
Jan 14 01:01:17 new kernel:     ide0: BM-DMA at 0xf000-0xf007, BIOS 
settings: hda:DMA, hdb:DMA
Jan 14 01:01:17 new kernel:     ide1: BM-DMA at 0xf008-0xf00f, BIOS 
settings: hdc:DMA, hdd:pio
Jan 14 01:01:17 new kernel: hda: ATAPI DVD-ROM 16XMax, ATAPI CD/DVD-ROM 
drive
Jan 14 01:01:17 new kernel: hdb: OPTORITEDVD RW DD0203, ATAPI CD/DVD-ROM 
drive
Jan 14 01:01:17 new kernel: ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
Jan 14 01:01:17 new kernel: hdc: ST3160023AS, ATA DISK drive
Jan 14 01:01:17 new kernel: ide1 at 0x170-0x177,0x376 on irq 15
Jan 14 01:01:17 new kernel: hdc: max request size: 1024KiB
Jan 14 01:01:17 new kernel: hdc: 312581808 sectors (160041 MB) w/8192KiB 
Cache, CHS=19457/255/63, UDMA(33)
Jan 14 01:01:17 new kernel:  /dev/ide/host0/bus1/target0/lun0: p1 p2 < 
p5 p6 p7 >


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

* Re: Serial ATA (SATA) for Linux status report
  2004-01-14 22:56   ` Erik Andersen
  2004-01-14 23:31     ` James Courtier-Dutton
@ 2004-01-14 23:32     ` Raphael Rigo
  2004-01-15  0:08       ` Erik Steffl
  1 sibling, 1 reply; 35+ messages in thread
From: Raphael Rigo @ 2004-01-14 23:32 UTC (permalink / raw)
  To: gsstark; +Cc: linux-kernel

Erik Andersen wrote:
> On Wed Jan 14, 2004 at 05:18:34PM -0500, Greg Stark wrote:
> 
>>Jeff Garzik <jgarzik@pobox.com> writes:
>>
>>
>>>Intel ICH5
>>>
>>>Issue #2: Excessive interrupts are seen in some configurations.
>>
>>I guess I'm seeing this problem. I'm trying to get my P4P800 motherboard with
>>an ICH5 chipset working completely. So far I've been living without the cdrom
>>or DVD players. I see lots of other posts on linux-kernel about the same
>>problems:
> 
> 
> I have the same deal.  My offer to send Jeff a P4P800 motherboard
> to test with is still open....
> 
>  -Erik
> > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

> --
> Erik B. Andersen             http://codepoet-consulting.com/
> --This message was written using 73% post-consumer electrons--
> -
One possible workaround it to enable both PATA and SATA drivers (using 
libata) and pass "ide2=noprobe ide3=noprobe" to kernel at boot.
More detailled answer can be found here : 
http://www.hentges.net/howtos/p4p800_deluxe.html
Regards,
Raphaël.

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

* Re: Serial ATA (SATA) for Linux status report
  2004-01-14 23:32     ` Raphael Rigo
@ 2004-01-15  0:08       ` Erik Steffl
  2004-01-15  2:39         ` Matthias Hentges
  0 siblings, 1 reply; 35+ messages in thread
From: Erik Steffl @ 2004-01-15  0:08 UTC (permalink / raw)
  To: linux-kernel

Raphael Rigo wrote:
...<ICH5problems snipped>...
> One possible workaround it to enable both PATA and SATA drivers (using 
> libata) and pass "ide2=noprobe ide3=noprobe" to kernel at boot.
> More detailled answer can be found here : 
> http://www.hentges.net/howtos/p4p800_deluxe.html

   I have pretty much the same setup he recommends in UPDATE except of 
the "ide2=noprobe ide3=noprobe" kernel boot options, not sure why would 
that be needed but my system (interl D865PERL, cd burner, ide and sata 
disks) works OK without it.

	erik


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

* Re: Serial ATA (SATA) for Linux status report
  2004-01-14 23:31     ` James Courtier-Dutton
@ 2004-01-15  0:41       ` Jeff Garzik
  2004-01-15  2:38         ` Erik Andersen
  2004-01-18 12:34         ` Martin Schlemmer
  0 siblings, 2 replies; 35+ messages in thread
From: Jeff Garzik @ 2004-01-15  0:41 UTC (permalink / raw)
  To: James Courtier-Dutton
  Cc: andersen, Greg Stark, linux-kernel, linux-ide, linux-scsi, mplayer

[-- Attachment #1: Type: text/plain, Size: 407 bytes --]


I'm pretty sure the "excessive interrupts" issue was successfully 
tracked down by Jon Burgess (thanks!).  He found this post describing an 
ICH5 hardware issue,
http://www.mail-archive.com/freebsd-stable@freebsd.org/msg58421.html

and he also submitted the attached patch.

I've been meaning to rewrite his patch to isolate it more to ata_piix, 
but in the meantime maybe folks could test this?

	Jeff




[-- Attachment #2: libata-spurious2.diff --]
[-- Type: text/plain, Size: 1322 bytes --]

--- libata-core.c-orig	2003-12-07 01:54:19.000000000 +0000
+++ libata-core.c	2003-12-07 16:25:11.961806872 +0000
@@ -2386,6 +2386,37 @@
 }
 
 /**
+ *	ata_chk_spurious_int - Check for spurious interrupts
+ *	@ap: port to which command is being issued
+ *
+ *	Examines the DMA status registers and clears
+ *      unexpected interrupts
+ *
+ *	LOCKING:
+ */
+static inline void ata_chk_spurious_int(struct ata_port *ap) {
+	int host_stat;
+	
+	if (ap->flags & ATA_FLAG_MMIO) {
+		void *mmio = (void *) ap->ioaddr.bmdma_addr;
+		host_stat = readb(mmio + ATA_DMA_STATUS);
+	} else
+		host_stat = inb(ap->ioaddr.bmdma_addr + ATA_DMA_STATUS);
+	
+	if ((host_stat & (ATA_DMA_INTR | ATA_DMA_ERR | ATA_DMA_ACTIVE)) == ATA_DMA_INTR) {
+		if (ap->flags & ATA_FLAG_MMIO) {
+			void *mmio = (void *) ap->ioaddr.bmdma_addr;
+			writeb(host_stat & ~ATA_DMA_ERR, mmio + ATA_DMA_STATUS);
+		} else
+			outb(host_stat & ~ATA_DMA_ERR, ap->ioaddr.bmdma_addr + ATA_DMA_STATUS);
+		
+		DPRINTK("ata%u: Caught spurious interrupt, status 0x%X\n", ap->id, host_stat);
+		udelay(1);
+	}
+}
+
+
+/**
  *	ata_interrupt -
  *	@irq:
  *	@dev_instance:
@@ -2417,6 +2448,7 @@
 			qc = ata_qc_from_tag(ap, ap->active_tag);
 			if (qc && ((qc->flags & ATA_QCFLAG_POLL) == 0))
 				handled += ata_host_intr(ap, qc);
+			ata_chk_spurious_int(ap);
 		}
 	}
 

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

* Re: Serial ATA (SATA) for Linux status report
  2004-01-15  0:41       ` Jeff Garzik
@ 2004-01-15  2:38         ` Erik Andersen
  2004-01-18 12:34         ` Martin Schlemmer
  1 sibling, 0 replies; 35+ messages in thread
From: Erik Andersen @ 2004-01-15  2:38 UTC (permalink / raw)
  To: Jeff Garzik
  Cc: James Courtier-Dutton, Greg Stark, linux-kernel, linux-ide,
	linux-scsi, mplayer

On Wed Jan 14, 2004 at 07:41:56PM -0500, Jeff Garzik wrote:
> 
> I'm pretty sure the "excessive interrupts" issue was successfully 
> tracked down by Jon Burgess (thanks!).  He found this post describing an 
> ICH5 hardware issue,
> http://www.mail-archive.com/freebsd-stable@freebsd.org/msg58421.html
> 
> and he also submitted the attached patch.
> 
> I've been meaning to rewrite his patch to isolate it more to ata_piix, 
> but in the meantime maybe folks could test this?

Tried it on top of 2.4.25-pre4-libata1.  I set the BIOS on my
Asus P4P800 to Enhanced mode, and the kernel locked solid during
boot while trying to clean /tmp....  Setting the BIOS back to
Compatible mode allows my system to boot.

 -Erik

--
Erik B. Andersen             http://codepoet-consulting.com/
--This message was written using 73% post-consumer electrons--

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

* Re: Serial ATA (SATA) for Linux status report
  2004-01-15  0:08       ` Erik Steffl
@ 2004-01-15  2:39         ` Matthias Hentges
  2004-01-15 21:08           ` Greg Stark
  0 siblings, 1 reply; 35+ messages in thread
From: Matthias Hentges @ 2004-01-15  2:39 UTC (permalink / raw)
  To: Linux Kernel

Hello all,

Am Don, 2004-01-15 um 01.08 schrieb Erik Steffl:
> Raphael Rigo wrote:
> ...<ICH5problems snipped>...
> > One possible workaround it to enable both PATA and SATA drivers (using 
> > libata) and pass "ide2=noprobe ide3=noprobe" to kernel at boot.
> > More detailled answer can be found here : 
> > http://www.hentges.net/howtos/p4p800_deluxe.html
> 
>    I have pretty much the same setup he recommends in UPDATE except of 
> the "ide2=noprobe ide3=noprobe" kernel boot options, not sure why would 
> that be needed but my system (interl D865PERL, cd burner, ide and sata 
> disks) works OK without it.

The "Update" section describes the setup which - after *weeks* of
frustrating trail-and-error - managed to get things going.

Notice the unusual BIOS setting (Enhanced Mode - SATA only) which did
the trick and enabled PATA *and* SATA.
You may want to try that if you haven't already.

The ideN=noprobe my indeed not be necessary . It was recommended by Jeff
Garzik to me at some time IIRC. Kernel 2.6 does *not* need the noprobe
stuff AFAICT.

FWIW my P4P800 Deluxe is working flawlessly with 4 P-ATA devices (2 HDs,
a ZIP100 and a 48x Burner) and one SATA 160Gb HD.

I'm using 2.4.22-bk36 with matching libata patch so i'd think that any
kernel 2.4.23+ will do the trick.

HTH and GL
-- 

Matthias Hentges 
Cologne / Germany

[www.hentges.net] -> PGP welcome, HTML tolerated
ICQ: 97 26 97 4   -> No files, no URL's

My OS: Debian Woody. Geek by Nature, Linux by Choice


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

* Re: Serial ATA (SATA) for Linux status report
  2004-01-15  2:39         ` Matthias Hentges
@ 2004-01-15 21:08           ` Greg Stark
  0 siblings, 0 replies; 35+ messages in thread
From: Greg Stark @ 2004-01-15 21:08 UTC (permalink / raw)
  To: Matthias Hentges; +Cc: Linux Kernel


Matthias Hentges <mailinglisten@hentges.net> writes:

> Notice the unusual BIOS setting (Enhanced Mode - SATA only) which did
> the trick and enabled PATA *and* SATA.
> You may want to try that if you haven't already.

Thank you!

That was the key thing I was missing. With this setting the PATA drives show
up on /dev/hd{a,b,c,d} and the SATA drives show up on /dev/sd{a,b} (using
ata_piix). And everything seems to work pretty well in 2.6.1.

I've only tried the PATA hard drive and reading from cdrom. I haven't tried
burning cds or playing a dvd yet. 

-- 
greg


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

* Re: Serial ATA (SATA) for Linux status report
  2004-01-15  0:41       ` Jeff Garzik
  2004-01-15  2:38         ` Erik Andersen
@ 2004-01-18 12:34         ` Martin Schlemmer
  1 sibling, 0 replies; 35+ messages in thread
From: Martin Schlemmer @ 2004-01-18 12:34 UTC (permalink / raw)
  To: Jeff Garzik
  Cc: James Courtier-Dutton, andersen, Greg Stark,
	Linux Kernel Mailing Lists, linux-ide, linux-scsi, mplayer

[-- Attachment #1: Type: text/plain, Size: 2063 bytes --]

On Thu, 2004-01-15 at 02:41, Jeff Garzik wrote:
> I'm pretty sure the "excessive interrupts" issue was successfully 
> tracked down by Jon Burgess (thanks!).  He found this post describing an 
> ICH5 hardware issue,
> http://www.mail-archive.com/freebsd-stable@freebsd.org/msg58421.html
> 
> and he also submitted the attached patch.
> 
> I've been meaning to rewrite his patch to isolate it more to ata_piix, 
> but in the meantime maybe folks could test this?
> 

I have an Asus P4C800-E Deluxe, with two drivers on the ICH5 sata
controllers.  It is a 3Ghz cpu using HT.

I use the normal PIIX ide drivers for the pata channels, and libata for
the sata ones.  I also use the vector based interrupts.  Kernel is
2.6.1-bk4.

Anyhow, I do not think  the interrupt count is _that_ high, as it shares
with usb and network and I cannot complain of problems with cdrom, etc,
but I decided to try the patch anyhow.  It have some interesting results
though.  First, network stops responding after a few minutes of uptime
(especially easy to reproduce if you have heavy network traffic), then
for some reason you cannot start a new program/login/etc, but those
running seems Ok, and lastly X becomes totally unresponsive (although
alt-sysrq-b still do work).

--
 # cat /proc/interrupts
           CPU0       CPU1
  0:   29703539   29690292    IO-APIC-edge  timer
  2:          0          0          XT-PIC  cascade
  8:          2          0    IO-APIC-edge  rtc
  9:          0          0   IO-APIC-level  acpi
 14:        564        210    IO-APIC-edge  ide0
 15:          1          0    IO-APIC-edge  ide1
169:    1049180    1055746   IO-APIC-level  libata, uhci_hcd, eth0
177:      39519      37904   IO-APIC-level  Intel ICH5
185:    2521873    2494269   IO-APIC-level  uhci_hcd, uhci_hcd, nvidia
193:          0          0   IO-APIC-level  uhci_hcd
201:          0          0   IO-APIC-level  ehci_hcd
NMI:          0          0
LOC:   59387583   59387287
ERR:          0
MIS:          0
--

-- 
Martin Schlemmer

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

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

* Re: Serial ATA (SATA) for Linux status report
  2003-12-03 20:44 Serial ATA (SATA) for Linux status report Jeff Garzik
                   ` (4 preceding siblings ...)
  2004-01-14 22:18 ` Greg Stark
@ 2004-01-18 13:32 ` Witold Krecicki
  2004-01-18 18:00   ` Jeff Garzik
  5 siblings, 1 reply; 35+ messages in thread
From: Witold Krecicki @ 2004-01-18 13:32 UTC (permalink / raw)
  To: linux-kernel, linux-ide, linux-scsi

Dnia Wednesday 03 of December 2003 21:44, Jeff Garzik napisał:
> Editor's preface:  This is clearly a first draft, only covering the
> basics.  In order for this document to be effective, I request that
> users and developers send me (or post) their SATA driver questions and
> issues.  I will do my best to address them here.
>
>
> Serial ATA (SATA) for Linux
> status report
> Dec 3, 2003
What about SMART capabilities? with sii3112 I had it, but with libata I cannot 
get any informations :/
-- 
Witold Kręcicki (adasi) adasi [at] culm.net
GPG key: 7AE20871
http://www.culm.net

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

* Re: Serial ATA (SATA) for Linux status report
  2004-01-18 13:32 ` Witold Krecicki
@ 2004-01-18 18:00   ` Jeff Garzik
  2004-01-18 20:33     ` Craig Bradney
  0 siblings, 1 reply; 35+ messages in thread
From: Jeff Garzik @ 2004-01-18 18:00 UTC (permalink / raw)
  To: Witold Krecicki; +Cc: linux-kernel, linux-ide, linux-scsi

Witold Krecicki wrote:
> Dnia Wednesday 03 of December 2003 21:44, Jeff Garzik napisał:
> 
>>Editor's preface:  This is clearly a first draft, only covering the
>>basics.  In order for this document to be effective, I request that
>>users and developers send me (or post) their SATA driver questions and
>>issues.  I will do my best to address them here.
>>
>>
>>Serial ATA (SATA) for Linux
>>status report
>>Dec 3, 2003
> 
> What about SMART capabilities? with sii3112 I had it, but with libata I cannot 
> get any informations :/


Currently do not support random userland programs throwing random ATA 
commands at us...  so no SMART support at present :)  It's coming, though.

	Jeff




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

* Re: Serial ATA (SATA) for Linux status report
  2004-01-18 18:00   ` Jeff Garzik
@ 2004-01-18 20:33     ` Craig Bradney
  0 siblings, 0 replies; 35+ messages in thread
From: Craig Bradney @ 2004-01-18 20:33 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: Witold Krecicki, linux-kernel, linux-ide, linux-scsi

[-- Attachment #1: Type: text/plain, Size: 1163 bytes --]

On Sun, 2004-01-18 at 19:00, Jeff Garzik wrote:
> Witold Krecicki wrote:
> > Dnia Wednesday 03 of December 2003 21:44, Jeff Garzik napisał:
> > 
> >>Editor's preface:  This is clearly a first draft, only covering the
> >>basics.  In order for this document to be effective, I request that
> >>users and developers send me (or post) their SATA driver questions and
> >>issues.  I will do my best to address them here.
> >>
> >>
> >>Serial ATA (SATA) for Linux
> >>status report
> >>Dec 3, 2003
> > 
> > What about SMART capabilities? with sii3112 I had it, but with libata I cannot 
> > get any informations :/
> 
> 
> Currently do not support random userland programs throwing random ATA 
> commands at us...  so no SMART support at present :)  It's coming, though.


On the note of SATA interfaced drives, is there a way to power them
down? 

I have recently attached my spare PATA drive with a converter and use it
just for backups (mount, rsync, umount). I have these configured through
SCSI (/dev/sda) with the 3112 2.6.1 support. hdparm comlains the drive
is SCSI... is there a similar command to power it down?

thanks
Craig

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

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

end of thread, other threads:[~2004-01-18 20:33 UTC | newest]

Thread overview: 35+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-12-03 20:44 Serial ATA (SATA) for Linux status report Jeff Garzik
2003-12-03 23:27 ` Andre Tomt
2003-12-03 23:36   ` Jeff Garzik
2003-12-04  0:21     ` Miquel van Smoorenburg
2003-12-04  0:59     ` Samuel Flory
2003-12-04  1:02     ` Andre Tomt
2003-12-04 13:38     ` Justin Cormack
2003-12-04 14:54       ` Jeff Garzik
2003-12-04  8:17 ` Arnaud Launay
2003-12-04 15:01   ` Jeff Garzik
2003-12-05 17:42     ` Mickael Marchand
2003-12-05 17:47       ` Jeff Garzik
2003-12-05 18:07         ` [PATCH] Silicon image 3114 SATA link (really basic support) Mickael Marchand
2003-12-09 18:22           ` Aron Rubin
2003-12-09 18:54             ` Mickael Marchand
2003-12-09 20:14               ` Bartlomiej Zolnierkiewicz
2003-12-12  0:07                 ` Mickael Marchand
2003-12-05 18:16         ` Serial ATA (SATA) for Linux status report Kevin P. Fleming
2003-12-05 18:29           ` Jeff Garzik
2003-12-09  9:39 ` Petr Sebor
2003-12-09 19:59 ` J. Ryan Earl
2004-01-14 22:18 ` Greg Stark
2004-01-14 22:56   ` Erik Andersen
2004-01-14 23:31     ` James Courtier-Dutton
2004-01-15  0:41       ` Jeff Garzik
2004-01-15  2:38         ` Erik Andersen
2004-01-18 12:34         ` Martin Schlemmer
2004-01-14 23:32     ` Raphael Rigo
2004-01-15  0:08       ` Erik Steffl
2004-01-15  2:39         ` Matthias Hentges
2004-01-15 21:08           ` Greg Stark
2004-01-14 23:12   ` Erik Steffl
2004-01-18 13:32 ` Witold Krecicki
2004-01-18 18:00   ` Jeff Garzik
2004-01-18 20:33     ` Craig Bradney

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