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