
Hi Heinrich,
On Wed, 27 Oct 2021 at 23:58, Heinrich Schuchardt xypron.glpk@gmx.de wrote:
On 10/26/21 5:30 AM, Simon Glass wrote:
Most modern platforms use 64-bit EFI so it is useful to have a U-Boot app that runs under that. Add a (non-functional) build for this.
Note that --whole-archive causes the gcc 9.2 linker to crash, so disable this for now. Once this is resolved, things should work.
For now, avoid mentioning the documentation for the 64-bit app, since it does not work.
Signed-off-by: Simon Glass sjg@chromium.org
Changes in v3:
- Default to 256MB of RAM for U-Boot instead of 32MB
Changes in v2:
Add MAINTAINERS entry
Add a work-around to avoid a toolchain crash
MAINTAINERS | 3 ++ Makefile | 8 +++- arch/x86/cpu/u-boot-64.lds | 2 + arch/x86/cpu/x86_64/Makefile | 4 ++ arch/x86/cpu/x86_64/cpu.c | 17 -------- arch/x86/cpu/x86_64/misc.c | 25 ++++++++++++ board/efi/Kconfig | 15 ++++++- board/efi/efi-x86_app/Kconfig | 2 +- board/efi/efi-x86_app/MAINTAINERS | 11 +++++- ..._app_defconfig => efi-x86_app32_defconfig} | 2 +- configs/efi-x86_app64_defconfig | 39 +++++++++++++++++++ doc/develop/uefi/u-boot_on_efi.rst | 6 +-- 12 files changed, 106 insertions(+), 28 deletions(-) create mode 100644 arch/x86/cpu/x86_64/misc.c rename configs/{efi-x86_app_defconfig => efi-x86_app32_defconfig} (97%) create mode 100644 configs/efi-x86_app64_defconfig
If CONFIG_EFI_LOADER generally does not work with the app shouldn't we put this into a Kconfig condition (in a separate patch)?
Yes I can send a patch for that. It would be yet another EFI case (pass-through) I think, if we do implement it.
Reviewed-by: Heinrich Schuchardt xypron.glpk@gmx.de
diff --git a/doc/develop/uefi/u-boot_on_efi.rst b/doc/develop/uefi/u-boot_on_efi.rst index 4b2a733076d..d049f429fdc 100644 --- a/doc/develop/uefi/u-boot_on_efi.rst +++ b/doc/develop/uefi/u-boot_on_efi.rst @@ -48,10 +48,10 @@ for that board. It will be either 32-bit or 64-bit. Alternatively, you can opt for using QEMU [1] and the OVMF [2], as detailed below.
To build U-Boot as an EFI application (32-bit EFI required), enable CONFIG_EFI -and CONFIG_EFI_APP. The efi-x86_app config (efi-x86_app_defconfig) is set up +and CONFIG_EFI_APP. The efi-x86_app config (efi-x86_app32_defconfig) is set up for this. Just build U-Boot as normal, e.g.::
- make efi-x86_app_defconfig
make efi-x86_app32_defconfig make
To build U-Boot as an EFI payload (32-bit or 64-bit EFI can be used), enable
@@ -259,7 +259,7 @@ This work could be extended in a number of ways:
- Add ARM support
-- Add 64-bit application support +- Add 64-bit application support (in progress)
- Figure out how to solve the interrupt problem
[..]
Regards, Simon