efi: Pass boot services variable info to runtime code
authorMatthew Garrett <matthew.garrett@nebula.com>
Mon, 15 Apr 2013 20:09:46 +0000 (13:09 -0700)
committerMatt Fleming <matt.fleming@intel.com>
Mon, 15 Apr 2013 20:31:09 +0000 (21:31 +0100)
commitcc5a080c5d40c36089bb08a8a16fa3fc7047fe0f
treebd3160fc5b3ce71036d5e218ecd5e3dbf1632d02
parent0635eb8a54cf0fea64b174bb68bc36b9c3d622db
efi: Pass boot services variable info to runtime code

EFI variables can be flagged as being accessible only within boot services.
This makes it awkward for us to figure out how much space they use at
runtime. In theory we could figure this out by simply comparing the results
from QueryVariableInfo() to the space used by all of our variables, but
that fails if the platform doesn't garbage collect on every boot. Thankfully,
calling QueryVariableInfo() while still inside boot services gives a more
reliable answer. This patch passes that information from the EFI boot stub
up to the efi platform code.

Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com>
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
arch/x86/boot/compressed/eboot.c
arch/x86/include/asm/efi.h
arch/x86/include/uapi/asm/bootparam.h
arch/x86/platform/efi/efi.c