From owner-freebsd-hackers Wed Jan 31 17:35:23 1996 Return-Path: owner-hackers Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id RAA03243 for hackers-outgoing; Wed, 31 Jan 1996 17:35:23 -0800 (PST) Received: from yokogawa.co.jp (yhqfm.yokogawa.co.jp [202.33.29.34]) by freefall.freebsd.org (8.7.3/8.7.3) with SMTP id RAA03236 for ; Wed, 31 Jan 1996 17:35:13 -0800 (PST) Received: from sjc.yokogawa.co.jp.yokogawa.co.jp ([133.140.4.100]) by yokogawa.co.jp (8.6.9+2.4Wb3/3.3Wb4-firewall:08/09/94) with ESMTP id KAA03204; Thu, 1 Feb 1996 10:33:32 +0900 Received: from leia.pa.yokogawa.co.jp by sjc.yokogawa.co.jp.yokogawa.co.jp (8.7.1+2.6Wbeta4/6.4J.6-YOKOGAWA-R/GW) id KAA01877; Thu, 1 Feb 1996 10:33:31 +0900 (JST) Received: from cabbage by leia.pa.yokogawa.co.jp (16.8/6.4J.6-YOKOGAWA/pa) id AA21252; Thu, 1 Feb 96 10:33:31 +0900 Received: by cabbage.pa.yokogawa.co.jp (16.6/3.3Wb) id AA10287; Thu, 1 Feb 96 10:34:49 +0900 Date: Thu, 1 Feb 96 10:34:49 +0900 From: Mihoko Tanaka Message-Id: <9602010134.AA10287@cabbage.pa.yokogawa.co.jp> To: terry@lambert.org Cc: jerry@border.com, freebsd-hackers@FreeBSD.org In-Reply-To: Terry Lambert's message of Wed, 31 Jan 1996 14:00:20 -0700 (MST) <199601312100.OAA10547@phaeton.artisoft.com> Subject: Re: Compaq 16MB limit... Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Sender: owner-hackers@FreeBSD.org Precedence: bulk >>> Problem: When a Compaq has 64 Meg DRAM in it, BSDI does not see it all. >>> It only see's 16Meg.. The BIOS say's hat there is 64 BUT BSDI says 16.. >>> >>> I have been told that FreeBSD has fixed this somehow... Can somebody >>> please tell me 'approx' which files to look at in the kernel source >>> code to see how it was done ???? >> >>Compaq and Dell have decided that their historical misuse of a couple >>of CMOS bits constitutes "acceptable practice". As a result, the max >>memory you see when you query the CMOS is 16M (or 32M for non-bogus >>machines). >> >>The POST reports the RAM correctly because the BIOS can be written to >>use hardware specific mechanisms to report the RAM. >> >>There is no documented API to return the amount of RAM in a machine >>other than CMOS. There is no BIOS routine that can be used by the >>boot blocks to overcome this limit, nor does the POST place the results >>of its test or expose a ROM routine for sizing memory. I asked a engineer of COMPAQ about it last month. He said that we can use the following BIOS call for getting the amount of RAM in a machine. ------------------------ cut cut cut --------------------------------- INT 15h AX=E801h ---- GET SUPER EXTENDED MEMORY INFORMATION Descriptoin: This function returns the amount of extended memory (1M-16M) and super extended memory (>16M) installed and configured in the system. To perform this call from 32-bit protected mode, use function E881h. Entry: AX=E801h Return: AX = KB of extended memory installed. BX = 64KB segments of super extended memory installed. CX = KB of extended memory configured. DX = 64KB segments of super extended memory configured. ROMs: 386N LTE Lite20, LTE Lite 25 386N1 Contura 20, Contura 25, Contura 25c 386N2 LTE Lite 25c, LTE Lite 25e 486N1 Contura 4/25 486N2 LTE Lite 4/25c 486N3 386E3 Portable 486c, Portable 486 386A DP 3/25i, DP 3/33i, DP 4/25i, DP 4/33i 386A1 DPifamily 486A DP XE 5xx 486A1 DP XE 4xx 386C Prolinea 3/24zx, Prolinea 3/25 386C1 Prolinea 4/33 386C2 Prolinea 4/50 486C Presario/Prolinea 486C1 Presario/Prolinea 486C2 Presario/Prolinea 486Z Presario/Prolinea 486Z1 Presario/Prolinea 486T Concerto 486S Aero 486W DP XL ------------------------ cut cut cut --------------------------------- But this BIOS call is only for COMPAQ. We cannot use it for another machine. >>FreeBSD "fixes" this problem by allowing you to mandate the amount of >>RAM in the machine and force it to ignore the (standard) CMOS mechanism >>for sizing RAM. See /sys/i386/conf/LINT for details. >> >> >>UnixWare fixes this by allowing you to make a one line entry in a >>configuration file in the /stand "bootfs" partition -- it's similar >>to the FreeBSD "fix", except that you don't have to rebuild the kernel. BSD/OS fixes it by testing for memory (starting at 2MB, and continuing at most to 2GB) in the boot program, or by allowing you to use a configuration file. -- Mihoko Tanaka