Re: [PATCH] x86 Boot enhancements, boot protocol 2.04 7/9

Eric W. Biederman (ebiederm@xmission.com)
05 Apr 2002 14:30:56 -0700


"H. Peter Anvin" <hpa@zytor.com> writes:

> Agreed. Note that so far putting the real mode code *above* 0x90000 is
> completely untested. It *should* work with boot protocol 2.02 support; it
> almost certainly *does not* work with earlier boot protocols (due to the "move
> it back to 0x90000" braindamage.)

Having misc.c move the real mode code and the command line above
0x90000 avoids this issue. I relocate the command line so
cmd_line_ptr must be written. This looses track of exactly which
protocol version the bootloader was using, but it doesn't matter as
all the kernel cares about is being able to find it's command line,
and the command line can still be found. For code coming in the new
32bit entry point we are above protocol version 2.02 when the problem
was fixed.

I have now solved the space/reliability tradeoff with belt and suspenders.

I have modified misc.c to do an inplace decompression. This means I
use approximately 78KB of memory below 1MB and 8 bytes more than the
decompressesed kernel above 1MB. And if I have to except for the 5KB
of real mode code I can put everything above 1MB. The 78KB is 5KB
real mode code 10KB decompressor code 61KB bss.

The change is especially nice because now in my worst case of only
using 5KB real mode data, I do better than the best case with previous
kernels (assuming it isn't a zImage). And if I ever get the bootmem
bootmap fixed I can put initrds down at 2.6MB and not have to worry
about them getting stomped :)

Eric


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/