Subject: port-i386/1319: Dell machines lie about BIOS mem. size
To: None <gnats-bugs@gnats.netbsd.org>
From: None <rafal@scofflaw.banyan.com>
List: netbsd-bugs
Date: 08/07/1995 08:21:34
>Number: 1319
>Category: port-i386
>Synopsis: Dell machines lie about ext mem size in CMOS RAM
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: gnats-admin (GNATS administrator)
>State: open
>Class: change-request
>Submitter-Id: net
>Arrival-Date: Mon Aug 7 11:35:01 1995
>Last-Modified:
>Originator: Rafal Boni
>Organization:
...not around here...
>Release: SUP'd Aug 7th, ~ 9AM ET
>Environment:
Dell OmniPlex 590, 32Meg RAM
System: NetBSD eightball.banyan.com 1.0A NetBSD 1.0A (EIGHTBALL) #5: Tue Jul 11 18:20:55 EDT 1995 rafal@eightball.banyan.com:/home/scofflaw/src/netbsd/sys/arch/i386/compile/EIGHTBALL i386
>Description:
Dell machines lie about the size of extended memory, thus machines
with more than 16Meg are forced to use only 16.
>How-To-Repeat:
Boot a NetBSD kernel on Dell with >16Meg, watch kernel tell you that
it only found 16Meg.
>Fix:
Work around:
(1) apply following patch to /sys/arch/i386/i386/machdep.c:
(2) put "options FORCE_EXT_MEM=<size of ext mem>" in config
file and re-config and re-compile kernel
Patch follows (sorry, it's a uni-diff):
--- machdep.c.orig Mon Aug 7 08:13:23 1995
+++ machdep.c Mon Aug 7 08:14:05 1995
@@ -1216,8 +1216,13 @@
*/
biosbasemem = (mc146818_read(NULL, NVRAM_BASEHI) << 8) |
mc146818_read(NULL, NVRAM_BASELO);
+
+#ifdef FORCE_EXT_MEM
+ biosextmem = FORCE_EXT_MEM;
+#else
biosextmem = (mc146818_read(NULL, NVRAM_EXTHI) << 8) |
mc146818_read(NULL, NVRAM_EXTLO);
+#endif
/* Round down to whole pages. */
biosbasemem &= -(NBPG / 1024);
>Audit-Trail:
>Unformatted: