* [RFC PATCH v2 0/4] ACPI MADT and FADT update according to the ACPI 6.0 spec @ 2022-10-10 13:22 Miguel Luis 2022-10-10 13:22 ` [RFC PATCH v2 1/4] tests/acpi: virt: allow acpi MADT and FADT changes Miguel Luis ` (3 more replies) 0 siblings, 4 replies; 8+ messages in thread From: Miguel Luis @ 2022-10-10 13:22 UTC (permalink / raw) To: qemu-devel, qemu-arm Cc: mst, imammedo, ani, shannon.zhaosl, peter.maydell, miguel.luis The MADT table structure has been updated in commit 37f33084ed2e ("acpi: arm/virt: madt: use build_append_int_noprefix() API to compose MADT table") to include the 5.2.12.18 GIC ITS Structure and so table's revision also needs to be updated. MADT and the FADT tables from the same spec need to be in sync and in this case also the FADT needs to be updated. Revision 6.0 of the ACPI FADT table introduces the field "Hypervisor Vendor Identity" which is missing and must be included. Patch 2/4 includes a suggestion for the value of this field. Ref: https://uefi.org/sites/default/files/resources/ACPI_6_0_Errata_A.PDF Changelog: v2: patch 2/4: fix expression that checks for the revision number (Ani Sinha) use "QEMU" as the Hypervisor Vendor ID [1] (Ani Sinha) patch 3/4: add Reviewed-by tag from Ani Sinha <ani@anisinha.ca> v1: https://lists.nongnu.org/archive/html/qemu-devel/2022-10/msg00910.html Open to discussion, your comments, thoughts and suggestions are very welcome. Thanks in advance. Miguel [1]: https://lists.nongnu.org/archive/html/qemu-devel/2022-10/msg00989.html Miguel Luis (4): tests/acpi: virt: allow acpi MADT and FADT changes acpi: fadt: support revision 6.0 of the ACPI specification acpi: arm/virt: madt: bump to revision 4 accordingly to ACPI 6.0 Errata A tests/acpi: virt: update ACPI MADT and FADT binaries hw/acpi/aml-build.c | 13 ++++++++++--- hw/arm/virt-acpi-build.c | 26 ++++++++++++-------------- tests/data/acpi/virt/APIC | Bin 168 -> 172 bytes tests/data/acpi/virt/APIC.memhp | Bin 168 -> 172 bytes tests/data/acpi/virt/APIC.numamem | Bin 168 -> 172 bytes tests/data/acpi/virt/FACP | Bin 268 -> 276 bytes tests/data/acpi/virt/FACP.memhp | Bin 268 -> 276 bytes tests/data/acpi/virt/FACP.numamem | Bin 268 -> 276 bytes 8 files changed, 22 insertions(+), 17 deletions(-) -- 2.37.3 ^ permalink raw reply [flat|nested] 8+ messages in thread
* [RFC PATCH v2 1/4] tests/acpi: virt: allow acpi MADT and FADT changes 2022-10-10 13:22 [RFC PATCH v2 0/4] ACPI MADT and FADT update according to the ACPI 6.0 spec Miguel Luis @ 2022-10-10 13:22 ` Miguel Luis 2022-10-10 13:22 ` [RFC PATCH v2 2/4] acpi: fadt: support revision 6.0 of the ACPI specification Miguel Luis ` (2 subsequent siblings) 3 siblings, 0 replies; 8+ messages in thread From: Miguel Luis @ 2022-10-10 13:22 UTC (permalink / raw) To: qemu-devel, qemu-arm Cc: mst, imammedo, ani, shannon.zhaosl, peter.maydell, miguel.luis Step 3 from bios-tables-test.c documented procedure. Signed-off-by: Miguel Luis <miguel.luis@oracle.com> --- tests/qtest/bios-tables-test-allowed-diff.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h index dfb8523c8b..8dc50f7a8a 100644 --- a/tests/qtest/bios-tables-test-allowed-diff.h +++ b/tests/qtest/bios-tables-test-allowed-diff.h @@ -1 +1,7 @@ /* List of comma-separated changed AML files to ignore */ +"tests/data/acpi/virt/FACP", +"tests/data/acpi/virt/FACP.numamem", +"tests/data/acpi/virt/FACP.memhp", +"tests/data/acpi/virt/APIC", +"tests/data/acpi/virt/APIC.memhp", +"tests/data/acpi/virt/APIC.numamem", -- 2.37.3 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [RFC PATCH v2 2/4] acpi: fadt: support revision 6.0 of the ACPI specification 2022-10-10 13:22 [RFC PATCH v2 0/4] ACPI MADT and FADT update according to the ACPI 6.0 spec Miguel Luis 2022-10-10 13:22 ` [RFC PATCH v2 1/4] tests/acpi: virt: allow acpi MADT and FADT changes Miguel Luis @ 2022-10-10 13:22 ` Miguel Luis 2022-10-11 5:02 ` Ani Sinha 2022-10-10 13:22 ` [RFC PATCH v2 3/4] acpi: arm/virt: madt: bump to revision 4 accordingly to ACPI 6.0 Errata A Miguel Luis 2022-10-10 13:23 ` [RFC PATCH v2 4/4] tests/acpi: virt: update ACPI MADT and FADT binaries Miguel Luis 3 siblings, 1 reply; 8+ messages in thread From: Miguel Luis @ 2022-10-10 13:22 UTC (permalink / raw) To: qemu-devel, qemu-arm Cc: mst, imammedo, ani, shannon.zhaosl, peter.maydell, miguel.luis Update the Fixed ACPI Description Table (FADT) to revision 6.0 of the ACPI specification adding the field "Hypervisor Vendor Identity" that was missing. This field's description states the following: "64-bit identifier of hypervisor vendor. All bytes in this field are considered part of the vendor identity. These identifiers are defined independently by the vendors themselves, usually following the name of the hypervisor product. Version information should NOT be included in this field - this shall simply denote the vendor's name or identifier. Version information can be communicated through a supplemental vendor-specific hypervisor API. Firmware implementers would place zero bytes into this field, denoting that no hypervisor is present in the actual firmware." Hereupon, what should a valid identifier of an Hypervisor Vendor ID be and where should QEMU provide that information? On the v1 [1] of this RFC there's the suggestion of having this information in sync by the current acceleration name. This also seems to imply that QEMU, which generates the FADT table, and the FADT consumer need to be in sync with the values of this field. This version follows Ani Sinha's suggestion [2] of using "QEMU" for the hypervisor vendor ID. [1]: https://lists.nongnu.org/archive/html/qemu-devel/2022-10/msg00911.html [2]: https://lists.nongnu.org/archive/html/qemu-devel/2022-10/msg00989.html Signed-off-by: Miguel Luis <miguel.luis@oracle.com> --- hw/acpi/aml-build.c | 13 ++++++++++--- hw/arm/virt-acpi-build.c | 10 +++++----- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/hw/acpi/aml-build.c b/hw/acpi/aml-build.c index e6bfac95c7..42feb4d4d7 100644 --- a/hw/acpi/aml-build.c +++ b/hw/acpi/aml-build.c @@ -2070,7 +2070,7 @@ void build_pptt(GArray *table_data, BIOSLinker *linker, MachineState *ms, acpi_table_end(linker, &table); } -/* build rev1/rev3/rev5.1 FADT */ +/* build rev1/rev3/rev5.1/rev6.0 FADT */ void build_fadt(GArray *tbl, BIOSLinker *linker, const AcpiFadtData *f, const char *oem_id, const char *oem_table_id) { @@ -2193,8 +2193,15 @@ void build_fadt(GArray *tbl, BIOSLinker *linker, const AcpiFadtData *f, /* SLEEP_STATUS_REG */ build_append_gas_from_struct(tbl, &f->sleep_sts); - /* TODO: extra fields need to be added to support revisions above rev5 */ - assert(f->rev == 5); + if (f->rev == 5) { + goto done; + } + + /* Hypervisor Vendor Identity */ + build_append_padded_str(tbl, "QEMU", 8, '\0'); + + /* TODO: extra fields need to be added to support revisions above rev6 */ + assert(f->rev == 6); done: acpi_table_end(linker, &table); diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c index 9b3aee01bf..72bb6f61a5 100644 --- a/hw/arm/virt-acpi-build.c +++ b/hw/arm/virt-acpi-build.c @@ -809,13 +809,13 @@ build_madt(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) } /* FADT */ -static void build_fadt_rev5(GArray *table_data, BIOSLinker *linker, +static void build_fadt_rev6(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms, unsigned dsdt_tbl_offset) { - /* ACPI v5.1 */ + /* ACPI v6.0 */ AcpiFadtData fadt = { - .rev = 5, - .minor_ver = 1, + .rev = 6, + .minor_ver = 0, .flags = 1 << ACPI_FADT_F_HW_REDUCED_ACPI, .xdsdt_tbl_offset = &dsdt_tbl_offset, }; @@ -945,7 +945,7 @@ void virt_acpi_build(VirtMachineState *vms, AcpiBuildTables *tables) /* FADT MADT PPTT GTDT MCFG SPCR DBG2 pointed to by RSDT */ acpi_add_table(table_offsets, tables_blob); - build_fadt_rev5(tables_blob, tables->linker, vms, dsdt); + build_fadt_rev6(tables_blob, tables->linker, vms, dsdt); acpi_add_table(table_offsets, tables_blob); build_madt(tables_blob, tables->linker, vms); -- 2.37.3 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [RFC PATCH v2 2/4] acpi: fadt: support revision 6.0 of the ACPI specification 2022-10-10 13:22 ` [RFC PATCH v2 2/4] acpi: fadt: support revision 6.0 of the ACPI specification Miguel Luis @ 2022-10-11 5:02 ` Ani Sinha 2022-10-11 11:03 ` Miguel Luis 0 siblings, 1 reply; 8+ messages in thread From: Ani Sinha @ 2022-10-11 5:02 UTC (permalink / raw) To: miguel.luis Cc: qemu-devel, qemu-arm, mst, imammedo, shannon.zhaosl, peter.maydell On Mon, Oct 10, 2022 at 6:53 PM Miguel Luis <miguel.luis@oracle.com> wrote: > > Update the Fixed ACPI Description Table (FADT) to revision 6.0 of the ACPI > specification adding the field "Hypervisor Vendor Identity" that was missing. > > This field's description states the following: "64-bit identifier of hypervisor > vendor. All bytes in this field are considered part of the vendor identity. > These identifiers are defined independently by the vendors themselves, > usually following the name of the hypervisor product. Version information > should NOT be included in this field - this shall simply denote the vendor's > name or identifier. Version information can be communicated through a > supplemental vendor-specific hypervisor API. Firmware implementers would > place zero bytes into this field, denoting that no hypervisor is present in > the actual firmware." > > Hereupon, what should a valid identifier of an Hypervisor Vendor ID be and > where should QEMU provide that information? > > On the v1 [1] of this RFC there's the suggestion of having this information > in sync by the current acceleration name. This also seems to imply that QEMU, > which generates the FADT table, and the FADT consumer need to be in sync with > the values of this field. > > This version follows Ani Sinha's suggestion [2] of using "QEMU" for the > hypervisor vendor ID. > > [1]: https://lists.nongnu.org/archive/html/qemu-devel/2022-10/msg00911.html > [2]: https://lists.nongnu.org/archive/html/qemu-devel/2022-10/msg00989.html > > Signed-off-by: Miguel Luis <miguel.luis@oracle.com> Reviewed-by: Ani Sinha <ani@anisinha.ca> > --- > hw/acpi/aml-build.c | 13 ++++++++++--- > hw/arm/virt-acpi-build.c | 10 +++++----- > 2 files changed, 15 insertions(+), 8 deletions(-) > > diff --git a/hw/acpi/aml-build.c b/hw/acpi/aml-build.c > index e6bfac95c7..42feb4d4d7 100644 > --- a/hw/acpi/aml-build.c > +++ b/hw/acpi/aml-build.c > @@ -2070,7 +2070,7 @@ void build_pptt(GArray *table_data, BIOSLinker *linker, MachineState *ms, > acpi_table_end(linker, &table); > } > > -/* build rev1/rev3/rev5.1 FADT */ > +/* build rev1/rev3/rev5.1/rev6.0 FADT */ > void build_fadt(GArray *tbl, BIOSLinker *linker, const AcpiFadtData *f, > const char *oem_id, const char *oem_table_id) > { > @@ -2193,8 +2193,15 @@ void build_fadt(GArray *tbl, BIOSLinker *linker, const AcpiFadtData *f, > /* SLEEP_STATUS_REG */ > build_append_gas_from_struct(tbl, &f->sleep_sts); > > - /* TODO: extra fields need to be added to support revisions above rev5 */ > - assert(f->rev == 5); > + if (f->rev == 5) { > + goto done; > + } > + > + /* Hypervisor Vendor Identity */ > + build_append_padded_str(tbl, "QEMU", 8, '\0'); > + > + /* TODO: extra fields need to be added to support revisions above rev6 */ > + assert(f->rev == 6); > > done: > acpi_table_end(linker, &table); > diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c > index 9b3aee01bf..72bb6f61a5 100644 > --- a/hw/arm/virt-acpi-build.c > +++ b/hw/arm/virt-acpi-build.c > @@ -809,13 +809,13 @@ build_madt(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) > } > > /* FADT */ > -static void build_fadt_rev5(GArray *table_data, BIOSLinker *linker, > +static void build_fadt_rev6(GArray *table_data, BIOSLinker *linker, > VirtMachineState *vms, unsigned dsdt_tbl_offset) > { > - /* ACPI v5.1 */ > + /* ACPI v6.0 */ > AcpiFadtData fadt = { > - .rev = 5, > - .minor_ver = 1, > + .rev = 6, > + .minor_ver = 0, > .flags = 1 << ACPI_FADT_F_HW_REDUCED_ACPI, > .xdsdt_tbl_offset = &dsdt_tbl_offset, > }; > @@ -945,7 +945,7 @@ void virt_acpi_build(VirtMachineState *vms, AcpiBuildTables *tables) > > /* FADT MADT PPTT GTDT MCFG SPCR DBG2 pointed to by RSDT */ > acpi_add_table(table_offsets, tables_blob); > - build_fadt_rev5(tables_blob, tables->linker, vms, dsdt); > + build_fadt_rev6(tables_blob, tables->linker, vms, dsdt); > > acpi_add_table(table_offsets, tables_blob); > build_madt(tables_blob, tables->linker, vms); > -- > 2.37.3 > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [RFC PATCH v2 2/4] acpi: fadt: support revision 6.0 of the ACPI specification 2022-10-11 5:02 ` Ani Sinha @ 2022-10-11 11:03 ` Miguel Luis 2022-10-11 11:27 ` Ani Sinha 0 siblings, 1 reply; 8+ messages in thread From: Miguel Luis @ 2022-10-11 11:03 UTC (permalink / raw) To: Ani Sinha Cc: qemu-devel@nongnu.org, qemu-arm@nongnu.org, mst@redhat.com, imammedo@redhat.com, shannon.zhaosl@gmail.com, peter.maydell@linaro.org > On 11 Oct 2022, at 05:02, Ani Sinha <ani@anisinha.ca> wrote: > > On Mon, Oct 10, 2022 at 6:53 PM Miguel Luis <miguel.luis@oracle.com> wrote: >> >> Update the Fixed ACPI Description Table (FADT) to revision 6.0 of the ACPI >> specification adding the field "Hypervisor Vendor Identity" that was missing. >> >> This field's description states the following: "64-bit identifier of hypervisor >> vendor. All bytes in this field are considered part of the vendor identity. >> These identifiers are defined independently by the vendors themselves, >> usually following the name of the hypervisor product. Version information >> should NOT be included in this field - this shall simply denote the vendor's >> name or identifier. Version information can be communicated through a >> supplemental vendor-specific hypervisor API. Firmware implementers would >> place zero bytes into this field, denoting that no hypervisor is present in >> the actual firmware." >> >> Hereupon, what should a valid identifier of an Hypervisor Vendor ID be and >> where should QEMU provide that information? >> >> On the v1 [1] of this RFC there's the suggestion of having this information >> in sync by the current acceleration name. This also seems to imply that QEMU, >> which generates the FADT table, and the FADT consumer need to be in sync with >> the values of this field. >> >> This version follows Ani Sinha's suggestion [2] of using "QEMU" for the >> hypervisor vendor ID. >> >> [1]: https://lists.nongnu.org/archive/html/qemu-devel/2022-10/msg00911.html >> [2]: https://lists.nongnu.org/archive/html/qemu-devel/2022-10/msg00989.html >> >> Signed-off-by: Miguel Luis <miguel.luis@oracle.com> > > Reviewed-by: Ani Sinha <ani@anisinha.ca> > Thank you Ani. In the meanwhile, taking the description part of: “Firmware implementers would place zero bytes into this field, denoting that no hypervisor is present in the actual firmware.", I reached to something along the lines below: diff --git a/hw/acpi/aml-build.c b/hw/acpi/aml-build.c index 42feb4d4d7..e719afe0cb 100644 --- a/hw/acpi/aml-build.c +++ b/hw/acpi/aml-build.c @@ -2198,7 +2198,11 @@ void build_fadt(GArray *tbl, BIOSLinker *linker, const AcpiFadtData *f, } /* Hypervisor Vendor Identity */ - build_append_padded_str(tbl, "QEMU", 8, '\0'); + if (f->hyp_is_present) { + build_append_padded_str(tbl, "QEMU", 8, '\0'); + } else { + build_append_int_noprefix(tbl, 0, 8); + } /* TODO: extra fields need to be added to support revisions above rev6 */ assert(f->rev == 6); diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c index 72bb6f61a5..d238ce2b88 100644 --- a/hw/arm/virt-acpi-build.c +++ b/hw/arm/virt-acpi-build.c @@ -818,6 +818,7 @@ static void build_fadt_rev6(GArray *table_data, BIOSLinker *linker, .minor_ver = 0, .flags = 1 << ACPI_FADT_F_HW_REDUCED_ACPI, .xdsdt_tbl_offset = &dsdt_tbl_offset, + .hyp_is_present = vms->virt && (kvm_enabled() || hvf_enabled()), }; switch (vms->psci_conduit) { diff --git a/include/hw/acpi/acpi-defs.h b/include/hw/acpi/acpi-defs.h index 2b42e4192b..2aff5304af 100644 --- a/include/hw/acpi/acpi-defs.h +++ b/include/hw/acpi/acpi-defs.h @@ -79,7 +79,7 @@ typedef struct AcpiFadtData { uint16_t arm_boot_arch; /* ARM_BOOT_ARCH */ uint16_t iapc_boot_arch; /* IAPC_BOOT_ARCH */ uint8_t minor_ver; /* FADT Minor Version */ - + bool hyp_is_present; /* * respective tables offsets within ACPI_BUILD_TABLE_FILE, * NULL if table doesn't exist (in that case field's value Any thoughts on this? Thanks Miguel >> --- >> hw/acpi/aml-build.c | 13 ++++++++++--- >> hw/arm/virt-acpi-build.c | 10 +++++----- >> 2 files changed, 15 insertions(+), 8 deletions(-) >> >> diff --git a/hw/acpi/aml-build.c b/hw/acpi/aml-build.c >> index e6bfac95c7..42feb4d4d7 100644 >> --- a/hw/acpi/aml-build.c >> +++ b/hw/acpi/aml-build.c >> @@ -2070,7 +2070,7 @@ void build_pptt(GArray *table_data, BIOSLinker *linker, MachineState *ms, >> acpi_table_end(linker, &table); >> } >> >> -/* build rev1/rev3/rev5.1 FADT */ >> +/* build rev1/rev3/rev5.1/rev6.0 FADT */ >> void build_fadt(GArray *tbl, BIOSLinker *linker, const AcpiFadtData *f, >> const char *oem_id, const char *oem_table_id) >> { >> @@ -2193,8 +2193,15 @@ void build_fadt(GArray *tbl, BIOSLinker *linker, const AcpiFadtData *f, >> /* SLEEP_STATUS_REG */ >> build_append_gas_from_struct(tbl, &f->sleep_sts); >> >> - /* TODO: extra fields need to be added to support revisions above rev5 */ >> - assert(f->rev == 5); >> + if (f->rev == 5) { >> + goto done; >> + } >> + >> + /* Hypervisor Vendor Identity */ >> + build_append_padded_str(tbl, "QEMU", 8, '\0'); >> + >> + /* TODO: extra fields need to be added to support revisions above rev6 */ >> + assert(f->rev == 6); >> >> done: >> acpi_table_end(linker, &table); >> diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c >> index 9b3aee01bf..72bb6f61a5 100644 >> --- a/hw/arm/virt-acpi-build.c >> +++ b/hw/arm/virt-acpi-build.c >> @@ -809,13 +809,13 @@ build_madt(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) >> } >> >> /* FADT */ >> -static void build_fadt_rev5(GArray *table_data, BIOSLinker *linker, >> +static void build_fadt_rev6(GArray *table_data, BIOSLinker *linker, >> VirtMachineState *vms, unsigned dsdt_tbl_offset) >> { >> - /* ACPI v5.1 */ >> + /* ACPI v6.0 */ >> AcpiFadtData fadt = { >> - .rev = 5, >> - .minor_ver = 1, >> + .rev = 6, >> + .minor_ver = 0, >> .flags = 1 << ACPI_FADT_F_HW_REDUCED_ACPI, >> .xdsdt_tbl_offset = &dsdt_tbl_offset, >> }; >> @@ -945,7 +945,7 @@ void virt_acpi_build(VirtMachineState *vms, AcpiBuildTables *tables) >> >> /* FADT MADT PPTT GTDT MCFG SPCR DBG2 pointed to by RSDT */ >> acpi_add_table(table_offsets, tables_blob); >> - build_fadt_rev5(tables_blob, tables->linker, vms, dsdt); >> + build_fadt_rev6(tables_blob, tables->linker, vms, dsdt); >> >> acpi_add_table(table_offsets, tables_blob); >> build_madt(tables_blob, tables->linker, vms); >> -- >> 2.37.3 >> ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [RFC PATCH v2 2/4] acpi: fadt: support revision 6.0 of the ACPI specification 2022-10-11 11:03 ` Miguel Luis @ 2022-10-11 11:27 ` Ani Sinha 0 siblings, 0 replies; 8+ messages in thread From: Ani Sinha @ 2022-10-11 11:27 UTC (permalink / raw) To: Miguel Luis Cc: qemu-devel@nongnu.org, qemu-arm@nongnu.org, mst@redhat.com, imammedo@redhat.com, shannon.zhaosl@gmail.com, peter.maydell@linaro.org On Tue, Oct 11, 2022 at 4:33 PM Miguel Luis <miguel.luis@oracle.com> wrote: > > > > On 11 Oct 2022, at 05:02, Ani Sinha <ani@anisinha.ca> wrote: > > > > On Mon, Oct 10, 2022 at 6:53 PM Miguel Luis <miguel.luis@oracle.com> wrote: > >> > >> Update the Fixed ACPI Description Table (FADT) to revision 6.0 of the ACPI > >> specification adding the field "Hypervisor Vendor Identity" that was missing. > >> > >> This field's description states the following: "64-bit identifier of hypervisor > >> vendor. All bytes in this field are considered part of the vendor identity. > >> These identifiers are defined independently by the vendors themselves, > >> usually following the name of the hypervisor product. Version information > >> should NOT be included in this field - this shall simply denote the vendor's > >> name or identifier. Version information can be communicated through a > >> supplemental vendor-specific hypervisor API. Firmware implementers would > >> place zero bytes into this field, denoting that no hypervisor is present in > >> the actual firmware." > >> > >> Hereupon, what should a valid identifier of an Hypervisor Vendor ID be and > >> where should QEMU provide that information? > >> > >> On the v1 [1] of this RFC there's the suggestion of having this information > >> in sync by the current acceleration name. This also seems to imply that QEMU, > >> which generates the FADT table, and the FADT consumer need to be in sync with > >> the values of this field. > >> > >> This version follows Ani Sinha's suggestion [2] of using "QEMU" for the > >> hypervisor vendor ID. > >> > >> [1]: https://lists.nongnu.org/archive/html/qemu-devel/2022-10/msg00911.html > >> [2]: https://lists.nongnu.org/archive/html/qemu-devel/2022-10/msg00989.html > >> > >> Signed-off-by: Miguel Luis <miguel.luis@oracle.com> > > > > Reviewed-by: Ani Sinha <ani@anisinha.ca> > > > > Thank you Ani. In the meanwhile, taking the description part of: “Firmware > implementers would place zero bytes into this field, denoting that no > hypervisor is present in the actual firmware.", I reached to something along > the lines below: That line is meant for hardware vendors when shipping bioses with physical HW. All VMs run with QEMU are run from a hypervisor environment. > > diff --git a/hw/acpi/aml-build.c b/hw/acpi/aml-build.c > index 42feb4d4d7..e719afe0cb 100644 > --- a/hw/acpi/aml-build.c > +++ b/hw/acpi/aml-build.c > @@ -2198,7 +2198,11 @@ void build_fadt(GArray *tbl, BIOSLinker *linker, const AcpiFadtData *f, > } > > /* Hypervisor Vendor Identity */ > - build_append_padded_str(tbl, "QEMU", 8, '\0'); > + if (f->hyp_is_present) { > + build_append_padded_str(tbl, "QEMU", 8, '\0'); > + } else { > + build_append_int_noprefix(tbl, 0, 8); > + } > > /* TODO: extra fields need to be added to support revisions above rev6 */ > assert(f->rev == 6); > diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c > index 72bb6f61a5..d238ce2b88 100644 > --- a/hw/arm/virt-acpi-build.c > +++ b/hw/arm/virt-acpi-build.c > @@ -818,6 +818,7 @@ static void build_fadt_rev6(GArray *table_data, BIOSLinker *linker, > .minor_ver = 0, > .flags = 1 << ACPI_FADT_F_HW_REDUCED_ACPI, > .xdsdt_tbl_offset = &dsdt_tbl_offset, > + .hyp_is_present = vms->virt && (kvm_enabled() || hvf_enabled()), > }; > > switch (vms->psci_conduit) { > diff --git a/include/hw/acpi/acpi-defs.h b/include/hw/acpi/acpi-defs.h > index 2b42e4192b..2aff5304af 100644 > --- a/include/hw/acpi/acpi-defs.h > +++ b/include/hw/acpi/acpi-defs.h > @@ -79,7 +79,7 @@ typedef struct AcpiFadtData { > uint16_t arm_boot_arch; /* ARM_BOOT_ARCH */ > uint16_t iapc_boot_arch; /* IAPC_BOOT_ARCH */ > uint8_t minor_ver; /* FADT Minor Version */ > - > + bool hyp_is_present; > /* > * respective tables offsets within ACPI_BUILD_TABLE_FILE, > * NULL if table doesn't exist (in that case field's value > > Any thoughts on this? > > Thanks > Miguel > > >> --- > >> hw/acpi/aml-build.c | 13 ++++++++++--- > >> hw/arm/virt-acpi-build.c | 10 +++++----- > >> 2 files changed, 15 insertions(+), 8 deletions(-) > >> > >> diff --git a/hw/acpi/aml-build.c b/hw/acpi/aml-build.c > >> index e6bfac95c7..42feb4d4d7 100644 > >> --- a/hw/acpi/aml-build.c > >> +++ b/hw/acpi/aml-build.c > >> @@ -2070,7 +2070,7 @@ void build_pptt(GArray *table_data, BIOSLinker *linker, MachineState *ms, > >> acpi_table_end(linker, &table); > >> } > >> > >> -/* build rev1/rev3/rev5.1 FADT */ > >> +/* build rev1/rev3/rev5.1/rev6.0 FADT */ > >> void build_fadt(GArray *tbl, BIOSLinker *linker, const AcpiFadtData *f, > >> const char *oem_id, const char *oem_table_id) > >> { > >> @@ -2193,8 +2193,15 @@ void build_fadt(GArray *tbl, BIOSLinker *linker, const AcpiFadtData *f, > >> /* SLEEP_STATUS_REG */ > >> build_append_gas_from_struct(tbl, &f->sleep_sts); > >> > >> - /* TODO: extra fields need to be added to support revisions above rev5 */ > >> - assert(f->rev == 5); > >> + if (f->rev == 5) { > >> + goto done; > >> + } > >> + > >> + /* Hypervisor Vendor Identity */ > >> + build_append_padded_str(tbl, "QEMU", 8, '\0'); > >> + > >> + /* TODO: extra fields need to be added to support revisions above rev6 */ > >> + assert(f->rev == 6); > >> > >> done: > >> acpi_table_end(linker, &table); > >> diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c > >> index 9b3aee01bf..72bb6f61a5 100644 > >> --- a/hw/arm/virt-acpi-build.c > >> +++ b/hw/arm/virt-acpi-build.c > >> @@ -809,13 +809,13 @@ build_madt(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) > >> } > >> > >> /* FADT */ > >> -static void build_fadt_rev5(GArray *table_data, BIOSLinker *linker, > >> +static void build_fadt_rev6(GArray *table_data, BIOSLinker *linker, > >> VirtMachineState *vms, unsigned dsdt_tbl_offset) > >> { > >> - /* ACPI v5.1 */ > >> + /* ACPI v6.0 */ > >> AcpiFadtData fadt = { > >> - .rev = 5, > >> - .minor_ver = 1, > >> + .rev = 6, > >> + .minor_ver = 0, > >> .flags = 1 << ACPI_FADT_F_HW_REDUCED_ACPI, > >> .xdsdt_tbl_offset = &dsdt_tbl_offset, > >> }; > >> @@ -945,7 +945,7 @@ void virt_acpi_build(VirtMachineState *vms, AcpiBuildTables *tables) > >> > >> /* FADT MADT PPTT GTDT MCFG SPCR DBG2 pointed to by RSDT */ > >> acpi_add_table(table_offsets, tables_blob); > >> - build_fadt_rev5(tables_blob, tables->linker, vms, dsdt); > >> + build_fadt_rev6(tables_blob, tables->linker, vms, dsdt); > >> > >> acpi_add_table(table_offsets, tables_blob); > >> build_madt(tables_blob, tables->linker, vms); > >> -- > >> 2.37.3 > >> > ^ permalink raw reply [flat|nested] 8+ messages in thread
* [RFC PATCH v2 3/4] acpi: arm/virt: madt: bump to revision 4 accordingly to ACPI 6.0 Errata A 2022-10-10 13:22 [RFC PATCH v2 0/4] ACPI MADT and FADT update according to the ACPI 6.0 spec Miguel Luis 2022-10-10 13:22 ` [RFC PATCH v2 1/4] tests/acpi: virt: allow acpi MADT and FADT changes Miguel Luis 2022-10-10 13:22 ` [RFC PATCH v2 2/4] acpi: fadt: support revision 6.0 of the ACPI specification Miguel Luis @ 2022-10-10 13:22 ` Miguel Luis 2022-10-10 13:23 ` [RFC PATCH v2 4/4] tests/acpi: virt: update ACPI MADT and FADT binaries Miguel Luis 3 siblings, 0 replies; 8+ messages in thread From: Miguel Luis @ 2022-10-10 13:22 UTC (permalink / raw) To: qemu-devel, qemu-arm Cc: mst, imammedo, ani, shannon.zhaosl, peter.maydell, miguel.luis MADT has been updated with the GIC Structures from ACPI 6.0 Errata A and so MADT revision and GICC Structure must be updated also. Fixes: 37f33084ed2e ("acpi: arm/virt: madt: use build_append_int_noprefix() API to compose MADT table") Signed-off-by: Miguel Luis <miguel.luis@oracle.com> Reviewed-by: Ani Sinha <ani@anisinha.ca> --- hw/arm/virt-acpi-build.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c index 72bb6f61a5..2d21e3cec4 100644 --- a/hw/arm/virt-acpi-build.c +++ b/hw/arm/virt-acpi-build.c @@ -686,7 +686,7 @@ build_dbg2(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) }; /* - * ACPI spec, Revision 5.1 Errata A + * ACPI spec, Revision 6.0 Errata A * 5.2.12 Multiple APIC Description Table (MADT) */ static void build_append_gicr(GArray *table_data, uint64_t base, uint32_t size) @@ -705,7 +705,7 @@ build_madt(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) int i; VirtMachineClass *vmc = VIRT_MACHINE_GET_CLASS(vms); const MemMapEntry *memmap = vms->memmap; - AcpiTable table = { .sig = "APIC", .rev = 3, .oem_id = vms->oem_id, + AcpiTable table = { .sig = "APIC", .rev = 4, .oem_id = vms->oem_id, .oem_table_id = vms->oem_table_id }; acpi_table_begin(&table, table_data); @@ -740,7 +740,7 @@ build_madt(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) /* 5.2.12.14 GIC Structure */ build_append_int_noprefix(table_data, 0xB, 1); /* Type */ - build_append_int_noprefix(table_data, 76, 1); /* Length */ + build_append_int_noprefix(table_data, 80, 1); /* Length */ build_append_int_noprefix(table_data, 0, 2); /* Reserved */ build_append_int_noprefix(table_data, i, 4); /* GIC ID */ build_append_int_noprefix(table_data, i, 4); /* ACPI Processor UID */ @@ -760,6 +760,10 @@ build_madt(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) build_append_int_noprefix(table_data, 0, 8); /* GICR Base Address*/ /* MPIDR */ build_append_int_noprefix(table_data, armcpu->mp_affinity, 8); + /* Processor Power Efficiency Class */ + build_append_int_noprefix(table_data, 0, 1); + /* Reserved */ + build_append_int_noprefix(table_data, 0, 3); } if (vms->gic_version != VIRT_GIC_VERSION_2) { @@ -771,12 +775,6 @@ build_madt(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) } if (its_class_name() && !vmc->no_its) { - /* - * FIXME: Structure is from Revision 6.0 where 'GIC Structure' - * has additional fields on top of implemented 5.1 Errata A, - * to make it consistent with v6.0 we need to bump everything - * to v6.0 - */ /* * ACPI spec, Revision 6.0 Errata A * (original 6.0 definition has invalid Length) -- 2.37.3 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [RFC PATCH v2 4/4] tests/acpi: virt: update ACPI MADT and FADT binaries 2022-10-10 13:22 [RFC PATCH v2 0/4] ACPI MADT and FADT update according to the ACPI 6.0 spec Miguel Luis ` (2 preceding siblings ...) 2022-10-10 13:22 ` [RFC PATCH v2 3/4] acpi: arm/virt: madt: bump to revision 4 accordingly to ACPI 6.0 Errata A Miguel Luis @ 2022-10-10 13:23 ` Miguel Luis 3 siblings, 0 replies; 8+ messages in thread From: Miguel Luis @ 2022-10-10 13:23 UTC (permalink / raw) To: qemu-devel, qemu-arm Cc: mst, imammedo, ani, shannon.zhaosl, peter.maydell, miguel.luis Step 6 & 7 of the bios-tables-test.c documented procedure. Differences between disassembled ASL files for MADT: @@ -11,9 +11,9 @@ */ [000h 0000 4] Signature : "APIC" [Multiple APIC Description Table (MADT)] -[004h 0004 4] Table Length : 000000A8 -[008h 0008 1] Revision : 03 -[009h 0009 1] Checksum : 50 +[004h 0004 4] Table Length : 000000AC +[008h 0008 1] Revision : 04 +[009h 0009 1] Checksum : 47 [00Ah 0010 6] Oem ID : "BOCHS " [010h 0016 8] Oem Table ID : "BXPC " [018h 0024 4] Oem Revision : 00000001 @@ -34,7 +34,7 @@ [041h 0065 3] Reserved : 000000 [044h 0068 1] Subtable Type : 0B [Generic Interrupt Controller] -[045h 0069 1] Length : 4C +[045h 0069 1] Length : 50 [046h 0070 2] Reserved : 0000 [048h 0072 4] CPU Interface Number : 00000000 [04Ch 0076 4] Processor UID : 00000000 @@ -51,28 +51,29 @@ [07Ch 0124 4] Virtual GIC Interrupt : 00000000 [080h 0128 8] Redistributor Base Address : 0000000000000000 [088h 0136 8] ARM MPIDR : 0000000000000000 -/**** ACPI subtable terminates early - may be older version (dump table) */ +[090h 0144 1] Efficiency Class : 00 +[091h 0145 3] Reserved : 000000 -[090h 0144 1] Subtable Type : 0D [Generic MSI Frame] -[091h 0145 1] Length : 18 -[092h 0146 2] Reserved : 0000 -[094h 0148 4] MSI Frame ID : 00000000 -[098h 0152 8] Base Address : 0000000008020000 -[0A0h 0160 4] Flags (decoded below) : 00000001 +[094h 0148 1] Subtable Type : 0D [Generic MSI Frame] +[095h 0149 1] Length : 18 +[096h 0150 2] Reserved : 0000 +[098h 0152 4] MSI Frame ID : 00000000 +[09Ch 0156 8] Base Address : 0000000008020000 +[0A4h 0164 4] Flags (decoded below) : 00000001 Select SPI : 1 -[0A4h 0164 2] SPI Count : 0040 -[0A6h 0166 2] SPI Base : 0050 +[0A8h 0168 2] SPI Count : 0040 +[0AAh 0170 2] SPI Base : 0050 -Raw Table Data: Length 168 (0xA8) +Raw Table Data: Length 172 (0xAC) - 0000: 41 50 49 43 A8 00 00 00 03 50 42 4F 43 48 53 20 // APIC.....PBOCHS + 0000: 41 50 49 43 AC 00 00 00 04 47 42 4F 43 48 53 20 // APIC.....GBOCHS 0010: 42 58 50 43 20 20 20 20 01 00 00 00 42 58 50 43 // BXPC ....BXPC 0020: 01 00 00 00 00 00 00 00 00 00 00 00 0C 18 00 00 // ................ 0030: 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 00 // ................ - 0040: 02 00 00 00 0B 4C 00 00 00 00 00 00 00 00 00 00 // .....L.......... + 0040: 02 00 00 00 0B 50 00 00 00 00 00 00 00 00 00 00 // .....P.......... 0050: 01 00 00 00 00 00 00 00 17 00 00 00 00 00 00 00 // ................ 0060: 00 00 00 00 00 00 01 08 00 00 00 00 00 00 04 08 // ................ 0070: 00 00 00 00 00 00 03 08 00 00 00 00 00 00 00 00 // ................ 0080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0090: 0D 18 00 00 00 00 00 00 00 00 02 08 00 00 00 00 // ................ - 00A0: 01 00 00 00 40 00 50 00 // ....@.P. + 0090: 00 00 00 00 0D 18 00 00 00 00 00 00 00 00 02 08 // ................ + 00A0: 00 00 00 00 01 00 00 00 40 00 50 00 // ........@.P. Differences between disassembled ASL files for FADT: @@ -11,9 +11,9 @@ */ [000h 0000 4] Signature : "FACP" [Fixed ACPI Description Table (FADT)] -[004h 0004 4] Table Length : 0000010C -[008h 0008 1] Revision : 05 -[009h 0009 1] Checksum : 55 +[004h 0004 4] Table Length : 00000114 +[008h 0008 1] Revision : 06 +[009h 0009 1] Checksum : 15 [00Ah 0010 6] Oem ID : "BOCHS " [010h 0016 8] Oem Table ID : "BXPC " [018h 0024 4] Oem Revision : 00000001 @@ -99,7 +99,7 @@ PSCI Compliant : 1 Must use HVC for PSCI : 1 -[083h 0131 1] FADT Minor Revision : 01 +[083h 0131 1] FADT Minor Revision : 00 [084h 0132 8] FACS Address : 0000000000000000 [08Ch 0140 8] DSDT Address : 0000000000000000 [094h 0148 12] PM1A Event Block : [Generic Address Structure] @@ -173,11 +173,11 @@ [103h 0259 1] Encoded Access Width : 00 [Undefined/Legacy] [104h 0260 8] Address : 0000000000000000 -/**** ACPI table terminates in the middle of a data structure! (dump table) */ +[10Ch 0268 8] Hypervisor ID : 00000000554D4551 -Raw Table Data: Length 268 (0x10C) +Raw Table Data: Length 276 (0x114) - 0000: 46 41 43 50 0C 01 00 00 05 55 42 4F 43 48 53 20 // FACP.....UBOCHS + 0000: 46 41 43 50 14 01 00 00 06 15 42 4F 43 48 53 20 // FACP......BOCHS 0010: 42 58 50 43 20 20 20 20 01 00 00 00 42 58 50 43 // BXPC ....BXPC 0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ 0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ @@ -185,7 +185,7 @@ Raw Table Data: Length 268 (0x10C) 0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ 0060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ 0070: 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0080: 00 03 00 01 00 00 00 00 00 00 00 00 00 00 00 00 // ................ + 0080: 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ 0090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ 00A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ 00B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ @@ -193,4 +193,5 @@ Raw Table Data: Length 268 (0x10C) 00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ 00E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ 00F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0100: 00 00 00 00 00 00 00 00 00 00 00 00 // ............ + 0100: 00 00 00 00 00 00 00 00 00 00 00 00 51 45 4D 55 // ............QEMU + 0110: 00 00 00 00 // .... Signed-off-by: Miguel Luis <miguel.luis@oracle.com> --- tests/data/acpi/virt/APIC | Bin 168 -> 172 bytes tests/data/acpi/virt/APIC.memhp | Bin 168 -> 172 bytes tests/data/acpi/virt/APIC.numamem | Bin 168 -> 172 bytes tests/data/acpi/virt/FACP | Bin 268 -> 276 bytes tests/data/acpi/virt/FACP.memhp | Bin 268 -> 276 bytes tests/data/acpi/virt/FACP.numamem | Bin 268 -> 276 bytes tests/qtest/bios-tables-test-allowed-diff.h | 6 ------ 7 files changed, 6 deletions(-) diff --git a/tests/data/acpi/virt/APIC b/tests/data/acpi/virt/APIC index 023f15f12e74fb9a3a6d3d9dc994541016947d6a..179d274770a23209b949c90a929525e22368568b 100644 GIT binary patch delta 26 hcmZ3%xQ3C-F~HM#4FdxMi~B?_YsP?yZeA06WB^*d2KE2| delta 26 icmZ3(xPp<(F~HM#1p@;EbHGF{Yet`mZeA0oNB{s@&<6Sd diff --git a/tests/data/acpi/virt/APIC.memhp b/tests/data/acpi/virt/APIC.memhp index 023f15f12e74fb9a3a6d3d9dc994541016947d6a..179d274770a23209b949c90a929525e22368568b 100644 GIT binary patch delta 26 hcmZ3%xQ3C-F~HM#4FdxMi~B?_YsP?yZeA06WB^*d2KE2| delta 26 icmZ3(xPp<(F~HM#1p@;EbHGF{Yet`mZeA0oNB{s@&<6Sd diff --git a/tests/data/acpi/virt/APIC.numamem b/tests/data/acpi/virt/APIC.numamem index 023f15f12e74fb9a3a6d3d9dc994541016947d6a..179d274770a23209b949c90a929525e22368568b 100644 GIT binary patch delta 26 hcmZ3%xQ3C-F~HM#4FdxMi~B?_YsP?yZeA06WB^*d2KE2| delta 26 icmZ3(xPp<(F~HM#1p@;EbHGF{Yet`mZeA0oNB{s@&<6Sd diff --git a/tests/data/acpi/virt/FACP b/tests/data/acpi/virt/FACP index 1f764220f8533c427168e80ccf298604826a00b4..ac05c35a69451519bd1152c54d1e741af36390f5 100644 GIT binary patch delta 33 ncmeBSn!?28=I9(C!pOkDCOVO;a^j?_i3a=}fv&!x3_t(?fr|$^ delta 26 hcmbQj)WgK(=I9*2!^ptE8ak1yl96%Z#OjF#yZ}u&1~C8t diff --git a/tests/data/acpi/virt/FACP.memhp b/tests/data/acpi/virt/FACP.memhp index 1f764220f8533c427168e80ccf298604826a00b4..ac05c35a69451519bd1152c54d1e741af36390f5 100644 GIT binary patch delta 33 ncmeBSn!?28=I9(C!pOkDCOVO;a^j?_i3a=}fv&!x3_t(?fr|$^ delta 26 hcmbQj)WgK(=I9*2!^ptE8ak1yl96%Z#OjF#yZ}u&1~C8t diff --git a/tests/data/acpi/virt/FACP.numamem b/tests/data/acpi/virt/FACP.numamem index 1f764220f8533c427168e80ccf298604826a00b4..ac05c35a69451519bd1152c54d1e741af36390f5 100644 GIT binary patch delta 33 ncmeBSn!?28=I9(C!pOkDCOVO;a^j?_i3a=}fv&!x3_t(?fr|$^ delta 26 hcmbQj)WgK(=I9*2!^ptE8ak1yl96%Z#OjF#yZ}u&1~C8t diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h index 8dc50f7a8a..dfb8523c8b 100644 --- a/tests/qtest/bios-tables-test-allowed-diff.h +++ b/tests/qtest/bios-tables-test-allowed-diff.h @@ -1,7 +1 @@ /* List of comma-separated changed AML files to ignore */ -"tests/data/acpi/virt/FACP", -"tests/data/acpi/virt/FACP.numamem", -"tests/data/acpi/virt/FACP.memhp", -"tests/data/acpi/virt/APIC", -"tests/data/acpi/virt/APIC.memhp", -"tests/data/acpi/virt/APIC.numamem", -- 2.37.3 ^ permalink raw reply related [flat|nested] 8+ messages in thread
end of thread, other threads:[~2022-10-11 13:14 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2022-10-10 13:22 [RFC PATCH v2 0/4] ACPI MADT and FADT update according to the ACPI 6.0 spec Miguel Luis 2022-10-10 13:22 ` [RFC PATCH v2 1/4] tests/acpi: virt: allow acpi MADT and FADT changes Miguel Luis 2022-10-10 13:22 ` [RFC PATCH v2 2/4] acpi: fadt: support revision 6.0 of the ACPI specification Miguel Luis 2022-10-11 5:02 ` Ani Sinha 2022-10-11 11:03 ` Miguel Luis 2022-10-11 11:27 ` Ani Sinha 2022-10-10 13:22 ` [RFC PATCH v2 3/4] acpi: arm/virt: madt: bump to revision 4 accordingly to ACPI 6.0 Errata A Miguel Luis 2022-10-10 13:23 ` [RFC PATCH v2 4/4] tests/acpi: virt: update ACPI MADT and FADT binaries Miguel Luis
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).