[PATCH] lib/acpi: Enable QEMU special cases for ARM

Simon Glass sjg at chromium.org
Mon Mar 14 19:24:38 CET 2022


Hi,

On Mon, 14 Mar 2022 at 01:04, Heinrich Schuchardt <xypron.glpk at gmx.de> wrote:
>
> On 2/27/22 15:10, Alexander Graf wrote:
> > With QEMU, we receive ACPI tables from the hypervisor rather than build
> > them ourselves in U-Boot. That logic however hard codes the target to the
> > x86 QEMU target, leaving ARM out on the fun.
> >
> > Let's add the ARM QEMU config as well to the ifdefs so that we can consume
> > QEMU provided firmware tables there as well.
> >
> > Signed-off-by: Alexander Graf <agraf at csgraf.de>
> > ---
> >   lib/acpi/Makefile      | 2 ++
> >   lib/acpi/acpi_writer.c | 2 +-
> >   2 files changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/lib/acpi/Makefile b/lib/acpi/Makefile
> > index 956b5a0d72..66ba0e94ac 100644
> > --- a/lib/acpi/Makefile
> > +++ b/lib/acpi/Makefile
> > @@ -9,6 +9,7 @@ obj-y += acpi_writer.o
> >
> >   # With QEMU the ACPI tables come from there, not from U-Boot
> >   ifndef CONFIG_QEMU
> > +ifndef CONFIG_ARCH_QEMU
> >   obj-y += base.o
> >   obj-y += csrt.o
> >   obj-y += mcfg.o
> > @@ -21,3 +22,4 @@ endif
> >   obj-y += facs.o
> >   obj-y += ssdt.o
> >   endif
> > +endif
> > diff --git a/lib/acpi/acpi_writer.c b/lib/acpi/acpi_writer.c
> > index 946f90e8e7..9c252aa58d 100644
> > --- a/lib/acpi/acpi_writer.c
> > +++ b/lib/acpi/acpi_writer.c
> > @@ -48,7 +48,7 @@ int acpi_write_one(struct acpi_ctx *ctx, const struct acpi_writer *entry)
> >       return 0;
> >   }
> >
> > -#ifndef CONFIG_QEMU
> > +#if !defined(CONFIG_QEMU) && !defined(CONFIG_ARCH_QEMU)
>
> Why would you treat RISC-V QEMU differently?
>
> Why should a symbol called CONFIG_QEMU relate to x86 and not to any
> QEMU? Why should a symbol called CONFIG_ARCH_QEMU relate to ARM?
>
> It is preferable to clean up the chaotic naming of QEMU related symbols
> and to ensure that CONFIG_QEMU means any QEMU:
>
> arch/arm/Kconfig:971:config ARCH_QEMU
> arch/arm/mach-qemu/Kconfig:16:config TARGET_QEMU_ARM_32BIT
> arch/arm/mach-qemu/Kconfig:23:config TARGET_QEMU_ARM_64BIT
> arch/powerpc/cpu/mpc85xx/Kconfig:108:config TARGET_QEMU_PPCE500
> arch/powerpc/cpu/mpc85xx/Kconfig:638:config ARCH_QEMU_E500
> arch/riscv/Kconfig:17:config TARGET_QEMU_VIRT
> arch/x86/cpu/qemu/Kconfig:5:config QEMU
> board/emulation/Kconfig:10:config TARGET_QEMU_X86
> board/emulation/Kconfig:19:config TARGET_QEMU_X86_64

Yes that would be good!

>
> board/emulation/common/qemu_dfu.c and drivers/timer/tsc_timer.c are
> other instances where one QEMU architecture is treated differently to
> others without reason.
>
> Best regards
>
> Heinrich
>
> >   static int acpi_write_all(struct acpi_ctx *ctx)
> >   {
> >       const struct acpi_writer *writer =
>

Regards,
SImon


More information about the U-Boot mailing list