* [PATCH v3 0/3] hw/arm/virt_acpi_build: Generate DBG2 table @ 2021-09-27 13:17 Eric Auger 2021-09-27 13:17 ` [PATCH v3 1/3] tests/acpi: Add void table for virt/DBG2 bios-tables-test Eric Auger ` (3 more replies) 0 siblings, 4 replies; 10+ messages in thread From: Eric Auger @ 2021-09-27 13:17 UTC (permalink / raw) To: eric.auger.pro, eric.auger, mst, imammedo, philmd, peter.maydell, shannon.zhaosl, qemu-arm, qemu-devel, ardb, drjones Cc: gshan This series generates the ACPI DBG2 table along with machvirt. It applies on top of Igor's [PATCH v4 00/35] acpi: refactor error prone build_header() and packed structures usage in ACPI tables The DBG2 specification can be found at https://docs.microsoft.com/en-us/windows-hardware/drivers/bringup/acpi-debug-port-table. DBG2 is mandated by ARM SBBR since its v1.0 release (the rationale behind is Windows requires it on all systems). The DBG2 is used to describe a debug port, used by the kernel debugger. This series and its dependency can be found at https://github.com/eauger/qemu.git branch: igor_acpi_refactoring_v4_dbg2_v3 History: v2 -> v3: - addressed all comments from Igor on v2: patches 2/3 swapped style adjustments in "hw/arm/virt_acpi_build: Generate DBG2 table" + more precision on spec references v1 -> v2: - rebase on top of Igor's series and use acpi_init_table/acpi_table_composed and build_append_int_noprefix() Eric Auger (3): tests/acpi: Add void table for virt/DBG2 bios-tables-test hw/arm/virt_acpi_build: Generate DBG2 table bios-tables-test: Generate reference table for virt/DBG2 hw/arm/virt-acpi-build.c | 62 +++++++++++++++++++++++++++++++++++++- tests/data/acpi/virt/DBG2 | Bin 0 -> 87 bytes 2 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 tests/data/acpi/virt/DBG2 -- 2.26.3 ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v3 1/3] tests/acpi: Add void table for virt/DBG2 bios-tables-test 2021-09-27 13:17 [PATCH v3 0/3] hw/arm/virt_acpi_build: Generate DBG2 table Eric Auger @ 2021-09-27 13:17 ` Eric Auger 2021-09-27 13:17 ` [PATCH v3 2/3] hw/arm/virt_acpi_build: Generate DBG2 table Eric Auger ` (2 subsequent siblings) 3 siblings, 0 replies; 10+ messages in thread From: Eric Auger @ 2021-09-27 13:17 UTC (permalink / raw) To: eric.auger.pro, eric.auger, mst, imammedo, philmd, peter.maydell, shannon.zhaosl, qemu-arm, qemu-devel, ardb, drjones Cc: gshan Add placeholders for DBG2 reference table for virt tests and ignore till reference blob is added. Signed-off-by: Eric Auger <eric.auger@redhat.com> Acked-by: Igor Mammedov <imammedo@redhat.com> --- v2 -> v3: - commit msg rewording according to Igor's suggestion and added Igor's A-b. --- tests/qtest/bios-tables-test-allowed-diff.h | 1 + tests/data/acpi/virt/DBG2 | 0 2 files changed, 1 insertion(+) create mode 100644 tests/data/acpi/virt/DBG2 diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h index dfb8523c8b..1910d154c2 100644 --- a/tests/qtest/bios-tables-test-allowed-diff.h +++ b/tests/qtest/bios-tables-test-allowed-diff.h @@ -1 +1,2 @@ /* List of comma-separated changed AML files to ignore */ +"tests/data/acpi/virt/DBG2", diff --git a/tests/data/acpi/virt/DBG2 b/tests/data/acpi/virt/DBG2 new file mode 100644 index 0000000000..e69de29bb2 -- 2.26.3 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v3 2/3] hw/arm/virt_acpi_build: Generate DBG2 table 2021-09-27 13:17 [PATCH v3 0/3] hw/arm/virt_acpi_build: Generate DBG2 table Eric Auger 2021-09-27 13:17 ` [PATCH v3 1/3] tests/acpi: Add void table for virt/DBG2 bios-tables-test Eric Auger @ 2021-09-27 13:17 ` Eric Auger 2021-10-06 8:25 ` Igor Mammedov 2021-10-06 9:15 ` Andrew Jones 2021-09-27 13:17 ` [PATCH v3 3/3] bios-tables-test: Generate reference table for virt/DBG2 Eric Auger 2021-10-05 15:08 ` [PATCH v3 0/3] hw/arm/virt_acpi_build: Generate DBG2 table Michael S. Tsirkin 3 siblings, 2 replies; 10+ messages in thread From: Eric Auger @ 2021-09-27 13:17 UTC (permalink / raw) To: eric.auger.pro, eric.auger, mst, imammedo, philmd, peter.maydell, shannon.zhaosl, qemu-arm, qemu-devel, ardb, drjones Cc: gshan ARM SBBR specification mandates DBG2 table (Debug Port Table 2) since v1.0 (ARM DEN0044F 8.3.1.7 DBG2). The DBG2 table allows to describe one or more debug ports. Generate an DBG2 table featuring a single debug port, the PL011. The DBG2 specification can be found at "Microsoft Debug Port Table 2 (DBG2)" https://docs.microsoft.com/en-us/windows-hardware/drivers/bringup/acpi-debug-port-table?redirectedfrom=MSDN Signed-off-by: Eric Auger <eric.auger@redhat.com> --- v2 -> v3: Took into account all comments from Igor on v2: mostly style adjustment, revision references v1 -> v2: - rebased on Igor's refactoring --- hw/arm/virt-acpi-build.c | 62 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 61 insertions(+), 1 deletion(-) diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c index 6cec97352b..257d0fee17 100644 --- a/hw/arm/virt-acpi-build.c +++ b/hw/arm/virt-acpi-build.c @@ -616,6 +616,63 @@ build_gtdt(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) acpi_table_end(linker, &table); } +/* Debug Port Table 2 (DBG2) */ +static void +build_dbg2(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) +{ + AcpiTable table = { .sig = "DBG2", .rev = 3, .oem_id = vms->oem_id, + .oem_table_id = vms->oem_table_id }; + int dbg2devicelength; + const char name[] = "COM0"; + const int namespace_length = sizeof(name); + + acpi_table_begin(&table, table_data); + + dbg2devicelength = 22 /* BaseAddressRegister[] offset */ + + 12 /* BaseAddressRegister[] */ + + 4 /* AddressSize[] */ + + namespace_length /* NamespaceString[] */; + + /* OffsetDbgDeviceInfo */ + build_append_int_noprefix(table_data, 44, 4); + /* NumberDbgDeviceInfo */ + build_append_int_noprefix(table_data, 1, 4); + + /* Table 2. Debug Device Information structure format */ + build_append_int_noprefix(table_data, 0, 1); /* Revision */ + build_append_int_noprefix(table_data, dbg2devicelength, 2); /* Length */ + /* NumberofGenericAddressRegisters */ + build_append_int_noprefix(table_data, 1, 1); + /* NameSpaceStringLength */ + build_append_int_noprefix(table_data, namespace_length, 2); + build_append_int_noprefix(table_data, 38, 2); /* NameSpaceStringOffset */ + build_append_int_noprefix(table_data, 0, 2); /* OemDataLength */ + /* OemDataOffset (0 means no OEM data) */ + build_append_int_noprefix(table_data, 0, 2); + + /* Port Type */ + build_append_int_noprefix(table_data, 0x8000 /* Serial */, 2); + /* Port Subtype */ + build_append_int_noprefix(table_data, 0x3 /* ARM PL011 UART */, 2); + build_append_int_noprefix(table_data, 0, 2); /* Reserved */ + /* BaseAddressRegisterOffset */ + build_append_int_noprefix(table_data, 22, 2); + /* AddressSizeOffset */ + build_append_int_noprefix(table_data, 34, 2); + + /* BaseAddressRegister[] */ + build_append_gas(table_data, AML_AS_SYSTEM_MEMORY, 8, 0, 1, + vms->memmap[VIRT_UART].base); + + /* AddressSize[] */ + build_append_int_noprefix(table_data, 0x1000 /* Register Space */, 4); + + /* NamespaceString[] */ + g_array_append_vals(table_data, name, namespace_length); + + acpi_table_end(linker, &table); +}; + /* * ACPI spec, Revision 5.1 Errata A * 5.2.12 Multiple APIC Description Table (MADT) @@ -875,7 +932,7 @@ void virt_acpi_build(VirtMachineState *vms, AcpiBuildTables *tables) dsdt = tables_blob->len; build_dsdt(tables_blob, tables->linker, vms); - /* FADT MADT GTDT MCFG SPCR pointed to by RSDT */ + /* FADT MADT GTDT MCFG SPCR DBG2 pointed to by RSDT */ acpi_add_table(table_offsets, tables_blob); build_fadt_rev5(tables_blob, tables->linker, vms, dsdt); @@ -898,6 +955,9 @@ void virt_acpi_build(VirtMachineState *vms, AcpiBuildTables *tables) acpi_add_table(table_offsets, tables_blob); build_spcr(tables_blob, tables->linker, vms); + acpi_add_table(table_offsets, tables_blob); + build_dbg2(tables_blob, tables->linker, vms); + if (vms->ras) { build_ghes_error_table(tables->hardware_errors, tables->linker); acpi_add_table(table_offsets, tables_blob); -- 2.26.3 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v3 2/3] hw/arm/virt_acpi_build: Generate DBG2 table 2021-09-27 13:17 ` [PATCH v3 2/3] hw/arm/virt_acpi_build: Generate DBG2 table Eric Auger @ 2021-10-06 8:25 ` Igor Mammedov 2021-10-06 9:15 ` Andrew Jones 1 sibling, 0 replies; 10+ messages in thread From: Igor Mammedov @ 2021-10-06 8:25 UTC (permalink / raw) To: Eric Auger Cc: peter.maydell, drjones, gshan, mst, qemu-devel, shannon.zhaosl, qemu-arm, philmd, ardb, eric.auger.pro On Mon, 27 Sep 2021 15:17:31 +0200 Eric Auger <eric.auger@redhat.com> wrote: > ARM SBBR specification mandates DBG2 table (Debug Port Table 2) > since v1.0 (ARM DEN0044F 8.3.1.7 DBG2). > > The DBG2 table allows to describe one or more debug ports. > > Generate an DBG2 table featuring a single debug port, the PL011. > > The DBG2 specification can be found at > "Microsoft Debug Port Table 2 (DBG2)" > https://docs.microsoft.com/en-us/windows-hardware/drivers/bringup/acpi-debug-port-table?redirectedfrom=MSDN > > Signed-off-by: Eric Auger <eric.auger@redhat.com> > > --- > > v2 -> v3: > Took into account all comments from Igor on v2: > mostly style adjustment, revision references > > v1 -> v2: > - rebased on Igor's refactoring > --- > hw/arm/virt-acpi-build.c | 62 +++++++++++++++++++++++++++++++++++++++- > 1 file changed, 61 insertions(+), 1 deletion(-) > > diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c > index 6cec97352b..257d0fee17 100644 > --- a/hw/arm/virt-acpi-build.c > +++ b/hw/arm/virt-acpi-build.c > @@ -616,6 +616,63 @@ build_gtdt(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) > acpi_table_end(linker, &table); > } > > +/* Debug Port Table 2 (DBG2) */ > +static void > +build_dbg2(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) > +{ > + AcpiTable table = { .sig = "DBG2", .rev = 3, .oem_id = vms->oem_id, > + .oem_table_id = vms->oem_table_id }; > + int dbg2devicelength; > + const char name[] = "COM0"; > + const int namespace_length = sizeof(name); > + > + acpi_table_begin(&table, table_data); > + > + dbg2devicelength = 22 /* BaseAddressRegister[] offset */ + > + 12 /* BaseAddressRegister[] */ + > + 4 /* AddressSize[] */ + > + namespace_length /* NamespaceString[] */; > + > + /* OffsetDbgDeviceInfo */ > + build_append_int_noprefix(table_data, 44, 4); > + /* NumberDbgDeviceInfo */ > + build_append_int_noprefix(table_data, 1, 4); > + > + /* Table 2. Debug Device Information structure format */ > + build_append_int_noprefix(table_data, 0, 1); /* Revision */ > + build_append_int_noprefix(table_data, dbg2devicelength, 2); /* Length */ > + /* NumberofGenericAddressRegisters */ > + build_append_int_noprefix(table_data, 1, 1); > + /* NameSpaceStringLength */ > + build_append_int_noprefix(table_data, namespace_length, 2); > + build_append_int_noprefix(table_data, 38, 2); /* NameSpaceStringOffset */ > + build_append_int_noprefix(table_data, 0, 2); /* OemDataLength */ > + /* OemDataOffset (0 means no OEM data) */ > + build_append_int_noprefix(table_data, 0, 2); > + > + /* Port Type */ > + build_append_int_noprefix(table_data, 0x8000 /* Serial */, 2); > + /* Port Subtype */ > + build_append_int_noprefix(table_data, 0x3 /* ARM PL011 UART */, 2); > + build_append_int_noprefix(table_data, 0, 2); /* Reserved */ > + /* BaseAddressRegisterOffset */ > + build_append_int_noprefix(table_data, 22, 2); > + /* AddressSizeOffset */ > + build_append_int_noprefix(table_data, 34, 2); > + > + /* BaseAddressRegister[] */ > + build_append_gas(table_data, AML_AS_SYSTEM_MEMORY, 8, 0, 1, > + vms->memmap[VIRT_UART].base); > + > + /* AddressSize[] */ > + build_append_int_noprefix(table_data, 0x1000 /* Register Space */, 4); s/0x1000/vms->memmap[VIRT_UART].size/? > + > + /* NamespaceString[] */ > + g_array_append_vals(table_data, name, namespace_length); > + > + acpi_table_end(linker, &table); > +}; > + > /* > * ACPI spec, Revision 5.1 Errata A > * 5.2.12 Multiple APIC Description Table (MADT) > @@ -875,7 +932,7 @@ void virt_acpi_build(VirtMachineState *vms, AcpiBuildTables *tables) > dsdt = tables_blob->len; > build_dsdt(tables_blob, tables->linker, vms); > > - /* FADT MADT GTDT MCFG SPCR pointed to by RSDT */ > + /* FADT MADT GTDT MCFG SPCR DBG2 pointed to by RSDT */ > acpi_add_table(table_offsets, tables_blob); > build_fadt_rev5(tables_blob, tables->linker, vms, dsdt); > > @@ -898,6 +955,9 @@ void virt_acpi_build(VirtMachineState *vms, AcpiBuildTables *tables) > acpi_add_table(table_offsets, tables_blob); > build_spcr(tables_blob, tables->linker, vms); > > + acpi_add_table(table_offsets, tables_blob); > + build_dbg2(tables_blob, tables->linker, vms); > + > if (vms->ras) { > build_ghes_error_table(tables->hardware_errors, tables->linker); > acpi_add_table(table_offsets, tables_blob); ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v3 2/3] hw/arm/virt_acpi_build: Generate DBG2 table 2021-09-27 13:17 ` [PATCH v3 2/3] hw/arm/virt_acpi_build: Generate DBG2 table Eric Auger 2021-10-06 8:25 ` Igor Mammedov @ 2021-10-06 9:15 ` Andrew Jones 2021-10-06 9:57 ` Eric Auger 1 sibling, 1 reply; 10+ messages in thread From: Andrew Jones @ 2021-10-06 9:15 UTC (permalink / raw) To: Eric Auger Cc: peter.maydell, gshan, mst, qemu-devel, shannon.zhaosl, qemu-arm, imammedo, philmd, ardb, eric.auger.pro On Mon, Sep 27, 2021 at 03:17:31PM +0200, Eric Auger wrote: > ARM SBBR specification mandates DBG2 table (Debug Port Table 2) > since v1.0 (ARM DEN0044F 8.3.1.7 DBG2). > > The DBG2 table allows to describe one or more debug ports. > > Generate an DBG2 table featuring a single debug port, the PL011. > > The DBG2 specification can be found at > "Microsoft Debug Port Table 2 (DBG2)" > https://docs.microsoft.com/en-us/windows-hardware/drivers/bringup/acpi-debug-port-table?redirectedfrom=MSDN > > Signed-off-by: Eric Auger <eric.auger@redhat.com> > > --- > > v2 -> v3: > Took into account all comments from Igor on v2: > mostly style adjustment, revision references > > v1 -> v2: > - rebased on Igor's refactoring > --- > hw/arm/virt-acpi-build.c | 62 +++++++++++++++++++++++++++++++++++++++- > 1 file changed, 61 insertions(+), 1 deletion(-) > > diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c > index 6cec97352b..257d0fee17 100644 > --- a/hw/arm/virt-acpi-build.c > +++ b/hw/arm/virt-acpi-build.c > @@ -616,6 +616,63 @@ build_gtdt(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) > acpi_table_end(linker, &table); > } > > +/* Debug Port Table 2 (DBG2) */ > +static void > +build_dbg2(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) nit: I didn't think QEMU liked this style, i.e. QEMU prefers static void build_dbg2(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) Eh, I see that hw/arm/virt-acpi-build.c is full of the format you have here, so never mind. > +{ > + AcpiTable table = { .sig = "DBG2", .rev = 3, .oem_id = vms->oem_id, Can you explain where the .rev = 3 comes from? The spec says "For this version of the specification, this value is 0." > + .oem_table_id = vms->oem_table_id }; > + int dbg2devicelength; > + const char name[] = "COM0"; > + const int namespace_length = sizeof(name); > + > + acpi_table_begin(&table, table_data); > + > + dbg2devicelength = 22 /* BaseAddressRegister[] offset */ + > + 12 /* BaseAddressRegister[] */ + > + 4 /* AddressSize[] */ + I'd personally prefer the '+' before the comment, but maybe Igor has a special ACPI code format preference here. > + namespace_length /* NamespaceString[] */; > + > + /* OffsetDbgDeviceInfo */ > + build_append_int_noprefix(table_data, 44, 4); > + /* NumberDbgDeviceInfo */ > + build_append_int_noprefix(table_data, 1, 4); > + > + /* Table 2. Debug Device Information structure format */ > + build_append_int_noprefix(table_data, 0, 1); /* Revision */ > + build_append_int_noprefix(table_data, dbg2devicelength, 2); /* Length */ > + /* NumberofGenericAddressRegisters */ > + build_append_int_noprefix(table_data, 1, 1); > + /* NameSpaceStringLength */ > + build_append_int_noprefix(table_data, namespace_length, 2); > + build_append_int_noprefix(table_data, 38, 2); /* NameSpaceStringOffset */ > + build_append_int_noprefix(table_data, 0, 2); /* OemDataLength */ > + /* OemDataOffset (0 means no OEM data) */ > + build_append_int_noprefix(table_data, 0, 2); > + > + /* Port Type */ > + build_append_int_noprefix(table_data, 0x8000 /* Serial */, 2); > + /* Port Subtype */ > + build_append_int_noprefix(table_data, 0x3 /* ARM PL011 UART */, 2); > + build_append_int_noprefix(table_data, 0, 2); /* Reserved */ > + /* BaseAddressRegisterOffset */ > + build_append_int_noprefix(table_data, 22, 2); > + /* AddressSizeOffset */ > + build_append_int_noprefix(table_data, 34, 2); > + > + /* BaseAddressRegister[] */ > + build_append_gas(table_data, AML_AS_SYSTEM_MEMORY, 8, 0, 1, > + vms->memmap[VIRT_UART].base); > + > + /* AddressSize[] */ > + build_append_int_noprefix(table_data, 0x1000 /* Register Space */, 4); > + > + /* NamespaceString[] */ > + g_array_append_vals(table_data, name, namespace_length); > + > + acpi_table_end(linker, &table); > +}; > + > /* > * ACPI spec, Revision 5.1 Errata A > * 5.2.12 Multiple APIC Description Table (MADT) > @@ -875,7 +932,7 @@ void virt_acpi_build(VirtMachineState *vms, AcpiBuildTables *tables) > dsdt = tables_blob->len; > build_dsdt(tables_blob, tables->linker, vms); > > - /* FADT MADT GTDT MCFG SPCR pointed to by RSDT */ > + /* FADT MADT GTDT MCFG SPCR DBG2 pointed to by RSDT */ > acpi_add_table(table_offsets, tables_blob); > build_fadt_rev5(tables_blob, tables->linker, vms, dsdt); > > @@ -898,6 +955,9 @@ void virt_acpi_build(VirtMachineState *vms, AcpiBuildTables *tables) > acpi_add_table(table_offsets, tables_blob); > build_spcr(tables_blob, tables->linker, vms); > > + acpi_add_table(table_offsets, tables_blob); > + build_dbg2(tables_blob, tables->linker, vms); > + > if (vms->ras) { > build_ghes_error_table(tables->hardware_errors, tables->linker); > acpi_add_table(table_offsets, tables_blob); > -- > 2.26.3 > Thanks, drew ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v3 2/3] hw/arm/virt_acpi_build: Generate DBG2 table 2021-10-06 9:15 ` Andrew Jones @ 2021-10-06 9:57 ` Eric Auger 2021-10-06 13:46 ` Igor Mammedov 0 siblings, 1 reply; 10+ messages in thread From: Eric Auger @ 2021-10-06 9:57 UTC (permalink / raw) To: Andrew Jones Cc: peter.maydell, gshan, mst, qemu-devel, shannon.zhaosl, qemu-arm, imammedo, philmd, ardb, eric.auger.pro Hi, On 10/6/21 11:15 AM, Andrew Jones wrote: > On Mon, Sep 27, 2021 at 03:17:31PM +0200, Eric Auger wrote: >> ARM SBBR specification mandates DBG2 table (Debug Port Table 2) >> since v1.0 (ARM DEN0044F 8.3.1.7 DBG2). >> >> The DBG2 table allows to describe one or more debug ports. >> >> Generate an DBG2 table featuring a single debug port, the PL011. >> >> The DBG2 specification can be found at >> "Microsoft Debug Port Table 2 (DBG2)" >> https://docs.microsoft.com/en-us/windows-hardware/drivers/bringup/acpi-debug-port-table?redirectedfrom=MSDN >> >> Signed-off-by: Eric Auger <eric.auger@redhat.com> >> >> --- >> >> v2 -> v3: >> Took into account all comments from Igor on v2: >> mostly style adjustment, revision references >> >> v1 -> v2: >> - rebased on Igor's refactoring >> --- >> hw/arm/virt-acpi-build.c | 62 +++++++++++++++++++++++++++++++++++++++- >> 1 file changed, 61 insertions(+), 1 deletion(-) >> >> diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c >> index 6cec97352b..257d0fee17 100644 >> --- a/hw/arm/virt-acpi-build.c >> +++ b/hw/arm/virt-acpi-build.c >> @@ -616,6 +616,63 @@ build_gtdt(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) >> acpi_table_end(linker, &table); >> } >> >> +/* Debug Port Table 2 (DBG2) */ >> +static void >> +build_dbg2(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) > nit: I didn't think QEMU liked this style, i.e. QEMU prefers > > static void build_dbg2(GArray *table_data, BIOSLinker *linker, > VirtMachineState *vms) > > Eh, I see that hw/arm/virt-acpi-build.c is full of the format you have > here, so never mind. > >> +{ >> + AcpiTable table = { .sig = "DBG2", .rev = 3, .oem_id = vms->oem_id, > Can you explain where the .rev = 3 comes from? The spec says "For this > version of the specification, this value is 0." The above revision field belongs to the acpi table header. Not to be mixed with the Revision field of the DBG2 table which is set below (set to 0): + build_append_int_noprefix(table_data, 0, 1); /* Revision */ Besides that's a good question. I have rev=3 here but that must come from a copy/paste. when googling I found https://lists.denx.de/pipermail/u-boot/2015-June/217134.html /header->revision = 1; /* ACPI 1.0/2.0: 1, ACPI 3.0: 2, ACPI 4.0: 3 */ Not sure if 3 is the right value though? Igor, please could you advise? Thanks Eric / > > >> + .oem_table_id = vms->oem_table_id }; >> + int dbg2devicelength; >> + const char name[] = "COM0"; >> + const int namespace_length = sizeof(name); >> + >> + acpi_table_begin(&table, table_data); >> + >> + dbg2devicelength = 22 /* BaseAddressRegister[] offset */ + >> + 12 /* BaseAddressRegister[] */ + >> + 4 /* AddressSize[] */ + > I'd personally prefer the '+' before the comment, but maybe Igor has a > special ACPI code format preference here. > >> + namespace_length /* NamespaceString[] */; >> + >> + /* OffsetDbgDeviceInfo */ >> + build_append_int_noprefix(table_data, 44, 4); >> + /* NumberDbgDeviceInfo */ >> + build_append_int_noprefix(table_data, 1, 4); >> + >> + /* Table 2. Debug Device Information structure format */ >> + build_append_int_noprefix(table_data, 0, 1); /* Revision */ >> + build_append_int_noprefix(table_data, dbg2devicelength, 2); /* Length */ >> + /* NumberofGenericAddressRegisters */ >> + build_append_int_noprefix(table_data, 1, 1); >> + /* NameSpaceStringLength */ >> + build_append_int_noprefix(table_data, namespace_length, 2); >> + build_append_int_noprefix(table_data, 38, 2); /* NameSpaceStringOffset */ >> + build_append_int_noprefix(table_data, 0, 2); /* OemDataLength */ >> + /* OemDataOffset (0 means no OEM data) */ >> + build_append_int_noprefix(table_data, 0, 2); >> + >> + /* Port Type */ >> + build_append_int_noprefix(table_data, 0x8000 /* Serial */, 2); >> + /* Port Subtype */ >> + build_append_int_noprefix(table_data, 0x3 /* ARM PL011 UART */, 2); >> + build_append_int_noprefix(table_data, 0, 2); /* Reserved */ >> + /* BaseAddressRegisterOffset */ >> + build_append_int_noprefix(table_data, 22, 2); >> + /* AddressSizeOffset */ >> + build_append_int_noprefix(table_data, 34, 2); >> + >> + /* BaseAddressRegister[] */ >> + build_append_gas(table_data, AML_AS_SYSTEM_MEMORY, 8, 0, 1, >> + vms->memmap[VIRT_UART].base); >> + >> + /* AddressSize[] */ >> + build_append_int_noprefix(table_data, 0x1000 /* Register Space */, 4); >> + >> + /* NamespaceString[] */ >> + g_array_append_vals(table_data, name, namespace_length); >> + >> + acpi_table_end(linker, &table); >> +}; >> + >> /* >> * ACPI spec, Revision 5.1 Errata A >> * 5.2.12 Multiple APIC Description Table (MADT) >> @@ -875,7 +932,7 @@ void virt_acpi_build(VirtMachineState *vms, AcpiBuildTables *tables) >> dsdt = tables_blob->len; >> build_dsdt(tables_blob, tables->linker, vms); >> >> - /* FADT MADT GTDT MCFG SPCR pointed to by RSDT */ >> + /* FADT MADT GTDT MCFG SPCR DBG2 pointed to by RSDT */ >> acpi_add_table(table_offsets, tables_blob); >> build_fadt_rev5(tables_blob, tables->linker, vms, dsdt); >> >> @@ -898,6 +955,9 @@ void virt_acpi_build(VirtMachineState *vms, AcpiBuildTables *tables) >> acpi_add_table(table_offsets, tables_blob); >> build_spcr(tables_blob, tables->linker, vms); >> >> + acpi_add_table(table_offsets, tables_blob); >> + build_dbg2(tables_blob, tables->linker, vms); >> + >> if (vms->ras) { >> build_ghes_error_table(tables->hardware_errors, tables->linker); >> acpi_add_table(table_offsets, tables_blob); >> -- >> 2.26.3 >> > Thanks, > drew > ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v3 2/3] hw/arm/virt_acpi_build: Generate DBG2 table 2021-10-06 9:57 ` Eric Auger @ 2021-10-06 13:46 ` Igor Mammedov 2021-10-06 13:59 ` Eric Auger 0 siblings, 1 reply; 10+ messages in thread From: Igor Mammedov @ 2021-10-06 13:46 UTC (permalink / raw) To: Eric Auger Cc: peter.maydell, Andrew Jones, gshan, mst, qemu-devel, shannon.zhaosl, qemu-arm, philmd, ardb, eric.auger.pro On Wed, 6 Oct 2021 11:57:07 +0200 Eric Auger <eric.auger@redhat.com> wrote: > Hi, > > On 10/6/21 11:15 AM, Andrew Jones wrote: > > On Mon, Sep 27, 2021 at 03:17:31PM +0200, Eric Auger wrote: > >> ARM SBBR specification mandates DBG2 table (Debug Port Table 2) > >> since v1.0 (ARM DEN0044F 8.3.1.7 DBG2). > >> > >> The DBG2 table allows to describe one or more debug ports. > >> > >> Generate an DBG2 table featuring a single debug port, the PL011. > >> > >> The DBG2 specification can be found at > >> "Microsoft Debug Port Table 2 (DBG2)" > >> https://docs.microsoft.com/en-us/windows-hardware/drivers/bringup/acpi-debug-port-table?redirectedfrom=MSDN > >> > >> Signed-off-by: Eric Auger <eric.auger@redhat.com> > >> > >> --- > >> > >> v2 -> v3: > >> Took into account all comments from Igor on v2: > >> mostly style adjustment, revision references > >> > >> v1 -> v2: > >> - rebased on Igor's refactoring > >> --- > >> hw/arm/virt-acpi-build.c | 62 +++++++++++++++++++++++++++++++++++++++- > >> 1 file changed, 61 insertions(+), 1 deletion(-) > >> > >> diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c > >> index 6cec97352b..257d0fee17 100644 > >> --- a/hw/arm/virt-acpi-build.c > >> +++ b/hw/arm/virt-acpi-build.c > >> @@ -616,6 +616,63 @@ build_gtdt(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) > >> acpi_table_end(linker, &table); > >> } > >> > >> +/* Debug Port Table 2 (DBG2) */ > >> +static void > >> +build_dbg2(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) > > nit: I didn't think QEMU liked this style, i.e. QEMU prefers > > > > static void build_dbg2(GArray *table_data, BIOSLinker *linker, > > VirtMachineState *vms) > > > > Eh, I see that hw/arm/virt-acpi-build.c is full of the format you have > > here, so never mind. > > > >> +{ > >> + AcpiTable table = { .sig = "DBG2", .rev = 3, .oem_id = vms->oem_id, > > Can you explain where the .rev = 3 comes from? The spec says "For this > > version of the specification, this value is 0." > The above revision field belongs to the acpi table header. Not to be > mixed with the Revision field of the DBG2 table > which is set below (set to 0): > > + build_append_int_noprefix(table_data, 0, 1); /* Revision */ > > Besides that's a good question. I have rev=3 here but that must come from a copy/paste. when googling I > found > > https://lists.denx.de/pipermail/u-boot/2015-June/217134.html > /header->revision = 1; /* ACPI 1.0/2.0: 1, ACPI 3.0: 2, ACPI 4.0: 3 */ > Not sure if 3 is the right value though? Igor, please could you advise? > Thanks Eric / > "Table 1. Debug Port Table 2 format" says table revision must be 0 > > > > > >> + .oem_table_id = vms->oem_table_id }; > >> + int dbg2devicelength; > >> + const char name[] = "COM0"; > >> + const int namespace_length = sizeof(name); > >> + > >> + acpi_table_begin(&table, table_data); > >> + > >> + dbg2devicelength = 22 /* BaseAddressRegister[] offset */ + > >> + 12 /* BaseAddressRegister[] */ + > >> + 4 /* AddressSize[] */ + > > I'd personally prefer the '+' before the comment, but maybe Igor has a > > special ACPI code format preference here. indeed '+' before comment should look better > > > >> + namespace_length /* NamespaceString[] */; > >> + > >> + /* OffsetDbgDeviceInfo */ > >> + build_append_int_noprefix(table_data, 44, 4); > >> + /* NumberDbgDeviceInfo */ > >> + build_append_int_noprefix(table_data, 1, 4); > >> + > >> + /* Table 2. Debug Device Information structure format */ > >> + build_append_int_noprefix(table_data, 0, 1); /* Revision */ > >> + build_append_int_noprefix(table_data, dbg2devicelength, 2); /* Length */ > >> + /* NumberofGenericAddressRegisters */ > >> + build_append_int_noprefix(table_data, 1, 1); > >> + /* NameSpaceStringLength */ > >> + build_append_int_noprefix(table_data, namespace_length, 2); > >> + build_append_int_noprefix(table_data, 38, 2); /* NameSpaceStringOffset */ > >> + build_append_int_noprefix(table_data, 0, 2); /* OemDataLength */ > >> + /* OemDataOffset (0 means no OEM data) */ > >> + build_append_int_noprefix(table_data, 0, 2); > >> + > >> + /* Port Type */ > >> + build_append_int_noprefix(table_data, 0x8000 /* Serial */, 2); > >> + /* Port Subtype */ > >> + build_append_int_noprefix(table_data, 0x3 /* ARM PL011 UART */, 2); > >> + build_append_int_noprefix(table_data, 0, 2); /* Reserved */ > >> + /* BaseAddressRegisterOffset */ > >> + build_append_int_noprefix(table_data, 22, 2); > >> + /* AddressSizeOffset */ > >> + build_append_int_noprefix(table_data, 34, 2); > >> + > >> + /* BaseAddressRegister[] */ > >> + build_append_gas(table_data, AML_AS_SYSTEM_MEMORY, 8, 0, 1, > >> + vms->memmap[VIRT_UART].base); > >> + > >> + /* AddressSize[] */ > >> + build_append_int_noprefix(table_data, 0x1000 /* Register Space */, 4); > >> + > >> + /* NamespaceString[] */ > >> + g_array_append_vals(table_data, name, namespace_length); > >> + > >> + acpi_table_end(linker, &table); > >> +}; > >> + > >> /* > >> * ACPI spec, Revision 5.1 Errata A > >> * 5.2.12 Multiple APIC Description Table (MADT) > >> @@ -875,7 +932,7 @@ void virt_acpi_build(VirtMachineState *vms, AcpiBuildTables *tables) > >> dsdt = tables_blob->len; > >> build_dsdt(tables_blob, tables->linker, vms); > >> > >> - /* FADT MADT GTDT MCFG SPCR pointed to by RSDT */ > >> + /* FADT MADT GTDT MCFG SPCR DBG2 pointed to by RSDT */ > >> acpi_add_table(table_offsets, tables_blob); > >> build_fadt_rev5(tables_blob, tables->linker, vms, dsdt); > >> > >> @@ -898,6 +955,9 @@ void virt_acpi_build(VirtMachineState *vms, AcpiBuildTables *tables) > >> acpi_add_table(table_offsets, tables_blob); > >> build_spcr(tables_blob, tables->linker, vms); > >> > >> + acpi_add_table(table_offsets, tables_blob); > >> + build_dbg2(tables_blob, tables->linker, vms); > >> + > >> if (vms->ras) { > >> build_ghes_error_table(tables->hardware_errors, tables->linker); > >> acpi_add_table(table_offsets, tables_blob); > >> -- > >> 2.26.3 > >> > > Thanks, > > drew > > > ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v3 2/3] hw/arm/virt_acpi_build: Generate DBG2 table 2021-10-06 13:46 ` Igor Mammedov @ 2021-10-06 13:59 ` Eric Auger 0 siblings, 0 replies; 10+ messages in thread From: Eric Auger @ 2021-10-06 13:59 UTC (permalink / raw) To: Igor Mammedov Cc: peter.maydell, Andrew Jones, gshan, mst, qemu-devel, shannon.zhaosl, qemu-arm, philmd, ardb, eric.auger.pro Hi, On 10/6/21 3:46 PM, Igor Mammedov wrote: > On Wed, 6 Oct 2021 11:57:07 +0200 > Eric Auger <eric.auger@redhat.com> wrote: > >> Hi, >> >> On 10/6/21 11:15 AM, Andrew Jones wrote: >>> On Mon, Sep 27, 2021 at 03:17:31PM +0200, Eric Auger wrote: >>>> ARM SBBR specification mandates DBG2 table (Debug Port Table 2) >>>> since v1.0 (ARM DEN0044F 8.3.1.7 DBG2). >>>> >>>> The DBG2 table allows to describe one or more debug ports. >>>> >>>> Generate an DBG2 table featuring a single debug port, the PL011. >>>> >>>> The DBG2 specification can be found at >>>> "Microsoft Debug Port Table 2 (DBG2)" >>>> https://docs.microsoft.com/en-us/windows-hardware/drivers/bringup/acpi-debug-port-table?redirectedfrom=MSDN >>>> >>>> Signed-off-by: Eric Auger <eric.auger@redhat.com> >>>> >>>> --- >>>> >>>> v2 -> v3: >>>> Took into account all comments from Igor on v2: >>>> mostly style adjustment, revision references >>>> >>>> v1 -> v2: >>>> - rebased on Igor's refactoring >>>> --- >>>> hw/arm/virt-acpi-build.c | 62 +++++++++++++++++++++++++++++++++++++++- >>>> 1 file changed, 61 insertions(+), 1 deletion(-) >>>> >>>> diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c >>>> index 6cec97352b..257d0fee17 100644 >>>> --- a/hw/arm/virt-acpi-build.c >>>> +++ b/hw/arm/virt-acpi-build.c >>>> @@ -616,6 +616,63 @@ build_gtdt(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) >>>> acpi_table_end(linker, &table); >>>> } >>>> >>>> +/* Debug Port Table 2 (DBG2) */ >>>> +static void >>>> +build_dbg2(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) >>> nit: I didn't think QEMU liked this style, i.e. QEMU prefers >>> >>> static void build_dbg2(GArray *table_data, BIOSLinker *linker, >>> VirtMachineState *vms) >>> >>> Eh, I see that hw/arm/virt-acpi-build.c is full of the format you have >>> here, so never mind. >>> >>>> +{ >>>> + AcpiTable table = { .sig = "DBG2", .rev = 3, .oem_id = vms->oem_id, >>> Can you explain where the .rev = 3 comes from? The spec says "For this >>> version of the specification, this value is 0." >> The above revision field belongs to the acpi table header. Not to be >> mixed with the Revision field of the DBG2 table >> which is set below (set to 0): >> >> + build_append_int_noprefix(table_data, 0, 1); /* Revision */ >> >> Besides that's a good question. I have rev=3 here but that must come from a copy/paste. when googling I >> found >> >> https://lists.denx.de/pipermail/u-boot/2015-June/217134.html >> /header->revision = 1; /* ACPI 1.0/2.0: 1, ACPI 3.0: 2, ACPI 4.0: 3 */ >> Not sure if 3 is the right value though? Igor, please could you advise? >> Thanks Eric / >> > "Table 1. Debug Port Table 2 format" > says table revision must be 0 Hum OK, sorry was confused by the 2 different revision fields. I will fix that. > >>> >>>> + .oem_table_id = vms->oem_table_id }; >>>> + int dbg2devicelength; >>>> + const char name[] = "COM0"; >>>> + const int namespace_length = sizeof(name); >>>> + >>>> + acpi_table_begin(&table, table_data); >>>> + >>>> + dbg2devicelength = 22 /* BaseAddressRegister[] offset */ + >>>> + 12 /* BaseAddressRegister[] */ + >>>> + 4 /* AddressSize[] */ + >>> I'd personally prefer the '+' before the comment, but maybe Igor has a >>> special ACPI code format preference here. > indeed '+' before comment should look better OK Eric > >>> >>>> + namespace_length /* NamespaceString[] */; >>>> + >>>> + /* OffsetDbgDeviceInfo */ >>>> + build_append_int_noprefix(table_data, 44, 4); >>>> + /* NumberDbgDeviceInfo */ >>>> + build_append_int_noprefix(table_data, 1, 4); >>>> + >>>> + /* Table 2. Debug Device Information structure format */ >>>> + build_append_int_noprefix(table_data, 0, 1); /* Revision */ >>>> + build_append_int_noprefix(table_data, dbg2devicelength, 2); /* Length */ >>>> + /* NumberofGenericAddressRegisters */ >>>> + build_append_int_noprefix(table_data, 1, 1); >>>> + /* NameSpaceStringLength */ >>>> + build_append_int_noprefix(table_data, namespace_length, 2); >>>> + build_append_int_noprefix(table_data, 38, 2); /* NameSpaceStringOffset */ >>>> + build_append_int_noprefix(table_data, 0, 2); /* OemDataLength */ >>>> + /* OemDataOffset (0 means no OEM data) */ >>>> + build_append_int_noprefix(table_data, 0, 2); >>>> + >>>> + /* Port Type */ >>>> + build_append_int_noprefix(table_data, 0x8000 /* Serial */, 2); >>>> + /* Port Subtype */ >>>> + build_append_int_noprefix(table_data, 0x3 /* ARM PL011 UART */, 2); >>>> + build_append_int_noprefix(table_data, 0, 2); /* Reserved */ >>>> + /* BaseAddressRegisterOffset */ >>>> + build_append_int_noprefix(table_data, 22, 2); >>>> + /* AddressSizeOffset */ >>>> + build_append_int_noprefix(table_data, 34, 2); >>>> + >>>> + /* BaseAddressRegister[] */ >>>> + build_append_gas(table_data, AML_AS_SYSTEM_MEMORY, 8, 0, 1, >>>> + vms->memmap[VIRT_UART].base); >>>> + >>>> + /* AddressSize[] */ >>>> + build_append_int_noprefix(table_data, 0x1000 /* Register Space */, 4); >>>> + >>>> + /* NamespaceString[] */ >>>> + g_array_append_vals(table_data, name, namespace_length); >>>> + >>>> + acpi_table_end(linker, &table); >>>> +}; >>>> + >>>> /* >>>> * ACPI spec, Revision 5.1 Errata A >>>> * 5.2.12 Multiple APIC Description Table (MADT) >>>> @@ -875,7 +932,7 @@ void virt_acpi_build(VirtMachineState *vms, AcpiBuildTables *tables) >>>> dsdt = tables_blob->len; >>>> build_dsdt(tables_blob, tables->linker, vms); >>>> >>>> - /* FADT MADT GTDT MCFG SPCR pointed to by RSDT */ >>>> + /* FADT MADT GTDT MCFG SPCR DBG2 pointed to by RSDT */ >>>> acpi_add_table(table_offsets, tables_blob); >>>> build_fadt_rev5(tables_blob, tables->linker, vms, dsdt); >>>> >>>> @@ -898,6 +955,9 @@ void virt_acpi_build(VirtMachineState *vms, AcpiBuildTables *tables) >>>> acpi_add_table(table_offsets, tables_blob); >>>> build_spcr(tables_blob, tables->linker, vms); >>>> >>>> + acpi_add_table(table_offsets, tables_blob); >>>> + build_dbg2(tables_blob, tables->linker, vms); >>>> + >>>> if (vms->ras) { >>>> build_ghes_error_table(tables->hardware_errors, tables->linker); >>>> acpi_add_table(table_offsets, tables_blob); >>>> -- >>>> 2.26.3 >>>> >>> Thanks, >>> drew >>> ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v3 3/3] bios-tables-test: Generate reference table for virt/DBG2 2021-09-27 13:17 [PATCH v3 0/3] hw/arm/virt_acpi_build: Generate DBG2 table Eric Auger 2021-09-27 13:17 ` [PATCH v3 1/3] tests/acpi: Add void table for virt/DBG2 bios-tables-test Eric Auger 2021-09-27 13:17 ` [PATCH v3 2/3] hw/arm/virt_acpi_build: Generate DBG2 table Eric Auger @ 2021-09-27 13:17 ` Eric Auger 2021-10-05 15:08 ` [PATCH v3 0/3] hw/arm/virt_acpi_build: Generate DBG2 table Michael S. Tsirkin 3 siblings, 0 replies; 10+ messages in thread From: Eric Auger @ 2021-09-27 13:17 UTC (permalink / raw) To: eric.auger.pro, eric.auger, mst, imammedo, philmd, peter.maydell, shannon.zhaosl, qemu-arm, qemu-devel, ardb, drjones Cc: gshan Add the DBG2 table generated with tests/data/acpi/rebuild-expected-aml.sh Signed-off-by: Eric Auger <eric.auger@redhat.com> --- Tested by comparing the content with the table generated by EDK2 along with the SBSA-REF machine (code generated by DynamicTablesPkg/Library/Acpi/Arm/AcpiDbg2LibArm/Dbg2Generator.c). I reused the Generic Address Structure filled by QEMU in the SPCR, ie. bit_width = 8 and byte access. While EDK2 sets bit_width = 32 and dword access. Also the name exposed by acpica tools is different: 'COM0' in my case where '\_SB.COM0' in SBSA-REF case? Here is the human readable content: [000h 0000 4] Signature : "DBG2" [Debug Port table type 2] [004h 0004 4] Table Length : 00000057 [008h 0008 1] Revision : 03 [009h 0009 1] Checksum : C8 [00Ah 0010 6] Oem ID : "BOCHS " [010h 0016 8] Oem Table ID : "BXPC " [018h 0024 4] Oem Revision : 00000001 [01Ch 0028 4] Asl Compiler ID : "BXPC" [020h 0032 4] Asl Compiler Revision : 00000001 [024h 0036 4] Info Offset : 0000002C [028h 0040 4] Info Count : 00000001 [02Ch 0044 1] Revision : 00 [02Dh 0045 2] Length : 002B [02Fh 0047 1] Register Count : 01 [030h 0048 2] Namepath Length : 0005 [032h 0050 2] Namepath Offset : 0026 [034h 0052 2] OEM Data Length : 0000 [Optional field not present] [036h 0054 2] OEM Data Offset : 0000 [Optional field not present] [038h 0056 2] Port Type : 8000 [03Ah 0058 2] Port Subtype : 0003 [03Ch 0060 2] Reserved : 0000 [03Eh 0062 2] Base Address Offset : 0016 [040h 0064 2] Address Size Offset : 0022 [042h 0066 12] Base Address Register : [Generic Address Structure] [042h 0066 1] Space ID : 00 [SystemMemory] [043h 0067 1] Bit Width : 08 [044h 0068 1] Bit Offset : 00 [045h 0069 1] Encoded Access Width : 01 [Byte Access:8] [046h 0070 8] Address : 0000000009000000 [04Eh 0078 4] Address Size : 00001000 [052h 0082 5] Namepath : "COM0" --- tests/qtest/bios-tables-test-allowed-diff.h | 1 - tests/data/acpi/virt/DBG2 | Bin 0 -> 87 bytes 2 files changed, 1 deletion(-) diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h index 1910d154c2..dfb8523c8b 100644 --- a/tests/qtest/bios-tables-test-allowed-diff.h +++ b/tests/qtest/bios-tables-test-allowed-diff.h @@ -1,2 +1 @@ /* List of comma-separated changed AML files to ignore */ -"tests/data/acpi/virt/DBG2", diff --git a/tests/data/acpi/virt/DBG2 b/tests/data/acpi/virt/DBG2 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..23cd281683752a3ff628d042d2906169319013ac 100644 GIT binary patch literal 87 zcmZ>9ayJTRU|?WA<K*w`5v<@85#X!<1dKp25F14605OPW&}Lv{Wl#gL7#JFufrJ=? V5(5JVSdtSgD!{<t?C)#9000be2>}2A literal 0 HcmV?d00001 -- 2.26.3 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v3 0/3] hw/arm/virt_acpi_build: Generate DBG2 table 2021-09-27 13:17 [PATCH v3 0/3] hw/arm/virt_acpi_build: Generate DBG2 table Eric Auger ` (2 preceding siblings ...) 2021-09-27 13:17 ` [PATCH v3 3/3] bios-tables-test: Generate reference table for virt/DBG2 Eric Auger @ 2021-10-05 15:08 ` Michael S. Tsirkin 3 siblings, 0 replies; 10+ messages in thread From: Michael S. Tsirkin @ 2021-10-05 15:08 UTC (permalink / raw) To: Eric Auger Cc: peter.maydell, drjones, gshan, qemu-devel, shannon.zhaosl, qemu-arm, imammedo, philmd, ardb, eric.auger.pro On Mon, Sep 27, 2021 at 03:17:29PM +0200, Eric Auger wrote: > This series generates the ACPI DBG2 table along with machvirt. > It applies on top of Igor's > [PATCH v4 00/35] acpi: refactor error prone build_header() and > packed structures usage in ACPI tables > > The DBG2 specification can be found at > https://docs.microsoft.com/en-us/windows-hardware/drivers/bringup/acpi-debug-port-table. > > DBG2 is mandated by ARM SBBR since its v1.0 release (the rationale > behind is Windows requires it on all systems). > > The DBG2 is used to describe a debug port, used by the kernel debugger. > > This series and its dependency can be found at > https://github.com/eauger/qemu.git > branch: igor_acpi_refactoring_v4_dbg2_v3 Acked-by: Michael S. Tsirkin <mst@redhat.com> > History: > v2 -> v3: > - addressed all comments from Igor on v2: > patches 2/3 swapped > style adjustments in "hw/arm/virt_acpi_build: Generate DBG2 table" > + more precision on spec references > > v1 -> v2: > - rebase on top of Igor's series and use acpi_init_table/acpi_table_composed > and build_append_int_noprefix() > > > Eric Auger (3): > tests/acpi: Add void table for virt/DBG2 bios-tables-test > hw/arm/virt_acpi_build: Generate DBG2 table > bios-tables-test: Generate reference table for virt/DBG2 > > hw/arm/virt-acpi-build.c | 62 +++++++++++++++++++++++++++++++++++++- > tests/data/acpi/virt/DBG2 | Bin 0 -> 87 bytes > 2 files changed, 61 insertions(+), 1 deletion(-) > create mode 100644 tests/data/acpi/virt/DBG2 > > -- > 2.26.3 ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2021-10-06 14:02 UTC | newest] Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-09-27 13:17 [PATCH v3 0/3] hw/arm/virt_acpi_build: Generate DBG2 table Eric Auger 2021-09-27 13:17 ` [PATCH v3 1/3] tests/acpi: Add void table for virt/DBG2 bios-tables-test Eric Auger 2021-09-27 13:17 ` [PATCH v3 2/3] hw/arm/virt_acpi_build: Generate DBG2 table Eric Auger 2021-10-06 8:25 ` Igor Mammedov 2021-10-06 9:15 ` Andrew Jones 2021-10-06 9:57 ` Eric Auger 2021-10-06 13:46 ` Igor Mammedov 2021-10-06 13:59 ` Eric Auger 2021-09-27 13:17 ` [PATCH v3 3/3] bios-tables-test: Generate reference table for virt/DBG2 Eric Auger 2021-10-05 15:08 ` [PATCH v3 0/3] hw/arm/virt_acpi_build: Generate DBG2 table Michael S. Tsirkin
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).