From: Matt Fleming <matt-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org>
To: linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Cc: "H. Peter Anvin" <hpa-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>,
Borislav Petkov <bp-Gina5bIWoIWzQB+pC5nmwQ@public.gmane.org>,
Alan Cox <alan-qBU/x9rampVanCEyBjwyrvXRex20P6io@public.gmane.org>,
Matthew Garrett <mjg59-1xO5oi07KQx4cg9Nei1l7Q@public.gmane.org>,
Matt Fleming
<matt.fleming-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Subject: [RFC][PATCH 00/11] EFI mixed mode
Date: Wed, 29 Jan 2014 16:23:46 +0000 [thread overview]
Message-ID: <1391012637-4839-1-git-send-email-matt@console-pimps.org> (raw)
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
next reply other threads:[~2014-01-29 16:23 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-29 16:23 Matt Fleming [this message]
[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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1391012637-4839-1-git-send-email-matt@console-pimps.org \
--to=matt-hnk1s37rvnbexh+ff434mdi2o/jbrioy@public.gmane.org \
--cc=alan-qBU/x9rampVanCEyBjwyrvXRex20P6io@public.gmane.org \
--cc=bp-Gina5bIWoIWzQB+pC5nmwQ@public.gmane.org \
--cc=hpa-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org \
--cc=linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=matt.fleming-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
--cc=mjg59-1xO5oi07KQx4cg9Nei1l7Q@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).