Bug(?) in linux kernel EFI support

From: Tony Hoyle
Date: Wed Jun 17 2009 - 22:58:39 EST


I'm building kernels on an embedded system which uses an odd version of EFI (elilo/egrub don't run for example, only its own shipped boot.efi that loads a raw vmlinux). I've been unable to get it to boot with any kernel > - as in it doesn't start up far enough to get netconsole.

I've tracked it down to the following commit. Prior to this commit, it boots.. after it, it doesn't:

e429795c68d3001ecae74f6465420c9f043b0ece is first bad commit
commit e429795c68d3001ecae74f6465420c9f043b0ece
Author: Huang, Ying <ying.huang@xxxxxxxxx>
Date: Wed Jan 30 13:31:19 2008 +0100

x86: EFI runtime service support: remove duplicated code from efi_32.c

This patch removes the duplicated code between efi_32.c and efi.c.

Signed-off-by: Huang Ying <ying.huang@xxxxxxxxx>
Cc: Andi Kleen <ak@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Ingo Molnar <mingo@xxxxxxx>
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>

:040000 040000 e6ac42e8fddef99698e5ebb39ed0a3d0c18bf1ac 1974f788a81cc6ced68ce87345e107e614691831 M arch
:040000 040000 f7b172e407b45e571eac4612dc799e44e7b24928 20608b877d79449318d72a31dc202f2341f0fceb M include

Now I don't really understand the inner workings of EFI (or of the kernel for that matter).. I imagine 32bit EFI-only booting is fairly unusual and few platforms support it... is there anything that anyone can see that could cause a crash in this patch?

I have no ability to see the actual fault - The device has no console (the display is hardcoded to show a logo until X boots.. there's an fb driver shipped with it that appears to be able to override that but it's binary only*. There's no serial port on the board, only USB & Ethernet - so I'm stuck with netconsole basically. kexec doesn't work (memory regions have different names & kexec has hardcoded text searches.. patching it with the new names doesn't work either..).

I realise this makes things somewhat harder to debug :p I call it challenging..


* despite a 'strings' saying GPL in the text.. sigh..
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/