EFI mixed mode boot failure

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I'm seeing problems booting the kernel in EFI mixed mode (tested latest
torvalds/master, 83a7eefedc9b). I'm attempting to boot the 32-bit compat
entry point, not the handover protocol.

It seems decompression is failing, and some print debugging pointed me
at [1], free_mem_ptr is not initialized to zero so that branch is not
taken. I figured that might imply BSS isn't getting zeroed, which led
me to where the BSS is conditionally zeroed in efi_pe_entry [2].

That conditional was added in df7ecce842b8 "x86/efistub: Don't clear BSS
twice in mixed mode". I verified that prior to that commit I can boot
successfully in mixed mode, after I cannot. The commit message says that
"efi_pe_entry() is also used as an entrypoint by the mixed mode startup
code, in which case BSS will already have been cleared", but I couldn't
find where that would occur. I do see a BSS clear in efi_mixed.S, but
it's gated on CONFIG_EFI_HANDOVER_PROTOCOL [3].

[1]: https://elixir.bootlin.com/linux/latest/source/arch/x86/boot/compressed/misc.c#L360
[2]: https://elixir.bootlin.com/linux/latest/source/drivers/firmware/efi/libstub/x86-stub.c#L479
[3]: https://elixir.bootlin.com/linux/latest/source/arch/x86/boot/compressed/efi_mixed.S#L156




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux