From owner-freebsd-hackers Thu Nov 6 13:08:10 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.7/8.8.7) id NAA13705 for hackers-outgoing; Thu, 6 Nov 1997 13:08:10 -0800 (PST) (envelope-from owner-freebsd-hackers) Received: from bugs.us.dell.com (bugs.us.dell.com [143.166.169.147]) by hub.freebsd.org (8.8.7/8.8.7) with SMTP id NAA13693 for ; Thu, 6 Nov 1997 13:08:06 -0800 (PST) (envelope-from tony@dell.com) Received: from ant.us.dell.com (ant.us.dell.com [143.166.12.34]) by bugs.us.dell.com (8.6.12/8.6.12) with SMTP id PAA06840; Thu, 6 Nov 1997 15:05:07 -0600 Message-Id: <3.0.3.32.19971106150255.006d5438@bugs.us.dell.com> X-Sender: tony@bugs.us.dell.com X-Mailer: QUALCOMM Windows Eudora Light Version 3.0.3 (32) Date: Thu, 06 Nov 1997 15:02:55 -0600 To: Terry Lambert From: Tony Overfield Subject: Re: >64MB Cc: tlambert@primenet.com, jamil@trojanhorse.ml.org, hackers@FreeBSD.ORG In-Reply-To: <199711062006.NAA06945@usr03.primenet.com> References: <3.0.3.32.19971106040103.006ede20@bugs.us.dell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Sender: owner-freebsd-hackers@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk At 08:06 PM 11/6/97 +0000, Terry Lambert wrote: > >> The INT 12h BIOS call will (and must) >> always reflect any "keyhole allocations". >HP Vectra. AT&T 6386 WGS. Etc.. > >I did the original patch to 386BSD 0.1 to emit the warning message >that the RTC check compares to 640. Well, as I pointed out before, the RTC value causes a warning message, but no other action is taken. The BIOS value is always used, no matter what, which is IMO, the correct behavior. The RTC value provides nothing useful in a correctly designed system. >The BIOS calls didn't show >the missing memory on these machines, so the test stayed. 8-). I claim that even MS-DOS cannot work right if this is really true. I *do* believe that the RTC value could *also* show the memory reduction, but I simply don't believe that INT 12h didn't show it. I sure can't find any code in FreeBSD that avoids memory based on the RTC value. >The kernel should not be dependent on data from the boot loader, really. >If it is, it means that the boot loader can't be shared among OS's >without a *lot* of effort. Why not use a common bootinfo structure? >> peaking of vm86(), why not just use real-mode? It's easier and much >> better for compatibility while booting. > >Yes, and no. > >If I have a FreeBSD kernel HAL, then I need to avoid architecture >dependent things before I hit protected mode and can run as the >kernel-before-init-has-been-started. If you have a HAL, then the architecture dependent HAL driver is the code that should worry about the architecture dependent things. >Technically (yes, I know this is not quite sane), with an ELF-based >kernel, I can build a bootable CDROM that will boot on a PowerPC >(which takes the DOS MBR into account as data, and expects a DOS >partition table), an Alpha (which can do the same), and any other >reasonable machine that can identify, uniquely, it's boot code not >living at the front of a CDROM. We have to make an exception for >Intel because BIOS POST routines are brain damaged on Intel machines, >and don't expect non-Intel disks to be shared with them. > >The ELF comes in by using section flagging by architecture type; >this lets me have one binary that will run on multiple architectures. >In other words, one kernel file on the CDROM. > >This is just one example... don't take it reductio ad absurdum. ;-). Ok. This is interesting, but it doesn't argue for using the CMOS RTC memory values. In fact, I'm not sure what it argues for. It's absurd to think you can boot without an architecture specific boot loader, isn't it? >> The APM init code seems to have a good example of >> making real-mode BIOS calls from the kernel during initialization. > >It's not, really. It's far from general, and the memory contortions >are similar to those that the MACH based loader uses to get at INT 13. >8-(. Well, I guess I'm far too familiar with the contortions to be offended by them. :-/ - Tony