Messages in this thread | | | Date | Thu, 24 Jul 1997 14:44:13 -0700 | From | "Larry M. Augustin" <> | Subject | Re: Linux 2.0.31-pre2 + Buffer /Swap patch Jul21 |
| |
>From: tenthumbs@cybernex.net > >I think this whole thing should be a compile-time option. It assumes that BIOSes >actually do what they are supposed to. I know from experience that they don't. >They're usually buggy to one extent or another and there's no guarantee that the >writer understood the specs.
I think this is a bit extreme. You depend on the BIOS heavily for many things. You do your best to check error codes, test on lots of versions, and work around any known bugs. Many OSes use these BIOS features already:
From: "Kimon Berlin" <kimon_berlin@hpgnd.grenoble.hp.com>
NT uses e820h, or e801h if e820h does not exist. Win95 and OS/2 use 88h, then e801h if 88h returned a certain value (15MB for win95, 64MB-4KB for OS/2, I think). win 3.1 (ha!) only uses 88h, so there is no way to beyond 64MB. Once upon a time, certain unices used 8ah.
As to whether or not these features should go in 2.0.31, that decision belongs to David/Linus. I think the only two known issues are:
1. compatibility with loadlin - this is understood and should now be fixed.
2. only detecting 16MB of RAM on Compaqs - this same issue existed with the original (int 88h) code. the code I wrote erred on the side of caution and behaved the same as the old code. since then fixes have been circulated to handle this case correctly as well.
But memory size query is something I think is well enough understood that it doesn't need to be a kernel option. Also, you can always override the detected size with a lilo parameter.
>Also, please don't perpetuate the myth that as86 can't do 16-bit relative jumps. >The code > lea cx, end_memdetect ! gas can't do 16-bit offset jumps. very annoying. > jmp cx >can be replaced by > br end_memdetect
Thanks for the info. I think I had seen the error message:
00392 00D1 EB CB jmp end_memdetect ^address out of bounds
Combined with the gas info documentation:
We do not support word (16-bit) displacement jumps
That made me think I had to use the register indirect format.
Larry
| |