bug/patch for i386 EFI boot

Simon Horman horms at verge.net.au
Wed Mar 5 04:27:31 EST 2008


On Tue, Mar 04, 2008 at 10:02:31PM -0500, Scott D. Davilla wrote:
> Problem:
> 	kexec fails under i386 EFI boot for hardware that does not 
> have a VGA bios or PC bios present. The EFI bootloader properly set 
> the initial screen_info boot params but kexec assumes an 
> orig_video_isVGA type of 1. This causes the kexec'd kernel assume the 
> presence of both VGA bios and normal PC BIOS and starts probing which 
> then panics somewhere I can't see because I have no console output 
> nor serial ports.
> 
> Solution:
> 	For EFI, efifb is a linear VGA framebuffer and can handle the 
> kexec kernel switch, kexec just has to setup the kernel boot params 
> properly. The below patch fixes this issue and allow a i386 EFI 
> booted kernel with no VGA bios/PC bios to kexec to another kernel.
> 
> Questions:
> 	Why is kexec assuming i386 x86 == VGA bios in the first 
> place. The existing kernel has a perfectly good screen_info stucture 
> that is an exported symbol by the kernel and could be accessed by 
> kexec. Since kexec is just pretending to be a boot loader, why does 
> it ignore information that the real bootloader (which knows a lot 
> more about the hardware) has passed? The below patch just hacks in a 
> trap for efifb and will fail in the future as other x86 hardware 
> without VGA bios/PC bios become available.
> 
> My first mainline submitted patch so be gentle :).

Hi Scott,

this looks good to me, though there is no need
to comment out unneeded lines, just remove them.

Also, if you could provide a sign-off line, as
per Section 5 of http://linux.yyz.us/patch-format.html
that would be great.

Finally, your mail reader (or something else) seems
to have mangled the patch such that leading <space><tab>
has been turned into <space><space><tab>. This isn't a bit
deal as its is easy enough for me to un-mangle it by hand.
But just so you know.

Thanks

-- 
Horms




More information about the kexec mailing list