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: