Subject: port-pmax/10452: PMAG-D console fails at a blank screen
To: None <gnats-bugs@gnats.netbsd.org>
From: None <perseant@hhhh.org>
List: netbsd-bugs
Date: 06/26/2000 09:54:12
>Number:         10452
>Category:       port-pmax
>Synopsis:       Booting with px0 as console never gets to the copyright message
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    port-pmax-maintainer
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Jun 26 09:55:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     Konrad Schroder
>Release:        2000.06.25
>Organization:
						Konrad Schroder
						perseant@hhhh.org
>Environment:
	
System: NetBSD houserat.hhhh.org 1.4P NetBSD 1.4P (HOUSE-RAT) #4: Sun May 21 14:56:20 PDT 2000 perseant@houserat.hhhh.org:/usr/src/sys.1208/arch/pmax/compile/HOUSE-RAT pmax

>Description:
I have a DS5000/200, "house-rat", with a PMAG-D and no other
framebuffer.  This configuration used to work well last year, but when I
dragged it out again recently and upgraded the kernel to a more current
-current, it no longer would even print the copyright on the screen at
boot (though it did change the size of the cursor from the PROM cursor
to the px cursor).  It ran Just Fine with 1.4P (sources from 1999-12-08
or thereabout).

This is house-rat:

Copyright (c) 1996, 1997, 1998, 1999
    The NetBSD Foundation, Inc.  All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
    The Regents of the University of California.  All rights reserved.

NetBSD 1.4P (HOUSE-RAT) #4: Sun May 21 14:56:20 PDT 2000
    perseant@houserat.hhhh.org:/usr/src/sys.1208/arch/pmax/compile/HOUSE-RAT
DECstation 5000/200 (3MAX)
total memory = 73728 KB
avail memory = 65916 KB
using 947 buffers containing 3788 KB of memory
mainbus0 (root)
cpu0 at mainbus0
cpu0: MIPS R3000 CPU Rev. 2.0 with MIPS R3010 FPC Rev. 2.0
cpu0: 64KB Instruction, 64KB Data, direct mapped cache
tc0 at mainbus0: 25 MHz clock
ibus0 at tc0 slot 7 offset 0x0
mcclock0 at ibus0 addr 0x1fe80000: mc146818 or compatible
dc0 at ibus0 addr 0x1fe00000tc_intr_establish: slot 7 level 3 handler 0x8015e220 sc 0xc004f000 on

le0 at tc0 slot 6 offset 0x0: address 08:00:2b:1b:c5:fe
le0: 32 receive buffers, 8 transmit buffers
tc_intr_establish: slot 6 level 2 handler 0x80034ae8 sc 0xc0057000 on
asc0 at tc0 slot 5 offset 0x0 (bus speed: 25 MHz) : target 7
tc_intr_establish: slot 5 level 1 handler 0x80157020 sc 0xc0059c00 on
le1 at tc0 slot 2 offset 0x0: address 08:00:2b:35:a8:c5
le1: 32 receive buffers, 8 transmit buffers
tc_intr_establish: slot 2 level 2 handler 0x80034ae8 sc 0xc0059800 on
px0 at tc0 slot 1 offset 0x0tc_intr_establish: slot 1 level 3 handler 0x801621f0 sc 0xc0054ec0 on
: 3D, 5x1 stamp, 8 plane, 128KB SRAM
Beginning old-style SCSI device autoconfiguration
rz0 at asc0 drive 0 slave 0 CONNER CFP1060S 1.05GB rev 2135 (SCSI-2)
rz0: 1013MB, 2756 cyl, 8 head, 94 sec, 512 bytes/sect x 2074880 sectors
rconsattach: 1 raster consoles
boot device: rz0
root on rz0a dumps on rz0b
mountroot: trying cd9660...
mountroot: trying lfs...
mountroot: trying nfs...
mountroot: trying ffs...
readclock: 72/6/26/16/6/22=>962035582 (962035557)
root file system type: ffs
init: copying out path `/sbin/init' 11
IP Filter: initialized.  Default = pass all, Logging = disabled
setclock: 72/6/26/16/11/55


>How-To-Repeat:
Try to boot a system so configured.

>Fix:
This fixes this problem for me.  I don't know if it's the best solution;
in particular I don't understand why the "cn_tab = &promcd;" was moved up
to begin with, so I don't know what else might break with this patch.
All the same it would be nice to have PX support in 1.5 too....

Index: dev/rcons.c
===================================================================
RCS file: /cvsroot/syssrc/sys/arch/pmax/dev/rcons.c,v
retrieving revision 1.42
diff -u -r1.42 rcons.c
--- rcons.c	2000/06/26 04:55:55	1.42
+++ rcons.c	2000/06/26 16:41:00
@@ -188,6 +188,7 @@
 	rc.rc_deffgcolor = WSCOL_WHITE;
 	rc.rc_defbgcolor = WSCOL_BLACK;
 	rcons_init(&rc, 1);
+	rcons_ttyinit(fbconstty);
 }
 #endif
 
Index: pmax/machdep.c
===================================================================
RCS file: /cvsroot/syssrc/sys/arch/pmax/pmax/machdep.c,v
retrieving revision 1.173
diff -u -r1.173 machdep.c
--- machdep.c	2000/06/06 00:47:21	1.173
+++ machdep.c	2000/06/26 16:41:09
@@ -177,12 +177,6 @@
 #endif
 	extern char edata[], end[];	/* XXX */
 
-	/* Initialize callv so we can do PROM output... */
-	callv = (code == DEC_PROM_MAGIC) ? (void *)cv : &callvec;
-
-	/* Use PROM console output until we initialize a console driver. */
-	cn_tab = &promcd;
-
 	/* Set up bootinfo structure looking at stack. */
 	if (bim == BOOTINFO_MAGIC) {
 		struct btinfo_magic *bi_magic;
@@ -197,10 +191,6 @@
 	}
 	else
 		bootinfo_msg = "invalid bootinfo pointer (old bootblocks?)\n";
-#if 0
-	if (bootinfo_msg != NULL)
-		printf(bootinfo_msg);
-#endif
 
 	/* clear the BSS segment */
 #ifdef DDB
@@ -233,6 +223,16 @@
 		memset(edata, 0, kernend - edata);
 	}
 
+	/* Initialize callv so we can do PROM output... */
+	callv = (code == DEC_PROM_MAGIC) ? (void *)cv : &callvec;
+
+	/* Use PROM console output until we initialize a console driver. */
+	cn_tab = &promcd;
+
+#if 0
+	if (bootinfo_msg != NULL)
+		printf(bootinfo_msg);
+#endif
 	/*
 	 * Set the VM page size.
 	 */
>Release-Note:
>Audit-Trail:
>Unformatted: