5.4-RCx "jumping to kernel entry" hang on Ultra1/2/30

Marcel Moolenaar marcel at xcllnt.net
Wed Apr 27 12:05:03 PDT 2005


On Wed, Apr 27, 2005 at 07:08:52AM -0800, Royce Williams wrote:
> 
> On Sun, 17 Apr 2005, IX at pandora.be wrote:
> >
> >
> >On Thu, 14 Apr 2005, Gheorghe Ardelean wrote:
> >
> >>Hi,
> >>
> >>While trying to boot a plain U1 from a disk installed with
> >>5.4-RC2 
> >>(the disk was installed in a U5) the systems hangs just
> >>after entering the kernel.
> >
> >
> >I see the same hang on an ultra2, booting from the 5.4RC2
> >bootonly iso. I don't know what details I need to provide.
> >If it's useful, I can send a NetBSD dmesg output.
> >
> >Kind regards,
> >dieter
> 
> 
> This is happening to me too, 5.4-RC3 disc 1, Ultra 30.  I can't 
> recreate using 5.2.1R or 5.3R disc 1 ISOs.  This is now reportedly 
> happening to three different people with three different models. Is 
> there a boot-only ISO with full debugging/verbosity available?

I think I have a fix for it, but it needs to be verified that to
really solves the problem before I run off to re@ and shout: "stop
the presses!"

The patch is attached. I just don't know a good way (short of
creating a patched-up 5.4-RC install ISO for people to try it.

Ken: did you build 5.4-RC3 for sparc64 and if yes do you still have
the $CHROOTDIR around?

-- 
 Marcel Moolenaar	  USPA: A-39004		 marcel at xcllnt.net
-------------- next part --------------
Index: uart_dev_z8530.c
===================================================================
RCS file: /home/ncvs/src/sys/dev/uart/uart_dev_z8530.c,v
retrieving revision 1.11
diff -u -r1.11 uart_dev_z8530.c
--- uart_dev_z8530.c	30 Jan 2005 09:00:50 -0000	1.11
+++ uart_dev_z8530.c	20 Apr 2005 21:31:45 -0000
@@ -213,7 +213,7 @@
 z8530_putc(struct uart_bas *bas, int c)
 {
 
-	while (!(uart_getmreg(bas, RR_BES) & BES_TXE))
+	while (!(uart_getreg(bas, REG_CTRL) & BES_TXE))
 		;
 	uart_setreg(bas, REG_DATA, c);
 	uart_barrier(bas);
@@ -223,7 +223,7 @@
 z8530_poll(struct uart_bas *bas)
 {
 
-	if (!(uart_getmreg(bas, RR_BES) & BES_RXA))
+	if (!(uart_getreg(bas, REG_CTRL) & BES_RXA))
 		return (-1);
 	return (uart_getreg(bas, REG_DATA));
 }
@@ -232,7 +232,7 @@
 z8530_getc(struct uart_bas *bas)
 {
 
-	while (!(uart_getmreg(bas, RR_BES) & BES_RXA))
+	while (!(uart_getreg(bas, REG_CTRL) & BES_RXA))
 		;
 	return (uart_getreg(bas, REG_DATA));
 }


More information about the freebsd-sparc64 mailing list