linux-efi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC][PATCH 00/11] EFI mixed mode
@ 2014-01-29 16:23 Matt Fleming
       [not found] ` <1391012637-4839-1-git-send-email-matt-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org>
  0 siblings, 1 reply; 18+ messages in thread
From: Matt Fleming @ 2014-01-29 16:23 UTC (permalink / raw)
  To: linux-efi-u79uwXL29TY76Z2rM5mHXA
  Cc: H. Peter Anvin, Borislav Petkov, Alan Cox, Matthew Garrett,
	Matt Fleming

From: Matt Fleming <matt.fleming-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>

This patch series enables booting a 64-bit kernel on 32-bit EFI
firmware. It's marked as RFC because I'm just after some general
feedback on the approach taken.

Note that no boot loader changes should be necessary to take advantage
of these patches.

Tested Qemu + OVMF with Syslinux.

Some things that I'm going to fix up meanwhile are,

 o failure for > 4GB arg ptrs to EFI services should be graceful

 o revisit whether it's OK to mark the identity-mapped kernel
   text as executable.

 o I'm pretty sure these patches break 32-bit boot completely

 o The ARM EFI stub doesn't handle relocations so can't jump through
   global function pointers

The full series is available on the 'mixed-mode' branch here,

  git://git.kernel.org/pub/scm/linux/kernel/git/mfleming/efi.git

Matt Fleming (11):
  x86/boot: Cleanup header.S by removing some #ifdefs
  x86, tools: Consolidate #ifdef code
  x86/mm/pageattr: Make __lookup_address_in_pgd() global
  x86/efi: Delete dead code when checking for non-native
  efi: Add separate 32-bit/64-bit definitions
  x86/efi: Build our own EFI services pointer table
  x86/efi: Add early thunk code to go from 64-bit to 32-bit
  x86/efi: Split the boot stub into 32/64 code paths
  x86/efi: Firmware agnostic handover entry points
  x86/efi: Add mixed runtime services support
  x86/efi: Wire up CONFIG_EFI_MIXED

 arch/x86/Kconfig                       |  10 +
 arch/x86/boot/Makefile                 |   2 +-
 arch/x86/boot/compressed/eboot.c       | 669 +++++++++++++++++++++++++++------
 arch/x86/boot/compressed/eboot.h       |  60 +++
 arch/x86/boot/compressed/efi_stub_64.S |  29 ++
 arch/x86/boot/compressed/head_64.S     | 123 +++++-
 arch/x86/boot/header.S                 |  23 +-
 arch/x86/boot/tools/build.c            |  73 ++--
 arch/x86/include/asm/efi.h             |  38 +-
 arch/x86/include/asm/pgtable_types.h   |   2 +
 arch/x86/kernel/setup.c                |   2 +-
 arch/x86/mm/fault.c                    |   7 +-
 arch/x86/mm/pageattr.c                 |  12 +-
 arch/x86/platform/efi/Makefile         |   1 +
 arch/x86/platform/efi/efi.c            | 154 ++++----
 arch/x86/platform/efi/efi_64.c         | 328 +++++++++++++++-
 arch/x86/platform/efi/efi_stub_64.S    | 161 ++++++++
 arch/x86/platform/efi/efi_thunk.S      |  65 ++++
 drivers/firmware/efi/efi-stub-helper.c | 142 ++-----
 include/linux/efi.h                    | 252 +++++++++++++
 20 files changed, 1807 insertions(+), 346 deletions(-)
 create mode 100644 arch/x86/platform/efi/efi_thunk.S

-- 
1.8.3.1

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2014-02-07 16:52 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-01-29 16:23 [RFC][PATCH 00/11] EFI mixed mode Matt Fleming
     [not found] ` <1391012637-4839-1-git-send-email-matt-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org>
2014-01-29 16:23   ` [RFC][PATCH 01/11] x86/boot: Cleanup header.S by removing some #ifdefs Matt Fleming
     [not found]     ` <1391012637-4839-2-git-send-email-matt-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org>
2014-01-30 15:54       ` Borislav Petkov
     [not found]         ` <20140130155438.GD23342-fF5Pk5pvG8Y@public.gmane.org>
2014-01-30 16:03           ` Matt Fleming
2014-01-29 16:23   ` [RFC][PATCH 02/11] x86, tools: Consolidate #ifdef code Matt Fleming
     [not found]     ` <1391012637-4839-3-git-send-email-matt-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org>
2014-01-30 16:05       ` Borislav Petkov
2014-01-29 16:23   ` [RFC][PATCH 03/11] x86/mm/pageattr: Make __lookup_address_in_pgd() global Matt Fleming
     [not found]     ` <1391012637-4839-4-git-send-email-matt-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org>
2014-01-30 16:36       ` Borislav Petkov
2014-01-29 16:23   ` [RFC][PATCH 04/11] x86/efi: Delete dead code when checking for non-native Matt Fleming
     [not found]     ` <1391012637-4839-5-git-send-email-matt-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org>
2014-02-07 16:40       ` Borislav Petkov
2014-01-29 16:23   ` [RFC][PATCH 05/11] efi: Add separate 32-bit/64-bit definitions Matt Fleming
     [not found]     ` <1391012637-4839-6-git-send-email-matt-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org>
2014-02-07 16:52       ` Borislav Petkov
2014-01-29 16:23   ` [RFC][PATCH 06/11] x86/efi: Build our own EFI services pointer table Matt Fleming
2014-01-29 16:23   ` [RFC][PATCH 07/11] x86/efi: Add early thunk code to go from 64-bit to 32-bit Matt Fleming
2014-01-29 16:23   ` [RFC][PATCH 08/11] x86/efi: Split the boot stub into 32/64 code paths Matt Fleming
2014-01-29 16:23   ` [RFC][PATCH 09/11] x86/efi: Firmware agnostic handover entry points Matt Fleming
2014-01-29 16:23   ` [RFC][PATCH 10/11] x86/efi: Add mixed runtime services support Matt Fleming
2014-01-29 16:23   ` [RFC][PATCH 11/11] x86/efi: Wire up CONFIG_EFI_MIXED Matt Fleming

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).