All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ard Biesheuvel <ardb@kernel.org>
To: grub-devel@gnu.org
Cc: Ard Biesheuvel <ardb@kernel.org>,
	Daniel Kiper <daniel.kiper@oracle.com>,
	Glenn Washburn <development@efficientek.com>
Subject: [PATCH v3 0/5] efi: Implement generic EFI boot for x86
Date: Tue, 23 May 2023 10:23:50 +0200	[thread overview]
Message-ID: <20230523082355.690271-1-ardb@kernel.org> (raw)

Switch the i386-efi and x86_64-efi builds to the generic EFI loader,
which enters the Linux kernel via the EFI stub and provides the initrd
via the LoadFile2 protocol. This unifies x86 with other EFI
architectures, and removes the dependency on the setup header and struct
bootparams.

Do some preparatory cleanup first, so we no longer need to rely on the
MS to SysV calling convention translation code.

Changes since v2:
- rebase onto latest master, which has the Loongarch changes
- retain Itanium support for now
- simplify the fallback logic - attempt to load the image as usual, and
  fallback on failure or if the image does not implement LoadFile2

Changes since v1:
- drop Itanium support, which is a maintenance burden as it shares the
  EFI code with other architectures, but does not have a EFI stub in
  Linux, and there is no way to test whether our changes break the boot
  for it or not;
- enable generic EFI for i386 as well
- wire up the existing x86 code as a fallback for kernels that lack EFI
  stub or LoadFile2 support. This removes the need for additional
  changes to support v5.8 or older kernels.

Cc: Daniel Kiper <daniel.kiper@oracle.com>
Cc: Glenn Washburn <development@efficientek.com>

Ard Biesheuvel (5):
  efi: Make EFI PXE protocol methods non-callable
  efi: Add calling convention annotation to all prototypes
  efi: Drop all uses of efi_call_XX wrappers
  efi: Remove x86_64 call wrappers
  efi: Use generic EFI loader for x86_64 and i386

 grub-core/Makefile.core.def           |   3 +-
 grub-core/commands/acpi.c             |   8 +-
 grub-core/commands/efi/efitextmode.c  |   8 +-
 grub-core/commands/efi/lsefi.c        |   5 +-
 grub-core/commands/efi/tpm.c          |  21 +-
 grub-core/disk/efi/efidisk.c          |   7 +-
 grub-core/kern/arm/efi/init.c         |  12 +-
 grub-core/kern/efi/efi.c              |  56 +-
 grub-core/kern/efi/init.c             |  15 +-
 grub-core/kern/efi/mm.c               |  17 +-
 grub-core/kern/i386/efi/tsc.c         |   2 +-
 grub-core/kern/ia64/efi/init.c        |  14 +-
 grub-core/kern/loongarch64/efi/init.c |  10 +-
 grub-core/kern/x86_64/efi/callwrap.S  | 129 ----
 grub-core/lib/efi/datetime.c          |   9 +-
 grub-core/lib/efi/halt.c              |   4 +-
 grub-core/lib/efi/relocator.c         |   6 +-
 grub-core/loader/efi/appleloader.c    |   8 +-
 grub-core/loader/efi/chainloader.c    |  20 +-
 grub-core/loader/efi/linux.c          |  40 +-
 grub-core/loader/i386/linux.c         |   8 +
 grub-core/mmap/efi/mmap.c             |  16 +-
 grub-core/net/drivers/efi/efinet.c    |  26 +-
 grub-core/term/efi/console.c          |  29 +-
 grub-core/term/efi/serial.c           |  18 +-
 grub-core/video/efi_gop.c             |  18 +-
 grub-core/video/efi_uga.c             |   8 +-
 include/grub/efi/api.h                | 666 +++++++++-----------
 include/grub/efi/efi.h                |   2 +-
 include/grub/efi/tpm.h                | 149 +++--
 30 files changed, 600 insertions(+), 734 deletions(-)
 delete mode 100644 grub-core/kern/x86_64/efi/callwrap.S

-- 
2.39.2



             reply	other threads:[~2023-05-23  8:24 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-23  8:23 Ard Biesheuvel [this message]
2023-05-23  8:23 ` [PATCH v3 1/5] efi: Make EFI PXE protocol methods non-callable Ard Biesheuvel
2023-05-23  8:23 ` [PATCH v3 2/5] efi: Add calling convention annotation to all prototypes Ard Biesheuvel
2023-05-23  8:23 ` [PATCH v3 3/5] efi: Drop all uses of efi_call_XX wrappers Ard Biesheuvel
2023-05-23  8:23 ` [PATCH v3 4/5] efi: Remove x86_64 call wrappers Ard Biesheuvel
2023-05-23  8:23 ` [PATCH v3 5/5] efi: Use generic EFI loader for x86_64 and i386 Ard Biesheuvel
2023-05-23 15:14 ` [PATCH v3 0/5] efi: Implement generic EFI boot for x86 Daniel Kiper

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=20230523082355.690271-1-ardb@kernel.org \
    --to=ardb@kernel.org \
    --cc=daniel.kiper@oracle.com \
    --cc=development@efficientek.com \
    --cc=grub-devel@gnu.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.