From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932637Ab2IDVV3 (ORCPT ); Tue, 4 Sep 2012 17:21:29 -0400 Received: from relay4-d.mail.gandi.net ([217.70.183.196]:47667 "EHLO relay4-d.mail.gandi.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757782Ab2IDVV1 (ORCPT ); Tue, 4 Sep 2012 17:21:27 -0400 X-Originating-IP: 217.70.178.131 X-Originating-IP: 173.246.103.110 Date: Tue, 4 Sep 2012 14:21:20 -0700 From: Josh Triplett To: linux-kernel@vger.kernel.org Cc: Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , x86@kernel.org, Len Brown , Matt Fleming , Olof Johansson , Matthew Garrett , David Howells , Rusty Russell , Peter Zijlstra , Pawel Moll , linux-acpi@vger.kernel.org Subject: [PATCHv2 0/4] Fix ACPI BGRT support for images located in EFI boot services memory Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 cleans up the existing x86-specific efi_enter_virtual_mode function to have a stub version on non-x86 platforms, to eliminate an ifdef in init/main.c. The second patch refactors EFI initialization to defer freeing boot services memory until much later in the boot process, and in particular until after we have ACPI available. The third patch adds a helper function to look up existing EFI boot services mappings, to avoid re-mapping them. The fourth 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. v2: Made the new internal function efi_unmap_memmap static. Incorporated feedback from H. Peter Anvin and Matt Fleming: added stubs for x86-specific EFI functions called from init/main.c to eliminate the corresponding ifdefs in start_kernel; deferred efi_free_boot_services even later, to just before free_initmem. Josh Triplett (4): efi: Add a stub for efi_enter_virtual_mode on non-x86 efi: Defer freeing boot services memory until freeing __init memory efi: Add a function to look up existing IO memory mappings efi: Fix the ACPI BGRT driver for images located in EFI boot services memory arch/x86/platform/efi/Makefile | 1 + arch/x86/platform/efi/efi-bgrt.c | 76 ++++++++++++++++++++++++++++++++++++++ arch/x86/platform/efi/efi.c | 65 +++++++++++++++++++++++++------- drivers/acpi/Kconfig | 4 +- drivers/acpi/bgrt.c | 76 +++++--------------------------------- include/linux/efi-bgrt.h | 21 +++++++++++ include/linux/efi.h | 9 +++++ init/main.c | 7 +++- 8 files changed, 175 insertions(+), 84 deletions(-) create mode 100644 arch/x86/platform/efi/efi-bgrt.c create mode 100644 include/linux/efi-bgrt.h -- 1.7.10.4