From: Ard Biesheuvel <ardb@kernel.org>
To: linux-efi@vger.kernel.org
Cc: Ard Biesheuvel <ardb@kernel.org>,
nivedita@alum.mit.edu, mingo@kernel.org, lukas@wunner.de,
atish.patra@wdc.com
Subject: [PATCH 00/19] EFI stub early spring cleaning part 2
Date: Mon, 10 Feb 2020 17:02:29 +0100 [thread overview]
Message-ID: <20200210160248.4889-1-ardb@kernel.org> (raw)
This series is a second pass over the EFI stub code to clean it up and
prepare it for some future changes:
- loading the initrd in a different way, which should remove the need for
bootloaders to have knowledge about the initrd allocation policies and
about how to pass the base and size to the kernel proper,
- support for RISC-V will be arriving soon, which makes this a good time to
do some janitorial work to avoid RISC-V from inheriting legacy that only
exists for the benefit of other architectures.
First of all, code has been moved into separate source files where appropriate,
so that we can benefit from the fact that the EFI stub is a true static library,
and so only the objects that are needed to satisfy symbol dependencies are
incorporated into the final build. We also move x86's eboot.c into libstub/
so we can use the same cflags and make rules across the entire library.
(#5, #7, #9, #12, #13, #14)
Patches #6, #15 and #17 clean up the memory allocation, file I/O and command
line parsing routines that are shared by all architectures, to remove open
coded logic that is already implemented elsewhere, either in the firmware or
in code that we can incorporate from the kernel proper.
Patches #10, #11 and #16 deal with upper limits for memory allocations.
Patches #18 and #19 adds the plumbing to enable us to locate device paths and
invoke the EFI LoadFile2 protocol.
The remaining patches are cleanups or minor bug fixes across the board.
Note that this series applies onto Arvind's x86/boot cleanups [0]. Full
branch can be found here [1]
Cc: nivedita@alum.mit.edu
Cc: mingo@kernel.org
Cc: lukas@wunner.de
Cc: atish.patra@wdc.com
[0] https://lore.kernel.org/linux-efi/20200202171353.3736319-1-nivedita@alum.mit.edu/
[1] https://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git/log/?h=efi-spring-cleaning-part2
Ard Biesheuvel (19):
efi/libstub/x86: Remove pointless zeroing of apm_bios_info
efi/libstub/x86: Avoid overflowing code32_start on PE entry
efi/libstub: Use hidden visiblity for all source files
efi/libstub/arm: Relax FDT alignment requirement
efi/libstub: Move memory map handling and allocation routines to mem.c
efi/libstub: Simplify efi_high_alloc() and rename to
efi_allocate_pages()
efi/libstub/x86: Incorporate eboot.c into libstub
efi/libstub: Use consistent type names for file I/O protocols
efi/libstub: Move stub specific declarations into efistub.h
efi/libstub/x86: Permit bootparams struct to be allocated above 4 GB
efi/libstub/x86: Permit cmdline data to be allocated above 4 GB
efi/libstub: Move efi_random_alloc() into separate source file
efi/libstub: Move get_dram_base() into arm-stub.c
efi/libstub: Move file I/O support code into separate file
efi/libstub: Rewrite file I/O routine
efi/libstub: Take soft and hard memory limits into account for initrd
loading
efi/libstub: Clean up command line parsing routine
efi/libstub: Expose LocateDevicePath boot service
efi/libstub: Make the LoadFile EFI protocol accessible
arch/arm64/include/asm/efi.h | 10 -
arch/x86/boot/compressed/Makefile | 5 +-
arch/x86/boot/compressed/eboot.h | 31 -
arch/x86/include/asm/efi.h | 9 +-
drivers/firmware/efi/libstub/Makefile | 6 +-
drivers/firmware/efi/libstub/arm-stub.c | 47 +-
drivers/firmware/efi/libstub/arm64-stub.c | 8 +-
.../firmware/efi/libstub/efi-stub-helper.c | 725 +-----------------
drivers/firmware/efi/libstub/efistub.h | 586 +++++++++++++-
drivers/firmware/efi/libstub/fdt.c | 7 +-
drivers/firmware/efi/libstub/file.c | 258 +++++++
drivers/firmware/efi/libstub/hidden.h | 6 +
drivers/firmware/efi/libstub/mem.c | 253 ++++++
drivers/firmware/efi/libstub/random.c | 114 ---
drivers/firmware/efi/libstub/randomalloc.c | 124 +++
drivers/firmware/efi/libstub/string.c | 63 ++
.../firmware/efi/libstub/x86-stub.c | 79 +-
include/linux/efi.h | 516 +------------
18 files changed, 1389 insertions(+), 1458 deletions(-)
delete mode 100644 arch/x86/boot/compressed/eboot.h
create mode 100644 drivers/firmware/efi/libstub/file.c
create mode 100644 drivers/firmware/efi/libstub/hidden.h
create mode 100644 drivers/firmware/efi/libstub/mem.c
create mode 100644 drivers/firmware/efi/libstub/randomalloc.c
rename arch/x86/boot/compressed/eboot.c => drivers/firmware/efi/libstub/x86-stub.c (94%)
--
2.17.1
next reply other threads:[~2020-02-10 16:03 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-02-10 16:02 Ard Biesheuvel [this message]
2020-02-10 16:02 ` [PATCH 01/19] efi/libstub/x86: Remove pointless zeroing of apm_bios_info Ard Biesheuvel
2020-02-10 16:02 ` [PATCH 02/19] efi/libstub/x86: Avoid overflowing code32_start on PE entry Ard Biesheuvel
2020-02-10 16:02 ` [PATCH 03/19] efi/libstub: Use hidden visiblity for all source files Ard Biesheuvel
2020-02-24 23:15 ` Atish Patra
2020-02-24 23:36 ` Ard Biesheuvel
2020-02-25 19:18 ` Atish Patra
2020-02-10 16:02 ` [PATCH 04/19] efi/libstub/arm: Relax FDT alignment requirement Ard Biesheuvel
2020-02-10 16:02 ` [PATCH 05/19] efi/libstub: Move memory map handling and allocation routines to mem.c Ard Biesheuvel
2020-02-10 16:02 ` [PATCH 06/19] efi/libstub: Simplify efi_high_alloc() and rename to efi_allocate_pages() Ard Biesheuvel
2020-02-10 16:02 ` [PATCH 07/19] efi/libstub/x86: Incorporate eboot.c into libstub Ard Biesheuvel
2020-02-10 16:02 ` [PATCH 08/19] efi/libstub: Use consistent type names for file I/O protocols Ard Biesheuvel
2020-02-10 16:02 ` [PATCH 09/19] efi/libstub: Move stub specific declarations into efistub.h Ard Biesheuvel
2020-02-10 16:02 ` [PATCH 10/19] efi/libstub/x86: Permit bootparams struct to be allocated above 4 GB Ard Biesheuvel
2020-02-10 16:02 ` [PATCH 11/19] efi/libstub/x86: Permit cmdline data " Ard Biesheuvel
2020-02-10 16:02 ` [PATCH 12/19] efi/libstub: Move efi_random_alloc() into separate source file Ard Biesheuvel
2020-02-10 16:02 ` [PATCH 13/19] efi/libstub: Move get_dram_base() into arm-stub.c Ard Biesheuvel
2020-02-17 1:17 ` Atish Patra
2020-02-17 8:37 ` Ard Biesheuvel
2020-02-26 23:34 ` Atish Patra
2020-02-27 7:38 ` Ard Biesheuvel
2020-02-27 7:48 ` Atish Patra
2020-02-27 7:50 ` Ard Biesheuvel
2020-02-10 16:02 ` [PATCH 14/19] efi/libstub: Move file I/O support code into separate file Ard Biesheuvel
2020-02-10 16:02 ` [PATCH 15/19] efi/libstub: Rewrite file I/O routine Ard Biesheuvel
2020-02-10 16:02 ` [PATCH 16/19] efi/libstub: Take soft and hard memory limits into account for initrd loading Ard Biesheuvel
2020-02-10 16:02 ` [PATCH 17/19] efi/libstub: Clean up command line parsing routine Ard Biesheuvel
2020-02-10 16:02 ` [PATCH 18/19] efi/libstub: Expose LocateDevicePath boot service Ard Biesheuvel
2020-02-10 16:02 ` [PATCH 19/19] efi/libstub: Make the LoadFile EFI protocol accessible Ard Biesheuvel
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=20200210160248.4889-1-ardb@kernel.org \
--to=ardb@kernel.org \
--cc=atish.patra@wdc.com \
--cc=linux-efi@vger.kernel.org \
--cc=lukas@wunner.de \
--cc=mingo@kernel.org \
--cc=nivedita@alum.mit.edu \
/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.