Subject: Re: HP 400t isn't booting since 1.5.3
To: None <port-hp300@NetBSD.org>
From: Izumi Tsutsui <tsutsui@ceres.dti.ne.jp>
List: port-hp300
Date: 05/29/2006 07:25:37
doomwarriorx@gmail.com wrote:

> Ok i booted with the remote console and suddenly the kernel boots. If i 
> switch back to local console, the kernel reset after this line:
> Entry point: 0xfc803400.

Okay, then the problem may be around fb console initialization,
and I notice there is a functional difference between 1.5.x and
1.6 (and later) on scode checking code (132 on your hp400t,
but 133 on most other hp425/433 machines?) in cnattach functions.

How about the attached patch?

> hilconfig: unknown keyboard type 0xf, using default
> btw. this I use a normal german-nodeadkeys-keyboard.  (HP C1429C #ABD)

This shouldn't be fatal. (I get the same message on my JP keyboard)
---
Izumi Tsutsui


Index: dev/grf_dv.c
===================================================================
RCS file: /cvsroot/src/sys/arch/hp300/dev/grf_dv.c,v
retrieving revision 1.30
diff -u -r1.30 grf_dv.c
--- dev/grf_dv.c	11 Dec 2005 12:17:13 -0000	1.30
+++ dev/grf_dv.c	28 May 2006 22:22:54 -0000
@@ -137,6 +137,7 @@
 
 #include <dev/cons.h>
 
+#include <hp300/dev/dioreg.h>
 #include <hp300/dev/diovar.h>
 #include <hp300/dev/diodevs.h>
 #include <hp300/dev/intiovar.h>
@@ -681,7 +682,7 @@
 		return (1);
 	}
 
-	if (scode > 132) {
+	if (DIO_ISDIOII(scode)) {
 		dioiidev = (uint8_t *)va;
 		size =  ((dioiidev[0x101] + 1) * 0x100000);
 	} else
Index: dev/grf_gb.c
===================================================================
RCS file: /cvsroot/src/sys/arch/hp300/dev/grf_gb.c,v
retrieving revision 1.29
diff -u -r1.29 grf_gb.c
--- dev/grf_gb.c	11 Dec 2005 12:17:13 -0000	1.29
+++ dev/grf_gb.c	28 May 2006 22:22:54 -0000
@@ -141,6 +141,7 @@
 
 #include <dev/cons.h>
 
+#include <hp300/dev/dioreg.h>
 #include <hp300/dev/diovar.h>
 #include <hp300/dev/diodevs.h>
 #include <hp300/dev/intiovar.h>
@@ -629,7 +630,7 @@
 		return (1);
 	}
 
-	if (scode > 132) {
+	if (DIO_ISDIOII(scode)) {
 		dioiidev = (uint8_t *)va;
 		size =  ((dioiidev[0x101] + 1) * 0x100000);
 	} else
Index: dev/grf_hy.c
===================================================================
RCS file: /cvsroot/src/sys/arch/hp300/dev/grf_hy.c,v
retrieving revision 1.27
diff -u -r1.27 grf_hy.c
--- dev/grf_hy.c	19 Mar 2006 06:50:13 -0000	1.27
+++ dev/grf_hy.c	28 May 2006 22:22:54 -0000
@@ -141,6 +141,7 @@
 
 #include <dev/cons.h>
 
+#include <hp300/dev/dioreg.h>
 #include <hp300/dev/diovar.h>
 #include <hp300/dev/diodevs.h>
 #include <hp300/dev/intiovar.h>
@@ -771,7 +772,7 @@
 		return (1);
 	}
 
-	if (scode > 132) {
+	if (DIO_ISDIOII(scode)) {
 		dioiidev = (uint8_t *)va;
 		size =  ((dioiidev[0x101] + 1) * 0x100000);
 	} else
Index: dev/grf_rb.c
===================================================================
RCS file: /cvsroot/src/sys/arch/hp300/dev/grf_rb.c,v
retrieving revision 1.30
diff -u -r1.30 grf_rb.c
--- dev/grf_rb.c	11 Dec 2005 12:17:14 -0000	1.30
+++ dev/grf_rb.c	28 May 2006 22:22:54 -0000
@@ -137,6 +137,7 @@
 
 #include <dev/cons.h>
 
+#include <hp300/dev/dioreg.h>
 #include <hp300/dev/diovar.h>
 #include <hp300/dev/diodevs.h>
 #include <hp300/dev/intiovar.h>
@@ -628,7 +629,7 @@
 		return (1);
 	}
 
-	if (scode > 132) {
+	if (DIO_ISDIOII(scode)) {
 		dioiidev = (uint8_t *)va;
 		size =  ((dioiidev[0x101] + 1) * 0x100000);
 	} else
Index: dev/grf_tc.c
===================================================================
RCS file: /cvsroot/src/sys/arch/hp300/dev/grf_tc.c,v
retrieving revision 1.32
diff -u -r1.32 grf_tc.c
--- dev/grf_tc.c	11 Dec 2005 12:17:14 -0000	1.32
+++ dev/grf_tc.c	28 May 2006 22:22:55 -0000
@@ -137,6 +137,7 @@
 
 #include <dev/cons.h>
 
+#include <hp300/dev/dioreg.h>
 #include <hp300/dev/diovar.h>
 #include <hp300/dev/diodevs.h>
 #include <hp300/dev/intiovar.h>
@@ -752,7 +753,7 @@
 		return (1);
 	}
 
-	if (scode > 132) {
+	if (DIO_ISDIOII(scode)) {
 		dioiidev = (uint8_t *)va;
 		size =  ((dioiidev[0x101] + 1) * 0x100000);
 	} else