qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/3] hw/arm/virt_acpi_build: Generate DBG2 table
@ 2021-09-06 12:31 Eric Auger
  2021-09-06 12:31 ` [PATCH v2 1/3] tests/acpi: Add void table for virt/DBG2 bios-tables-test Eric Auger
                   ` (4 more replies)
  0 siblings, 5 replies; 9+ messages in thread
From: Eric Auger @ 2021-09-06 12:31 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 v2 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: dbg2-v2-igor-v2-fix

History:
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
  bios-tables-test: Generate reference table for virt/DBG2
  hw/arm/virt_acpi_build: Generate DBG2 table

 hw/arm/virt-acpi-build.c  |  64 +++++++++++++++++++++++++++++++++++++-
 tests/data/acpi/virt/DBG2 | Bin 0 -> 87 bytes
 2 files changed, 63 insertions(+), 1 deletion(-)
 create mode 100644 tests/data/acpi/virt/DBG2

-- 
2.26.3



^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH v2 1/3] tests/acpi: Add void table for virt/DBG2 bios-tables-test
  2021-09-06 12:31 [PATCH v2 0/3] hw/arm/virt_acpi_build: Generate DBG2 table Eric Auger
@ 2021-09-06 12:31 ` Eric Auger
  2021-09-07 10:20   ` Igor Mammedov
  2021-09-06 12:31 ` [PATCH v2 2/3] bios-tables-test: Generate reference table for virt/DBG2 Eric Auger
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 9+ messages in thread
From: Eric Auger @ 2021-09-06 12:31 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 this later for the time being.

Signed-off-by: Eric Auger <eric.auger@redhat.com>
---
 tests/data/acpi/virt/DBG2                   | 0
 tests/qtest/bios-tables-test-allowed-diff.h | 1 +
 2 files changed, 1 insertion(+)
 create mode 100644 tests/data/acpi/virt/DBG2

diff --git a/tests/data/acpi/virt/DBG2 b/tests/data/acpi/virt/DBG2
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h
index dfb8523c8bf..1910d154c27 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",
-- 
2.26.3



^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v2 2/3] bios-tables-test: Generate reference table for virt/DBG2
  2021-09-06 12:31 [PATCH v2 0/3] hw/arm/virt_acpi_build: Generate DBG2 table Eric Auger
  2021-09-06 12:31 ` [PATCH v2 1/3] tests/acpi: Add void table for virt/DBG2 bios-tables-test Eric Auger
@ 2021-09-06 12:31 ` Eric Auger
  2021-09-06 12:31 ` [PATCH v2 3/3] hw/arm/virt_acpi_build: Generate DBG2 table Eric Auger
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 9+ messages in thread
From: Eric Auger @ 2021-09-06 12:31 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 : 002F
[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/data/acpi/virt/DBG2                   | Bin 0 -> 87 bytes
 tests/qtest/bios-tables-test-allowed-diff.h |   1 -
 2 files changed, 1 deletion(-)

diff --git a/tests/data/acpi/virt/DBG2 b/tests/data/acpi/virt/DBG2
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..895679cec0732f4109322b59b532e904885e1cca 100644
GIT binary patch
literal 87
zcmZ>9ayJTRU|?WA;pFe^5v<@85#X!<1dKp25F14605OPW&}U#|Wl#gL7#JFufrJ=?
V5(5JVSdtSgD!{<t?C)#9000Z&2>}2A

literal 0
HcmV?d00001

diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h
index 1910d154c27..dfb8523c8bf 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",
-- 
2.26.3



^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v2 3/3] hw/arm/virt_acpi_build: Generate DBG2 table
  2021-09-06 12:31 [PATCH v2 0/3] hw/arm/virt_acpi_build: Generate DBG2 table Eric Auger
  2021-09-06 12:31 ` [PATCH v2 1/3] tests/acpi: Add void table for virt/DBG2 bios-tables-test Eric Auger
  2021-09-06 12:31 ` [PATCH v2 2/3] bios-tables-test: Generate reference table for virt/DBG2 Eric Auger
@ 2021-09-06 12:31 ` Eric Auger
  2021-09-07 10:18   ` Igor Mammedov
  2021-09-07  7:02 ` [PATCH v2 0/3] " Igor Mammedov
  2021-09-08  9:14 ` Andrew Jones
  4 siblings, 1 reply; 9+ messages in thread
From: Eric Auger @ 2021-09-06 12:31 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).
this latter 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:
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>

---
v1 -> v2:
- rebased on Igor's refactoring
---
 hw/arm/virt-acpi-build.c | 64 +++++++++++++++++++++++++++++++++++++++-
 1 file changed, 63 insertions(+), 1 deletion(-)

diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c
index 488ea04eed7..de604e79779 100644
--- a/hw/arm/virt-acpi-build.c
+++ b/hw/arm/virt-acpi-build.c
@@ -512,6 +512,65 @@ build_gtdt(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms)
     acpi_table_composed(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, baseaddroffset = 22, namespace_length;
+    char name[] = "COM0";
+
+    acpi_init_table(&table, table_data);
+
+    namespace_length = sizeof name;
+    dbg2devicelength = baseaddroffset +
+                       sizeof(struct AcpiGenericAddress) + 4 + namespace_length;
+
+    /* offset to the first debug struct */
+    build_append_int_noprefix(table_data, 44, 4);
+    /* number of debug device info struct entries */
+    build_append_int_noprefix(table_data, 1, 4);
+
+    /* debug device info structure */
+    /* revision */
+    build_append_int_noprefix(table_data, 0, 1);
+    /* length */
+    build_append_int_noprefix(table_data, dbg2devicelength, 2);
+    /* register count */
+    build_append_int_noprefix(table_data, 1, 1);
+    /* name path length */
+    build_append_int_noprefix(table_data, namespace_length, 2);
+    /* name path offset */
+    build_append_int_noprefix(table_data, 38, 2);
+    /* oem data length */
+    build_append_int_noprefix(table_data, 0, 2);
+    /* oem data offset (0 means no OEM data) */
+    build_append_int_noprefix(table_data, 0, 2);
+    /* port type (serial port) */
+    build_append_int_noprefix(table_data, 0x8000, 2);
+    /* port subtype (ARM PL011)*/
+    build_append_int_noprefix(table_data, 0x3, 2);
+    /* reserved */
+    build_append_int_noprefix(table_data, 0, 2);
+    /* base address offset */
+    build_append_int_noprefix(table_data, 22, 2);
+    /* address size offset */
+    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 (PL011 UART length) */
+    build_append_int_noprefix(table_data, 0x1000, 4);
+
+    /* NamespaceString */
+    g_array_append_vals(table_data, name, namespace_length);
+
+    acpi_table_composed(linker, &table);
+};
+
 /*
  * ACPI spec, Revision 5.1 Errata A
  * 5.2.12 Multiple APIC Description Table (MADT)
@@ -770,7 +829,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);
 
@@ -793,6 +852,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] 9+ messages in thread

* Re: [PATCH v2 0/3] hw/arm/virt_acpi_build: Generate DBG2 table
  2021-09-06 12:31 [PATCH v2 0/3] hw/arm/virt_acpi_build: Generate DBG2 table Eric Auger
                   ` (2 preceding siblings ...)
  2021-09-06 12:31 ` [PATCH v2 3/3] hw/arm/virt_acpi_build: Generate DBG2 table Eric Auger
@ 2021-09-07  7:02 ` Igor Mammedov
  2021-09-08  9:14 ` Andrew Jones
  4 siblings, 0 replies; 9+ messages in thread
From: Igor Mammedov @ 2021-09-07  7:02 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,  6 Sep 2021 14:31:36 +0200
Eric Auger <eric.auger@redhat.com> wrote:

> This series generates the ACPI DBG2 table along with machvirt.
> It applies on top of Igor's
> [PATCH v2 00/35] acpi: refactor error prone build_header() and
> packed structures usage in ACPI tables


FYI: I'm preparing to post v3 today, with so far received feedback
addressed. Change that will affect 3/3 is
 s/acpi_init_table|acpi_table_composed/acpi_table_begin|acpi_table_end/


> 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: dbg2-v2-igor-v2-fix
> 
> History:
> 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

>   bios-tables-test: Generate reference table for virt/DBG2
>   hw/arm/virt_acpi_build: Generate DBG2 table

I'd swap 2/3 and 3/3, so it would be obvious where DBG2 comes from.

> 
>  hw/arm/virt-acpi-build.c  |  64 +++++++++++++++++++++++++++++++++++++-
>  tests/data/acpi/virt/DBG2 | Bin 0 -> 87 bytes
>  2 files changed, 63 insertions(+), 1 deletion(-)
>  create mode 100644 tests/data/acpi/virt/DBG2
> 



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 3/3] hw/arm/virt_acpi_build: Generate DBG2 table
  2021-09-06 12:31 ` [PATCH v2 3/3] hw/arm/virt_acpi_build: Generate DBG2 table Eric Auger
@ 2021-09-07 10:18   ` Igor Mammedov
  0 siblings, 0 replies; 9+ messages in thread
From: Igor Mammedov @ 2021-09-07 10:18 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,  6 Sep 2021 14:31:39 +0200
Eric Auger <eric.auger@redhat.com> wrote:

> ARM SBBR specification  mandates DBG2 table (Debug Port Table 2).
                        ^^ revision here, and possibly a pointer [chapter]
                           to concrete place in spec where it's said.

> this latter 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:
> https://docs.microsoft.com/en-us/windows-hardware/drivers/bringup/acpi-debug-port-table?redirectedfrom=MSDN

links tend to go stale, I'd use a combo of name and optionally link here:
 "Microsoft Debug Port Table 2 (DBG2)"
    link
 
> Signed-off-by: Eric Auger <eric.auger@redhat.com>

table looks correct,
so only style related thing to fix to match the common
ACPI code style.

> 
> ---
> v1 -> v2:
> - rebased on Igor's refactoring
> ---
>  hw/arm/virt-acpi-build.c | 64 +++++++++++++++++++++++++++++++++++++++-
>  1 file changed, 63 insertions(+), 1 deletion(-)
> 
> diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c
> index 488ea04eed7..de604e79779 100644
> --- a/hw/arm/virt-acpi-build.c
> +++ b/hw/arm/virt-acpi-build.c
> @@ -512,6 +512,65 @@ build_gtdt(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms)
>      acpi_table_composed(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, baseaddroffset = 22, namespace_length;
> +    char name[] = "COM0";
const?

Also I'd move here:
       const int namespace_length = sizeof(name);

> +
> +    acpi_init_table(&table, table_data);
> +
> +    namespace_length = sizeof name;
> +    dbg2devicelength = baseaddroffset +
> +                       sizeof(struct AcpiGenericAddress) + 4 + namespace_length;
                          ^^^^, fragile as it's subject to alignment which depends on target

I suggest following style:
       
       dbg2devicelength = 22 /* BaseAddressRegister[] offset, fixed size table header */ +
                          12 /* BaseAddressRegister[] */ +
                          4 /* AddressSize[] */
                          namespace_length /* NamespaceString[] */;

       and drop 'baseaddroffset' and 'sizeof(struct AcpiGenericAddress)'
       to be more consistent with other ACPI code to annotate where lengths come from

> +    /* offset to the first debug struct */
         comment should be verbatim field name from spec table, i.e. in this case 
            /* OffsetDbgDeviceInfo */
         ditto for the rest of field comments

> +    build_append_int_noprefix(table_data, 44, 4);
> +    /* number of debug device info struct entries */
> +    build_append_int_noprefix(table_data, 1, 4);
> +
> +    /* debug device info structure */

copy from spec, for ease to find it using just copy/past,

 /* Table 2. Debug Device Information structure format */

> +    /* revision */
> +    build_append_int_noprefix(table_data, 0, 1);
> +    /* length */
> +    build_append_int_noprefix(table_data, dbg2devicelength, 2);
> +    /* register count */
> +    build_append_int_noprefix(table_data, 1, 1);
> +    /* name path length */
> +    build_append_int_noprefix(table_data, namespace_length, 2);
> +    /* name path offset */
> +    build_append_int_noprefix(table_data, 38, 2);
> +    /* oem data length */
> +    build_append_int_noprefix(table_data, 0, 2);
> +    /* oem data offset (0 means no OEM data) */
> +    build_append_int_noprefix(table_data, 0, 2);
> +    /* port type (serial port) */
> +    build_append_int_noprefix(table_data, 0x8000, 2);
values could be annotated like following, using description from spec:

          build_append_int_noprefix(table_data, 0x8000 /* Serial */, 2);

> +    /* port subtype (ARM PL011)*/
> +    build_append_int_noprefix(table_data, 0x3, 2);
                                             0x3 /* ARM PL011 UART */

it gives checkpatch warning but all APCI code uses this style,
so it's fine

> +    /* reserved */
> +    build_append_int_noprefix(table_data, 0, 2);
> +    /* base address offset */
> +    build_append_int_noprefix(table_data, 22, 2);
> +    /* address size offset */
> +    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 (PL011 UART length) */
> +    build_append_int_noprefix(table_data, 0x1000, 4);
                                             ^^^^
at least point out where it comes from or use macro to define
value and use it here and in pl011_init()


> +
> +    /* NamespaceString */
> +    g_array_append_vals(table_data, name, namespace_length);
> +
> +    acpi_table_composed(linker, &table);
> +};
> +
>  /*
>   * ACPI spec, Revision 5.1 Errata A
>   * 5.2.12 Multiple APIC Description Table (MADT)
> @@ -770,7 +829,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);
>  
> @@ -793,6 +852,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] 9+ messages in thread

* Re: [PATCH v2 1/3] tests/acpi: Add void table for virt/DBG2 bios-tables-test
  2021-09-06 12:31 ` [PATCH v2 1/3] tests/acpi: Add void table for virt/DBG2 bios-tables-test Eric Auger
@ 2021-09-07 10:20   ` Igor Mammedov
  0 siblings, 0 replies; 9+ messages in thread
From: Igor Mammedov @ 2021-09-07 10:20 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,  6 Sep 2021 14:31:37 +0200
Eric Auger <eric.auger@redhat.com> wrote:

> Add placeholders for DBG2 reference table for
> virt tests and ignore this later for the time being.

s/ignore.*/ignore till reference blob is added /

> 
> Signed-off-by: Eric Auger <eric.auger@redhat.com>

Acked-by: Igor Mammedov <imammedo@redhat.com>

> ---
>  tests/data/acpi/virt/DBG2                   | 0
>  tests/qtest/bios-tables-test-allowed-diff.h | 1 +
>  2 files changed, 1 insertion(+)
>  create mode 100644 tests/data/acpi/virt/DBG2
> 
> diff --git a/tests/data/acpi/virt/DBG2 b/tests/data/acpi/virt/DBG2
> new file mode 100644
> index 00000000000..e69de29bb2d
> diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h
> index dfb8523c8bf..1910d154c27 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",



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 0/3] hw/arm/virt_acpi_build: Generate DBG2 table
  2021-09-06 12:31 [PATCH v2 0/3] hw/arm/virt_acpi_build: Generate DBG2 table Eric Auger
                   ` (3 preceding siblings ...)
  2021-09-07  7:02 ` [PATCH v2 0/3] " Igor Mammedov
@ 2021-09-08  9:14 ` Andrew Jones
  2021-09-09 15:41   ` Eric Auger
  4 siblings, 1 reply; 9+ messages in thread
From: Andrew Jones @ 2021-09-08  9:14 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 06, 2021 at 02:31:36PM +0200, Eric Auger wrote:
> This series generates the ACPI DBG2 table along with machvirt.
> It applies on top of Igor's
> [PATCH v2 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.

Hi Eric,

Did you test this in some way with a Linux guest?

Thanks,
drew

> 
> This series and its dependency can be found at
> https://github.com/eauger/qemu.git
> branch: dbg2-v2-igor-v2-fix
> 
> History:
> 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
>   bios-tables-test: Generate reference table for virt/DBG2
>   hw/arm/virt_acpi_build: Generate DBG2 table
> 
>  hw/arm/virt-acpi-build.c  |  64 +++++++++++++++++++++++++++++++++++++-
>  tests/data/acpi/virt/DBG2 | Bin 0 -> 87 bytes
>  2 files changed, 63 insertions(+), 1 deletion(-)
>  create mode 100644 tests/data/acpi/virt/DBG2
> 
> -- 
> 2.26.3
> 



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 0/3] hw/arm/virt_acpi_build: Generate DBG2 table
  2021-09-08  9:14 ` Andrew Jones
@ 2021-09-09 15:41   ` Eric Auger
  0 siblings, 0 replies; 9+ messages in thread
From: Eric Auger @ 2021-09-09 15:41 UTC (permalink / raw)
  To: Andrew Jones
  Cc: peter.maydell, gshan, mst, qemu-devel, Hongbo Zhang,
	shannon.zhaosl, qemu-arm, imammedo, Leif Lindholm, philmd, ardb,
	eric.auger.pro

Hi Drew,

On 9/8/21 11:14 AM, Andrew Jones wrote:
> On Mon, Sep 06, 2021 at 02:31:36PM +0200, Eric Auger wrote:
>> This series generates the ACPI DBG2 table along with machvirt.
>> It applies on top of Igor's
>> [PATCH v2 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.
> Hi Eric,
>
> Did you test this in some way with a Linux guest?

no, I don't know how to test it functionaly. As I diff'ed against
sbsa-ref generated table maybe guys using the sbsa-ref have some proper
testing use case of it? Adding Hongbo and Leif in CC.

Thanks

Eric
>
> Thanks,
> drew
>
>> This series and its dependency can be found at
>> https://github.com/eauger/qemu.git
>> branch: dbg2-v2-igor-v2-fix
>>
>> History:
>> 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
>>   bios-tables-test: Generate reference table for virt/DBG2
>>   hw/arm/virt_acpi_build: Generate DBG2 table
>>
>>  hw/arm/virt-acpi-build.c  |  64 +++++++++++++++++++++++++++++++++++++-
>>  tests/data/acpi/virt/DBG2 | Bin 0 -> 87 bytes
>>  2 files changed, 63 insertions(+), 1 deletion(-)
>>  create mode 100644 tests/data/acpi/virt/DBG2
>>
>> -- 
>> 2.26.3
>>



^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2021-09-09 15:43 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-06 12:31 [PATCH v2 0/3] hw/arm/virt_acpi_build: Generate DBG2 table Eric Auger
2021-09-06 12:31 ` [PATCH v2 1/3] tests/acpi: Add void table for virt/DBG2 bios-tables-test Eric Auger
2021-09-07 10:20   ` Igor Mammedov
2021-09-06 12:31 ` [PATCH v2 2/3] bios-tables-test: Generate reference table for virt/DBG2 Eric Auger
2021-09-06 12:31 ` [PATCH v2 3/3] hw/arm/virt_acpi_build: Generate DBG2 table Eric Auger
2021-09-07 10:18   ` Igor Mammedov
2021-09-07  7:02 ` [PATCH v2 0/3] " Igor Mammedov
2021-09-08  9:14 ` Andrew Jones
2021-09-09 15:41   ` Eric Auger

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).