From nobody Sat Apr 20 01:39:49 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org ARC-Seal: i=1; a=rsa-sha256; t=1605788061; cv=none; d=zohomail.com; s=zohoarc; b=kKbpISCLUuhZJ8OnghZkTj99pll/zKvPyHoZs9lLpWhMinnqJ+ru6rTv5336iLJXiYJKdhaVaTW/LYF1jWZj9rliKx5Gan+PsBjVyzNLJ1j96lUvFzLijNs9z9CTzmfze2tqznKKpp4t1uFEG/pnDXzd7ySQA/rq/C2U+4yXddY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1605788061; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=gcyki/lXOeT2O/oPW4KFyaFMj0CKrIoTPfhPSeOmQZM=; b=K9pvaTZKu7l4D4YOGn96zKguBv/uZ0ilezxVlZK0ac4XxOuOcTBm3QTLVDK0br4XtrFt2YyeQlE7aSK3KfH/kl0F/T/s/Id0UhGDGpnhD2mczW6QYGq5+DsSJU5mFyIdOUsEOKy+bsMJ0fJ0r/k/M+IXkdwhYi7nf0ESmctzmt4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1605788061838374.95073383138777; Thu, 19 Nov 2020 04:14:21 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.30660.60823 (Exim 4.92) (envelope-from ) id 1kfioz-0003lh-RQ; Thu, 19 Nov 2020 12:13:53 +0000 Received: by outflank-mailman (output) from mailman id 30660.60823; Thu, 19 Nov 2020 12:13:53 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kfioz-0003la-OM; Thu, 19 Nov 2020 12:13:53 +0000 Received: by outflank-mailman (input) for mailman id 30660; Thu, 19 Nov 2020 12:13:52 +0000 Received: from mail.xenproject.org ([104.130.215.37]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kfioy-0003lG-SN for xen-devel@lists.xenproject.org; Thu, 19 Nov 2020 12:13:52 +0000 Received: from xenbits.xenproject.org ([104.239.192.120]) by mail.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kfioy-0002ZF-F6; Thu, 19 Nov 2020 12:13:52 +0000 Received: from 54-240-197-235.amazon.com ([54.240.197.235] helo=ufe34d9ed68d054.ant.amazon.com) by xenbits.xenproject.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kfioy-0001xd-4G; Thu, 19 Nov 2020 12:13:52 +0000 Received: from mail.xenproject.org ([104.130.215.37]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kfioy-0003lG-SN for xen-devel@lists.xenproject.org; Thu, 19 Nov 2020 12:13:52 +0000 Received: from xenbits.xenproject.org ([104.239.192.120]) by mail.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kfioy-0002ZF-F6; Thu, 19 Nov 2020 12:13:52 +0000 Received: from 54-240-197-235.amazon.com ([54.240.197.235] helo=ufe34d9ed68d054.ant.amazon.com) by xenbits.xenproject.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kfioy-0001xd-4G; Thu, 19 Nov 2020 12:13:52 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org; s=20200302mail; h=References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From; bh=gcyki/lXOeT2O/oPW4KFyaFMj0CKrIoTPfhPSeOmQZM=; b=LUeO4RKmfJJZNsaXIy1IgkFog i8ER5jdKZZEjb4CcDGsbbFow3Jk22pvO0/IA9Vjru58LHksXM/aYz8HHIb6aGJUZNXfCuEOSPoPAG o95dMgAZ3iBsCxz32+LVuei2Zjmja+W3shQFzaQTZkTkXdTJHFVVvCShkGhF8nDscvj0Q=; From: Julien Grall To: xen-devel@lists.xenproject.org Cc: alex.bennee@linaro.org, bertrand.marquis@arm.com, andre.przywara@arm.com, Rahul.Singh@arm.com, Julien Grall , Stefano Stabellini , Julien Grall , Volodymyr Babchuk , Julien Grall Subject: [PATCH v3 1/2] xen/arm: gic: acpi: Use the correct length for the GICC structure Date: Thu, 19 Nov 2020 12:13:46 +0000 Message-Id: <20201119121347.27139-2-julien@xen.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201119121347.27139-1-julien@xen.org> References: <20201119121347.27139-1-julien@xen.org> X-ZohoMail-DKIM: pass (identity @xen.org) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Julien Grall The length of the GICC structure in the MADT ACPI table differs between version 5.1 and 6.0, although there are no other relevant differences. Use the BAD_MADT_GICC_ENTRY macro, which was specifically designed to overcome this issue. Signed-off-by: Julien Grall Signed-off-by: Andre Przywara Signed-off-by: Julien Grall --- Changes in v3: - Update the commit title as we also modify GICv3 code - Use the correct length in more places Changes in v2: - Patch added --- xen/arch/arm/acpi/boot.c | 2 +- xen/arch/arm/gic-v2.c | 5 +++-- xen/arch/arm/gic-v3.c | 6 +++--- xen/arch/arm/gic.c | 2 +- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/xen/arch/arm/acpi/boot.c b/xen/arch/arm/acpi/boot.c index 30e4bd1bc5a7..55c3e5cbc834 100644 --- a/xen/arch/arm/acpi/boot.c +++ b/xen/arch/arm/acpi/boot.c @@ -131,7 +131,7 @@ acpi_parse_gic_cpu_interface(struct acpi_subtable_heade= r *header, struct acpi_madt_generic_interrupt *processor =3D container_of(header, struct acpi_madt_generic_interrupt, he= ader); =20 - if ( BAD_MADT_ENTRY(processor, end) ) + if ( BAD_MADT_GICC_ENTRY(processor, end) ) return -EINVAL; =20 acpi_table_print_madt_entry(header); diff --git a/xen/arch/arm/gic-v2.c b/xen/arch/arm/gic-v2.c index 0f747538dbcd..0e5f23201974 100644 --- a/xen/arch/arm/gic-v2.c +++ b/xen/arch/arm/gic-v2.c @@ -1136,7 +1136,8 @@ static int gicv2_make_hwdom_madt(const struct domain = *d, u32 offset) =20 host_gicc =3D container_of(header, struct acpi_madt_generic_interrupt, header); - size =3D sizeof(struct acpi_madt_generic_interrupt); + + size =3D ACPI_MADT_GICC_LENGTH; /* Add Generic Interrupt */ for ( i =3D 0; i < d->max_vcpus; i++ ) { @@ -1165,7 +1166,7 @@ gic_acpi_parse_madt_cpu(struct acpi_subtable_header *= header, struct acpi_madt_generic_interrupt *processor =3D container_of(header, struct acpi_madt_generic_interrupt, he= ader); =20 - if ( BAD_MADT_ENTRY(processor, end) ) + if ( BAD_MADT_GICC_ENTRY(processor, end) ) return -EINVAL; =20 /* Read from APIC table and fill up the GIC variables */ diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c index 0f6cbf6224e9..483ec1598f37 100644 --- a/xen/arch/arm/gic-v3.c +++ b/xen/arch/arm/gic-v3.c @@ -1499,7 +1499,7 @@ static int gicv3_make_hwdom_madt(const struct domain = *d, u32 offset) =20 host_gicc =3D container_of(header, struct acpi_madt_generic_interrupt, header); - size =3D sizeof(struct acpi_madt_generic_interrupt); + size =3D ACPI_MADT_GICC_LENGTH; for ( i =3D 0; i < d->max_vcpus; i++ ) { gicc =3D (struct acpi_madt_generic_interrupt *)(base_ptr + table_l= en); @@ -1558,7 +1558,7 @@ gic_acpi_parse_madt_cpu(struct acpi_subtable_header *= header, struct acpi_madt_generic_interrupt *processor =3D container_of(header, struct acpi_madt_generic_interrupt, he= ader); =20 - if ( BAD_MADT_ENTRY(processor, end) ) + if ( BAD_MADT_GICC_ENTRY(processor, end) ) return -EINVAL; =20 /* Read from APIC table and fill up the GIC variables */ @@ -1628,7 +1628,7 @@ gic_acpi_get_madt_cpu_num(struct acpi_subtable_header= *header, struct acpi_madt_generic_interrupt *cpuif; =20 cpuif =3D (struct acpi_madt_generic_interrupt *)header; - if ( BAD_MADT_ENTRY(cpuif, end) || !cpuif->gicr_base_address ) + if ( BAD_MADT_GICC_ENTRY(cpuif, end) || !cpuif->gicr_base_address ) return -EINVAL; =20 return 0; diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c index d623c57cb9fa..b100c85ef314 100644 --- a/xen/arch/arm/gic.c +++ b/xen/arch/arm/gic.c @@ -453,7 +453,7 @@ unsigned long gic_get_hwdom_madt_size(const struct doma= in *d) unsigned long madt_size; =20 madt_size =3D sizeof(struct acpi_table_madt) - + sizeof(struct acpi_madt_generic_interrupt) * d->max_vcpus + + ACPI_MADT_GICC_LENGTH * d->max_vcpus + sizeof(struct acpi_madt_generic_distributor) + gic_hw_ops->get_hwdom_extra_madt_size(d); =20 --=20 2.17.1 From nobody Sat Apr 20 01:39:49 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org ARC-Seal: i=1; a=rsa-sha256; t=1605788060; cv=none; d=zohomail.com; s=zohoarc; b=a3fktoXGz0gt1eWaIAdhEyydJmnWoKqKwvYfDYACgBhX+rE0Dg7f9TZGokzIOqd7pif10BKFm6tiJwUnhnvZZCJRltfw8RXK8v1iBBsKVEW9xi2vLlGlKB6aOwJCNkYu5E9zd1DRwiazhfxCIpD3duX/yWA12sFgXHEPv1Tr8xo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1605788060; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=mZpQmkQLUUO1hccs/83l4shhsGEQrqSCrng3B/PMRp8=; b=RQKfDLDxFuDAIhjQEItnv7wrmoY4DNLP5eaYaqihAmVpMJym5PE1iLDD9tyobLRrx3Rp/s1GdCKanXqhkHymuizpPC8IZmjfYrzfajjyBj1BNfIikYelW3oijjsdLiTgasB07EhFFte6S17gj/+6Blbn8GJD8VcjSfBxf/eKxtI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1605788060670608.1783353643484; Thu, 19 Nov 2020 04:14:20 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.30661.60835 (Exim 4.92) (envelope-from ) id 1kfip2-0003nY-5D; Thu, 19 Nov 2020 12:13:56 +0000 Received: by outflank-mailman (output) from mailman id 30661.60835; Thu, 19 Nov 2020 12:13:56 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kfip2-0003nQ-1S; Thu, 19 Nov 2020 12:13:56 +0000 Received: by outflank-mailman (input) for mailman id 30661; Thu, 19 Nov 2020 12:13:54 +0000 Received: from mail.xenproject.org ([104.130.215.37]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kfip0-0003mV-H2 for xen-devel@lists.xenproject.org; Thu, 19 Nov 2020 12:13:54 +0000 Received: from xenbits.xenproject.org ([104.239.192.120]) by mail.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kfip0-0002ZO-31; Thu, 19 Nov 2020 12:13:54 +0000 Received: from 54-240-197-235.amazon.com ([54.240.197.235] helo=ufe34d9ed68d054.ant.amazon.com) by xenbits.xenproject.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kfioz-0001xd-PV; Thu, 19 Nov 2020 12:13:54 +0000 Received: from mail.xenproject.org ([104.130.215.37]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kfip0-0003mV-H2 for xen-devel@lists.xenproject.org; Thu, 19 Nov 2020 12:13:54 +0000 Received: from xenbits.xenproject.org ([104.239.192.120]) by mail.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kfip0-0002ZO-31; Thu, 19 Nov 2020 12:13:54 +0000 Received: from 54-240-197-235.amazon.com ([54.240.197.235] helo=ufe34d9ed68d054.ant.amazon.com) by xenbits.xenproject.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kfioz-0001xd-PV; Thu, 19 Nov 2020 12:13:54 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org; s=20200302mail; h=References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From; bh=mZpQmkQLUUO1hccs/83l4shhsGEQrqSCrng3B/PMRp8=; b=XLY8g2zOlxlwMzPy8nLAAtYc7 bZZ2/ui0Ya1sVIL3ejNEJZC7gp/lHh4z8elebFs7GiFvwqwkqajEMQ6Bx9nE0JqvPxf4KOZ0Sk/71 LV2itXj8wtvEP99t/1qcjZS55IsaHiwARdWWVsPvhqwtNBu6xz91Of00TGolfIDJw5IaU=; From: Julien Grall To: xen-devel@lists.xenproject.org Cc: alex.bennee@linaro.org, bertrand.marquis@arm.com, andre.przywara@arm.com, Rahul.Singh@arm.com, Julien Grall , Stefano Stabellini , Julien Grall , Volodymyr Babchuk , Julien Grall Subject: [PATCH v3 2/2] xen/arm: acpi: Allow Xen to boot with ACPI 5.1 Date: Thu, 19 Nov 2020 12:13:47 +0000 Message-Id: <20201119121347.27139-3-julien@xen.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201119121347.27139-1-julien@xen.org> References: <20201119121347.27139-1-julien@xen.org> X-ZohoMail-DKIM: pass (identity @xen.org) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Julien Grall At the moment Xen requires the FADT ACPI table to be at least version 6.0, apparently because of some reliance on other ACPI v6.0 features. But actually this is overzealous, and Xen works now fine with ACPI v5.1. Let's relax the version check for the FADT table to allow QEMU to run the hypervisor with ACPI. Signed-off-by: Julien Grall Signed-off-by: Andre Przywara Signed-off-by: Julien Grall Acked-by: Stefano Stabellini --- Changes in v3: - Add Stefano's acked-by Changes in v2: - Patch added --- xen/arch/arm/acpi/boot.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xen/arch/arm/acpi/boot.c b/xen/arch/arm/acpi/boot.c index 55c3e5cbc834..7ea2990cb82c 100644 --- a/xen/arch/arm/acpi/boot.c +++ b/xen/arch/arm/acpi/boot.c @@ -181,8 +181,8 @@ static int __init acpi_parse_fadt(struct acpi_table_hea= der *table) * we only deal with ACPI 6.0 or newer revision to get GIC and SMP * boot protocol configuration data, or we will disable ACPI. */ - if ( table->revision > 6 - || (table->revision =3D=3D 6 && fadt->minor_revision >=3D 0) ) + if ( table->revision > 5 + || (table->revision =3D=3D 5 && fadt->minor_revision >=3D 1) ) return 0; =20 printk("Unsupported FADT revision %d.%d, should be 6.0+, will disable = ACPI\n", --=20 2.17.1