From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49506) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bD6YY-0004aK-1O for qemu-devel@nongnu.org; Wed, 15 Jun 2016 04:52:15 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bD6YW-0005rb-1V for qemu-devel@nongnu.org; Wed, 15 Jun 2016 04:52:13 -0400 Date: Wed, 15 Jun 2016 10:52:00 +0200 From: Andrew Jones Message-ID: <20160615085200.hcqq3nkzug5eicus@hawk.localdomain> References: <1465960955-17388-1-git-send-email-zhaoshenglong@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1465960955-17388-1-git-send-email-zhaoshenglong@huawei.com> Subject: Re: [Qemu-devel] [PATCH] ACPI: ARM: Present GIC version in MADT table List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Shannon Zhao Cc: qemu-arm@nongnu.org, peter.maydell@linaro.org, imammedo@redhat.com, peter.huangpeng@huawei.com, qemu-devel@nongnu.org, shannon.zhao@linaro.org On Wed, Jun 15, 2016 at 11:22:35AM +0800, Shannon Zhao wrote: > From: Shannon Zhao > > In ACPI 5.1 Errata, it adds GIC version in GIC distributor structure. > This is useful for guest kernel to identify which version GIC hardware > is. Update GIC distributor structure and present GIC version in MADT > table. > > Signed-off-by: Shannon Zhao > --- > hw/arm/virt-acpi-build.c | 1 + > include/hw/acpi/acpi-defs.h | 4 +++- > 2 files changed, 4 insertions(+), 1 deletion(-) > > diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c > index 1fa0581..28fc59c 100644 > --- a/hw/arm/virt-acpi-build.c > +++ b/hw/arm/virt-acpi-build.c > @@ -523,6 +523,7 @@ build_madt(GArray *table_data, BIOSLinker *linker, VirtGuestInfo *guest_info) > gicd->type = ACPI_APIC_GENERIC_DISTRIBUTOR; > gicd->length = sizeof(*gicd); > gicd->base_address = memmap[VIRT_GIC_DIST].base; > + gicd->version = guest_info->gic_version; > > for (i = 0; i < guest_info->smp_cpus; i++) { > AcpiMadtGenericInterrupt *gicc = acpi_data_push(table_data, > diff --git a/include/hw/acpi/acpi-defs.h b/include/hw/acpi/acpi-defs.h > index 850a962..ea9be0b 100644 > --- a/include/hw/acpi/acpi-defs.h > +++ b/include/hw/acpi/acpi-defs.h > @@ -367,7 +367,9 @@ struct AcpiMadtGenericDistributor { > uint32_t gic_id; > uint64_t base_address; > uint32_t global_irq_base; > - uint32_t reserved2; > + /* ACPI 5.1 Errata 1228 Present GIC version in MADT table */ > + uint8_t version; > + uint8_t reserved2[3]; > } QEMU_PACKED; > > typedef struct AcpiMadtGenericDistributor AcpiMadtGenericDistributor; > -- > 2.0.4 AFAICT, Linux is actually fine with version=0 (as before this patch). One way or another it has already determined that the gic is either v3 or v4, and then just proceeds. That said, it does seem like the right thing to do to set it Reviewed-by: Andrew Jones