Re: [PATCH 12/12] i386 boot: Add an ELF header to bzImage

Eric W. Biederman
2006-10-06T12:58:04Z

Andrew Morton <akpm@osdl.org> writes:

> On Thu, 05 Oct 2006 09:29:42 -0600
> ebiederm@xmission.com (Eric W. Biederman) wrote:
>
>>
>> In the lazy programmer school of fixes.
>>
>> I haven't really tested this in any configuration.
>> But reading video.S it does use variable in the bootsector.
>> It does seem to initialize the variables before use.
>> But obviously something is missed.
>>
>> By zeroing the uninteresting parts of the bootsector just after we
>> have determined we are loaded ok. We should ensure we are
>> always in a known state the entire time.
>>
>> Andrew if I am right about the cause of your video not working
>> when you set an enhanced video mode this should fix your boot
>> problem.
>>
>> Singed-off-by: Eric Biederman <ebiederm@xmission.com>
>>
>> diff --git a/arch/i386/boot/setup.S b/arch/i386/boot/setup.S
>> index 53903a4..246ac88 100644
>> --- a/arch/i386/boot/setup.S
>> +++ b/arch/i386/boot/setup.S
>> @@ -287,6 +287,13 @@ # Check if an old loader tries to load a
>> loader_panic_mess: .string "Wrong loader, giving up..."
>>
>> loader_ok:
>> +# Zero initialize the variables we keep in the bootsector
>> + xorw %di, %di
>> + xorb %al, %al
>> + movw $497, %cx
>> + rep
>> + stosb
>> +
>> # Get memory size (extended mem, kB)
>>
>> xorl %eax, %eax
>
> That fixed the vga=0x263 crash.

Good. We still have to be paranoid and address HPA's missing cld issues,
But otherwise it looks like we are in good shape.

Eric