From owner-freebsd-hackers Sun Dec 15 13:11:25 1996 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.4/8.8.4) id NAA00525 for hackers-outgoing; Sun, 15 Dec 1996 13:11:25 -0800 (PST) Received: from phaeton.artisoft.com (phaeton.Artisoft.COM [198.17.250.211]) by freefall.freebsd.org (8.8.4/8.8.4) with SMTP id NAA00516 for ; Sun, 15 Dec 1996 13:11:21 -0800 (PST) Received: (from terry@localhost) by phaeton.artisoft.com (8.6.11/8.6.9) id NAA23869; Sun, 15 Dec 1996 13:47:16 -0700 From: Terry Lambert Message-Id: <199612152047.NAA23869@phaeton.artisoft.com> Subject: Re: MAXMEM was: Re: 2.1.6 on Compaq Prosignia 500 (2.1.5 To: eivind@dimaga.com (Eivind Eklund) Date: Sun, 15 Dec 1996 13:47:16 -0700 (MST) Cc: tony@dell.com, hackers@freebsd.org In-Reply-To: <3.0.32.19961215044615.00925dd0@dimaga.com> from "Eivind Eklund" at Dec 15, 96 04:46:16 am X-Mailer: ELM [version 2.4 PL24] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-hackers@freebsd.org X-Loop: FreeBSD.org Precedence: bulk > The problem is that these BIOS calls are (to my knowledge; I'm no BIOS/PC > hardware guru) only are guaranteed available on EISA computers, and only > work from protected mode. To do this "properly" requires both a check to > see if the computer has an EISA bus (which is in no way guaranteed - EISA > seems to be dying), a switch to protected mode, and a fetch of the value. > Few operating systems seems to do this "correctly". As examples, both > Novell and SCO need this to be specified as an option. You forgot to mention that the EISA standard does not specify a mechanism for determining the per slot memory which the particular machine has, except from a real mode only BIOS call. The real soloution is to make VM86() work, and make the BIOS calls from protected mode by creating a VM, loading code, running the VM to make real mode BIOS calls, fetching out the results, and destroying the VM (unless you have a disk driver or something using it). Note that in order to do this, you have to read the CMOS values (up to 16M) to know a minimal amount of memory you have to work with. However the point remains valid: the place to fix this is in the kernel support for virtual machines, not in the boot blocks themselves. Consider: the PC is an inept design. Almost all other systems have standardized ROM interfaces for protected mode. Even PS/2 machines (ABIOS). Terry Lambert terry@lambert.org --- Any opinions in this posting are my own and not those of my present or previous employers.