[GIT PULL] EFI changes for v5.8
From: Ingo Molnar
Date: Mon Jun 01 2020 - 09:24:50 EST
Linus,
Please pull the latest efi/core git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git efi-core-2020-06-01
# HEAD: e9524fb97ab5b41b85e1d3408f8e513433798f3c efi/x86: Don't blow away existing initrd
The EFI changes for this cycle are:
- preliminary changes for RISC-V
- Add support for setting the resolution on the EFI framebuffer
- Simplify kernel image loading for arm64
- Move .bss into .data via the linker script instead of relying on symbol
annotations.
- Get rid of __pure getters to access global variables
- Clean up the config table matching arrays
- Rename pr_efi/pr_efi_err to efi_info/efi_err, and use them consistently
- Simplify and unify initrd loading
- Parse the builtin command line on x86 (if provided)
- Implement printk() support, including support for wide character strings
- Simplify GDT handling in early mixed mode thunking code
- Some other minor fixes and cleanups
Thanks,
Ingo
------------------>
Ard Biesheuvel (20):
efi/libstub: Make initrd file loader configurable
efi/libstub: unify EFI call wrappers for non-x86
efi/libstub/random: Align allocate size to EFI_ALLOC_ALIGN
efi/libstub/random: Increase random alloc granularity
efi/libstub/arm64: Replace 'preferred' offset with alignment check
efi/libstub/arm64: Simplify randomized loading of kernel image
efi/libstub: Add API function to allocate aligned memory
efi/libstub/arm64: Switch to ordinary page allocator for kernel image
efi/libstub: Move efi_relocate_kernel() into separate source file
efi/libstub: Drop __pure getter for efi_system_table
efi/libstub: Drop __pure getters for EFI stub options
efi/libstub/x86: Avoid getter function for efi_is64
efi: Clean up config table description arrays
efi: Move arch_tables check to caller
efi/libstub: Re-enable command line initrd loading for x86
efi/libstub/x86: Work around LLVM ELF quirk build regression
efi/libstub: Make efi_printk() input argument const char*
efi/libstub: Use pool allocation for the command line
efi/efivars: Add missing kobject_put() in sysfs entry creation error path
efi/libstub: Add missing prototype for PE/COFF entry point
Arvind Sankar (56):
efi/gop: Remove redundant current_fb_base
efi/gop: Move check for framebuffer before con_out
efi/gop: Get mode information outside the loop
efi/gop: Factor out locating the gop into a function
efi/gop: Slightly re-arrange logic of find_gop
efi/gop: Move variable declarations into loop block
efi/gop: Use helper macros for populating lfb_base
efi/gop: Use helper macros for find_bits
efi/gop: Remove unreachable code from setup_pixel_info
efi/gop: Add prototypes for query_mode and set_mode
efi/gop: Allow specifying mode number on command line
efi/gop: Allow specifying mode by <xres>x<yres>
efi/gop: Allow specifying depth as well as resolution
efi/gop: Allow automatically choosing the best mode
efi/arm: Remove __efistub_global annotation
efi/x86: Remove __efistub_global and add relocation check
efi: Kill __efistub_global
efi/x86: Use correct size for boot_params
efi/libstub: Add a helper function to split 64-bit values
efi/libstub: Move pr_efi/pr_efi_err into efi namespace
efi/x86: Use efi_err for error messages
efi/gop: Use efi_err for error messages
efi/tpm: Use efi_err for error messages
efi/libstub: Upgrade ignored dtb= argument message to error
efi/x86: Move command-line initrd loading to efi_main
efi/libstub: Unify initrd loading across architectures
efi/x86: Support builtin command line
efi/libstub: Check return value of efi_parse_options
efi/libstub: Fix mixed mode boot issue after macro refactor
efi/libstub: Include dependencies of efistub.h
efi/libstub: Rename efi_[char16_]printk to efi_[char16_]puts
efi/libstub: Buffer output of efi_puts
efi/libstub: Add a basic printf implementation
efi/libstub: Optimize for size instead of speed
efi/printf: Drop %n format and L qualifier
efi/printf: Add 64-bit and 8-bit integer support
efi/printf: Factor out flags parsing and handle '%' earlier
efi/printf: Fix minor bug in precision handling
efi/printf: Merge 'p' with the integer formats
efi/printf: Factor out width/precision parsing
efi/printf: Factor out integer argument retrieval
efi/printf: Handle null string input
efi/printf: Refactor code to consolidate padding and output
efi/printf: Abort on invalid format
efi/printf: Turn vsprintf into vsnprintf
efi/libstub: Implement printk-style logging
efi/libstub: Add definitions for console input and events
efi/gop: Add an option to list out the available GOP modes
efi/printf: Add support for wchar_t (UTF-16)
efi/libstub: Add UTF-8 decoding to efi_puts
efi/libstub: Use %ls for filename
efi/libstub: Get the exact UTF-8 length
efi/libstub: Use snprintf with %ls to convert the command line
efi/libstub: Don't parse overlong command lines
efi/x86: Drop the special GDT for the EFI thunk
efi/x86: Don't blow away existing initrd
Atish Patra (1):
efi/libstub: Move arm-stub to a common file
Joe Perches (1):
efi/libstub: Correct comment typos
Zou Wei (1):
efi/libstub/arm: Make install_memreserve_table static
Documentation/fb/efifb.rst | 38 +-
arch/arm/Kconfig | 2 +-
arch/arm/boot/compressed/efi-header.S | 2 +-
arch/arm/boot/compressed/vmlinux.lds.S | 2 +-
arch/arm/include/asm/efi.h | 8 -
arch/arm64/Kconfig | 2 +-
arch/arm64/include/asm/efi.h | 8 -
arch/arm64/kernel/efi-entry.S | 2 +-
arch/arm64/kernel/efi-header.S | 2 +-
arch/ia64/kernel/efi.c | 12 +-
arch/x86/boot/compressed/efi_thunk_64.S | 19 +-
arch/x86/boot/compressed/vmlinux.lds.S | 1 +
arch/x86/include/asm/efi.h | 50 +-
arch/x86/platform/efi/efi.c | 8 +-
arch/x86/xen/efi.c | 2 +-
drivers/firmware/efi/Kconfig | 15 +-
drivers/firmware/efi/arm-init.c | 4 +-
drivers/firmware/efi/efi.c | 44 +-
drivers/firmware/efi/efivars.c | 4 +-
drivers/firmware/efi/libstub/Makefile | 47 +-
drivers/firmware/efi/libstub/alignedmem.c | 57 ++
drivers/firmware/efi/libstub/arm32-stub.c | 12 +-
drivers/firmware/efi/libstub/arm64-stub.c | 106 ++--
drivers/firmware/efi/libstub/efi-stub-helper.c | 381 +++++++++-----
.../efi/libstub/{arm-stub.c => efi-stub.c} | 93 ++--
drivers/firmware/efi/libstub/efistub.h | 191 +++++--
drivers/firmware/efi/libstub/fdt.c | 24 +-
drivers/firmware/efi/libstub/file.c | 48 +-
drivers/firmware/efi/libstub/gop.c | 583 +++++++++++++++++----
drivers/firmware/efi/libstub/mem.c | 191 +------
drivers/firmware/efi/libstub/pci.c | 10 +-
drivers/firmware/efi/libstub/randomalloc.c | 6 +-
drivers/firmware/efi/libstub/relocate.c | 174 ++++++
drivers/firmware/efi/libstub/secureboot.c | 4 +-
drivers/firmware/efi/libstub/tpm.c | 2 +-
drivers/firmware/efi/libstub/vsprintf.c | 564 ++++++++++++++++++++
drivers/firmware/efi/libstub/x86-stub.c | 155 +++---
include/linux/efi.h | 6 +-
38 files changed, 2050 insertions(+), 829 deletions(-)
create mode 100644 drivers/firmware/efi/libstub/alignedmem.c
rename drivers/firmware/efi/libstub/{arm-stub.c => efi-stub.c} (83%)
create mode 100644 drivers/firmware/efi/libstub/relocate.c
create mode 100644 drivers/firmware/efi/libstub/vsprintf.c