Re: [PATCH 0/3] Fix ACPI BGRT support for images located in EFI boot services memory

Matt Fleming
2012-09-04T14:27:31Z

On Thu, 2012-08-30 at 14:28 -0700, Josh Triplett wrote:
> The ACPI BGRT lets the OS access the BIOS logo image and its position on the
> screen at boot time, allowing it to maintain that image on the screen until
> ready to display something else, making boot more seamless. This series fixes
> support for accessing the boot logo image via the BGRT when the BIOS stores it
> in EFI boot services memory, as recommended by the ACPI 5.0 spec. Linux needs
> to copy the image out of boot services memory before reclaiming boot services
> memory.
>
> The first patch refactors EFI initialization to defer freeing boot services
> memory until later in the boot process, after we have ACPI available. The
> second patch adds a helper function to look up existing EFI boot services
> mappings, to avoid re-mapping them. The third patch moves BGRT initialization
> to before the reclamation of boot services memory, copies the logo at that
> point, and reworks the existing BGRT driver to use that existing copy.

Since we always end up doing a copy anyway, is there no way we could
just copy the boot logo *without* deferring freeing the boot services
code, e.g. move the copy before we do SetVirtualAddressMap()? I wouldn't
be surprised if some implementations got really cranky if we accessed
boot services data after we installed a new virtual memory map.

Besides, if we can avoid moving the efi_free_boot_services() call we can
avoid littering init/main.c with more #ifdef CONFIG_X86 blocks.