[PATCH v5 11/20] efi: x86: Correct the condition for installing ACPI tables
Simon Glass
sjg at chromium.org
Wed Nov 15 14:41:00 CET 2023
Hi Heinrich,
On Wed, 15 Nov 2023 at 04:09, Heinrich Schuchardt <xypron.glpk at gmx.de> wrote:
>
> On 9/20/23 05:00, Simon Glass wrote:
> > It is not always the case that U-Boot builds the ACPI tables itself. For
> > example, when booting from coreboot, the ACPI tables are built by
> > coreboot.
> >
> > Correct the Makefile condition so that U-Boot can pass on tables built
> > by a previous firmware stage.
> >
> > Tidy up the installation-condition code while we are here.
> >
> > Signed-off-by: Simon Glass <sjg at chromium.org>
> > Reviewed-by: Ilias Apalodimas <ilias.apalodimas at linaro.org>
> > Reviewed-by: Bin Meng <bmeng.cn at gmail.com>
> > ---
> >
> > (no changes since v2)
> >
> > Changes in v2:
> > - Add new patch
> >
> > lib/efi_loader/Makefile | 2 +-
> > lib/efi_loader/efi_setup.c | 10 +++++-----
> > 2 files changed, 6 insertions(+), 6 deletions(-)
> >
> > diff --git a/lib/efi_loader/Makefile b/lib/efi_loader/Makefile
> > index 1a8c8d7cab5c..0eb748ff1a59 100644
> > --- a/lib/efi_loader/Makefile
> > +++ b/lib/efi_loader/Makefile
> > @@ -78,7 +78,7 @@ obj-$(CONFIG_EFI_ESRT) += efi_esrt.o
> > obj-$(CONFIG_VIDEO) += efi_gop.o
> > obj-$(CONFIG_BLK) += efi_disk.o
> > obj-$(CONFIG_NETDEVICES) += efi_net.o
> > -obj-$(CONFIG_GENERATE_ACPI_TABLE) += efi_acpi.o
> > +obj-$(CONFIG_ACPI) += efi_acpi.o
>
> This change merged as
> 53e8e6f98679 ("efi: x86: Correct the condition for installing ACPI tables")
> looks wrong:
>
> For QEMU with CONFIG_ACPI=y and CONFIG_GENERATE_ACPI=n I get
>
> EFI using ACPI tables at 0
> Error: Cannot initialize UEFI sub-system, r = 14
>
> Device-trees are only suppressed in the bootefi command if
> CONFIG_GENERATE_ACPI=y.
>
> Currently CONFIG_ACPI=y only indicates that ACPI libraries are built. It
> does not indicate that ACPI tables exist on the platform.
Similarly, neither does GENERATE_ACPI
Perhaps we should also check for tables being present?
if (IS_ENABLED(CONFIG_ACPI) && gd_acpi_start()) {
?
>
> Best regards
>
> Heinrich
>
>
> > obj-$(CONFIG_GENERATE_SMBIOS_TABLE) += efi_smbios.o
> > obj-$(CONFIG_EFI_RNG_PROTOCOL) += efi_rng.o
> > obj-$(CONFIG_EFI_TCG2_PROTOCOL) += efi_tcg2.o
> > diff --git a/lib/efi_loader/efi_setup.c b/lib/efi_loader/efi_setup.c
> > index 58d4e1340233..ad719afd6328 100644
> > --- a/lib/efi_loader/efi_setup.c
> > +++ b/lib/efi_loader/efi_setup.c
> > @@ -321,11 +321,11 @@ efi_status_t efi_init_obj_list(void)
> > if (ret != EFI_SUCCESS)
> > goto out;
> > #endif
> > -#ifdef CONFIG_GENERATE_ACPI_TABLE
> > - ret = efi_acpi_register();
> > - if (ret != EFI_SUCCESS)
> > - goto out;
> > -#endif
> > + if (IS_ENABLED(CONFIG_ACPI)) {
> > + ret = efi_acpi_register();
> > + if (ret != EFI_SUCCESS)
> > + goto out;
> > + }
> > #ifdef CONFIG_GENERATE_SMBIOS_TABLE
> > ret = efi_smbios_register();
> > if (ret != EFI_SUCCESS)
>
Regards,
Simon
More information about the U-Boot
mailing list