lkml.org 
[lkml]   [2001]   [Oct]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[PATCH] again: Re: Athlon kernel crash (i686 works)
Oh no.

Anybody still insist that 'Athlon bug' patch is not to be
included into mainstream kernel?
If someone doesn't like it, feel free to make it a config
option (enabled by default!) and submit an updated patch.
My original patch against 2.4.9 is at the end.

Tuesday, October 09, 2001, 11:32:24 AM,
"Marco Berizzi" <pupilla@hotmail.com> wrote:
MB> I updated my motherboard from ASUS A7V to ABIT KT7A (VIA Apollo KT133A
MB> chipset). The kernel I had (2.4.10) started crashing on boot usually
MB> right after starting init. I tryed a i686 kernel and noticed it works
MB> OK, so I recompiled my crashy kernel only switching the processor type
MB> and it also worked. Changed it back to Athlon/K7/Duron and it starts
MB> crashing.

MB> I also search the mailing list. My mother board is KT7A series v1.3 with
MB> bios revision 4T (I also try with 3N, same results). K7 at 1333MHz. BIOS
MB> settings are default (except I have disabled all BIOS/video shadow).
MB> After flash I also reset CMOS via hardware jumper.

MB> Is there any solution to this (except compiling kernel for 6x86)?
--
Best regards, VDA
mailto:VDA@port.imtp.ilyichevsk.odessa.ua

--- pci-pc.c.orig Sun Aug 12 15:54:07 2001
+++ pci-pc.c Tue Sep 18 16:45:21 2001
@@ -948,6 +948,26 @@
d->irq = 9;
}

+/* Fixes some oopses on Athlon optimized
+ * fast_copy_page when it uses 'movntq's
+ * instead of 'movq's on Athlon/Duron optimized kernels.
+ * Bit 7 at offset 0x55 seems to be responsible:
+ * > Device 0 Offset 55 - Debug (RW)
+ * > Bits 7-0: Reserved (do not program). default = 0
+ * ABIT KT7A 3R BIOS: 0x89 (oopses)
+ * ABIT KT7A YH BIOS: 0x00 (works)
+ */
+static void __init pci_fixup_athlon_bug(struct pci_dev *d)
+{
+ u8 v;
+ pci_read_config_byte(d, 0x55, &v);
+ if(v & 0x80) {
+ printk(KERN_NOTICE "Stomping on Athlon bug.\n");
+ v &= 0x7f; /* clear bit 55.7 */
+ pci_write_config_byte(d, 0x55, v);
+ }
+}
+
struct pci_fixup pcibios_fixups[] = {
{ PCI_FIXUP_HEADER, PCI_VENDOR_ID_INTEL,
PCI_DEVICE_ID_INTEL_82451NX, pci_fixup_i450nx },
{ PCI_FIXUP_HEADER, PCI_VENDOR_ID_INTEL,
PCI_DEVICE_ID_INTEL_82454GX, pci_fixup_i450gx },
@@ -961,6 +981,7 @@
/* Our bus code shouldnt need this fixup any more. Delete once
verified */
{ PCI_FIXUP_HEADER, PCI_VENDOR_ID_COMPAQ,
PCI_DEVICE_ID_COMPAQ_6010, pci_fixup_compaq },
#endif
+ { PCI_FIXUP_HEADER, PCI_VENDOR_ID_VIA,
PCI_DEVICE_ID_VIA_8363_0, pci_fixup_athlon_bug },
{ PCI_FIXUP_HEADER, PCI_VENDOR_ID_UMC,
PCI_DEVICE_ID_UMC_UM8886BF, pci_fixup_umc_ide },
{ PCI_FIXUP_HEADER, PCI_VENDOR_ID_SI,
PCI_DEVICE_ID_SI_5513, pci_fixup_ide_trash },
{ PCI_FIXUP_HEADER, PCI_ANY_ID, PCI_ANY_ID,
pci_fixup_ide_bases },

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:17    [W:0.100 / U:0.984 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site