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 -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]