[U-Boot] [PATCH 00/48] Add support for running U-Boot as an EFI payload/application
Simon Glass
sjg at chromium.org
Wed Jul 22 17:48:52 CEST 2015
This series allows U-Boot to be built as an EFI payload so that U-Boot
can be started on almost any x86 platform that supports EFI. This is
implemented as a stub which EFI can load plus a payload that is copied
to RAM. The payload contains a normal U-Boot binary image and device tree.
This allows U-Boot to run on platforms that have EFI support but are not
supported natively by U-Boot. It also allows testing and fiddling with the
board using U-Boots memory display and other commands.
In addition, U-Boot can be built as an EFI application. This should work
regardless of the board type since it only relies on EFI services. However
only 32-bit EFI is supported in this case. Again it can be used to snoop
around the platform.
A README provides further details of how this series operates.
Ben Stoltz (6):
efi: Avoid using non-existent text base
efi: Drop CONFIG_SYS_TEXT_BASE for EFI
x86: Add support for U-Boot as an EFI application
x86: Add EFI board code
x86: Set up tool chain flags for running as EFI application
x86: Add definitions for the x86-efi board and plumb it in
Simon Glass (42):
Support removing default assembler flags
dm: core: Check for empty list in uclass_find_device()
dm: serial: Correct logic in serial_find_console_or_panic()
elf: Add a few definitions for 64-bit relocation
Add a way to skip relocation
Allow objcopy to work without filling gaps with 0xff
Bring in __aligned_u64 and friends to linux/types.h
x86: Add various minor tidy-ups to the 32-bit startup code
x86: Use CR0 constants in CPU init
x86: Tidy up global_data flags
x86: Drop unused copy_fdt_to_ram()
x86: Tidy up the 64-bit calling code
x86: Add some missing global_data declarations in files that use gd
x86: Tidy up a few minor issues with interrupts
pci: Use debug() instead of DEBUGF() in pci_auto.c
pci: Fix up code for CONFIG_PCI_ENUM_ONLY
efi: Add start-up library code
efi: Display the correct initcall pre-relocation values
efi: Add a serial driver
efi: Support building a u-boot.efi executable
x86: Support skipping relocation for EFI
x86: Add asm/elf.h for x86-specific ELF definitions
x86: dts: Add a device tree file for EFI
x86: Allow use of global_data with EFI
x86: Allow relocation code to build without text base
x86: Add a link script entry for U-Boot as a payload
x86: Add relocation and link script for a 64-bit EFI application
efi: Add support for loading U-Boot through an EFI stub
x86: Support building the EFI stub
x86: Add an enum for some commonly-used GDT bits
x86: Add a way to call 32-bit code from 64-bit mode
efi: Add 64-bit payload support
x86: Add Makefile settings for EFI build
x86: Add support for passing tables into U-Boot
efi: Add functions for decoding the EFI tables
efi: Add a command to display the memory map
x86: Handle running as EFI payload
x86: Add helper code for running from EFI
x86: baytrail: Support operation as an EFI payload
x86: qemu: Support operation as an EFI payload
x86: Gracefully disable the vesa driver when running from EFI
efi: Add a README to explain how things work
Kconfig | 1 +
Makefile | 45 ++++-
arch/x86/Kconfig | 20 ++
arch/x86/Makefile | 2 +
arch/x86/config.mk | 46 ++++-
arch/x86/cpu/Makefile | 7 +
arch/x86/cpu/baytrail/Kconfig | 2 +-
arch/x86/cpu/baytrail/cpu.c | 2 +
arch/x86/cpu/baytrail/valleyview.c | 2 +
arch/x86/cpu/call32.S | 65 +++++++
arch/x86/cpu/call64.S | 4 +-
arch/x86/cpu/cpu.c | 23 ++-
arch/x86/cpu/efi/Makefile | 8 +
arch/x86/cpu/efi/efi.c | 49 +++++
arch/x86/cpu/efi/elf_ia32_efi.lds | 95 +++++++++
arch/x86/cpu/efi/elf_x86_64_efi.lds | 87 +++++++++
arch/x86/cpu/efi/sdram.c | 29 +++
arch/x86/cpu/interrupts.c | 21 +-
arch/x86/cpu/mp_init.c | 2 +
arch/x86/cpu/qemu/Makefile | 5 +-
arch/x86/cpu/qemu/qemu.c | 2 +
arch/x86/cpu/start.S | 55 ++++--
arch/x86/dts/Makefile | 1 +
arch/x86/dts/efi.dts | 22 +++
arch/x86/include/asm/arch-efi/gpio.h | 10 +
arch/x86/include/asm/cpu.h | 19 ++
arch/x86/include/asm/elf.h | 50 +++++
arch/x86/include/asm/fsp/fsp_hob.h | 59 +-----
arch/x86/include/asm/global_data.h | 16 +-
arch/x86/include/asm/relocate.h | 1 -
arch/x86/include/asm/types.h | 5 +-
arch/x86/lib/Makefile | 23 ++-
arch/x86/lib/asm-offsets.c | 1 +
arch/x86/lib/bootm.c | 4 +
arch/x86/lib/crt0-efi-ia32.S | 77 ++++++++
arch/x86/lib/crt0-efi-x86_64.S | 77 ++++++++
arch/x86/lib/efi/Makefile | 9 +
arch/x86/lib/efi/car.S | 12 ++
arch/x86/lib/efi/efi.c | 151 +++++++++++++++
arch/x86/lib/fsp/fsp_common.c | 2 +
arch/x86/lib/lpc-uclass.c | 2 +
arch/x86/lib/pch-uclass.c | 2 +
arch/x86/lib/reloc_ia32.c | 96 ++++++++++
arch/x86/lib/reloc_x86_64.c | 90 +++++++++
arch/x86/lib/relocate.c | 43 ++---
board/efi/Kconfig | 19 ++
board/efi/efi-x86/Kconfig | 27 +++
board/efi/efi-x86/MAINTAINERS | 6 +
board/efi/efi-x86/Makefile | 7 +
board/efi/efi-x86/efi.c | 18 ++
board/emulation/qemu-x86/Kconfig | 5 +-
board/intel/minnowmax/Kconfig | 5 +-
common/Makefile | 1 +
common/board_f.c | 14 +-
common/cmd_efi.c | 258 +++++++++++++++++++++++++
config.mk | 2 -
configs/efi-x86_defconfig | 16 ++
doc/README.efi | 237 +++++++++++++++++++++++
drivers/core/uclass.c | 2 +
drivers/gpio/intel_ich6_gpio.c | 2 +
drivers/pci/pci_auto.c | 52 ++---
drivers/serial/Kconfig | 8 +
drivers/serial/Makefile | 1 +
drivers/serial/serial-uclass.c | 2 +-
drivers/serial/serial_efi.c | 149 +++++++++++++++
drivers/video/vesa_fb.c | 8 +
include/asm-generic/global_data.h | 1 +
include/common.h | 7 +
include/configs/efi-x86.h | 37 ++++
include/efi.h | 360 +++++++++++++++++++++++++++++++++++
include/efi_api.h | 252 ++++++++++++++++++++++++
include/elf.h | 26 +++
include/linux/types.h | 6 +-
include/part_efi.h | 9 +-
lib/Kconfig | 2 +
lib/Makefile | 1 +
lib/efi/Kconfig | 54 ++++++
lib/efi/Makefile | 17 ++
lib/efi/efi.c | 91 +++++++++
lib/efi/efi_app.c | 125 ++++++++++++
lib/efi/efi_info.c | 47 +++++
lib/efi/efi_stub.c | 341 +++++++++++++++++++++++++++++++++
lib/initcall.c | 4 +
scripts/Makefile.build | 8 +
scripts/Makefile.lib | 3 +-
85 files changed, 3395 insertions(+), 179 deletions(-)
create mode 100644 arch/x86/cpu/call32.S
create mode 100644 arch/x86/cpu/efi/Makefile
create mode 100644 arch/x86/cpu/efi/efi.c
create mode 100644 arch/x86/cpu/efi/elf_ia32_efi.lds
create mode 100644 arch/x86/cpu/efi/elf_x86_64_efi.lds
create mode 100644 arch/x86/cpu/efi/sdram.c
create mode 100644 arch/x86/dts/efi.dts
create mode 100644 arch/x86/include/asm/arch-efi/gpio.h
create mode 100644 arch/x86/include/asm/elf.h
create mode 100644 arch/x86/lib/crt0-efi-ia32.S
create mode 100644 arch/x86/lib/crt0-efi-x86_64.S
create mode 100644 arch/x86/lib/efi/Makefile
create mode 100644 arch/x86/lib/efi/car.S
create mode 100644 arch/x86/lib/efi/efi.c
create mode 100644 arch/x86/lib/reloc_ia32.c
create mode 100644 arch/x86/lib/reloc_x86_64.c
create mode 100644 board/efi/Kconfig
create mode 100644 board/efi/efi-x86/Kconfig
create mode 100644 board/efi/efi-x86/MAINTAINERS
create mode 100644 board/efi/efi-x86/Makefile
create mode 100644 board/efi/efi-x86/efi.c
create mode 100644 common/cmd_efi.c
create mode 100644 configs/efi-x86_defconfig
create mode 100644 doc/README.efi
create mode 100644 drivers/serial/serial_efi.c
create mode 100644 include/configs/efi-x86.h
create mode 100644 include/efi.h
create mode 100644 include/efi_api.h
create mode 100644 lib/efi/Kconfig
create mode 100644 lib/efi/Makefile
create mode 100644 lib/efi/efi.c
create mode 100644 lib/efi/efi_app.c
create mode 100644 lib/efi/efi_info.c
create mode 100644 lib/efi/efi_stub.c
--
2.4.3.573.g4eafbef
More information about the U-Boot
mailing list