Hi Heinrich, On Wed, 8 Sept 2021 at 11:40, Heinrich Schuchardt <xypron.g...@gmx.de> wrote: > > > > On 9/8/21 3:33 PM, Simon Glass wrote: > > Most EFI implementations use 64-bit. In order to spupose a 64-bit app, > > %s/spupose/support > > > update the Kconfig to add an option for 32/64 bit. Update the prompt for > > This commit message is unclear. We already can compile U-Boot as an > 64bit EFI application. "In order to support" would imply that we don't.
Which board are you talking about? There is only the 64-bit payload at present, certainly no 64-bit app? > > > > the existing option so it is clear it relates to the stub. Move both > > up to just under the choice that controls them, since this looks better > > and the menu. > > > > Use CONFIG_EFI_APP in the Makefile instead of CONFIG_TARGET_EFI_APP, > > since the latter is specific to a single target and we will have two. > > > > Signed-off-by: Simon Glass <s...@chromium.org> > > --- > > > > arch/x86/cpu/intel_common/Makefile | 2 +- > > lib/efi/Kconfig | 34 +++++++++++++++++++++++------- > > 2 files changed, 27 insertions(+), 9 deletions(-) > > > > diff --git a/arch/x86/cpu/intel_common/Makefile > > b/arch/x86/cpu/intel_common/Makefile > > index 8b9a810f66d..1dc17b45879 100644 > > --- a/arch/x86/cpu/intel_common/Makefile > > +++ b/arch/x86/cpu/intel_common/Makefile > > @@ -27,7 +27,7 @@ obj-y += fast_spi.o > > obj-y += lpc.o > > obj-y += lpss.o > > obj-$(CONFIG_$(SPL_)INTEL_GENERIC_WIFI) += generic_wifi.o > > -ifndef CONFIG_TARGET_EFI_APP > > +ifndef CONFIG_EFI_APP > > obj-$(CONFIG_$(SPL_TPL_)X86_32BIT_INIT) += microcode.o > > ifndef CONFIG_$(SPL_)X86_64 > > obj-y += microcode.o > > diff --git a/lib/efi/Kconfig b/lib/efi/Kconfig > > index 93b85644920..e818cef0d15 100644 > > --- a/lib/efi/Kconfig > > +++ b/lib/efi/Kconfig > > @@ -26,18 +26,26 @@ config EFI_STUB > > > > endchoice > > > > -config EFI_RAM_SIZE > > - hex "Amount of EFI RAM for U-Boot" > > +choice > > + prompt "EFI app 32/64-bit selection" > > depends on EFI_APP > > - default 0x2000000 > > help > > - Set the amount of EFI RAM which is claimed by U-Boot for its own > > - use. U-Boot allocates this from EFI on start-up (along with a few > > - other smaller amounts) and it can never be increased after that. > > - It is used as the RAM size in with U-Boot. > > + EFI does not support mixing 32-bit and 64-bit modes. This is a > > + significant problem because it means that you must build a stub with > > + the correct type for EFI to load it correctly. If you are using > > + 32-bit EFI, select 32-bit here, else select 64-bit. Failure to do > > + this may produce no error message - it just won't start! > > + > > +config EFI_APP_32BIT > > + bool "Produce an app for running with 32-bit EFI" > > + > > +config EFI_APP_64BIT > > + bool "Produce an app for running with 64-bit EFI" > > + > > +endchoice > > > > choice > > - prompt "EFI 32/64-bit selection" > > + prompt "EFI stub 32/64-bit selection" > > depends on EFI_STUB > > help > > EFI does not support mixing 32-bit and 64-bit modes. This is a > > @@ -53,3 +61,13 @@ config EFI_STUB_64BIT > > bool "Produce a stub for running with 64-bit EFI" > > > > endchoice > > + > > +config EFI_RAM_SIZE > > + hex "Amount of EFI RAM for U-Boot" > > + depends on EFI_APP > > + default 0x2000000 > > 32 MiB is quite small for loading a kernel and an initrd. It does run nicely in qemu though without needing a special -m value. What do you suggest? Regards, Simon