[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3 4/5] tools/libacpi: update FADT layout to support version 5
On Wed, Dec 07, 2016 at 09:04:14AM -0700, Jan Beulich wrote: > >>> On 05.12.16 at 16:04, <roger.pau@xxxxxxxxxx> wrote: > > --- a/tools/firmware/hvmloader/util.c > > +++ b/tools/firmware/hvmloader/util.c > > @@ -949,7 +949,7 @@ void hvmloader_acpi_build_tables(struct acpi_config > > *config, > > config->table_flags |= ACPI_HAS_SSDT_S4; > > > > config->table_flags |= (ACPI_HAS_TCPA | ACPI_HAS_IOAPIC | > > ACPI_HAS_WAET | > > - ACPI_HAS_VGA | ACPI_HAS_8042); > > + ACPI_HAS_VGA | ACPI_HAS_8042 | ACPI_FADT_4); > > It shouldn't be an explicit FADT version that gets requested, but > a specific ACPI version (and I don't think a boolean flag is suitable > for this). Hm, I'm not opposed to this, but maybe then there are other tables to be bumped if we really want to request a specific ACPI version? > > --- a/tools/libacpi/acpi2_0.h > > +++ b/tools/libacpi/acpi2_0.h > > @@ -169,7 +169,7 @@ struct acpi_10_fadt { > > /* > > * Fixed ACPI Description Table Structure (FADT). > > */ > > -struct acpi_20_fadt { > > +struct acpi_50_fadt { > > I think it would be better to drop the version number from this > name and ... > > > @@ -222,6 +222,8 @@ struct acpi_20_fadt { > > struct acpi_20_generic_address x_pm_tmr_blk; > > struct acpi_20_generic_address x_gpe0_blk; > > struct acpi_20_generic_address x_gpe1_blk; > > + struct acpi_20_generic_address sleep_control; > > + struct acpi_20_generic_address sleep_status; > > }; > > ... add version comments to the new fields. Ack. > > --- a/tools/libacpi/build.c > > +++ b/tools/libacpi/build.c > > @@ -503,12 +503,13 @@ int acpi_build_tables(struct acpi_ctxt *ctxt, struct > > acpi_config *config) > > struct acpi_20_rsdp *rsdp; > > struct acpi_20_rsdt *rsdt; > > struct acpi_20_xsdt *xsdt; > > - struct acpi_20_fadt *fadt; > > + struct acpi_50_fadt *fadt; > > struct acpi_10_fadt *fadt_10; > > struct acpi_20_facs *facs; > > unsigned char *dsdt; > > unsigned long secondary_tables[ACPI_MAX_SECONDARY_TABLES]; > > int nr_secondaries, i; > > + unsigned long fadt_size; > > unsigned int would suffice here, wouldn't it? Otherwise it should be > size_t. Yes, unsigned int should be fine. > > --- a/tools/libacpi/static_tables.c > > +++ b/tools/libacpi/static_tables.c > > @@ -38,11 +38,11 @@ struct acpi_20_facs Facs = { > > #define ACPI_PM_TMR_BLK_BIT_WIDTH 0x20 > > #define ACPI_PM_TMR_BLK_BIT_OFFSET 0x00 > > > > -struct acpi_20_fadt Fadt = { > > +struct acpi_50_fadt Fadt = { > > .header = { > > - .signature = ACPI_2_0_FADT_SIGNATURE, > > - .length = sizeof(struct acpi_20_fadt), > > - .revision = ACPI_2_0_FADT_REVISION, > > + .signature = ACPI_FADT_SIGNATURE, > > + .length = sizeof(struct acpi_50_fadt), > > + .revision = ACPI_5_0_FADT_REVISION, > > Let's please not pre-initialize either value, but set both fields uniformly > at runtime. Ack. Roger. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |