*BSD News Article 40498


Return to BSD News archive

Xref: sserve comp.os.386bsd.questions:15673 comp.os.386bsd.development:2999
Newsgroups: comp.os.386bsd.questions,comp.os.386bsd.development
Path: sserve!newshost.anu.edu.au!harbinger.cc.monash.edu.au!news.mira.net.au!otis.apana.org.au!serval.net.wsu.edu!netnews.nwnet.net!oracle.pnl.gov!osi-east2.es.net!lll-winken.llnl.gov!uwm.edu!spool.mu.edu!howland.reston.ans.net!Germany.EU.net!news.dfn.de!news.belwue.de!delos.stgt.sub.org!nadia.s.bawue.de!luva!migieger
From: migieger@luva.lb.bawue.de (Michael Giegerich)
Subject: Re: 32M RAM not recognized on Dell PC
Keywords: RAM, CMOS, Dell
Organization: private FreeBSD site
Message-ID: <D1zD1G.CCC@luva.lb.bawue.de>
References: <3eh7uc$6mr@malcolm.wdgarl.wes.mot.com> <3ehp1r$3v8@orion.cc.andrews.edu>
Date: Fri, 6 Jan 1995 10:56:04 GMT
Lines: 51

>>I have a Dell 466/ME (Phoenix BIOS) with 32M of RAM, which FreeBSD
>>recognizes as having only 16M of RAM. Investigation shows that FreeBSD
>>gets its idea of how much RAM is in the machine by reading the
>>extended memory entry from the RTC CMOS RAM. In my machine, this is
>>15296. On startup, the POST shows 32M, though, as does the BIOS setup
>>program.
[...]
>I have the same problem on a Dell 466SE w/32MB.  I think the better
[...]
>Hard-code the line in machdep.c to '1024 * 31', recompile it..

You have to modify /sys/i386/boot/biosboot/bios.S too.

That's a Dell "feature" (same thing on my 425TE. Dell people told
me that a) it's necessary for compatibility reasons and b) they
won't change it anyway).

Following are the diffs necessary for my vanilla FBSD-2.0R
system to recognize 20 MB of RAM (I'm doing that since 1.0.2
days :-( ):

*** /sys/i386/boot/biosboot/bios.S-2.0	Fri Nov 18 06:02:12 1994
--- /sys/i386/boot/biosboot/bios.S	Sun Dec 11 14:28:00 1994
***************
*** 328,333 ****
--- 328,336 ----
  	int	$0x15
  	cli
  
+ 	xor	%ax, %ax			#
+ 	movb	$0x4c, %ah			# hardcoded 19M ext. memory
+ 
  xdone:
  	mov	%eax, %ebx
  
*** /sys/i386/i386/machdep.c-2.0	Mon Nov  7 04:51:32 1994
--- /sys/i386/i386/machdep.c	Sun Dec 11 14:50:38 1994
***************
*** 1259,1264 ****
--- 1259,1266 ----
  	biosbasemem = rtcin(RTC_BASELO)+ (rtcin(RTC_BASEHI)<<8);
  	biosextmem = rtcin(RTC_EXTLO)+ (rtcin(RTC_EXTHI)<<8);
  
+ 	biosextmem = 0x4c00;	/* hardcoded 19M ext. memory */
+ 
  	/*
  	 * If BIOS tells us that it has more than 640k in the basemem,
  	 *	don't believe it - set it to 640k.

-- 
Michael Giegerich                              migieger@luva.lb.bawue.de