Re: [RFC PATCH 2.4] ata_piix on ich6r in RAID mode

From: Martins Krikis
Date: Fri Jan 28 2005 - 21:57:09 EST



--- Jeff Garzik <jgarzik@xxxxxxxxx> 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
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/