Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 17 Nov 1996 00:18:13 -0800
From:      David Greenman <dg@root.com>
To:        Erich Boleyn <erich@uruk.org>
Cc:        hackers@freebsd.org
Subject:   Re: Memory probe(s) in FreeBSD 
Message-ID:  <199611170818.AAA18013@root.com>
In-Reply-To: Your message of "Sat, 16 Nov 1996 22:33:19 PST." <E0vP0nA-0004qS-00@uruk.org> 

next in thread | previous in thread | raw e-mail | index | archive | help
>> >I would argue that the BIOS values should always be used, and the RTC
>> >values simply ignored unless something specific (like the SMP probe) needs
>> >them.
>> 
>>    I seem to recall that there was a problem with doing this on some systems,
>> but since my memory is so vague, I'm inclined to agree with you. :-) It's
>> probably that old FreeBSD bootblocks didn't pass in the BIOS information (via
>> the bootinfo struct)...but this was so long ago that I don't think it matters
>> anymore. Perhaps it should use the RTC numbers if the passed-in BIOS numbers
>> are zero?
>
>There is a "valid" flag set in the info passed by the bootloader.  You'll
>see it if you look in "i386/i386/machdep.c".
>
>What I'd suggest is to use the values from the bootloader if they are
>"valid", or otherwise use the RTC values.  Just take out the current
>parts where it complains if the RTC values are different from the
>BIOS values.  It is confusing and on many modern machines they are usually
>different anyway, so you'll see it all the time for no good reason.

   Agreed.

>As to there being a problem a while ago...  the problem was that the
>FreeBSD bootblocks read the return value from the EAX register for the
>upper memory BIOS call, where it is only valid for the AX register.  Some
>machines return garbage in the high bits of EAX.  The proper thing to
>do is to zero the top 16 bits of EAX after the INT 0x15 AH=0x88 call
>in the bootloader, not in the kernel proper (again, because some
>bootloaders might pass valid information from other BIOS interfaces).

   I think the plan is to switch to your bootblocks eventually, but in the
meantime, do you happen to know if the current FreeBSD bootblocks still suffer
from this problem?

-DG

David Greenman
Core-team/Principal Architect, The FreeBSD Project



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199611170818.AAA18013>