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