Hi Wolfgang, On Tue, 10 Mar 2020 at 03:26, Wolfgang Wallner < wolfgang.wall...@br-automation.com> wrote: > > Hi Simon, > > -----"Simon Glass" <s...@chromium.org> schrieb: ----- > > > > Each ACPI table has its own version number. Add the version numbers in a > > single function so we can keep them consistent and easily see what > > versions are supported. > > > > Start a new acpi_table file in a generic directory to house this function. > > We can move things over to this file from x86 as needed. > > > > Signed-off-by: Simon Glass <s...@chromium.org> > > --- > > > > Changes in v2: > > - Move the sandbox acpi_table.h header file to an earlier patch > > - Use #defines for MADT and MCFG version numbers > > > > include/acpi_table.h | 61 +++++++++++++++++++++++++++++++++++++++++++ > > lib/Makefile | 1 + > > lib/acpi/Makefile | 4 +++ > > lib/acpi/acpi_table.c | 60 ++++++++++++++++++++++++++++++++++++++++++ > > test/dm/acpi.c | 14 ++++++++++ > > 5 files changed, 140 insertions(+) > > create mode 100644 lib/acpi/Makefile > > create mode 100644 lib/acpi/acpi_table.c > > > > diff --git a/include/acpi_table.h b/include/acpi_table.h > > index dd74895813..ccf6fa04db 100644 > > --- a/include/acpi_table.h > > +++ b/include/acpi_table.h > > @@ -202,6 +202,26 @@ struct __packed acpi_fadt { > > struct acpi_gen_regaddr x_gpe1_blk; > > }; > > > > +/* FADT TABLE Revision values */ > > +#define ACPI_FADT_REV_ACPI_1_0 1 > > +#define ACPI_FADT_REV_ACPI_2_0 3 > > +#define ACPI_FADT_REV_ACPI_3_0 4 > > +#define ACPI_FADT_REV_ACPI_4_0 4 > > +#define ACPI_FADT_REV_ACPI_5_0 5 > > +#define ACPI_FADT_REV_ACPI_6_0 6 > > + > > +/* MADT TABLE Revision values */ > > +#define ACPI_MADT_REV_ACPI_3_0 2 > > +#define ACPI_MADT_REV_ACPI_4_0 3 > > +#define ACPI_MADT_REV_ACPI_5_0 3 > > +#define ACPI_MADT_REV_ACPI_6_0 5 > > + > > +#define ACPI_MCFG_REV_ACPI_3_0 1 > > + > > +/* IVRS Revision Field */ > > +#define IVRS_FORMAT_FIXED 0x01 /* Type 10h & 11h only */ > > +#define IVRS_FORMAT_MIXED 0x02 /* Type 10h, 11h, & 40h */ > > + > > /* FACS flags */ > > #define ACPI_FACS_S4BIOS_F BIT(0) > > #define ACPI_FACS_64BIT_WAKE_F BIT(1) > > @@ -391,6 +411,47 @@ struct __packed acpi_spcr { > > u32 reserved2; > > }; > > > > +/* Tables defined by ACPI and generated by U-Boot */ > > +enum acpi_tables { > > + ACPITAB_BERT, > > + ACPITAB_DBG2, > > + ACPITAB_DMAR, > > + ACPITAB_DSDT, > > + ACPITAB_FACS, > > + ACPITAB_FADT, > > + ACPITAB_HEST, > > + ACPITAB_HPET, > > + ACPITAB_IVRS, > > + ACPITAB_MADT, > > + ACPITAB_MCFG, > > + ACPITAB_RSDP, > > + ACPITAB_RSDT, > > + ACPITAB_SLIT, > > + ACPITAB_SRAT, > > + ACPITAB_SSDT, > > + ACPITAB_TCPA, > > + ACPITAB_TPM2, > > + ACPITAB_XSDT, > > + ACPITAB_ECDT, > > + > > + /* Additional proprietary tables */ > > + ACPITAB_VFCT, > > + ACPITAB_NHLT, > > + ACPITAB_SPMI, > > + > > + ACPITAB_COUNT, > > +}; > > + > > +/** > > + * acpi_get_table_revision() - Get the revision number generated for a table > > + * > > + * This keeps the version-number information in one place > > + * > > + * @table: ACPI table to check > > + * @return version number that U-Boot generates > > + */ > > +int acpi_get_table_revision(enum acpi_tables table); > > + > > #endif /* !__ACPI__*/ > > > > #include <asm/acpi_table.h> > > diff --git a/lib/Makefile b/lib/Makefile > > index 15259d0473..9df834c2fd 100644 > > --- a/lib/Makefile > > +++ b/lib/Makefile > > @@ -5,6 +5,7 @@ > > > > ifndef CONFIG_SPL_BUILD > > > > +obj-$(CONFIG_$(SPL_TPL_)ACPIGEN) += acpi/ > > Is $(SPL_TPL_) needed here? > I don't see a CONFIG_SPL_ACPIGEN, and this section of the file is also covered > by "ifndef CONFIG_SPL_BUILD". > > In any case, would it make sense to generate ACPI-related code for SPL and TPL? > As U-Boot does not use ACPI, but only provides it to the kernel, I would > assume we only need to handle ACPI tables in the last U-Boot stage before > booting a kernel.
That's right. The point of this is to only include it in U-Boot proper. Actually I should use $SPL here so will fix that. Regards, Simon