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

Re: Kernel error message at boot time.



Bob Smith wrote:
I know that on my system (a DEC XL-366 Alpha) MILO does not support the
loading of Debian 3.0 (or the 2.4.x kernel) as of this writing. I
believe work is being done to fix this problem. If someone knows a way
to be able to load the 2.4.x kernel via Linload/MILO I would love to
know!.....

Cheers!

Bob



-----Original Message-----
From: Mattias Svensson [mailto:traesket@telia.com] Sent: Thursday, December 19, 2002 10:39 AM
To: debian-alpha@lists.debian.org
Subject: Kernel error message at boot time.


I have the following setup:
DIGITAL Personal Workstation 500a
21164 @ 500MHz
256MB ram
4.1GB SCSI HDD

And are trying to run Debian 3.0 Alpha.

I fire up MILO from CD1, and give the following commands:

hda:
(to switch to the CDROM)
boot /boot/linux root=/dev/ram initrd=/boot/root.bin

The kernel boots, I see some boot messages, and then a bunch of messages
like:

"PYXIS machine check: vector=0x630 pc=0xfffffc0000436c20 code=0x86"
"machine check type: correctable ECC error (retryable)"



Dunno if this will help or not... From the sounds of your messages your problem is probably something different from mine, but is probably located within the same segment of source code as mine...the core_cia.c code.

I ran across my "problem" with the 2.4.18 kernel on the XL-300 a while back while trying to upgrade from a 2.2.19 kernel that "worked". My problem was due to a change in the CIA code around kernel-version 2.4.13 or so. It was very specific to the CIA chipset involved. To the best of my knowledge, the chipset used in the XL-366 was OK, because I had several people reporting good results with there machines while it wouldn't work on mine. Jay Estabrook and I tracked down the problem to be specific to the 21171 "CIA rev1" chipset. The 21172 "CIA rev2" worked ok. Just check which one you have on your machine.

Jay has a patch for this particular "problem" that I have attached, or you can look up my message on this mailing list dated 10 May 2002 and see the manual changes I made to the kernel source code initially. I told Jay I would post his patch here a few months ago but never got around to it until now. As far as I know, this has not made it into the "mainstream" kernels yet.

In tracking down my "problem" I found it necessary to start off with a very basic kernel....no initrd, and only the stuff absolutely needed to boot the kernel (SCSI support, etc) compiled. I also (fortunately) had a working, bootable system using the 2.2.19 kernel that came with Debian Woody. You might try that kernel to see if it works for you, then start focusing in on the problem areas. Another thing that helped was hooking up another terminal to the serial port to record bootup messages. There were several messages early on in the boot process that were NOT being recorded any other way that proved "diagnostic" as to exactly where the kernel was failing.

Good Luck!

Cheers,
-Don Spoon-
diff -ur old/arch/alpha/kernel/core_cia.c new/arch/alpha/kernel/core_cia.c
--- old/arch/alpha/kernel/core_cia.c	Sun Oct 21 13:30:58 2001
+++ new/arch/alpha/kernel/core_cia.c	Tue May 28 15:02:42 2002
@@ -370,7 +370,7 @@
 }
 
 static inline void
-cia_prepare_tbia_workaround(void)
+cia_prepare_tbia_workaround(int cia_rev, int is_pyxis)
 {
 	unsigned long *ppte, pte;
 	long i;
@@ -382,10 +382,20 @@
 	for (i = 0; i < CIA_BROKEN_TBIA_SIZE / sizeof(unsigned long); ++i)
 		ppte[i] = pte;
 
-	*(vip)CIA_IOC_PCI_W1_BASE = CIA_BROKEN_TBIA_BASE | 3;
-	*(vip)CIA_IOC_PCI_W1_MASK = (CIA_BROKEN_TBIA_SIZE*1024 - 1)
-				    & 0xfff00000;
-	*(vip)CIA_IOC_PCI_T1_BASE = virt_to_phys(ppte) >> 2;
+	if (is_pyxis || cia_rev != 1) {
+		/* We can use W1 for SG on PYXIS/CIA rev 2. */
+		*(vip)CIA_IOC_PCI_W1_BASE = CIA_BROKEN_TBIA_BASE | 3;
+		*(vip)CIA_IOC_PCI_W1_MASK = (CIA_BROKEN_TBIA_SIZE*1024 - 1)
+					    & 0xfff00000;
+		*(vip)CIA_IOC_PCI_T1_BASE = virt_to_phys(ppte) >> 2;
+	} else {
+		/* CIA rev 1 can't use W1 or W2 for SG, apparently,
+		   so use W3, which we made sure is not used for DAC. */
+		*(vip)CIA_IOC_PCI_W3_BASE = CIA_BROKEN_TBIA_BASE | 3;
+		*(vip)CIA_IOC_PCI_W3_MASK = (CIA_BROKEN_TBIA_SIZE*1024 - 1)
+					    & 0xfff00000;
+		*(vip)CIA_IOC_PCI_T3_BASE = virt_to_phys(ppte) >> 2;
+	}
 }
 
 static void __init
@@ -715,8 +725,14 @@
 	   are compared against W_DAC.  We can, however, directly map 4GB,
 	   which is better than before.  However, due to assumptions made
 	   elsewhere, we should not claim that we support DAC unless that
-	   4GB covers all of physical memory.  */
-	if (is_pyxis || max_low_pfn > (0x100000000 >> PAGE_SHIFT)) {
+	   4GB covers all of physical memory.
+
+	   Also, don't do DAC on CIA rev 1, it has other problems and is
+	   unlikely to have more than 2GB of memory anyway, so direct is
+	   fine.
+	*/
+	if (cia_rev == 1 || is_pyxis ||
+	    max_low_pfn > (0x100000000 >> PAGE_SHIFT)) {
 		*(vip)CIA_IOC_PCI_W3_BASE = 0;
 	} else {
 		*(vip)CIA_IOC_PCI_W3_BASE = 0x00000000 | 1 | 8;
@@ -728,7 +744,7 @@
 	}
 
 	/* Prepare workaround for apparently broken tbia. */
-	cia_prepare_tbia_workaround();
+	cia_prepare_tbia_workaround(cia_rev, is_pyxis);
 }
 
 void __init



Reply to: