public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 00/48] Add support for running U-Boot as an EFI payload/application
@ 2015-07-22 15:48 Simon Glass
  2015-07-22 15:48 ` [U-Boot] [PATCH 01/48] Support removing default assembler flags Simon Glass
                   ` (48 more replies)
  0 siblings, 49 replies; 112+ messages in thread
From: Simon Glass @ 2015-07-22 15:48 UTC (permalink / raw)
  To: u-boot

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

^ permalink raw reply	[flat|nested] 112+ messages in thread

end of thread, other threads:[~2015-08-02 15:03 UTC | newest]

Thread overview: 112+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-07-22 15:48 [U-Boot] [PATCH 00/48] Add support for running U-Boot as an EFI payload/application Simon Glass
2015-07-22 15:48 ` [U-Boot] [PATCH 01/48] Support removing default assembler flags Simon Glass
2015-07-23  2:01   ` Bin Meng
2015-07-22 15:48 ` [U-Boot] [PATCH 02/48] dm: core: Check for empty list in uclass_find_device() Simon Glass
2015-07-23  2:14   ` Bin Meng
2015-07-22 15:48 ` [U-Boot] [PATCH 03/48] dm: serial: Correct logic in serial_find_console_or_panic() Simon Glass
2015-07-23  2:21   ` Bin Meng
2015-07-22 15:48 ` [U-Boot] [PATCH 04/48] elf: Add a few definitions for 64-bit relocation Simon Glass
2015-07-23  2:59   ` Bin Meng
2015-07-22 15:48 ` [U-Boot] [PATCH 05/48] Add a way to skip relocation Simon Glass
2015-07-23  3:41   ` Bin Meng
2015-07-31 15:45     ` Simon Glass
2015-07-22 15:48 ` [U-Boot] [PATCH 06/48] Allow objcopy to work without filling gaps with 0xff Simon Glass
2015-07-23  3:49   ` Bin Meng
2015-07-22 15:48 ` [U-Boot] [PATCH 07/48] Bring in __aligned_u64 and friends to linux/types.h Simon Glass
2015-07-23  3:56   ` Bin Meng
2015-07-22 15:49 ` [U-Boot] [PATCH 08/48] x86: Add various minor tidy-ups to the 32-bit startup code Simon Glass
2015-07-23  3:59   ` Bin Meng
2015-07-22 15:49 ` [U-Boot] [PATCH 09/48] x86: Use CR0 constants in CPU init Simon Glass
2015-07-23  4:02   ` Bin Meng
2015-07-22 15:49 ` [U-Boot] [PATCH 10/48] x86: Tidy up global_data flags Simon Glass
2015-07-23  4:09   ` Bin Meng
2015-07-22 15:49 ` [U-Boot] [PATCH 11/48] x86: Drop unused copy_fdt_to_ram() Simon Glass
2015-07-23  4:12   ` Bin Meng
2015-07-22 15:49 ` [U-Boot] [PATCH 12/48] x86: Tidy up the 64-bit calling code Simon Glass
2015-07-23  4:18   ` Bin Meng
2015-07-22 15:49 ` [U-Boot] [PATCH 13/48] x86: Add some missing global_data declarations in files that use gd Simon Glass
2015-07-23  4:54   ` Bin Meng
2015-07-22 15:49 ` [U-Boot] [PATCH 14/48] x86: Tidy up a few minor issues with interrupts Simon Glass
2015-07-23  4:59   ` Bin Meng
2015-07-22 15:49 ` [U-Boot] [PATCH 15/48] pci: Use debug() instead of DEBUGF() in pci_auto.c Simon Glass
2015-07-22 22:14   ` Pavel Machek
2015-07-23  5:14   ` Bin Meng
2015-07-22 15:49 ` [U-Boot] [PATCH 16/48] pci: Fix up code for CONFIG_PCI_ENUM_ONLY Simon Glass
2015-07-23  6:46   ` Bin Meng
2015-07-31 15:45     ` Simon Glass
2015-07-22 15:49 ` [U-Boot] [PATCH 17/48] efi: Avoid using non-existent text base Simon Glass
2015-07-23  6:49   ` Bin Meng
2015-07-22 15:49 ` [U-Boot] [PATCH 18/48] efi: Add start-up library code Simon Glass
2015-07-23  8:09   ` Bin Meng
2015-07-31 15:45     ` Simon Glass
2015-08-02 15:03       ` Bin Meng
2015-07-22 15:49 ` [U-Boot] [PATCH 19/48] efi: Display the correct initcall pre-relocation values Simon Glass
2015-07-23  8:14   ` Bin Meng
2015-07-22 15:49 ` [U-Boot] [PATCH 20/48] efi: Add a serial driver Simon Glass
2015-07-23  8:31   ` Bin Meng
2015-07-22 15:49 ` [U-Boot] [PATCH 21/48] efi: Drop CONFIG_SYS_TEXT_BASE for EFI Simon Glass
2015-07-23  8:33   ` Bin Meng
2015-07-22 15:49 ` [U-Boot] [PATCH 22/48] efi: Support building a u-boot.efi executable Simon Glass
2015-07-23  8:46   ` Bin Meng
2015-07-31 15:45     ` Simon Glass
2015-07-22 15:49 ` [U-Boot] [PATCH 23/48] x86: Support skipping relocation for EFI Simon Glass
2015-07-23  8:51   ` Bin Meng
2015-07-31 15:45     ` Simon Glass
2015-07-22 15:49 ` [U-Boot] [PATCH 24/48] x86: Add asm/elf.h for x86-specific ELF definitions Simon Glass
2015-07-23  8:57   ` Bin Meng
2015-07-22 15:49 ` [U-Boot] [PATCH 25/48] x86: Add support for U-Boot as an EFI application Simon Glass
2015-07-23  9:43   ` Bin Meng
2015-07-22 15:49 ` [U-Boot] [PATCH 26/48] x86: Add EFI board code Simon Glass
2015-07-23  9:50   ` Bin Meng
2015-07-22 15:49 ` [U-Boot] [PATCH 27/48] x86: dts: Add a device tree file for EFI Simon Glass
2015-07-23  9:52   ` Bin Meng
2015-07-22 15:49 ` [U-Boot] [PATCH 28/48] x86: Allow use of global_data with EFI Simon Glass
2015-07-23  9:58   ` Bin Meng
2015-07-22 15:49 ` [U-Boot] [PATCH 29/48] x86: Allow relocation code to build without text base Simon Glass
2015-07-23 10:03   ` Bin Meng
2015-07-22 15:49 ` [U-Boot] [PATCH 30/48] x86: Set up tool chain flags for running as EFI application Simon Glass
2015-07-23 11:07   ` Bin Meng
2015-07-31 15:45     ` Simon Glass
2015-07-22 15:49 ` [U-Boot] [PATCH 31/48] x86: Add definitions for the x86-efi board and plumb it in Simon Glass
2015-07-23 12:13   ` Bin Meng
2015-07-22 15:49 ` [U-Boot] [PATCH 32/48] x86: Add a link script entry for U-Boot as a payload Simon Glass
2015-07-23 12:15   ` Bin Meng
2015-07-22 15:49 ` [U-Boot] [PATCH 33/48] x86: Add relocation and link script for a 64-bit EFI application Simon Glass
2015-07-23 12:35   ` Bin Meng
2015-07-22 15:49 ` [U-Boot] [PATCH 34/48] efi: Add support for loading U-Boot through an EFI stub Simon Glass
2015-07-24  5:25   ` Bin Meng
2015-07-22 15:49 ` [U-Boot] [PATCH 35/48] x86: Support building the " Simon Glass
2015-07-24  5:59   ` Bin Meng
2015-07-22 15:49 ` [U-Boot] [PATCH 36/48] x86: Add an enum for some commonly-used GDT bits Simon Glass
2015-07-24  6:11   ` Bin Meng
2015-07-22 15:49 ` [U-Boot] [PATCH 37/48] x86: Add a way to call 32-bit code from 64-bit mode Simon Glass
2015-07-24  7:25   ` Bin Meng
2015-07-31 15:45     ` Simon Glass
2015-07-22 15:49 ` [U-Boot] [PATCH 38/48] efi: Add 64-bit payload support Simon Glass
2015-07-24  7:39   ` Bin Meng
2015-07-22 15:49 ` [U-Boot] [PATCH 39/48] x86: Add Makefile settings for EFI build Simon Glass
2015-07-24  7:42   ` Bin Meng
2015-07-22 15:49 ` [U-Boot] [PATCH 40/48] x86: Add support for passing tables into U-Boot Simon Glass
2015-07-24  8:14   ` Bin Meng
2015-07-22 15:49 ` [U-Boot] [PATCH 41/48] efi: Add functions for decoding the EFI tables Simon Glass
2015-07-24  8:19   ` Bin Meng
2015-07-31 15:45     ` Simon Glass
2015-07-22 15:49 ` [U-Boot] [PATCH 42/48] efi: Add a command to display the memory map Simon Glass
2015-07-24  8:54   ` Bin Meng
2015-07-22 15:49 ` [U-Boot] [PATCH 43/48] x86: Handle running as EFI payload Simon Glass
2015-07-24  8:58   ` Bin Meng
2015-07-31 15:45     ` Simon Glass
2015-07-22 15:49 ` [U-Boot] [PATCH 44/48] x86: Add helper code for running from EFI Simon Glass
2015-07-24  9:03   ` Bin Meng
2015-07-24  9:13     ` Bin Meng
2015-07-22 15:49 ` [U-Boot] [PATCH 45/48] x86: baytrail: Support operation as an EFI payload Simon Glass
2015-07-24  9:05   ` Bin Meng
2015-07-22 15:49 ` [U-Boot] [PATCH 46/48] x86: qemu: " Simon Glass
2015-07-24  9:06   ` Bin Meng
2015-07-22 15:49 ` [U-Boot] [PATCH 47/48] x86: Gracefully disable the vesa driver when running from EFI Simon Glass
2015-07-23 15:58   ` Anatolij Gustschin
2015-07-24  9:07   ` Bin Meng
2015-07-22 15:49 ` [U-Boot] [PATCH 48/48] efi: Add a README to explain how things work Simon Glass
2015-07-24  9:12   ` Bin Meng
2015-07-23 16:05 ` [U-Boot] [PATCH 00/48] Add support for running U-Boot as an EFI payload/application Bin Meng
2015-07-24  3:51   ` Simon Glass

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox