[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#278203: 80862652 unknown unknown I/O Controller Hub SATA cc=raid is indeed driver by ata_piix.



On Sun, Oct 31, 2004 at 05:34:25PM -0800, Joshua Kwan wrote:
> On Sun, Oct 31, 2004 at 04:30:09PM +0100, Sven Luther wrote:
> > I checked the ata_piix source code for the current sarge kernels, and it
> > indeed provides support for this device : 
> > 
> >          { 0x8086, 0x2652, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich6_sata },
> 
> If you could fish out a comprehensive list of the PCI IDs currently
> bound to piix that really need ata_piix, then I'll make the change. One
> off fixes are not worth an upload.

Fine : 

static struct pci_device_id piix_pci_tbl[] = {
#ifdef ATA_ENABLE_PATA
        { 0x8086, 0x7111, PCI_ANY_ID, PCI_ANY_ID, 0, 0, piix4_pata },
        { 0x8086, 0x24db, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich5_pata },
        { 0x8086, 0x25a2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich5_pata },
#endif

        /* NOTE: The following PCI ids must be kept in sync with the
         * list in drivers/pci/quirks.c.
         */

        { 0x8086, 0x24d1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich5_sata },
        { 0x8086, 0x24df, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich5_sata },
        { 0x8086, 0x25a3, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich5_sata },
        { 0x8086, 0x25b0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich5_sata },

        /* ICH6 operates in two modes, "looks-like-ICH5" mode,
         * and enhanced mode, with queueing and other fancy stuff.
         * This is distinguished by PCI class code.
         */
        { 0x8086, 0x2651, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich6_sata },
        { 0x8086, 0x2652, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich6_sata },

        { }     /* terminate list */
};

2651 is already included, as is : 24d1, but this one is not :

          808624df        unknown unknown 82801EB (ICH5R) SATA (cc=RAID)

25a3 is, but :

        808625b0        unknown unknown 6300ESB SATA RAID Controller

is not.

As for the PATA ones, i have :

        808625a2        unknown unknown 6300ESB PATA Storage Controller
        808624db        ide     piix    82801EB/ER (ICH5/ICH5R) Ultra ATA 100 Storage Controller
        80867111        ide     ignore  82371AB/EB/MB PIIX4 IDE

So, i would add at least the followings : 

	80862652, 808625b0, 808624df

which are SATA controllers of the recent ICH motherboards, i think.

About the PATA ones, i am not sure, since the piix driver should also be
responsible for them :

static struct pci_device_id piix_pci_tbl[] = {
        { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371FB_0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
        { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371FB_1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 1},
        { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371MX,   PCI_ANY_ID, PCI_ANY_ID, 0, 0, 2},
        { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371SB_1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 3},
        { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371AB,   PCI_ANY_ID, PCI_ANY_ID, 0, 0, 4},
        { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801AB_1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 5},
        { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82443MX_1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 6},
        { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801AA_1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 7},
        { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82372FB_1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 8},
        { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82451NX,   PCI_ANY_ID, PCI_ANY_ID, 0, 0, 9},
        { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801BA_9, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 10},
        { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801BA_8, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 11},
        { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801CA_10,PCI_ANY_ID, PCI_ANY_ID, 0, 0, 12},
        { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801CA_11,PCI_ANY_ID, PCI_ANY_ID, 0, 0, 13},
        { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801DB_11,PCI_ANY_ID, PCI_ANY_ID, 0, 0, 14},
        { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801EB_11,PCI_ANY_ID, PCI_ANY_ID, 0, 0, 15},
        { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801E_11, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 16},
        { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801DB_10,PCI_ANY_ID, PCI_ANY_ID, 0, 0, 17},
#ifdef CONFIG_BLK_DEV_IDE_SATA
        { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801EB_1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 18},
#endif
        { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ESB_2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 19},
        { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH6_19, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 20},
        { 0, },
};

The first one is not in pci_ids.h, and thus is not supported by the above piix
driver, The second one is : #define PCI_DEVICE_ID_INTEL_82801EB_11  0x24db, and
thus supported by the piix driver and included correctly in pci.lst, while the
third one is : #define PCI_DEVICE_ID_INTEL_82371AB     0x7111 And also
included by the piix driver, so you can add it also here.

A look at the 2.6.8 kernel configs for i386 shows that ATA_ENABLE_PATA is not
defined, so we cannot support the 808625a2 at all.

I would then :

add as ide ata_piix : 80862652, 808625b0, 808624df.

And no more.

Notice that this is for 2.6.8 kernels, the ata_piix driver is obviously not
supported in 2.4.27. The :

  #define PCI_DEVICE_ID_INTEL_ESB_31      0x25b0

Is in the pci_ids, but no driver claims it, so it will not be supported at all
on 2.4 kernels, but there should be no conflict at all.

Now, while we are at it, in the 2.6.9 kernel, the name of the marvell
discovery gigabit ethernet driver changed from mv64340_eth to mv64xxx_eth,
which means that we have to have a different entry in the list for 2.6.8 and
2.6.9. Since sarge will ship with 2.6.8 though, we can't modify that for now.

Also, i wanted to mention that :

11ab Galileo Technology Ltd.

Has not been called Galileo for ages, and is now : Marvell Semiconductor, Inc.

And in fact it is a bit strange that the chips marked marvell on it are
identified as Galileo in d-i, which could cause confusion. Could the above not
be changed to at least Galileo/Marvell or something such ? 

Friendly,

Sven Luther





Reply to: