Subject: 2.1 on RAQ/X86 ready to Rock-n-Roll
To: None <port-i386@netbsd.org>
From: None <djb_netbsd@charter.net>
List: port-i386
Date: 11/14/2005 20:54:57
Details at http://webpages.charter.net/dbarnes3367/PC/RAQ/

Kernel config and kernel image should work with all RAQ X86 models.

Haven't fixed reboot yet.  Reboot sends the system into the weeds.....  No PC BIOS to catch reboot.

Found a problem with the Cobalt ROM.  The "netbsd" command sends 1 Mb more extended memory than exists in the system.  Causes memory/buffer/pool allocations to panic.  This error is also the reason why the INSTALL kernel won't boot.

Second ROM problem is that there is no way to set the Cobalt to boot into NetBSD automatically.  A "boot 2 NetBSD" setting would be nice.

System is currently crunching pkgsrc as a stress test. So far, so good.

djb

+++++ Patch info +++++
Until the Cobalt ROM can be fixed - patch /usr/src/sys/arch/i386/i386/locore.S
==========================================================
--- arch/i386/i386/locore.S.orig	2005-11-14 18:47:29.000000000 -0600
+++ arch/i386/i386/locore.S	2005-11-14 18:53:26.000000000 -0600
@@ -241,6 +241,8 @@
 #define	_RELOC(x)	((x) - KERNBASE_LOCORE)
 #define	RELOC(x)	_RELOC(_C_LABEL(x))
 
+#define COBALT_X86_FIX
+
 	.text
 	.globl	_C_LABEL(kernel_text)
 	.set	_C_LABEL(kernel_text),KERNTEXTOFF
@@ -253,6 +255,10 @@
 	 * (howto, [bootdev], bootinfo, esym, basemem, extmem).
 	 */
 	movl	4(%esp),%eax
+#ifdef COBALT_X86_FIX
+	/* reset single user flag */
+	andl    $0xfffd,%eax
+#endif
 	movl	%eax,RELOC(boothowto)
 #ifdef COMPAT_OLDBOOT
 	movl	8(%esp),%eax
@@ -299,6 +305,10 @@
 	testl	%eax,%eax
 	jnz	1f
 	movl	20(%esp),%eax
+#ifdef COBALT_X86_FIX
+        /* Cobalt ROM off by 1 Mb */
+	subl    $0x400,%eax
+#endif
 	movl	%eax,RELOC(biosextmem)
 1:
 	movl	RELOC(biosbasemem),%eax