From: Igor Mammedov <imammedo@redhat.com>
To: Andrew Jones <drjones@redhat.com>
Cc: Laurent Vivier <lvivier@redhat.com>,
Peter Maydell <peter.maydell@linaro.org>,
Thomas Huth <thuth@redhat.com>,
Samuel Ortiz <sameo@linux.intel.com>,
Ben Warren <ben@skyportsystems.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
qemu-devel@nongnu.org, Shannon Zhao <shannon.zhaosl@gmail.com>,
qemu-arm@nongnu.org, Paolo Bonzini <pbonzini@redhat.com>,
Richard Henderson <rth@twiddle.net>,
Eduardo Habkost <ehabkost@redhat.com>
Subject: Re: [Qemu-arm] [Qemu-devel] [PATCH v3 8/8] hw: acpi: Remove AcpiRsdpDescriptor and fix tests
Date: Tue, 4 Dec 2018 17:43:05 +0100 [thread overview]
Message-ID: <20181204174305.34a8644d@redhat.com> (raw)
In-Reply-To: <20181204151052.otrsahh4dqehiwif@kamzik.brq.redhat.com>
On Tue, 4 Dec 2018 16:10:52 +0100
Andrew Jones <drjones@redhat.com> wrote:
> On Fri, Nov 30, 2018 at 02:00:32PM +0100, Samuel Ortiz wrote:
> > The only remaining AcpiRsdpDescriptor users are the ACPI utils for the
> > BIOS table tests.
> > We remove that dependency and can thus remove the structure itself.
> >
> > Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
> > ---
> > include/hw/acpi/acpi-defs.h | 13 -----------
> > tests/acpi-utils.h | 4 +++-
> > tests/acpi-utils.c | 46 ++++++++++++++++++++++++++++++-------
> > tests/bios-tables-test.c | 21 +++++++++++++----
> > tests/vmgenid-test.c | 8 ++++---
> > 5 files changed, 62 insertions(+), 30 deletions(-)
> >
> > diff --git a/include/hw/acpi/acpi-defs.h b/include/hw/acpi/acpi-defs.h
> > index 8425ecb8c6..5021cb9e79 100644
> > --- a/include/hw/acpi/acpi-defs.h
> > +++ b/include/hw/acpi/acpi-defs.h
> > @@ -40,19 +40,6 @@ enum {
> > ACPI_FADT_F_LOW_POWER_S0_IDLE_CAPABLE,
> > };
> >
> > -struct AcpiRsdpDescriptor { /* Root System Descriptor Pointer */
> > - uint64_t signature; /* ACPI signature, contains "RSD PTR " */
> > - uint8_t checksum; /* To make sum of struct == 0 */
> > - uint8_t oem_id [6]; /* OEM identification */
> > - uint8_t revision; /* Must be 0 for 1.0, 2 for 2.0 */
> > - uint32_t rsdt_physical_address; /* 32-bit physical address of RSDT */
> > - uint32_t length; /* XSDT Length in bytes including hdr */
> > - uint64_t xsdt_physical_address; /* 64-bit physical address of XSDT */
> > - uint8_t extended_checksum; /* Checksum of entire table */
> > - uint8_t reserved [3]; /* Reserved field must be 0 */
> > -} QEMU_PACKED;
> > -typedef struct AcpiRsdpDescriptor AcpiRsdpDescriptor;
> > -
> > typedef struct AcpiRsdpData {
> > uint8_t oem_id[6]; /* OEM identification */
> > uint8_t revision; /* Must be 0 for 1.0, 2 for 2.0 */
> > diff --git a/tests/acpi-utils.h b/tests/acpi-utils.h
> > index ac52abd0dd..4f4899deb5 100644
> > --- a/tests/acpi-utils.h
> > +++ b/tests/acpi-utils.h
> > @@ -82,6 +82,8 @@ typedef struct {
> >
> > uint8_t acpi_calc_checksum(const uint8_t *data, int len);
> > uint32_t acpi_find_rsdp_address(void);
> > -void acpi_parse_rsdp_table(uint32_t addr, AcpiRsdpDescriptor *rsdp_table);
> > +uint32_t acpi_get_rsdt_address(uint8_t *rsdp_table);
> > +uint64_t acpi_get_xsdt_address(uint8_t *rsdp_table);
> > +void acpi_parse_rsdp_table(uint32_t addr, uint8_t *rsdp_table);
> >
> > #endif /* TEST_ACPI_UTILS_H */
> > diff --git a/tests/acpi-utils.c b/tests/acpi-utils.c
> > index 41dc1ea9b4..d07f7487e2 100644
> > --- a/tests/acpi-utils.c
> > +++ b/tests/acpi-utils.c
> > @@ -52,14 +52,44 @@ uint32_t acpi_find_rsdp_address(void)
> > return off;
> > }
> >
> > -void acpi_parse_rsdp_table(uint32_t addr, AcpiRsdpDescriptor *rsdp_table)
> > +uint32_t acpi_get_rsdt_address(uint8_t *rsdp_table)
> > {
> > - ACPI_READ_FIELD(rsdp_table->signature, addr);
> > - ACPI_ASSERT_CMP64(rsdp_table->signature, "RSD PTR ");
> > + uint32_t rsdt_physical_address;
> >
> > - ACPI_READ_FIELD(rsdp_table->checksum, addr);
> > - ACPI_READ_ARRAY(rsdp_table->oem_id, addr);
> > - ACPI_READ_FIELD(rsdp_table->revision, addr);
> > - ACPI_READ_FIELD(rsdp_table->rsdt_physical_address, addr);
> > - ACPI_READ_FIELD(rsdp_table->length, addr);
> > + memcpy(&rsdt_physical_address, &rsdp_table[16 /* RsdtAddress offset */], 4);
> > + return le32_to_cpu(rsdt_physical_address);
> > +}
> > +
> > +uint64_t acpi_get_xsdt_address(uint8_t *rsdp_table)
> > +{
> > + uint64_t xsdt_physical_address;
> > + uint8_t revision = rsdp_table[15 /* Revision offset */];
> > +
> > + /* We must have revision 2 if we're looking for an XSDT pointer */
> > + g_assert(revision == 2);
> > +
> > + memcpy(&xsdt_physical_address, &rsdp_table[24 /* XsdtAddress offset */], 8);
> > + return le64_to_cpu(xsdt_physical_address);
> > +}
> > +
> > +void acpi_parse_rsdp_table(uint32_t addr, uint8_t *rsdp_table)
> > +{
> > + uint8_t revision;
> > +
> > + /* Read mandatory revision 0 table data (20 bytes) first */
> > + memread(addr, rsdp_table, 20);
> > + revision = rsdp_table[15 /* Revision offset */];
> > +
> > + switch (revision) {
> > + case 0: /* ACPI 1.0 RSDP */
> > + break;
> > + case 2: /* ACPI 2.0+ RSDP */
> > + /* Read the rest of the RSDP table */
> > + memread(addr + 20, rsdp_table + 20, 16);
> > + break;
> > + default:
> > + g_assert_not_reached();
> > + }
> > +
> > + ACPI_ASSERT_CMP64(*((uint64_t *)(rsdp_table)), "RSD PTR ");
> > }
> > diff --git a/tests/bios-tables-test.c b/tests/bios-tables-test.c
> > index d661d9be62..8749b77b36 100644
> > --- a/tests/bios-tables-test.c
> > +++ b/tests/bios-tables-test.c
> > @@ -27,7 +27,7 @@ typedef struct {
> > const char *machine;
> > const char *variant;
> > uint32_t rsdp_addr;
> > - AcpiRsdpDescriptor rsdp_table;
> > + uint8_t rsdp_table[36 /* ACPI 2.0+ RSDP size */];
> > AcpiRsdtDescriptorRev1 rsdt_table;
> > uint32_t dsdt_addr;
> > uint32_t facs_addr;
> > @@ -85,19 +85,30 @@ static void test_acpi_rsdp_address(test_data *data)
> >
> > static void test_acpi_rsdp_table(test_data *data)
> > {
> > - AcpiRsdpDescriptor *rsdp_table = &data->rsdp_table;
> > + uint8_t *rsdp_table = data->rsdp_table, revision;
> > uint32_t addr = data->rsdp_addr;
> >
> > acpi_parse_rsdp_table(addr, rsdp_table);
> > + revision = rsdp_table[15 /* Revision offset */];
> >
> > - /* rsdp checksum is not for the whole table, but for the first 20 bytes */
> > - g_assert(!acpi_calc_checksum((uint8_t *)rsdp_table, 20));
> > + switch (revision) {
> > + case 0: /* ACPI 1.0 RSDP */
> > + /* With rev 1, checksum is only for the first 20 bytes */
> > + g_assert(!acpi_calc_checksum(rsdp_table, 20));
> > + break;
> > + case 2: /* ACPI 2.0+ RSDP */
> > + /* With revision 2, we have 2 checksums */
> > + g_assert(!acpi_calc_checksum(rsdp_table, 20));
> > + g_assert(!acpi_calc_checksum(rsdp_table, 36));
>
> Missing break. I guess this wasn't yet tested with ACPI 2.0+?
> Are we going to extend the tests to do that?
I'm working on adding arm/virt board to these tests,
so that will use this 2.0 path
>
> > + default:
> > + g_assert_not_reached();
> > + }
> > }
> >
> > static void test_acpi_rsdt_table(test_data *data)
> > {
> > AcpiRsdtDescriptorRev1 *rsdt_table = &data->rsdt_table;
> > - uint32_t addr = le32_to_cpu(data->rsdp_table.rsdt_physical_address);
> > + uint32_t addr = acpi_get_rsdt_address(data->rsdp_table);
> > uint32_t *tables;
> > int tables_nr;
> > uint8_t checksum;
> > diff --git a/tests/vmgenid-test.c b/tests/vmgenid-test.c
> > index 0a6fb55f2e..97219ae86c 100644
> > --- a/tests/vmgenid-test.c
> > +++ b/tests/vmgenid-test.c
> > @@ -35,7 +35,7 @@ static uint32_t acpi_find_vgia(void)
> > {
> > uint32_t rsdp_offset;
> > uint32_t guid_offset = 0;
> > - AcpiRsdpDescriptor rsdp_table;
> > + uint8_t rsdp_table[36 /* ACPI 2.0+ RSDP size */];
> > uint32_t rsdt, rsdt_table_length;
> > AcpiRsdtDescriptorRev1 rsdt_table;
> > size_t tables_nr;
> > @@ -52,9 +52,11 @@ static uint32_t acpi_find_vgia(void)
> >
> > g_assert_cmphex(rsdp_offset, <, RSDP_ADDR_INVALID);
> >
> > - acpi_parse_rsdp_table(rsdp_offset, &rsdp_table);
> > + acpi_parse_rsdp_table(rsdp_offset, rsdp_table);
> > +
> > + rsdt = acpi_get_rsdt_address(rsdp_table);
> > + g_assert(rsdt);
> >
> > - rsdt = le32_to_cpu(rsdp_table.rsdt_physical_address);
> > /* read the header */
> > ACPI_READ_TABLE_HEADER(&rsdt_table, rsdt);
> > ACPI_ASSERT_CMP(rsdt_table.signature, "RSDT");
> > --
> > 2.19.2
> >
> >
>
> Besides the missing break
>
> Reviewed-by: Andrew Jones <drjones@redhat.com>
>
WARNING: multiple messages have this Message-ID (diff)
From: Igor Mammedov <imammedo@redhat.com>
To: Andrew Jones <drjones@redhat.com>
Cc: Samuel Ortiz <sameo@linux.intel.com>,
Laurent Vivier <lvivier@redhat.com>,
Peter Maydell <peter.maydell@linaro.org>,
Thomas Huth <thuth@redhat.com>,
Eduardo Habkost <ehabkost@redhat.com>,
Ben Warren <ben@skyportsystems.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
qemu-devel@nongnu.org, Shannon Zhao <shannon.zhaosl@gmail.com>,
qemu-arm@nongnu.org, Paolo Bonzini <pbonzini@redhat.com>,
Richard Henderson <rth@twiddle.net>
Subject: Re: [Qemu-devel] [PATCH v3 8/8] hw: acpi: Remove AcpiRsdpDescriptor and fix tests
Date: Tue, 4 Dec 2018 17:43:05 +0100 [thread overview]
Message-ID: <20181204174305.34a8644d@redhat.com> (raw)
In-Reply-To: <20181204151052.otrsahh4dqehiwif@kamzik.brq.redhat.com>
On Tue, 4 Dec 2018 16:10:52 +0100
Andrew Jones <drjones@redhat.com> wrote:
> On Fri, Nov 30, 2018 at 02:00:32PM +0100, Samuel Ortiz wrote:
> > The only remaining AcpiRsdpDescriptor users are the ACPI utils for the
> > BIOS table tests.
> > We remove that dependency and can thus remove the structure itself.
> >
> > Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
> > ---
> > include/hw/acpi/acpi-defs.h | 13 -----------
> > tests/acpi-utils.h | 4 +++-
> > tests/acpi-utils.c | 46 ++++++++++++++++++++++++++++++-------
> > tests/bios-tables-test.c | 21 +++++++++++++----
> > tests/vmgenid-test.c | 8 ++++---
> > 5 files changed, 62 insertions(+), 30 deletions(-)
> >
> > diff --git a/include/hw/acpi/acpi-defs.h b/include/hw/acpi/acpi-defs.h
> > index 8425ecb8c6..5021cb9e79 100644
> > --- a/include/hw/acpi/acpi-defs.h
> > +++ b/include/hw/acpi/acpi-defs.h
> > @@ -40,19 +40,6 @@ enum {
> > ACPI_FADT_F_LOW_POWER_S0_IDLE_CAPABLE,
> > };
> >
> > -struct AcpiRsdpDescriptor { /* Root System Descriptor Pointer */
> > - uint64_t signature; /* ACPI signature, contains "RSD PTR " */
> > - uint8_t checksum; /* To make sum of struct == 0 */
> > - uint8_t oem_id [6]; /* OEM identification */
> > - uint8_t revision; /* Must be 0 for 1.0, 2 for 2.0 */
> > - uint32_t rsdt_physical_address; /* 32-bit physical address of RSDT */
> > - uint32_t length; /* XSDT Length in bytes including hdr */
> > - uint64_t xsdt_physical_address; /* 64-bit physical address of XSDT */
> > - uint8_t extended_checksum; /* Checksum of entire table */
> > - uint8_t reserved [3]; /* Reserved field must be 0 */
> > -} QEMU_PACKED;
> > -typedef struct AcpiRsdpDescriptor AcpiRsdpDescriptor;
> > -
> > typedef struct AcpiRsdpData {
> > uint8_t oem_id[6]; /* OEM identification */
> > uint8_t revision; /* Must be 0 for 1.0, 2 for 2.0 */
> > diff --git a/tests/acpi-utils.h b/tests/acpi-utils.h
> > index ac52abd0dd..4f4899deb5 100644
> > --- a/tests/acpi-utils.h
> > +++ b/tests/acpi-utils.h
> > @@ -82,6 +82,8 @@ typedef struct {
> >
> > uint8_t acpi_calc_checksum(const uint8_t *data, int len);
> > uint32_t acpi_find_rsdp_address(void);
> > -void acpi_parse_rsdp_table(uint32_t addr, AcpiRsdpDescriptor *rsdp_table);
> > +uint32_t acpi_get_rsdt_address(uint8_t *rsdp_table);
> > +uint64_t acpi_get_xsdt_address(uint8_t *rsdp_table);
> > +void acpi_parse_rsdp_table(uint32_t addr, uint8_t *rsdp_table);
> >
> > #endif /* TEST_ACPI_UTILS_H */
> > diff --git a/tests/acpi-utils.c b/tests/acpi-utils.c
> > index 41dc1ea9b4..d07f7487e2 100644
> > --- a/tests/acpi-utils.c
> > +++ b/tests/acpi-utils.c
> > @@ -52,14 +52,44 @@ uint32_t acpi_find_rsdp_address(void)
> > return off;
> > }
> >
> > -void acpi_parse_rsdp_table(uint32_t addr, AcpiRsdpDescriptor *rsdp_table)
> > +uint32_t acpi_get_rsdt_address(uint8_t *rsdp_table)
> > {
> > - ACPI_READ_FIELD(rsdp_table->signature, addr);
> > - ACPI_ASSERT_CMP64(rsdp_table->signature, "RSD PTR ");
> > + uint32_t rsdt_physical_address;
> >
> > - ACPI_READ_FIELD(rsdp_table->checksum, addr);
> > - ACPI_READ_ARRAY(rsdp_table->oem_id, addr);
> > - ACPI_READ_FIELD(rsdp_table->revision, addr);
> > - ACPI_READ_FIELD(rsdp_table->rsdt_physical_address, addr);
> > - ACPI_READ_FIELD(rsdp_table->length, addr);
> > + memcpy(&rsdt_physical_address, &rsdp_table[16 /* RsdtAddress offset */], 4);
> > + return le32_to_cpu(rsdt_physical_address);
> > +}
> > +
> > +uint64_t acpi_get_xsdt_address(uint8_t *rsdp_table)
> > +{
> > + uint64_t xsdt_physical_address;
> > + uint8_t revision = rsdp_table[15 /* Revision offset */];
> > +
> > + /* We must have revision 2 if we're looking for an XSDT pointer */
> > + g_assert(revision == 2);
> > +
> > + memcpy(&xsdt_physical_address, &rsdp_table[24 /* XsdtAddress offset */], 8);
> > + return le64_to_cpu(xsdt_physical_address);
> > +}
> > +
> > +void acpi_parse_rsdp_table(uint32_t addr, uint8_t *rsdp_table)
> > +{
> > + uint8_t revision;
> > +
> > + /* Read mandatory revision 0 table data (20 bytes) first */
> > + memread(addr, rsdp_table, 20);
> > + revision = rsdp_table[15 /* Revision offset */];
> > +
> > + switch (revision) {
> > + case 0: /* ACPI 1.0 RSDP */
> > + break;
> > + case 2: /* ACPI 2.0+ RSDP */
> > + /* Read the rest of the RSDP table */
> > + memread(addr + 20, rsdp_table + 20, 16);
> > + break;
> > + default:
> > + g_assert_not_reached();
> > + }
> > +
> > + ACPI_ASSERT_CMP64(*((uint64_t *)(rsdp_table)), "RSD PTR ");
> > }
> > diff --git a/tests/bios-tables-test.c b/tests/bios-tables-test.c
> > index d661d9be62..8749b77b36 100644
> > --- a/tests/bios-tables-test.c
> > +++ b/tests/bios-tables-test.c
> > @@ -27,7 +27,7 @@ typedef struct {
> > const char *machine;
> > const char *variant;
> > uint32_t rsdp_addr;
> > - AcpiRsdpDescriptor rsdp_table;
> > + uint8_t rsdp_table[36 /* ACPI 2.0+ RSDP size */];
> > AcpiRsdtDescriptorRev1 rsdt_table;
> > uint32_t dsdt_addr;
> > uint32_t facs_addr;
> > @@ -85,19 +85,30 @@ static void test_acpi_rsdp_address(test_data *data)
> >
> > static void test_acpi_rsdp_table(test_data *data)
> > {
> > - AcpiRsdpDescriptor *rsdp_table = &data->rsdp_table;
> > + uint8_t *rsdp_table = data->rsdp_table, revision;
> > uint32_t addr = data->rsdp_addr;
> >
> > acpi_parse_rsdp_table(addr, rsdp_table);
> > + revision = rsdp_table[15 /* Revision offset */];
> >
> > - /* rsdp checksum is not for the whole table, but for the first 20 bytes */
> > - g_assert(!acpi_calc_checksum((uint8_t *)rsdp_table, 20));
> > + switch (revision) {
> > + case 0: /* ACPI 1.0 RSDP */
> > + /* With rev 1, checksum is only for the first 20 bytes */
> > + g_assert(!acpi_calc_checksum(rsdp_table, 20));
> > + break;
> > + case 2: /* ACPI 2.0+ RSDP */
> > + /* With revision 2, we have 2 checksums */
> > + g_assert(!acpi_calc_checksum(rsdp_table, 20));
> > + g_assert(!acpi_calc_checksum(rsdp_table, 36));
>
> Missing break. I guess this wasn't yet tested with ACPI 2.0+?
> Are we going to extend the tests to do that?
I'm working on adding arm/virt board to these tests,
so that will use this 2.0 path
>
> > + default:
> > + g_assert_not_reached();
> > + }
> > }
> >
> > static void test_acpi_rsdt_table(test_data *data)
> > {
> > AcpiRsdtDescriptorRev1 *rsdt_table = &data->rsdt_table;
> > - uint32_t addr = le32_to_cpu(data->rsdp_table.rsdt_physical_address);
> > + uint32_t addr = acpi_get_rsdt_address(data->rsdp_table);
> > uint32_t *tables;
> > int tables_nr;
> > uint8_t checksum;
> > diff --git a/tests/vmgenid-test.c b/tests/vmgenid-test.c
> > index 0a6fb55f2e..97219ae86c 100644
> > --- a/tests/vmgenid-test.c
> > +++ b/tests/vmgenid-test.c
> > @@ -35,7 +35,7 @@ static uint32_t acpi_find_vgia(void)
> > {
> > uint32_t rsdp_offset;
> > uint32_t guid_offset = 0;
> > - AcpiRsdpDescriptor rsdp_table;
> > + uint8_t rsdp_table[36 /* ACPI 2.0+ RSDP size */];
> > uint32_t rsdt, rsdt_table_length;
> > AcpiRsdtDescriptorRev1 rsdt_table;
> > size_t tables_nr;
> > @@ -52,9 +52,11 @@ static uint32_t acpi_find_vgia(void)
> >
> > g_assert_cmphex(rsdp_offset, <, RSDP_ADDR_INVALID);
> >
> > - acpi_parse_rsdp_table(rsdp_offset, &rsdp_table);
> > + acpi_parse_rsdp_table(rsdp_offset, rsdp_table);
> > +
> > + rsdt = acpi_get_rsdt_address(rsdp_table);
> > + g_assert(rsdt);
> >
> > - rsdt = le32_to_cpu(rsdp_table.rsdt_physical_address);
> > /* read the header */
> > ACPI_READ_TABLE_HEADER(&rsdt_table, rsdt);
> > ACPI_ASSERT_CMP(rsdt_table.signature, "RSDT");
> > --
> > 2.19.2
> >
> >
>
> Besides the missing break
>
> Reviewed-by: Andrew Jones <drjones@redhat.com>
>
next prev parent reply other threads:[~2018-12-04 16:46 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-30 13:00 [Qemu-arm] [PATCH v3 0/8] hw: acpi: RSDP fixes and refactoring Samuel Ortiz
2018-11-30 13:00 ` [Qemu-devel] " Samuel Ortiz
2018-11-30 13:00 ` [Qemu-devel] [PATCH v3 1/8] hw: acpi: The RSDP build API can return void Samuel Ortiz
2018-11-30 13:00 ` Samuel Ortiz
2018-11-30 13:00 ` [Qemu-devel] [PATCH v3 2/8] hw: arm: acpi: Fix incorrect checksums in RSDP Samuel Ortiz
2018-11-30 13:00 ` Samuel Ortiz
2018-11-30 13:00 ` [Qemu-devel] [PATCH v3 3/8] hw: i386: Use correct RSDT length for checksum Samuel Ortiz
2018-11-30 13:00 ` Samuel Ortiz
2018-11-30 13:00 ` [Qemu-devel] [PATCH v3 4/8] hw: arm: Carry RSDP specific data through AcpiRsdpData Samuel Ortiz
2018-11-30 13:00 ` Samuel Ortiz
2018-12-04 14:49 ` [Qemu-arm] " Andrew Jones
2018-12-04 14:49 ` Andrew Jones
2018-11-30 13:00 ` [Qemu-arm] [PATCH v3 5/8] hw: arm: Convert the RSDP build to the buid_append_foo() API Samuel Ortiz
2018-11-30 13:00 ` [Qemu-devel] " Samuel Ortiz
2018-12-04 13:41 ` [Qemu-arm] " Igor Mammedov
2018-12-04 13:41 ` [Qemu-devel] " Igor Mammedov
2018-11-30 13:00 ` [Qemu-devel] [PATCH v3 6/8] hw: arm: Support both legacy and current RSDP build Samuel Ortiz
2018-11-30 13:00 ` Samuel Ortiz
2018-12-04 13:47 ` [Qemu-arm] " Igor Mammedov
2018-12-04 13:47 ` [Qemu-devel] " Igor Mammedov
2018-12-04 14:53 ` [Qemu-arm] " Andrew Jones
2018-12-04 14:53 ` Andrew Jones
2018-11-30 13:00 ` [Qemu-devel] [PATCH v3 7/8] hw: acpi: Export and share the ARM " Samuel Ortiz
2018-11-30 13:00 ` Samuel Ortiz
2018-12-04 14:01 ` Igor Mammedov
2018-12-04 14:01 ` Igor Mammedov
2018-11-30 13:00 ` [Qemu-arm] [PATCH v3 8/8] hw: acpi: Remove AcpiRsdpDescriptor and fix tests Samuel Ortiz
2018-11-30 13:00 ` [Qemu-devel] " Samuel Ortiz
2018-12-04 14:06 ` [Qemu-arm] " Igor Mammedov
2018-12-04 14:06 ` [Qemu-devel] " Igor Mammedov
2018-12-04 15:10 ` [Qemu-arm] " Andrew Jones
2018-12-04 15:10 ` Andrew Jones
2018-12-04 16:43 ` Igor Mammedov [this message]
2018-12-04 16:43 ` Igor Mammedov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181204174305.34a8644d@redhat.com \
--to=imammedo@redhat.com \
--cc=ben@skyportsystems.com \
--cc=drjones@redhat.com \
--cc=ehabkost@redhat.com \
--cc=lvivier@redhat.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
--cc=sameo@linux.intel.com \
--cc=shannon.zhaosl@gmail.com \
--cc=thuth@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.