linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH 2.4] ata_piix on ich6r in RAID mode
@ 2005-01-28 17:54 Martins Krikis
  2005-01-29  1:30 ` Jeff Garzik
  0 siblings, 1 reply; 3+ messages in thread
From: Martins Krikis @ 2005-01-28 17:54 UTC (permalink / raw)
  To: jgarzik; +Cc: linux-kernel, mkrikis

Jeff,

You might have come across this hack before, but I figured I should
remind you that it is still very useful for ata_piix...

Without this patch, if the BIOS of an ICH6R box has IDE set to "RAID"
mode then ata_piix will not find any SATA disks because it incorrectly
tries the legacy mode. With the patch all 4 SATA drives become visible.
I don't think it would break any other vendor's SATA, but you can be
the judge of that. If so, perhaps we can restrict the test some more
by checking vendor/device IDs.

  Martins Krikis
  Storage Components Division
  Intel Massachusetts



--- linux-2.4.29/drivers/scsi/libata-core.c	2005-01-28 12:07:56.000000000 -0500
+++ linux-2.4.29-iswraid/drivers/scsi/libata-core.c	2005-01-28 12:14:43.000000000 -0500
@@ -3605,6 +3605,9 @@ int ata_pci_init_one (struct pci_dev *pd
 			legacy_mode = (1 << 3);
 	}
 
+	if ((pdev->class >> 8) == PCI_CLASS_STORAGE_RAID)
+		legacy_mode = 0;
+
 	/* FIXME... */
 	if ((!legacy_mode) && (n_ports > 1)) {
 		printk(KERN_ERR "ata: BUG: native mode, n_ports > 1\n");




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

* Re: [RFC PATCH 2.4] ata_piix on ich6r in RAID mode
  2005-01-28 17:54 [RFC PATCH 2.4] ata_piix on ich6r in RAID mode Martins Krikis
@ 2005-01-29  1:30 ` Jeff Garzik
  2005-01-29  2:54   ` Martins Krikis
  0 siblings, 1 reply; 3+ messages in thread
From: Jeff Garzik @ 2005-01-29  1:30 UTC (permalink / raw)
  To: Martins Krikis; +Cc: linux-kernel, linux-ide, Alan Cox

Martins Krikis wrote:
> Without this patch, if the BIOS of an ICH6R box has IDE set to "RAID"
> mode then ata_piix will not find any SATA disks because it incorrectly
> tries the legacy mode. With the patch all 4 SATA drives become visible.
> I don't think it would break any other vendor's SATA, but you can be
> the judge of that. If so, perhaps we can restrict the test some more
> by checking vendor/device IDs.

> --- linux-2.4.29/drivers/scsi/libata-core.c	2005-01-28 12:07:56.000000000 -0500
> +++ linux-2.4.29-iswraid/drivers/scsi/libata-core.c	2005-01-28 12:14:43.000000000 -0500
> @@ -3605,6 +3605,9 @@ int ata_pci_init_one (struct pci_dev *pd
>  			legacy_mode = (1 << 3);
>  	}
>  
> +	if ((pdev->class >> 8) == PCI_CLASS_STORAGE_RAID)
> +		legacy_mode = 0;
> +
>  	/* FIXME... */
>  	if ((!legacy_mode) && (n_ports > 1)) {
>  		printk(KERN_ERR "ata: BUG: native mode, n_ports > 1\n");


hmmmmmm.  Maybe "!= PCI_CLASS_STORAGE_IDE" instead?

Overall, however, I am worried about your report of the driver's 
behavior based on that BIOS's configuration.  The driver follows the PCI 
IDE standard (previously SFF 8038i), where a register indicates whether 
its in legacy or native mode.  As it see it, either
a) the driver logic for reading that register is wrong, or
b) BIOS incorrectly configuring the device, or
c) that register is only applicable for PCI_CLASS_STORAGE_IDE devices.

Comments either way?

	Jeff



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

* Re: [RFC PATCH 2.4] ata_piix on ich6r in RAID mode
  2005-01-29  1:30 ` Jeff Garzik
@ 2005-01-29  2:54   ` Martins Krikis
  0 siblings, 0 replies; 3+ messages in thread
From: Martins Krikis @ 2005-01-29  2:54 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: linux-kernel, linux-ide, Alan Cox


--- Jeff Garzik <jgarzik@pobox.com> wrote:

> Martins Krikis wrote:
> > Without this patch, if the BIOS of an ICH6R box has IDE set to
> "RAID"
> > mode then ata_piix will not find any SATA disks because it
> incorrectly
> > tries the legacy mode. With the patch all 4 SATA drives become
> visible.
> > I don't think it would break any other vendor's SATA, but you can
> be
> > the judge of that. If so, perhaps we can restrict the test some
> more
> > by checking vendor/device IDs.
> 
> > --- linux-2.4.29/drivers/scsi/libata-core.c	2005-01-28
> 12:07:56.000000000 -0500
> > +++ linux-2.4.29-iswraid/drivers/scsi/libata-core.c	2005-01-28
> 12:14:43.000000000 -0500
> > @@ -3605,6 +3605,9 @@ int ata_pci_init_one (struct pci_dev *pd
> >  			legacy_mode = (1 << 3);
> >  	}
> >  
> > +	if ((pdev->class >> 8) == PCI_CLASS_STORAGE_RAID)
> > +		legacy_mode = 0;
> > +
> >  	/* FIXME... */
> >  	if ((!legacy_mode) && (n_ports > 1)) {
> >  		printk(KERN_ERR "ata: BUG: native mode, n_ports > 1\n");
> 
> 
> hmmmmmm.  Maybe "!= PCI_CLASS_STORAGE_IDE" instead?

Yes, that's much better. No need to even read the programming IF
byte unless the class code identifies it as an IDE controller.

> Overall, however, I am worried about your report of the driver's 
> behavior based on that BIOS's configuration.  The driver follows the
> PCI 
> IDE standard (previously SFF 8038i), where a register indicates
> whether 
> its in legacy or native mode.  As it see it, either
> a) the driver logic for reading that register is wrong, or
> b) BIOS incorrectly configuring the device, or
> c) that register is only applicable for PCI_CLASS_STORAGE_IDE
> devices.
> 
> Comments either way?

I'd say "c". I don't have the spec, but my PCI course-book
seems to imply so. I could send a new patch but I can't
verify it just yet---the board decided to stop booting...

  Martins



		
__________________________________ 
Do you Yahoo!? 
Yahoo! Mail - Easier than ever with enhanced search. Learn more.
http://info.mail.yahoo.com/mail_250

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

end of thread, other threads:[~2005-01-29  2:55 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-01-28 17:54 [RFC PATCH 2.4] ata_piix on ich6r in RAID mode Martins Krikis
2005-01-29  1:30 ` Jeff Garzik
2005-01-29  2:54   ` Martins Krikis

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