efi: Fix the ACPI BGRT driver for images located in EFI boot services memory
authorJosh Triplett <josh@joshtriplett.org>
Sat, 29 Sep 2012 00:57:05 +0000 (17:57 -0700)
committerH. Peter Anvin <hpa@linux.intel.com>
Sat, 29 Sep 2012 19:21:03 +0000 (12:21 -0700)
commit2223af389032425e3d1a70f9cb3a63feaa654ced
tree6874c07f26b3cdc5b10e06c34e7d0f6a9f5494aa
parent7bc90e01c3f66c137e7e761f574bbf883087d590
efi: Fix the ACPI BGRT driver for images located in EFI boot services memory

The ACPI BGRT driver accesses the BIOS logo image when it initializes.
However, ACPI 5.0 (which introduces the BGRT) recommends putting the
logo image in EFI boot services memory, so that the OS can reclaim that
memory.  Production systems follow this recommendation, breaking the
ACPI BGRT driver.

Move the bulk of the BGRT code to run during a new EFI late
initialization phase, which occurs after switching EFI to virtual mode,
and after initializing ACPI, but before freeing boot services memory.
Copy the BIOS logo image to kernel memory at that point, and make it
accessible to the BGRT driver.  Rework the existing ACPI BGRT driver to
act as a simple wrapper exposing that image (and the properties from the
BGRT) via sysfs.

Signed-off-by: Josh Triplett <josh@joshtriplett.org>
Link: http://lkml.kernel.org/r/93ce9f823f1c1f3bb88bdd662cce08eee7a17f5d.1348876882.git.josh@joshtriplett.org
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
arch/x86/platform/efi/Makefile
arch/x86/platform/efi/efi-bgrt.c [new file with mode: 0644]
arch/x86/platform/efi/efi.c
drivers/acpi/Kconfig
drivers/acpi/bgrt.c
include/linux/efi-bgrt.h [new file with mode: 0644]
include/linux/efi.h
init/main.c