Re: [PATCH] Remove lilo-loads-only-five-sectors-of-zImage-fixup from setup.S
- From: Alexander van Heukelum <heukelum@xxxxxxxxxxxxx>
- Date: Wed, 11 Oct 2006 21:43:01 +0200
On Wed, Oct 11, 2006 at 11:38:09AM -0700, H. Peter Anvin wrote:
Alexander van Heukelum wrote:
Hi!
The real-mode kernel (on i386 and x86_64) checks if the bootloader
loaded it correctly. Apparantly, very old versions of LILO disregarded
the setupsects field in the bootsector and always just loaded the first
five sectors. If the kernel is compiled as a zImage, the real-mode
kernel is able to rectify the situation. At least it was, until the code
to do so was moved to the eighth sector in order to make space for more
E820 entries (commit: f9ba70535dc12d9eb57d466a2ecd749e16eca866). This
occured on 1 May 2005 and as far as I know, noone has complained yet.
This patch removes the checks for the signature and the fixup code
completely.
Comments? Which bootloaders are still in use? Kill zImage?
Andrew asked me to comment on this...
This removes support for boot loaders that did not understand boot
loader protocol version 2.00 or later. This probably includes very
early versions of LILO as well as the long-since obsolete Bootlin and
Shoelace. Those loaders were unable to load bzImages as well.
I have been urging that we kill zImage for a long time. It is virtually
impossible to build a kernel today that will fit inside the zImage 512K
compressed limitation.
It would be useful for setup.S to halt with a message if such an early
bootloader is detected, however. This would have to be parked in the
first 2K of the setup area, and can simply be detected by looking for
zero in type_of_loader.
Hi!
The patch should not alter behaviour for any bootloader that takes
setupsects into account. It just removes 'support' for bootloaders that
have the size of the setup code hardcoded to 4 sectors.
The current version of setup.S already checks if the bootloader
understands boot protocol 2.00+ in the case of a big kernel, but that
code is also after the 2k-mark. The zero-page still has some unused
space between offsets 0x230 and 0x28f. Shall I put/move some code there
to check unconditionally if the type_of_loader has been set?
I'll do that if no objections are put forward.
Thanks,
Alexander
-
-hpa
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
- Follow-Ups:
- Re: [PATCH] Remove lilo-loads-only-five-sectors-of-zImage-fixup from setup.S
- From: John Coffman
- Re: [PATCH] Remove lilo-loads-only-five-sectors-of-zImage-fixup from setup.S
- From: H. Peter Anvin
- Re: [PATCH] Remove lilo-loads-only-five-sectors-of-zImage-fixup from setup.S
- References:
- [PATCH] Remove lilo-loads-only-five-sectors-of-zImage-fixup from setup.S
- From: Alexander van Heukelum
- Re: [PATCH] Remove lilo-loads-only-five-sectors-of-zImage-fixup from setup.S
- From: H. Peter Anvin
- [PATCH] Remove lilo-loads-only-five-sectors-of-zImage-fixup from setup.S
- Prev by Date: Re: [PATCH] use %p for pointers
- Next by Date: funny looking equation
- Previous by thread: Re: [PATCH] Remove lilo-loads-only-five-sectors-of-zImage-fixup from setup.S
- Next by thread: Re: [PATCH] Remove lilo-loads-only-five-sectors-of-zImage-fixup from setup.S
- Index(es):
Relevant Pages
|