Unfortunately the EFI x86 application and payload support have been broken for quite a while. This series addresses various bug fixes, plus several enhancements like toolchain compatibility (eg: kernel.org i386-linux-gcc), introduction of generic EFI payload which can run on any x86 board, and a EFI framebuffer driver for the payload.
This series is available at u-boot-x86/efi-working for testing. Bin Meng (16): x86: doc: Fix reference to EFI doc in U-Boot x86: Conditionally build the pinctrl_ich6 driver x86: efi: app: Fix broken EFI application x86: efi: payload: Enforce toolchain to generate 64-bit EFI payload stub codes efi: Fix efi_uintn_t for 64-bit EFI payload x86: efi: Refactor the directory of EFI app and payload support x86: efi: payload: Add arch_cpu_init() x86: efi: payload: Minor clean up on error message output x86: Add generic EFI payload support x86: Drop QEMU-specific EFI payload support x86: baytrail: Drop EFI-specific test logics efi: stub: Pass EFI GOP information to U-Boot payload dm: video: Add an EFI framebuffer driver x86: efi: payload: Add EFI framebuffer driver support x86: Rename efi-x86 target to efi-x86_app x86: efi: app: Display correct CPU info during boot Christian Gmeiner (2): dm: pci: Make ranges dt property optional dm: pci: Use a 1:1 mapping for bus <-> phy addresses arch/x86/Kconfig | 9 +- arch/x86/cpu/Makefile | 5 +- arch/x86/cpu/baytrail/Kconfig | 7 +- arch/x86/cpu/baytrail/valleyview.c | 3 - arch/x86/{lib => cpu}/efi/Kconfig | 0 arch/x86/cpu/efi/Makefile | 9 +- arch/x86/cpu/efi/{efi.c => app.c} | 2 +- arch/x86/{lib => cpu}/efi/car.S | 0 arch/x86/{lib/efi/efi.c => cpu/efi/payload.c} | 11 +- arch/x86/cpu/intel_common/Makefile | 2 +- arch/x86/cpu/ivybridge/Kconfig | 1 + arch/x86/cpu/qemu/Makefile | 2 - arch/x86/cpu/qemu/qemu.c | 4 - arch/x86/dts/Makefile | 3 +- arch/x86/dts/{efi.dts => efi-x86_app.dts} | 4 +- arch/x86/dts/efi-x86_payload.dts | 40 ++++++ arch/x86/lib/Makefile | 7 +- arch/x86/lib/efi/Makefile | 7 - board/advantech/som-db5800-som-6867/Kconfig | 5 +- board/congatec/conga-qeval20-qa3-e3845/Kconfig | 5 +- board/dfi/dfi-bt700/Kconfig | 5 +- board/efi/Kconfig | 15 ++- board/efi/{efi-x86 => efi-x86_app}/Kconfig | 6 +- board/efi/{efi-x86 => efi-x86_app}/MAINTAINERS | 0 board/efi/{efi-x86 => efi-x86_app}/Makefile | 2 +- board/efi/{efi-x86/efi.c => efi-x86_app/app.c} | 0 board/efi/efi-x86_payload/Kconfig | 39 ++++++ board/efi/efi-x86_payload/MAINTAINERS | 7 + board/efi/efi-x86_payload/Makefile | 5 + board/efi/efi-x86_payload/start.S | 8 ++ board/emulation/qemu-x86/Kconfig | 6 +- board/intel/minnowmax/Kconfig | 5 +- .../{efi-x86_defconfig => efi-x86_app_defconfig} | 12 +- ...oad32_defconfig => efi-x86_payload32_defconfig} | 24 +--- ...oad64_defconfig => efi-x86_payload64_defconfig} | 24 +--- doc/README.x86 | 2 +- drivers/pci/pci-uclass.c | 33 +++-- drivers/video/Kconfig | 9 ++ drivers/video/Makefile | 1 + drivers/video/efi.c | 146 +++++++++++++++++++++ include/configs/{efi-x86.h => efi-x86_app.h} | 0 include/configs/efi-x86_payload.h | 32 +++++ include/efi.h | 35 +++++ include/efi_api.h | 4 + lib/efi/Makefile | 6 +- lib/efi/efi_stub.c | 23 +++- 46 files changed, 454 insertions(+), 121 deletions(-) rename arch/x86/{lib => cpu}/efi/Kconfig (100%) rename arch/x86/cpu/efi/{efi.c => app.c} (92%) rename arch/x86/{lib => cpu}/efi/car.S (100%) rename arch/x86/{lib/efi/efi.c => cpu/efi/payload.c} (97%) rename arch/x86/dts/{efi.dts => efi-x86_app.dts} (82%) create mode 100644 arch/x86/dts/efi-x86_payload.dts delete mode 100644 arch/x86/lib/efi/Makefile rename board/efi/{efi-x86 => efi-x86_app}/Kconfig (64%) rename board/efi/{efi-x86 => efi-x86_app}/MAINTAINERS (100%) rename board/efi/{efi-x86 => efi-x86_app}/Makefile (82%) rename board/efi/{efi-x86/efi.c => efi-x86_app/app.c} (100%) create mode 100644 board/efi/efi-x86_payload/Kconfig create mode 100644 board/efi/efi-x86_payload/MAINTAINERS create mode 100644 board/efi/efi-x86_payload/Makefile create mode 100644 board/efi/efi-x86_payload/start.S rename configs/{efi-x86_defconfig => efi-x86_app_defconfig} (83%) rename configs/{qemu-x86_efi_payload32_defconfig => efi-x86_payload32_defconfig} (61%) rename configs/{qemu-x86_efi_payload64_defconfig => efi-x86_payload64_defconfig} (62%) create mode 100644 drivers/video/efi.c rename include/configs/{efi-x86.h => efi-x86_app.h} (100%) create mode 100644 include/configs/efi-x86_payload.h -- 2.7.4 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot