[PATCH v3 05/35] efi: Create a 64-bit app

Simon Glass sjg at chromium.org
Thu Oct 28 16:19:29 CEST 2021


Hi Heinrich,

On Wed, 27 Oct 2021 at 23:58, Heinrich Schuchardt <xypron.glpk at 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 at 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 at 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


More information about the U-Boot mailing list