[PATCH] 2.4.0-test13-pre1 and booting on VIA based SMP

From: Petr Vandrovec (vandrove@vc.cvut.cz)
Date: Thu Dec 14 2000 - 13:28:41 EST


Hi Linus,
  I sent this patch yesterday to linux-kernel, and as nobody answered...
I was trying to discuss it with mingo@redhat.com before, when I was tracking
problem down, but he apparently does not read this email address :-(

  Could you apply this patch, either with comment, or without? Without
additional udelay(300) before first printk my GA-6VXD7 board (with
Via VT82C694X host bridge) dies in couple of spectacular ways somewhere
after first message is printed to screen, but before second one is
displayed. I asked VIA for datasheets/errata, but they did not bothered
with answer yet. But it looks like that either r-m-w in spinlock code,
or cursor postitioning code in vgacon, causes lockup. Without some HW
analyser it is hard to tell...
                                          Thanks,
                                                Petr Vandrovec
                                                vandrove@vc.cvut.cz

diff -urdN linux/arch/i386/kernel/smpboot.c linux/arch/i386/kernel/smpboot.c
--- linux/arch/i386/kernel/smpboot.c Mon Dec 4 01:48:19 2000
+++ linux/arch/i386/kernel/smpboot.c Thu Dec 14 17:44:26 2000
@@ -694,9 +694,21 @@
                 apic_write_around(APIC_ICR, APIC_DM_STARTUP
                                         | (start_eip >> 12));
 
+ /*
+ * Petr Vandrovec:
+ *
+ * We must wait for at least 200us, otherwise
+ * printk kills my VT82C694X based SMP board.
+ *
+ * 100us is not enough, 200us is enough,
+ * so I use 300us for additional safety.
+ */
+
+ udelay(300);
+
                 Dprintk("Startup point 1.\n");
 
                 Dprintk("Waiting for send to finish...\n");
                 timeout = 0;
                 do {
                         Dprintk("+");
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Fri Dec 15 2000 - 21:00:30 EST