[Eisfair] Kernelpanik war: Re: Ältere Version von MySql 4.1.22 für CAO
Thomas Bork
tom at eisfair.org
Di Mär 3 21:14:10 CET 2015
Am 03.03.2015 um 09:21 schrieb Marcus Roeckrath:
> So wie es aussieht, wurde der Controller vom 2.6er nicht mehr vom
> Standard-IDE-Treiber behandelt.
> Der Thread wurde nicht bis zur Lösung des Problems fortgeführt.
Ich hatte damals aus der Notwendigkeit heraus, neuere Hardware
unterstützen zu müssen, etliche IDE-Treiber des 2.4.35-wt1 erheblich
aufgebohrt. Wahrscheinlich wurde der NM10/ICH7 (vermutlich
PCI_DEVICE_ID_INTEL_ICH7_21) durch folgenden Patch unterstützt:
diff -Nurp /usr/src/linux-2.4.35.orig/drivers/ide/pci/piix.c
/usr/src/linux-2.4.35/drivers/ide/pci/piix.c
--- /usr/src/linux-2.4.35.orig/drivers/ide/pci/piix.c 2007-07-26
22:53:41.000000000 +0200
+++ /usr/src/linux-2.4.35/drivers/ide/pci/piix.c 2010-12-21
19:56:40.000000000 +0100
@@ -149,12 +149,16 @@ static int piix_get_info (char *buffer,
case PCI_DEVICE_ID_INTEL_82801BA_9:
case PCI_DEVICE_ID_INTEL_82801CA_10:
case PCI_DEVICE_ID_INTEL_82801CA_11:
+ case PCI_DEVICE_ID_INTEL_82801DB_1:
case PCI_DEVICE_ID_INTEL_82801DB_10:
case PCI_DEVICE_ID_INTEL_82801DB_11:
case PCI_DEVICE_ID_INTEL_82801EB_11:
case PCI_DEVICE_ID_INTEL_82801E_11:
case PCI_DEVICE_ID_INTEL_ESB_2:
- case PCI_DEVICE_ID_INTEL_ICH6_2:
+ case PCI_DEVICE_ID_INTEL_ICH6_19:
+ case PCI_DEVICE_ID_INTEL_ICH7_21:
+ case PCI_DEVICE_ID_INTEL_ESB2_18:
+ case PCI_DEVICE_ID_INTEL_ICH8_6:
p += sprintf(p, "PIIX4 Ultra 100 ");
break;
case PCI_DEVICE_ID_INTEL_82372FB_1:
@@ -289,11 +293,15 @@ static u8 piix_ratemask (ide_drive_t *dr
case PCI_DEVICE_ID_INTEL_82801CA_10:
case PCI_DEVICE_ID_INTEL_82801CA_11:
case PCI_DEVICE_ID_INTEL_82801E_11:
+ case PCI_DEVICE_ID_INTEL_82801DB_1:
case PCI_DEVICE_ID_INTEL_82801DB_10:
case PCI_DEVICE_ID_INTEL_82801DB_11:
case PCI_DEVICE_ID_INTEL_82801EB_11:
case PCI_DEVICE_ID_INTEL_ESB_2:
- case PCI_DEVICE_ID_INTEL_ICH6_2:
+ case PCI_DEVICE_ID_INTEL_ICH6_19:
+ case PCI_DEVICE_ID_INTEL_ICH7_21:
+ case PCI_DEVICE_ID_INTEL_ESB2_18:
+ case PCI_DEVICE_ID_INTEL_ICH8_6:
mode = 3;
break;
/* UDMA 66 capable */
@@ -682,7 +690,10 @@ static unsigned int __devinit init_chips
case PCI_DEVICE_ID_INTEL_82801EB_11:
case PCI_DEVICE_ID_INTEL_82801E_11:
case PCI_DEVICE_ID_INTEL_ESB_2:
- case PCI_DEVICE_ID_INTEL_ICH6_2:
+ case PCI_DEVICE_ID_INTEL_ICH6_19:
+ case PCI_DEVICE_ID_INTEL_ICH7_21:
+ case PCI_DEVICE_ID_INTEL_ESB2_18:
+ case PCI_DEVICE_ID_INTEL_ICH8_6:
{
unsigned int extra = 0;
pci_read_config_dword(dev, 0x54, &extra);
@@ -848,8 +859,8 @@ static void __init piix_check_450nx(void
/* Only on the original revision: IDE DMA can hang */
if(rev == 0x00)
no_piix_dma = 1;
- /* On all revisions PXB bus lock must be disabled for IDE */
- else if(cfg & (1<<14))
+ /* On all revisions below 5 PXB bus lock must be disabled for IDE */
+ else if(cfg & (1<<14) && rev < 5)
no_piix_dma = 2;
}
if(no_piix_dma)
@@ -878,10 +889,14 @@ static struct pci_device_id piix_pci_tbl
{ 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},
+ { 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_2, PCI_ANY_ID,
PCI_ANY_ID, 0, 0, 20},
+ { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH6_19, PCI_ANY_ID,
PCI_ANY_ID, 0, 0, 20},
+ { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH7_21, PCI_ANY_ID,
PCI_ANY_ID, 0, 0, 21},
+ { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801DB_1, PCI_ANY_ID,
PCI_ANY_ID, 0, 0, 22},
+ { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ESB2_18, PCI_ANY_ID,
PCI_ANY_ID, 0, 0, 23},
+ { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH8_6, PCI_ANY_ID,
PCI_ANY_ID, 0, 0, 24},
{ 0, },
};
diff -Nurp /usr/src/linux-2.4.35.orig/drivers/ide/pci/piix.h
/usr/src/linux-2.4.35/drivers/ide/pci/piix.h
--- /usr/src/linux-2.4.35.orig/drivers/ide/pci/piix.h 2007-07-26
22:53:41.000000000 +0200
+++ /usr/src/linux-2.4.35/drivers/ide/pci/piix.h 2010-12-21
19:56:40.000000000 +0100
@@ -321,11 +321,67 @@ static ide_pci_device_t piix_pci_info[]
.extra = 0,
},{ /* 20 */
.vendor = PCI_VENDOR_ID_INTEL,
- .device = PCI_DEVICE_ID_INTEL_ICH6_2,
+ .device = PCI_DEVICE_ID_INTEL_ICH6_19,
.name = "ICH6",
.init_setup = init_setup_piix,
.init_chipset = init_chipset_piix,
.init_iops = NULL,
+ .init_hwif = init_hwif_piix,
+ .init_dma = init_dma_piix,
+ .channels = 2,
+ .autodma = AUTODMA,
+ .enablebits = {{0x41,0x80,0x80}, {0x43,0x80,0x80}},
+ .bootable = ON_BOARD,
+ .extra = 0,
+ },{ /* 21 */
+ .vendor = PCI_VENDOR_ID_INTEL,
+ .device = PCI_DEVICE_ID_INTEL_ICH7_21,
+ .name = "ICH7",
+ .init_setup = init_setup_piix,
+ .init_chipset = init_chipset_piix,
+ .init_iops = NULL,
+ .init_hwif = init_hwif_piix,
+ .init_dma = init_dma_piix,
+ .channels = 1,
+ .autodma = AUTODMA,
+ .enablebits = {{0x41,0x80,0x80}, {0x43,0x80,0x80}},
+ .bootable = ON_BOARD,
+ .extra = 0,
+ },{ /* 22 */
+ .vendor = PCI_VENDOR_ID_INTEL,
+ .device = PCI_DEVICE_ID_INTEL_82801DB_1,
+ .name = "ICH4",
+ .init_setup = init_setup_piix,
+ .init_chipset = init_chipset_piix,
+ .init_iops = NULL,
+ .init_hwif = init_hwif_piix,
+ .init_dma = init_dma_piix,
+ .channels = 2,
+ .autodma = AUTODMA,
+ .enablebits = {{0x41,0x80,0x80}, {0x43,0x80,0x80}},
+ .bootable = ON_BOARD,
+ .extra = 0,
+ },{ /* 23 */
+ .vendor = PCI_VENDOR_ID_INTEL,
+ .device = PCI_DEVICE_ID_INTEL_ESB2_18,
+ .name = "ESB2",
+ .init_setup = init_setup_piix,
+ .init_chipset = init_chipset_piix,
+ .init_iops = NULL,
+ .init_hwif = init_hwif_piix,
+ .init_dma = init_dma_piix,
+ .channels = 2,
+ .autodma = AUTODMA,
+ .enablebits = {{0x41,0x80,0x80}, {0x43,0x80,0x80}},
+ .bootable = ON_BOARD,
+ .extra = 0,
+ },{ /* 24 */
+ .vendor = PCI_VENDOR_ID_INTEL,
+ .device = PCI_DEVICE_ID_INTEL_ICH8_6,
+ .name = "ICH8M",
+ .init_setup = init_setup_piix,
+ .init_chipset = init_chipset_piix,
+ .init_iops = NULL,
.init_hwif = init_hwif_piix,
.init_dma = init_dma_piix,
.channels = 2,
Lustigerweise hat der PCI_DEVICE_ID_INTEL_ICH7_21 im reinen IDE-Betrieb
wohl eine PCI-ID von 27df, während er als SATA-Controller im IDE-Modus
eine PCI-ID von 27c0 hat:
diff -Nurp /usr/src/linux-2.4.35.orig/include/linux/pci.h
/usr/src/linux-2.4.35/include/linux/pci.h
--- /usr/src/linux-2.4.35.orig/include/linux/pci.h 2007-07-26
22:53:41.000000000 +0200
+++ /usr/src/linux-2.4.35/include/linux/pci.h 2010-12-21
19:56:51.000000000 +0100
[...]
+#define PCI_DEVICE_ID_INTEL_ICH7_21 0x27df
http://cateee.net/lkddb/web-lkddb/SCSI_ATA_PIIX.html
--
der tom
[eisfair-team]
Mehr Informationen über die Mailingliste Eisfair