From nobody Sun May 19 06:05:04 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1671108656; cv=none; d=zohomail.com; s=zohoarc; b=Y/WFLDUlpjXJBsHG5PqT4E2vIDkMKGyCIxwqDAc77Mu1CpnJBHmwD/4562ImwRk7dImUHIzR6MV4/PJV9r7LhHguFQfmwozcJ9UUAHkp8zTik/LmM0c5SZUhPdlL/bcZ3eMRx3IFKhAu5Qqg9gJRAobSb6PkWYZ6cE6QVmHEnfg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671108656; h=Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ju1JwZIZJKkp9vxG0wSz+KQOFubdrSKxVCNw3F2ffWI=; b=afx7//M7n9EgLE+yvuMwgI9AAln5zxgj3+EKqj+6J6VjwsNUI4uhajkGDq2zw8Jr8CnZM3iS5rrxHwWbk1WPfsici6hM5koITuYkHNC44Ls5Qgh0ubS90kclNWLSwKfe5qqxrFnmYANYVT6WjVovTfa03QOdZutO4QmoZC5n1bo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671108656378123.1614876203596; Thu, 15 Dec 2022 04:50:56 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5ngo-0006cT-Jc; Thu, 15 Dec 2022 07:50:19 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5ngm-0006bR-I7 for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:16 -0500 Received: from mail-wm1-x32c.google.com ([2a00:1450:4864:20::32c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p5ngk-00045d-My for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:16 -0500 Received: by mail-wm1-x32c.google.com with SMTP id ay40so13692699wmb.2 for ; Thu, 15 Dec 2022 04:50:14 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id i12-20020a05600c354c00b003cfd64b6be1sm8388787wmq.27.2022.12.15.04.50.12 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Dec 2022 04:50:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=ju1JwZIZJKkp9vxG0wSz+KQOFubdrSKxVCNw3F2ffWI=; b=PhlrbVKPT/nhEmw0NdU9d6pGH4LXOM+6xrBipphNrZ77/wAOXT1BTNK+qkOTNTa5Lp Y51aq5x4UdQ0UFvMdKp9OWazp7LFPXtId3L+tQSTW5SgwDV+rrWI+tWD98pYshqO+j/B jQBI5MA5LI4E46CUHsYgBRtH9NyU+qIGgJSMGv7YwqZjB8XzaKdOuiMU0QRP3FNt2VLX H/bz22HopGyLcJUoLFoCx8DkjQf3DUhAjuRRRSEuCO7qbl2pNxh8X6BvEt8YmYJkZ4Fc U+bjx46w8q6lIounv3YY8lX4Sci3bEAOS3yYjtA1TyKxs+QNkIEjjktWZPvseRVwVpII pEpA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ju1JwZIZJKkp9vxG0wSz+KQOFubdrSKxVCNw3F2ffWI=; b=TCGG4CthtSWORtryFXUlmAwkQ3w1Tz81iGWq/3Wpkh8CXWF8n/50+132z/++HajRMr iPUCl4CcqBcQBnNUy+qNXNuZgsJAs/GBj1cOSAI6IRR3GqpnnloOoweErJ8F1ELdHoay J/p9kWjz6rx9/I4D2/opK/2jRfzopaGxT7NHBzXqZKwD9Zr1LtnyGbaTE1IRHmImomlx SrO1AcYlZ2EMLa9Kco3rZb1Ospq34oAHOFi2raOINTtAReHIlpjpMpNnZYdpMEC2a1xX Qgg1/ETgpPW1F4FMNjgRnmobjF3GkgHmUXvfJ8U1V+995KFZ4anFMFwFqPX7+hBM8y4P GrlA== X-Gm-Message-State: ANoB5pleh9r58ol1Nj+PqISw7i5RyTPp/Y7KRNGli/UDM9LMCffAAqVI QGX77YYA2o7CDBwcF77lka94Cr1WJqfF9HkK X-Google-Smtp-Source: AA0mqf5HVcb+Tvc5s1aCrBiAUQ5GILNYkWjNiD6PT0g6JL3vPDj1S5HLJioKby7hixIsBwJhH34jZA== X-Received: by 2002:a05:600c:348a:b0:3cf:69f4:bfd4 with SMTP id a10-20020a05600c348a00b003cf69f4bfd4mr22077956wmq.7.1671108613328; Thu, 15 Dec 2022 04:50:13 -0800 (PST) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 01/29] hw/arm/virt: Introduce virt_set_high_memmap() helper Date: Thu, 15 Dec 2022 12:49:41 +0000 Message-Id: <20221215125009.980128-2-peter.maydell@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221215125009.980128-1-peter.maydell@linaro.org> References: <20221215125009.980128-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::32c; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x32c.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1671108657661100004 Content-Type: text/plain; charset="utf-8" From: Gavin Shan This introduces virt_set_high_memmap() helper. The logic of high memory region address assignment is moved to the helper. The intention is to make the subsequent optimization for high memory region address assignment easier. No functional change intended. Signed-off-by: Gavin Shan Reviewed-by: Eric Auger Reviewed-by: Cornelia Huck Reviewed-by: Marc Zyngier Tested-by: Zhenyu Zhang Message-id: 20221029224307.138822-2-gshan@redhat.com Signed-off-by: Peter Maydell --- hw/arm/virt.c | 74 ++++++++++++++++++++++++++++----------------------- 1 file changed, 41 insertions(+), 33 deletions(-) diff --git a/hw/arm/virt.c b/hw/arm/virt.c index b8713508561..ca300281939 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -1690,6 +1690,46 @@ static uint64_t virt_cpu_mp_affinity(VirtMachineStat= e *vms, int idx) return arm_cpu_mp_affinity(idx, clustersz); } =20 +static void virt_set_high_memmap(VirtMachineState *vms, + hwaddr base, int pa_bits) +{ + int i; + + for (i =3D VIRT_LOWMEMMAP_LAST; i < ARRAY_SIZE(extended_memmap); i++) { + hwaddr size =3D extended_memmap[i].size; + bool fits; + + base =3D ROUND_UP(base, size); + vms->memmap[i].base =3D base; + vms->memmap[i].size =3D size; + + /* + * Check each device to see if they fit in the PA space, + * moving highest_gpa as we go. + * + * For each device that doesn't fit, disable it. + */ + fits =3D (base + size) <=3D BIT_ULL(pa_bits); + if (fits) { + vms->highest_gpa =3D base + size - 1; + } + + switch (i) { + case VIRT_HIGH_GIC_REDIST2: + vms->highmem_redists &=3D fits; + break; + case VIRT_HIGH_PCIE_ECAM: + vms->highmem_ecam &=3D fits; + break; + case VIRT_HIGH_PCIE_MMIO: + vms->highmem_mmio &=3D fits; + break; + } + + base +=3D size; + } +} + static void virt_set_memmap(VirtMachineState *vms, int pa_bits) { MachineState *ms =3D MACHINE(vms); @@ -1745,39 +1785,7 @@ static void virt_set_memmap(VirtMachineState *vms, i= nt pa_bits) /* We know for sure that at least the memory fits in the PA space */ vms->highest_gpa =3D memtop - 1; =20 - for (i =3D VIRT_LOWMEMMAP_LAST; i < ARRAY_SIZE(extended_memmap); i++) { - hwaddr size =3D extended_memmap[i].size; - bool fits; - - base =3D ROUND_UP(base, size); - vms->memmap[i].base =3D base; - vms->memmap[i].size =3D size; - - /* - * Check each device to see if they fit in the PA space, - * moving highest_gpa as we go. - * - * For each device that doesn't fit, disable it. - */ - fits =3D (base + size) <=3D BIT_ULL(pa_bits); - if (fits) { - vms->highest_gpa =3D base + size - 1; - } - - switch (i) { - case VIRT_HIGH_GIC_REDIST2: - vms->highmem_redists &=3D fits; - break; - case VIRT_HIGH_PCIE_ECAM: - vms->highmem_ecam &=3D fits; - break; - case VIRT_HIGH_PCIE_MMIO: - vms->highmem_mmio &=3D fits; - break; - } - - base +=3D size; - } + virt_set_high_memmap(vms, base, pa_bits); =20 if (device_memory_size > 0) { ms->device_memory =3D g_malloc0(sizeof(*ms->device_memory)); --=20 2.25.1 From nobody Sun May 19 06:05:04 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1671108655; cv=none; d=zohomail.com; s=zohoarc; b=W6CKNueAhEhfI21YXLl3mAdmWeP1AWTlqEMDgZuberm9GtW/5341X111dfaaN3yYuxg0ugXvmN9teXn4ArsS8Ja7iiG6uBikVqLD0tMZX15hiBp7mT3KQvtbSIcYzornDbufH13rb83d+aq8ADdw3E6R0yBnnkKWGtD3I9YId1w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671108655; h=Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=lm7NlrrFf1C1nltmeU5bGZsKO+xvFdHgekkB5rtA8G0=; b=QBsD3ljcf3rE19aZGKB9ygqXYsWi9yNZssfKiuc2sHEVkyR0+YOif4hpCYmPkE8dnCgGAvgKOPO7EuKbTjS+uKdxqK4qPCM+6IQBNgE4zOhURZKO7ZsThPLa7ZWROjUG58/Q7Om6pHqILk6llk+dCQrVrLVEtnFHCv1oeV8s6p4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 167110865583685.15472069915927; Thu, 15 Dec 2022 04:50:55 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5ngw-0006kZ-Ck; Thu, 15 Dec 2022 07:50:26 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5ngo-0006ca-04 for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:18 -0500 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p5ngm-00045j-AE for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:17 -0500 Received: by mail-wm1-x32a.google.com with SMTP id f13-20020a1cc90d000000b003d08c4cf679so1734999wmb.5 for ; Thu, 15 Dec 2022 04:50:15 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id i12-20020a05600c354c00b003cfd64b6be1sm8388787wmq.27.2022.12.15.04.50.13 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Dec 2022 04:50:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=lm7NlrrFf1C1nltmeU5bGZsKO+xvFdHgekkB5rtA8G0=; b=luxavzBRyU3sxgg+eKETEcGHb8ay8mIgSxD2351rF18862ucCjWy3L955gbj6Vkvto rohf9Ifkiw+Udd4HJESdv1F8jEgTIvQUj8LEF4EfLI6VDJlqt2ppUQ92qxtOIdjJ6DaM 5uDgsAU/T0b5CKrETIkbO+BtgHmD3WmBM33vp9Z4aEyN2AXcDqwjLjka2Q0Z2L1s9Ue8 8F36IPH+1kF6iOlcGuKHTr55vpZ0IqvJrKxKVUWxPGaqNv4YeTMERswqYFz6KkHAvH1p qAp6+7HnEbGRIwpCJq5rM0EEQi18O15ZIVxBOOWRM88JRVMZ8v0jcNkwPlojg4c0rJIb 9bSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=lm7NlrrFf1C1nltmeU5bGZsKO+xvFdHgekkB5rtA8G0=; b=HDUwshj2VXOjuWzM0BitHFI1oLhOyR+2iQEUz8osWeWzhKtBancIx1AW20sft+fJHK 4iPjwFBNlmeVbM2kVsD6U/CQvmEe0BlMNzI1IWEF9N0axyupW+q3X/iGaTbBEE9c1aGp uGW8okOYHH7YD7UG2kymxF/A3O1ngIJtM/zra2vdzoRs6+pL9w+HO1FV/LP6QzzlQUfx WO5GPc/EqKnIfqOOBcs9abR/6mmwXFYE/GFZ27E6lCUDDeBlnddZmNfz7yWQ3kInuAQR vHalpjPV9pN0AhbiIYOZBOXMzmrNLAk/Uek4mcP66reePZW67fiC7CkEzty0nLu/M9af e8zg== X-Gm-Message-State: ANoB5plRsg1g1oIOsA4eM7b80gGw7HfKkZqGiZnrUhRH7qMISx7l536e B9TyQ/Vt5krbQ/K/CHxKccUwFh/7S2RVJ1no X-Google-Smtp-Source: AA0mqf71x/ebYz5qvYb5DYsWl+OWzMkiiCjJjDKhzj3RcQR6cG/RV7Ys+GulDHbR59KEH+vj5e8eqg== X-Received: by 2002:a05:600c:2191:b0:3d2:267d:64bd with SMTP id e17-20020a05600c219100b003d2267d64bdmr17246556wme.3.1671108614116; Thu, 15 Dec 2022 04:50:14 -0800 (PST) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 02/29] hw/arm/virt: Rename variable size to region_size in virt_set_high_memmap() Date: Thu, 15 Dec 2022 12:49:42 +0000 Message-Id: <20221215125009.980128-3-peter.maydell@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221215125009.980128-1-peter.maydell@linaro.org> References: <20221215125009.980128-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::32a; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x32a.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1671108657637100001 Content-Type: text/plain; charset="utf-8" From: Gavin Shan This renames variable 'size' to 'region_size' in virt_set_high_memmap(). Its counterpart ('region_base') will be introduced in next patch. No functional change intended. Signed-off-by: Gavin Shan Reviewed-by: Eric Auger Reviewed-by: Cornelia Huck Reviewed-by: Marc Zyngier Tested-by: Zhenyu Zhang Message-id: 20221029224307.138822-3-gshan@redhat.com Signed-off-by: Peter Maydell --- hw/arm/virt.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/hw/arm/virt.c b/hw/arm/virt.c index ca300281939..2659f4db15c 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -1693,15 +1693,16 @@ static uint64_t virt_cpu_mp_affinity(VirtMachineSta= te *vms, int idx) static void virt_set_high_memmap(VirtMachineState *vms, hwaddr base, int pa_bits) { + hwaddr region_size; + bool fits; int i; =20 for (i =3D VIRT_LOWMEMMAP_LAST; i < ARRAY_SIZE(extended_memmap); i++) { - hwaddr size =3D extended_memmap[i].size; - bool fits; + region_size =3D extended_memmap[i].size; =20 - base =3D ROUND_UP(base, size); + base =3D ROUND_UP(base, region_size); vms->memmap[i].base =3D base; - vms->memmap[i].size =3D size; + vms->memmap[i].size =3D region_size; =20 /* * Check each device to see if they fit in the PA space, @@ -1709,9 +1710,9 @@ static void virt_set_high_memmap(VirtMachineState *vm= s, * * For each device that doesn't fit, disable it. */ - fits =3D (base + size) <=3D BIT_ULL(pa_bits); + fits =3D (base + region_size) <=3D BIT_ULL(pa_bits); if (fits) { - vms->highest_gpa =3D base + size - 1; + vms->highest_gpa =3D base + region_size - 1; } =20 switch (i) { @@ -1726,7 +1727,7 @@ static void virt_set_high_memmap(VirtMachineState *vm= s, break; } =20 - base +=3D size; + base +=3D region_size; } } =20 --=20 2.25.1 From nobody Sun May 19 06:05:04 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1671109778; cv=none; d=zohomail.com; s=zohoarc; b=Mv0elQLTSup2AMaxtKEQxe0GF8xtZ0WjbGXTBFw/u4lmoBjkPI3PRLT+nDHPDZSjayMfTVXD3yrFgD9gVWOAfLR5CC2Y/KIBWZ2oXDvzfXmnppoOdbSxVFlv0bthDh0f23CfHnqdxhQbX5oIg1YEfd/VyYwsznJ8lFBVJV0RQzM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671109778; h=Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=aZPssVEhQbiKPfXn/XHsh9hjfGaH9CjO9zQb7G+virQ=; b=IrTtq3BZZPEEOzQn16XykfFqpb/74TsUZFjUfqplYaQClyyZNDf1uwlMQSv88aanw3l4yAl6MtrpSYfNfkmTyVAVhIMGZT0+BFFkWoHAG54hMeTzQ1u6e1ol5dpDYrGGXNeM9wf+gwaolKiwQAMzNdQMpHCZcFDgq+T5cIcTsWs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671109778172704.9997926096355; Thu, 15 Dec 2022 05:09:38 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5ngp-0006eH-Vw; Thu, 15 Dec 2022 07:50:20 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5ngo-0006cd-Bx for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:18 -0500 Received: from mail-wm1-x335.google.com ([2a00:1450:4864:20::335]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p5ngm-00045o-LA for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:18 -0500 Received: by mail-wm1-x335.google.com with SMTP id v7so13710943wmn.0 for ; Thu, 15 Dec 2022 04:50:16 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id i12-20020a05600c354c00b003cfd64b6be1sm8388787wmq.27.2022.12.15.04.50.14 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Dec 2022 04:50:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=aZPssVEhQbiKPfXn/XHsh9hjfGaH9CjO9zQb7G+virQ=; b=e3HvTfEgXc1qIp4Gz76WoqWTT07wIqurHXxWWM8+loJZu3sYq0naV/x5hMxHlddggw 1BufbUCX4uccwoVDdARh4s+J86Xd6Zz/gdn3xGM416gTb75m34pFnGOLFyWBFZryPkN3 Bgult2YtmDm0ZmkFn6k1Lg43nPpK7zh+uFCbxqUZT9B9ZCa2SPL0fK3mT8IBSyXzZ7uP N6uFnjOMEJyzlYMoJMxKv1H34Ztc8rArUsDbOWt9Xbs2AW8IwAON2XyGZGPVkTaWuXkM wTN8vMCPQjv7JxHx+EQQ9QXhfC9NSUXfh26CQh6hkBqZGIebIcX5B3h7um/PRH/3+P0P aLzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=aZPssVEhQbiKPfXn/XHsh9hjfGaH9CjO9zQb7G+virQ=; b=te2mofJlbX95bst5GBmKzvp5rjG02I+hR4n4G3Wcgw7KtfM2ozCLP30YCvCwHk1YKk Naftfsu4T/ZR+IzCkiOJf5L3+y+8DkjUvJl/hXhJdf1nqX8ZMGWX+HkC+K3cPyav1VLH WI0vhopPW6jh3uei5N46iSguUfSXcaUHnoeMeFmjGkmo5aU37Ozpax2einjlp0whqPp6 dQrPKEnfK/Vrefzbg/A5XCZj3c9SZ6Y2MTPYw12QZifRjishHiz89AJ3BqvulqmfjuFd EZajWb/SXo03KedzDg7c0Bs0pllDEEHE03nLOlqE0LlTjE4uu8y2KuCubBqwYaqbUxVS v4oA== X-Gm-Message-State: ANoB5pnfAR29N6Vtx0lFvYxVcW58q2w5cLAS8UhPzsK8PiOrklEjBmLP 5IayOy2C/sLtC7o2DLD1QGXA/3wo3JpJqQiI X-Google-Smtp-Source: AA0mqf7biR91n+wVd7Lulx3qLzALwEzwQSU/IJhCRIhkMeBHqJ3KCuCFAYy44Xgw5Pu/656Bo9vUTw== X-Received: by 2002:a05:600c:3ac7:b0:3d0:7fee:8a70 with SMTP id d7-20020a05600c3ac700b003d07fee8a70mr22079782wms.19.1671108614949; Thu, 15 Dec 2022 04:50:14 -0800 (PST) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 03/29] hw/arm/virt: Introduce variable region_base in virt_set_high_memmap() Date: Thu, 15 Dec 2022 12:49:43 +0000 Message-Id: <20221215125009.980128-4-peter.maydell@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221215125009.980128-1-peter.maydell@linaro.org> References: <20221215125009.980128-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::335; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x335.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1671109779744100003 Content-Type: text/plain; charset="utf-8" From: Gavin Shan This introduces variable 'region_base' for the base address of the specific high memory region. It's the preparatory work to optimize high memory region address assignment. No functional change intended. Signed-off-by: Gavin Shan Reviewed-by: Eric Auger Reviewed-by: Cornelia Huck Reviewed-by: Marc Zyngier Tested-by: Zhenyu Zhang Message-id: 20221029224307.138822-4-gshan@redhat.com Signed-off-by: Peter Maydell --- hw/arm/virt.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/hw/arm/virt.c b/hw/arm/virt.c index 2659f4db15c..3bb1bf079ff 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -1693,15 +1693,15 @@ static uint64_t virt_cpu_mp_affinity(VirtMachineSta= te *vms, int idx) static void virt_set_high_memmap(VirtMachineState *vms, hwaddr base, int pa_bits) { - hwaddr region_size; + hwaddr region_base, region_size; bool fits; int i; =20 for (i =3D VIRT_LOWMEMMAP_LAST; i < ARRAY_SIZE(extended_memmap); i++) { + region_base =3D ROUND_UP(base, extended_memmap[i].size); region_size =3D extended_memmap[i].size; =20 - base =3D ROUND_UP(base, region_size); - vms->memmap[i].base =3D base; + vms->memmap[i].base =3D region_base; vms->memmap[i].size =3D region_size; =20 /* @@ -1710,9 +1710,9 @@ static void virt_set_high_memmap(VirtMachineState *vm= s, * * For each device that doesn't fit, disable it. */ - fits =3D (base + region_size) <=3D BIT_ULL(pa_bits); + fits =3D (region_base + region_size) <=3D BIT_ULL(pa_bits); if (fits) { - vms->highest_gpa =3D base + region_size - 1; + vms->highest_gpa =3D region_base + region_size - 1; } =20 switch (i) { @@ -1727,7 +1727,7 @@ static void virt_set_high_memmap(VirtMachineState *vm= s, break; } =20 - base +=3D region_size; + base =3D region_base + region_size; } } =20 --=20 2.25.1 From nobody Sun May 19 06:05:04 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1671109122; cv=none; d=zohomail.com; s=zohoarc; b=L8y+79QaqEoToHB9R1vZaCY22qM3z7R4I6zUKZy8i85I/qsjyYuC189xFjRnTtZY78ShWh5lvUS1oLTQREgAzNCtNsHDciYDnIe4ekIJwHRkT26IOW+hKNlmC0teXeGIasi4TWr/LyQkYb0AqlzZ+45KGMwibnZE5RCU4LFmmLo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671109122; h=Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=HwbRvl+35CTPIyxpkdvHciwwdNBHg4iIhCv/TONaLwM=; b=ISdPNwQyLhjXsnSYhNBfsQSBZlPBvRg76pkXSjKM9L1QvZe74OHoedQlweMn+//xhZwdI+yxT10iN7wyrTO78/oPBqrIv4ex84//CGx4b5lqldg0+H+B/tKxKgBu1qDisOsGOOvIGQsDT7EcHXeucGvg54v+SVRhWHb4lt/dxFs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671109122457623.5981903108687; Thu, 15 Dec 2022 04:58:42 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5ngs-0006gp-EM; Thu, 15 Dec 2022 07:50:22 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5ngp-0006dK-5Z for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:19 -0500 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p5ngn-00045v-3x for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:18 -0500 Received: by mail-wm1-x32a.google.com with SMTP id ay14-20020a05600c1e0e00b003cf6ab34b61so1624646wmb.2 for ; Thu, 15 Dec 2022 04:50:16 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id i12-20020a05600c354c00b003cfd64b6be1sm8388787wmq.27.2022.12.15.04.50.15 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Dec 2022 04:50:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=HwbRvl+35CTPIyxpkdvHciwwdNBHg4iIhCv/TONaLwM=; b=jzQUC7Giq0QmU4apJzKiqXNSM1DzjTyi/wUgHpCQ9zbm12r8MEJSUtkBfLarRaxF8n 5pgFnAkSpm37NyLsFvp5UpECi+mYfUYOy/98hqbKRupoNfHrgSom2je5Xavoy2pIR35G EYQphkdSDJaHS0vjGpYsBx/kas35tTfTtRCnwXF75frZQdk7CAZhH8MXmxpdJ4EkbQ/x 2d8V2IsEZ0+jxJEDUwMVthyhTTKz5kxtdRUF+3+mDEt/ypYsIfZeCpjawBCmI8ndISdp MQNHij12ufGfXlVPR1xBAvgRvOHRg0CtNOrd9ibfoCyDDJFMlvBvNreT9haNjtBVfGPr yRoA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=HwbRvl+35CTPIyxpkdvHciwwdNBHg4iIhCv/TONaLwM=; b=UJs/LIRIdQFO9gRrnfxrbVT7uihdc/thzW0nRpK0K4HIUYx8LyC3IEiagdZEVd/k6f /vL4D1iGRiDZjcF1snilZpu7Ilw7wIIBKHOmoSOzNH+D7snF8RObiIW9Ovb0G30TL31R 7R/dWxDPRKZCZtFWPz7+Ej8ayjOmbqQBrnSmW7Ij60MAsYTbPXzNtsUD8boKvQNtCn/z 3/0IbIgzQxWZN5Cc4HqAEl7zNKnlLFtrLCEH4mV9kK9vj6sE8l9tnjZt0aM3ZRp8HYwH TOzRmfICoa9a9PlZd42OzGI0cx1jB+Jus9Mp7SFBU8r+229z8uc1XfvHvM6xJK1GrLTp b2pg== X-Gm-Message-State: ANoB5pmta7KyhOWf4wjEcYzgNOWlX3UegkssZR+WHZLdsmekOoLz0v5g VLR2FXgA92CG9yP2tPBGtA3aXK9gp2atC3G8 X-Google-Smtp-Source: AA0mqf7o9pRJORGjNL6HsUgh+gZXJGZYhfYMWfUDAo5EqLyBOwfZFxjaYUXaAzjEBE+NTi/sqlz04w== X-Received: by 2002:a05:600c:4f93:b0:3cf:6e85:eda7 with SMTP id n19-20020a05600c4f9300b003cf6e85eda7mr22601868wmq.14.1671108615872; Thu, 15 Dec 2022 04:50:15 -0800 (PST) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 04/29] hw/arm/virt: Introduce virt_get_high_memmap_enabled() helper Date: Thu, 15 Dec 2022 12:49:44 +0000 Message-Id: <20221215125009.980128-5-peter.maydell@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221215125009.980128-1-peter.maydell@linaro.org> References: <20221215125009.980128-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::32a; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x32a.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1671109124033100003 Content-Type: text/plain; charset="utf-8" From: Gavin Shan This introduces virt_get_high_memmap_enabled() helper, which returns the pointer to vms->highmem_{redists, ecam, mmio}. The pointer will be used in the subsequent patches. No functional change intended. Signed-off-by: Gavin Shan Reviewed-by: Eric Auger Reviewed-by: Cornelia Huck Reviewed-by: Marc Zyngier Tested-by: Zhenyu Zhang Message-id: 20221029224307.138822-5-gshan@redhat.com Signed-off-by: Peter Maydell --- hw/arm/virt.c | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/hw/arm/virt.c b/hw/arm/virt.c index 3bb1bf079ff..7689337470a 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -1690,14 +1690,31 @@ static uint64_t virt_cpu_mp_affinity(VirtMachineSta= te *vms, int idx) return arm_cpu_mp_affinity(idx, clustersz); } =20 +static inline bool *virt_get_high_memmap_enabled(VirtMachineState *vms, + int index) +{ + bool *enabled_array[] =3D { + &vms->highmem_redists, + &vms->highmem_ecam, + &vms->highmem_mmio, + }; + + assert(ARRAY_SIZE(extended_memmap) - VIRT_LOWMEMMAP_LAST =3D=3D + ARRAY_SIZE(enabled_array)); + assert(index - VIRT_LOWMEMMAP_LAST < ARRAY_SIZE(enabled_array)); + + return enabled_array[index - VIRT_LOWMEMMAP_LAST]; +} + static void virt_set_high_memmap(VirtMachineState *vms, hwaddr base, int pa_bits) { hwaddr region_base, region_size; - bool fits; + bool *region_enabled, fits; int i; =20 for (i =3D VIRT_LOWMEMMAP_LAST; i < ARRAY_SIZE(extended_memmap); i++) { + region_enabled =3D virt_get_high_memmap_enabled(vms, i); region_base =3D ROUND_UP(base, extended_memmap[i].size); region_size =3D extended_memmap[i].size; =20 @@ -1715,18 +1732,7 @@ static void virt_set_high_memmap(VirtMachineState *v= ms, vms->highest_gpa =3D region_base + region_size - 1; } =20 - switch (i) { - case VIRT_HIGH_GIC_REDIST2: - vms->highmem_redists &=3D fits; - break; - case VIRT_HIGH_PCIE_ECAM: - vms->highmem_ecam &=3D fits; - break; - case VIRT_HIGH_PCIE_MMIO: - vms->highmem_mmio &=3D fits; - break; - } - + *region_enabled &=3D fits; base =3D region_base + region_size; } } --=20 2.25.1 From nobody Sun May 19 06:05:04 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1671108658; cv=none; d=zohomail.com; s=zohoarc; b=fFTdVXF3EqFLHRYq+jVZ8YbH0jb4ucXr9JVuG975mDk6L+lCW6GZ7+clmL0tNUu2E1zqH2hdE515Qu7ybWXiP4EPA/PcXwEEoTrL4nK2uFAt9s20x3esHDMjmpmIw40H95ma5pj/qhxCzST8kysptjcnGlB3TDi/1xBerBLxSHM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671108658; h=Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=8crXX2Vz1e8DxMP/PXNKOUHg5I2gJfVv7C5htrZV0hQ=; b=Wz3nva6NwZltNwQ9AfIxm26t3pIOumsOC9iG8ZbKpRSxXjAhE2jCQ7qv2ifAm4nfhWO3d8NG+VXQVrgKiuWW5sl9ukfcOUGk8dAHd2a3KsysPfKAJdC9iM7m2XHJ0j0t9ZKUcInySzt68derlKgK/VON28ahCvp8x2+rMC/0GpM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671108658681484.1724987746634; Thu, 15 Dec 2022 04:50:58 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5ngs-0006h4-PH; Thu, 15 Dec 2022 07:50:22 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5ngq-0006eK-0N for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:20 -0500 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p5ngn-00046B-Vn for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:19 -0500 Received: by mail-wm1-x32a.google.com with SMTP id h8-20020a1c2108000000b003d1efd60b65so1663822wmh.0 for ; Thu, 15 Dec 2022 04:50:17 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id i12-20020a05600c354c00b003cfd64b6be1sm8388787wmq.27.2022.12.15.04.50.15 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Dec 2022 04:50:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=8crXX2Vz1e8DxMP/PXNKOUHg5I2gJfVv7C5htrZV0hQ=; b=zGTncryIwrXkfifsxg9K/ZhAeMYtV6afZ72swIF7drBAU1N+Y0YrJ2DZIdUJsvVRA7 Qo10yS34744wMTF/vIH4QPKBkVdLB0QZjN+QIKnP5vmofjgt77c2ta12AgIEkRDOBXBN kbIIXBUYtDz+dN0uqpOhLEYkMhUTp10MnDXOaKV91wVc7qEvvkSBG+iDxMizkheSSVgq LgqQv1pprpPd0rdGM1VDOwngPaS0v92wS6h2SNkRUIVWqRdNiF7Hh+wCETfBLBGZ4/yf 9V6nKChKmwgQk5M5vRQ4ij+X4rYuoxJyhZJ+ke7/HtFCz3KSbf36WJUhvpit2/qbcE25 yjlA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=8crXX2Vz1e8DxMP/PXNKOUHg5I2gJfVv7C5htrZV0hQ=; b=MGJlJ7Q96LiFsp9+lKwOjkwH03OrL+hueMg5V9QHBLLbRCxKCMSwKUGgqfLtWZEVSZ 2nqFHyzZahLBoE+yK3kJWaulInKRs3YvA+xNc01ZjzcfIft8WNy+u4PZkdwxbEe7Ahyn Sl8PtWFSkITQ91T3mHFNVTTF9NqA/Oa4eX+unkXsMrPhS+bexXI2i9cKDLs0VtFmq79b U4dzuVD6MwVgzr1wCFR/wMUuopnC3gQ69aTRELmlIr3Kd7dGf+01a4Ys1HNBnVY5A5WY 8yzgK5Lu828GO5Ltwd+13+MH+ga7+hLIXSVusCSKYxMtY0yu11d8kno8eLei0K7XLKDx BDTA== X-Gm-Message-State: ANoB5pmNGA4tZGYlMrUy5zotkXf8MLAdptX6ypWUMO0eHgabTqf+A8Ak gurjD85KeVHWQI/ZW+pq0FHCfJBW1Qj9zgoI X-Google-Smtp-Source: AA0mqf7biMCkQkcumosVKEW6iHhpCg5mno93D8UjGExCeBpEDQw7K/0TIGMz6LD8eaNIkaG0nFTErg== X-Received: by 2002:a05:600c:1c93:b0:3d0:7026:f0ad with SMTP id k19-20020a05600c1c9300b003d07026f0admr21677417wms.38.1671108616724; Thu, 15 Dec 2022 04:50:16 -0800 (PST) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 05/29] hw/arm/virt: Improve high memory region address assignment Date: Thu, 15 Dec 2022 12:49:45 +0000 Message-Id: <20221215125009.980128-6-peter.maydell@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221215125009.980128-1-peter.maydell@linaro.org> References: <20221215125009.980128-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::32a; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x32a.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1671108659314100017 Content-Type: text/plain; charset="utf-8" From: Gavin Shan There are three high memory regions, which are VIRT_HIGH_REDIST2, VIRT_HIGH_PCIE_ECAM and VIRT_HIGH_PCIE_MMIO. Their base addresses are floating on highest RAM address. However, they can be disabled in several cases. (1) One specific high memory region is likely to be disabled by code by toggling vms->highmem_{redists, ecam, mmio}. (2) VIRT_HIGH_PCIE_ECAM region is disabled on machine, which is 'virt-2.12' or ealier than it. (3) VIRT_HIGH_PCIE_ECAM region is disabled when firmware is loaded on 32-bits system. (4) One specific high memory region is disabled when it breaks the PA space limit. The current implementation of virt_set_{memmap, high_memmap}() isn't optimized because the high memory region's PA space is always reserved, regardless of whatever the actual state in the corresponding vms->highmem_{redists, ecam, mmio} flag. In the code, 'base' and 'vms->highest_gpa' are always increased for case (1), (2) and (3). It's unnecessary since the assigned PA space for the disabled high memory region won't be used afterwards. Improve the address assignment for those three high memory region by skipping the address assignment for one specific high memory region if it has been disabled in case (1), (2) and (3). The memory layout may be changed after the improvement is applied, which leads to potential migration breakage. So 'vms->highmem_compact' is added to control if the improvement should be applied. For now, 'vms->highmem_compact' is set to false, meaning that we don't have memory layout change until it becomes configurable through property 'compact-highmem' in next patch. Signed-off-by: Gavin Shan Reviewed-by: Eric Auger Reviewed-by: Cornelia Huck Reviewed-by: Marc Zyngier Tested-by: Zhenyu Zhang Message-id: 20221029224307.138822-6-gshan@redhat.com Signed-off-by: Peter Maydell --- include/hw/arm/virt.h | 1 + hw/arm/virt.c | 15 ++++++++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/include/hw/arm/virt.h b/include/hw/arm/virt.h index 6ec479ca2b7..709f6237412 100644 --- a/include/hw/arm/virt.h +++ b/include/hw/arm/virt.h @@ -144,6 +144,7 @@ struct VirtMachineState { PFlashCFI01 *flash[2]; bool secure; bool highmem; + bool highmem_compact; bool highmem_ecam; bool highmem_mmio; bool highmem_redists; diff --git a/hw/arm/virt.c b/hw/arm/virt.c index 7689337470a..807175707e7 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -1722,18 +1722,23 @@ static void virt_set_high_memmap(VirtMachineState *= vms, vms->memmap[i].size =3D region_size; =20 /* - * Check each device to see if they fit in the PA space, - * moving highest_gpa as we go. + * Check each device to see if it fits in the PA space, + * moving highest_gpa as we go. For compatibility, move + * highest_gpa for disabled fitting devices as well, if + * the compact layout has been disabled. * * For each device that doesn't fit, disable it. */ fits =3D (region_base + region_size) <=3D BIT_ULL(pa_bits); - if (fits) { - vms->highest_gpa =3D region_base + region_size - 1; + *region_enabled &=3D fits; + if (vms->highmem_compact && !*region_enabled) { + continue; } =20 - *region_enabled &=3D fits; base =3D region_base + region_size; + if (fits) { + vms->highest_gpa =3D base - 1; + } } } =20 --=20 2.25.1 From nobody Sun May 19 06:05:04 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1671109846; cv=none; d=zohomail.com; s=zohoarc; b=mSyqs3fx0Tl0cU2E+bCiBRIeE9/W2q5scl96YjB4O9kD9M9rI7YShA4VHPB14ZLgYoRGOcIEZNTjHnTCLzEuLDchIw7Tgrvnolh16ebUeM7kBhJhPJBZGqFNMnPjXZFqqt+4tnpW6ipcBdTEEzC4rmp/jP89CuOcSuYqumK2RYc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671109846; h=Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=43MiuXznHIayB9l6fFgVondZWwTBp4HePNm+IfE5j/Q=; b=CMCD45HjFAXq3oYFUA2i+AMX8gy4EEbMcMB1VDuP86zp2dKRgirj6kYXPsUs0o9MvvHtPWXv0MYDvnRHdRg9q00XprNactMzxBhT7RYKw/CKn4AjcRSjdB98zTF+f8YJzXdiY9Y8/WLC4QSXrOpPN+oFUE6HkqbaBoatfOlNp/Y= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671109846211938.1480102560676; Thu, 15 Dec 2022 05:10:46 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5ngt-0006i4-Ev; Thu, 15 Dec 2022 07:50:23 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5ngq-0006eh-6I for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:20 -0500 Received: from mail-wm1-x335.google.com ([2a00:1450:4864:20::335]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p5ngo-00045b-9T for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:19 -0500 Received: by mail-wm1-x335.google.com with SMTP id f13-20020a1cc90d000000b003d08c4cf679so1735112wmb.5 for ; Thu, 15 Dec 2022 04:50:17 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id i12-20020a05600c354c00b003cfd64b6be1sm8388787wmq.27.2022.12.15.04.50.16 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Dec 2022 04:50:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=43MiuXznHIayB9l6fFgVondZWwTBp4HePNm+IfE5j/Q=; b=DUxo+B7C0ZzrEa3QpfUB2L1W30dMLUvwg4jDL7+NYDvArVik7ZFtUCfUyBqhNkewSk QqPh4/7VDOiJF3B9j+g85Y+w2B0av4hzeHDTtMAASbShL2tmOmHqqvGg7ETNXFW5sY7K +NWEZbS/rXATZ9z6UsKqu0QC4jCgAETOLSwBVat5MCpDigYNPoeYFcPLK1E/nmXQIJvJ FCSlwZry4W1q9/y67tnnBuPa1foOX0dVvFlp4I4opFMY/IhHrP8lk6r+VwJp/m4Q3nBV QkDCprfyx43B23cGZoOLqVXeUz6IjCeincv57dqw63Oc+GtBSYOCZsnGRcKehbeLPwYf dxQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=43MiuXznHIayB9l6fFgVondZWwTBp4HePNm+IfE5j/Q=; b=W6PXhD1YJTV6iBatPSOmp9GcmS87O/ucY03AJSRXz1L1Qax+Bxzgn1X/lvN8Y7L+Cs NDjHSode38F2Yv3P8b4aXmqTaA7SZKJS5r4RAUQS515kaYpY0+PiunYy2hoQtkYfRLvn PzXLpvQ1wzcQw7CKpeSuzu5HQe1R+oBgHY64GN6pxLunN16l1hADJBuUXT25YimlUYpW nlmd5WtL1d2LOLB9sWS9ocGD6DKxixNCcN3MNhchPxooBbbvc1k5VDYzSBXFu61G27Ih 2hhQs/RQp1Rl0eH6Yi8DicLbBZhcY6Fv86UhuQs1n089z66W8yzJDHTE0aMhMc7Q7O66 G4Rw== X-Gm-Message-State: ANoB5pmmNO7cPG7gitxalHpg0vw6NRUdBPZ14/Hd3788wTSQJxFne9vp yRNq93ZztYaw5cuMBA7EyaEsFl28YJ02LeC6 X-Google-Smtp-Source: AA0mqf4g6s5T5fdsFNO0zs7A/9h4wm0GNiuTBZZC8unojwhYVQnbcGuKRnM8bXIbEqkmgGhcODlr4g== X-Received: by 2002:a7b:c00a:0:b0:3cf:cfcd:1f5 with SMTP id c10-20020a7bc00a000000b003cfcfcd01f5mr21553486wmb.38.1671108617532; Thu, 15 Dec 2022 04:50:17 -0800 (PST) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 06/29] hw/arm/virt: Add 'compact-highmem' property Date: Thu, 15 Dec 2022 12:49:46 +0000 Message-Id: <20221215125009.980128-7-peter.maydell@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221215125009.980128-1-peter.maydell@linaro.org> References: <20221215125009.980128-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::335; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x335.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1671109848272100003 Content-Type: text/plain; charset="utf-8" From: Gavin Shan After the improvement to high memory region address assignment is applied, the memory layout can be changed, introducing possible migration breakage. For example, VIRT_HIGH_PCIE_MMIO memory region is disabled or enabled when the optimization is applied or not, with the following configuration. The configuration is only achievable by modifying the source code until more properties are added to allow users selectively disable those high memory regions. pa_bits =3D 40; vms->highmem_redists =3D false; vms->highmem_ecam =3D false; vms->highmem_mmio =3D true; # qemu-system-aarch64 -accel kvm -cpu host \ -machine virt-7.2,compact-highmem=3D{on, off} \ -m 4G,maxmem=3D511G -monitor stdio Region compact-highmem=3Doff compact-highmem=3Don ---------------------------------------------------------------- MEM [1GB 512GB] [1GB 512GB] HIGH_GIC_REDISTS2 [512GB 512GB+64MB] [disabled] HIGH_PCIE_ECAM [512GB+256MB 512GB+512MB] [disabled] HIGH_PCIE_MMIO [disabled] [512GB 1TB] In order to keep backwords compatibility, we need to disable the optimization on machine, which is virt-7.1 or ealier than it. It means the optimization is enabled by default from virt-7.2. Besides, 'compact-highmem' property is added so that the optimization can be explicitly enabled or disabled on all machine types by users. Signed-off-by: Gavin Shan Reviewed-by: Eric Auger Reviewed-by: Cornelia Huck Reviewed-by: Marc Zyngier Tested-by: Zhenyu Zhang Message-id: 20221029224307.138822-7-gshan@redhat.com Signed-off-by: Peter Maydell --- docs/system/arm/virt.rst | 4 ++++ include/hw/arm/virt.h | 1 + hw/arm/virt.c | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 37 insertions(+) diff --git a/docs/system/arm/virt.rst b/docs/system/arm/virt.rst index 20442ea2c13..4454706392c 100644 --- a/docs/system/arm/virt.rst +++ b/docs/system/arm/virt.rst @@ -94,6 +94,10 @@ highmem address space above 32 bits. The default is ``on`` for machine types later than ``virt-2.12``. =20 +compact-highmem + Set ``on``/``off`` to enable/disable the compact layout for high memory = regions. + The default is ``on`` for machine types later than ``virt-7.2``. + gic-version Specify the version of the Generic Interrupt Controller (GIC) to provide. Valid values are: diff --git a/include/hw/arm/virt.h b/include/hw/arm/virt.h index 709f6237412..c7dd59d7f1f 100644 --- a/include/hw/arm/virt.h +++ b/include/hw/arm/virt.h @@ -125,6 +125,7 @@ struct VirtMachineClass { bool no_pmu; bool claim_edge_triggered_timers; bool smbios_old_sys_ver; + bool no_highmem_compact; bool no_highmem_ecam; bool no_ged; /* Machines < 4.2 have no support for ACPI GED device */ bool kvm_no_adjvtime; diff --git a/hw/arm/virt.c b/hw/arm/virt.c index 807175707e7..3d1371c05c0 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -174,6 +174,12 @@ static const MemMapEntry base_memmap[] =3D { * Note the extended_memmap is sized so that it eventually also includes t= he * base_memmap entries (VIRT_HIGH_GIC_REDIST2 index is greater than the la= st * index of base_memmap). + * + * The memory map for these Highmem IO Regions can be in legacy or compact + * layout, depending on 'compact-highmem' property. With legacy layout, the + * PA space for one specific region is always reserved, even if the region + * has been disabled or doesn't fit into the PA space. However, the PA spa= ce + * for the region won't be reserved in these circumstances with compact la= yout. */ static MemMapEntry extended_memmap[] =3D { /* Additional 64 MB redist region (can contain up to 512 redistributor= s) */ @@ -2352,6 +2358,20 @@ static void virt_set_highmem(Object *obj, bool value= , Error **errp) vms->highmem =3D value; } =20 +static bool virt_get_compact_highmem(Object *obj, Error **errp) +{ + VirtMachineState *vms =3D VIRT_MACHINE(obj); + + return vms->highmem_compact; +} + +static void virt_set_compact_highmem(Object *obj, bool value, Error **errp) +{ + VirtMachineState *vms =3D VIRT_MACHINE(obj); + + vms->highmem_compact =3D value; +} + static bool virt_get_its(Object *obj, Error **errp) { VirtMachineState *vms =3D VIRT_MACHINE(obj); @@ -2970,6 +2990,13 @@ static void virt_machine_class_init(ObjectClass *oc,= void *data) "Set on/off to enable/disable us= ing " "physical address space above 32= bits"); =20 + object_class_property_add_bool(oc, "compact-highmem", + virt_get_compact_highmem, + virt_set_compact_highmem); + object_class_property_set_description(oc, "compact-highmem", + "Set on/off to enable/disable co= mpact " + "layout for high memory regions"= ); + object_class_property_add_str(oc, "gic-version", virt_get_gic_version, virt_set_gic_version); object_class_property_set_description(oc, "gic-version", @@ -3054,6 +3081,7 @@ static void virt_instance_init(Object *obj) =20 /* High memory is enabled by default */ vms->highmem =3D true; + vms->highmem_compact =3D !vmc->no_highmem_compact; vms->gic_version =3D VIRT_GIC_VERSION_NOSEL; =20 vms->highmem_ecam =3D !vmc->no_highmem_ecam; @@ -3123,8 +3151,12 @@ DEFINE_VIRT_MACHINE_AS_LATEST(7, 2) =20 static void virt_machine_7_1_options(MachineClass *mc) { + VirtMachineClass *vmc =3D VIRT_MACHINE_CLASS(OBJECT_CLASS(mc)); + virt_machine_7_2_options(mc); compat_props_add(mc->compat_props, hw_compat_7_1, hw_compat_7_1_len); + /* Compact layout for high memory regions was introduced with 7.2 */ + vmc->no_highmem_compact =3D true; } DEFINE_VIRT_MACHINE(7, 1) =20 --=20 2.25.1 From nobody Sun May 19 06:05:04 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1671109427; cv=none; d=zohomail.com; s=zohoarc; b=gk27mjTgmSlP6XtY5dVBpyOrAlpG876D/rx/qdhDOcacHOFfvbMCfmkz22w3XSmahJMkbppQNnQtBfD7hq1Qufj5N9aH9/sKw2hL7gxTPYyVUnX0pVhfTloRZAq6KPTxxUrzNJf+I0VmUSEcs08pZEjT7+/k6HGkq4mIMd6eNAg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671109427; h=Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=5dJXVk6Pxoxg5miy1GeHW56WuXWRVzOcLZ8zV52nDko=; b=PqbJlXkN3Z6HFf7jrnXusl9/al5gdXegz7E4cB2rDut2ZYJ6odwBk07gkjOJ7ksxjZ8edPbeRBRbvg8ieYo9mD3B/e/dC/vUxdjZoeblTJ2xaLDZgqVJSdCbeKpicQOj/0/7OwSDU0K4rdGA1Icl6bklZSyJiCMqhFpoLKuzIIk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 167110942702957.65852180175011; Thu, 15 Dec 2022 05:03:47 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5ngu-0006j3-Aq; Thu, 15 Dec 2022 07:50:24 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5ngs-0006gx-Ao for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:22 -0500 Received: from mail-wm1-x32d.google.com ([2a00:1450:4864:20::32d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p5ngp-00046h-Pw for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:21 -0500 Received: by mail-wm1-x32d.google.com with SMTP id ja17so10764632wmb.3 for ; Thu, 15 Dec 2022 04:50:19 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id i12-20020a05600c354c00b003cfd64b6be1sm8388787wmq.27.2022.12.15.04.50.17 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Dec 2022 04:50:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=5dJXVk6Pxoxg5miy1GeHW56WuXWRVzOcLZ8zV52nDko=; b=E2BhoyqaWDo64yilgy+YmqY8stK7RvyPRYXYzzt6SuPBOEYWxEX8nIksR5iTB3EwbD CQ0eW+zNJQf/zLhbMfWcnf2KYRflHE0y/2AxefTi8HhPVf6VkuT9snO+e5S7dE1xbk74 yFHS8MnDC/0q/jLJ6R+xnwgBJ0ROUUbnsWlICzJ3C3w3ZBQT+KgHrs5OBmVm2jdWYOBX 7EBxxK5zWV6Zz536NffXqb9ZxQqYXa8Lu3bq2aqb+k98N5URI7N+NUV1vwsaj5OgkHTC /2+2P45dSs03oe5wFFzGAppljF2JF8gew56WEvhsGZQyiFa8GAf9BmOFBPQlNLHNU4jv 6b+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=5dJXVk6Pxoxg5miy1GeHW56WuXWRVzOcLZ8zV52nDko=; b=VSrE3ahxui8es8KSgEBnbUMu+rMn+XkyUEF6lTNhLLj/5KWyC/q8arg+QXqeaTOiwb Jf66h+N/cCruazNsDZP3h2/1le3hdLJv5xSJ3yi8sWylHldg1tuF2kGyM89nK1pmuBRL Q0M9gRYynL40GwMV7KB3Ns5okQ1zyBvbv1Q23E1FYuVTijK1kms9D+33cLaibEWxgNtK ySdL++iwFgu+d4voE79g+OM7uw6ZxA7eNz2GMgwkBx4NCekExB4Jb8rFloDbRbrjh/9J 29QLhqvcwv8SyfRp0pqa01NZkUX7+WMEJ5Bl0xunMPD9JS6IcA0OffyqxAAEtzyX9Hx0 pozw== X-Gm-Message-State: ANoB5pmTKJQtsqhvfmmKVHdBPI6Y+xkLOdVOoEb7pdgJ+ncPBT1zk/Aq vKiARem/CmP3ROUvr5KVHbiXfEgW1YG9nZ/u X-Google-Smtp-Source: AA0mqf7bcd00/wsfoG8s2Sb5YE+CQV/UhYPhvgTMhRvmF07Z8CJUORg25Hz48Yyh30NfvzwKOlLrjw== X-Received: by 2002:a05:600c:805:b0:3d1:ebdf:d592 with SMTP id k5-20020a05600c080500b003d1ebdfd592mr21365611wmp.22.1671108618403; Thu, 15 Dec 2022 04:50:18 -0800 (PST) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 07/29] hw/arm/virt: Add properties to disable high memory regions Date: Thu, 15 Dec 2022 12:49:47 +0000 Message-Id: <20221215125009.980128-8-peter.maydell@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221215125009.980128-1-peter.maydell@linaro.org> References: <20221215125009.980128-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::32d; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x32d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1671109428900100007 Content-Type: text/plain; charset="utf-8" From: Gavin Shan The 3 high memory regions are usually enabled by default, but they may be not used. For example, VIRT_HIGH_GIC_REDIST2 isn't needed by GICv2. This leads to waste in the PA space. Add properties ("highmem-redists", "highmem-ecam", "highmem-mmio") to allow users selectively disable them if needed. After that, the high memory region for GICv3 or GICv4 redistributor can be disabled by user, the number of maximal supported CPUs needs to be calculated based on 'vms->highmem_redists'. The follow-up error message is also improved to indicate if the high memory region for GICv3 and GICv4 has been enabled or not. Suggested-by: Marc Zyngier Signed-off-by: Gavin Shan Reviewed-by: Marc Zyngier Reviewed-by: Cornelia Huck Reviewed-by: Eric Auger Message-id: 20221029224307.138822-8-gshan@redhat.com Signed-off-by: Peter Maydell --- docs/system/arm/virt.rst | 13 +++++++ hw/arm/virt.c | 75 ++++++++++++++++++++++++++++++++++++++-- 2 files changed, 86 insertions(+), 2 deletions(-) diff --git a/docs/system/arm/virt.rst b/docs/system/arm/virt.rst index 4454706392c..188a4f211f4 100644 --- a/docs/system/arm/virt.rst +++ b/docs/system/arm/virt.rst @@ -98,6 +98,19 @@ compact-highmem Set ``on``/``off`` to enable/disable the compact layout for high memory = regions. The default is ``on`` for machine types later than ``virt-7.2``. =20 +highmem-redists + Set ``on``/``off`` to enable/disable the high memory region for GICv3 or + GICv4 redistributor. The default is ``on``. Setting this to ``off`` will + limit the maximum number of CPUs when GICv3 or GICv4 is used. + +highmem-ecam + Set ``on``/``off`` to enable/disable the high memory region for PCI ECAM. + The default is ``on`` for machine types later than ``virt-3.0``. + +highmem-mmio + Set ``on``/``off`` to enable/disable the high memory region for PCI MMIO. + The default is ``on``. + gic-version Specify the version of the Generic Interrupt Controller (GIC) to provide. Valid values are: diff --git a/hw/arm/virt.c b/hw/arm/virt.c index 3d1371c05c0..0acb71be962 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -2096,14 +2096,20 @@ static void machvirt_init(MachineState *machine) if (vms->gic_version =3D=3D VIRT_GIC_VERSION_2) { virt_max_cpus =3D GIC_NCPU; } else { - virt_max_cpus =3D virt_redist_capacity(vms, VIRT_GIC_REDIST) + - virt_redist_capacity(vms, VIRT_HIGH_GIC_REDIST2); + virt_max_cpus =3D virt_redist_capacity(vms, VIRT_GIC_REDIST); + if (vms->highmem_redists) { + virt_max_cpus +=3D virt_redist_capacity(vms, VIRT_HIGH_GIC_RED= IST2); + } } =20 if (max_cpus > virt_max_cpus) { error_report("Number of SMP CPUs requested (%d) exceeds max CPUs " "supported by machine 'mach-virt' (%d)", max_cpus, virt_max_cpus); + if (vms->gic_version !=3D VIRT_GIC_VERSION_2 && !vms->highmem_redi= sts) { + error_printf("Try 'highmem-redists=3Don' for more CPUs\n"); + } + exit(1); } =20 @@ -2372,6 +2378,49 @@ static void virt_set_compact_highmem(Object *obj, bo= ol value, Error **errp) vms->highmem_compact =3D value; } =20 +static bool virt_get_highmem_redists(Object *obj, Error **errp) +{ + VirtMachineState *vms =3D VIRT_MACHINE(obj); + + return vms->highmem_redists; +} + +static void virt_set_highmem_redists(Object *obj, bool value, Error **errp) +{ + VirtMachineState *vms =3D VIRT_MACHINE(obj); + + vms->highmem_redists =3D value; +} + +static bool virt_get_highmem_ecam(Object *obj, Error **errp) +{ + VirtMachineState *vms =3D VIRT_MACHINE(obj); + + return vms->highmem_ecam; +} + +static void virt_set_highmem_ecam(Object *obj, bool value, Error **errp) +{ + VirtMachineState *vms =3D VIRT_MACHINE(obj); + + vms->highmem_ecam =3D value; +} + +static bool virt_get_highmem_mmio(Object *obj, Error **errp) +{ + VirtMachineState *vms =3D VIRT_MACHINE(obj); + + return vms->highmem_mmio; +} + +static void virt_set_highmem_mmio(Object *obj, bool value, Error **errp) +{ + VirtMachineState *vms =3D VIRT_MACHINE(obj); + + vms->highmem_mmio =3D value; +} + + static bool virt_get_its(Object *obj, Error **errp) { VirtMachineState *vms =3D VIRT_MACHINE(obj); @@ -2997,6 +3046,28 @@ static void virt_machine_class_init(ObjectClass *oc,= void *data) "Set on/off to enable/disable co= mpact " "layout for high memory regions"= ); =20 + object_class_property_add_bool(oc, "highmem-redists", + virt_get_highmem_redists, + virt_set_highmem_redists); + object_class_property_set_description(oc, "highmem-redists", + "Set on/off to enable/disable hi= gh " + "memory region for GICv3 or GICv= 4 " + "redistributor"); + + object_class_property_add_bool(oc, "highmem-ecam", + virt_get_highmem_ecam, + virt_set_highmem_ecam); + object_class_property_set_description(oc, "highmem-ecam", + "Set on/off to enable/disable hi= gh " + "memory region for PCI ECAM"); + + object_class_property_add_bool(oc, "highmem-mmio", + virt_get_highmem_mmio, + virt_set_highmem_mmio); + object_class_property_set_description(oc, "highmem-mmio", + "Set on/off to enable/disable hi= gh " + "memory region for PCI MMIO"); + object_class_property_add_str(oc, "gic-version", virt_get_gic_version, virt_set_gic_version); object_class_property_set_description(oc, "gic-version", --=20 2.25.1 From nobody Sun May 19 06:05:04 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1671108759; cv=none; d=zohomail.com; s=zohoarc; b=f02TcH2B4WgydkSEg9dByMFVuhSzk3/A7NwfPBZSxUS998dCwRB9ett74Oqe0602VebieTUmKNZJ15B2PyyDAkCUD56a2CJ0Z3SdX6imSITP5GCgIxuDsdEJ7fP5JFRibUIhuQGxu2gW9WD9qkAtUsQTG59DRJVTjKTo8KdEHII= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671108759; h=Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=M2KhCSPIZElH7SCUlfpHXiQKpSM6BHwX+ecHE37djY8=; b=Ais6MYIB28xXmQfKYuZteSqSopQ+2XRbWKl06aQPaHETCNxYrX6Enb74UEwiLlSXvu2ixQdMGPdchN+tYUFuv9y9RnHZmybsGIYlwc5xFJ9XALEWOBoPwwdU4t7HYKadEySiu6LAhQRBPaFVhQXljqb22dfmXyOuT3YReNN/oLY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671108759751250.4734480684117; Thu, 15 Dec 2022 04:52:39 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5nhR-00071E-Vv; Thu, 15 Dec 2022 07:50:58 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5ngw-0006kl-D0 for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:26 -0500 Received: from mail-wm1-x32f.google.com ([2a00:1450:4864:20::32f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p5ngq-00046y-Qk for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:26 -0500 Received: by mail-wm1-x32f.google.com with SMTP id ja17so10764673wmb.3 for ; Thu, 15 Dec 2022 04:50:20 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id i12-20020a05600c354c00b003cfd64b6be1sm8388787wmq.27.2022.12.15.04.50.18 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Dec 2022 04:50:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=M2KhCSPIZElH7SCUlfpHXiQKpSM6BHwX+ecHE37djY8=; b=b22ycleeN95Y4TGAtLi90kDOoI3rsW8BK1ZQkLMU/15TzdjwI3lIaUF5YHqPPbzbQv 3ur2jh0lwstIz9F8mbAfDNOjq1SSmTif69RKxM1xArLidFi+M8P8lE2Hlz3hXFapW0Pb kMNVNEyr+cVGgh9RqIBYoD4o1CYp6Xh4xGkiiXbDoGExij/R2gVDBjY7u5ZIOlr9UwBT z5zCjg65+cFr4gleOkPBmdYcimvmEmPjfO98S2AOVfOFfkXnB2KnzQk9qmi2cjDpkmB8 kCe9uiM0s9hVPNgF1PPgu0s5qU5dWLqU0XU3qhFloKhqCfuHSYKo8ZJRteGbTb8txkkc Iiwg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=M2KhCSPIZElH7SCUlfpHXiQKpSM6BHwX+ecHE37djY8=; b=l6nf/06bautxnZZXsZVLtxPxtIsF272hGQ2oVbnPLMsMlvP8IsXZ8ZpvIvFaKmtlSl 9cAqi4lrQCfRU1DEKzhxW73DdDBcw8t4lpEP3Yo5OtNAPEmew9kI5LB/FEeHUL6h0InI 1q4YF+i9FSyIvzWx5yoBfo6yiHg/9OByqqfoVe9sAh2RjczBP6BZbO40a2LztR8/QP/S MM/tf96GnsLAKFxMpR0DoYSfZqEs14NphvWg7LesYEdpeg/eR+G2oowdlnshhZBPT2kP FlhNvD9PUh15DyVxbGy6O64L0hi+NZuHaNE4RxtIJ5NPPK21tVjcHJ1p1fFfoV/HgW4q 0SVw== X-Gm-Message-State: ANoB5pm2xC60V2GVq/JWesMG0vYiZSp4FcfR6mMZQQ9AH1bMz8MrFCFw EhSO0WxLphQ7bXJlw7VzrInswjoUugdvKwbL X-Google-Smtp-Source: AA0mqf43JT/Zs28q91hPe7M69PDIdGEIj5gqRKdI5kMuXmzJtyYJ8PGj6jCghKiw2SX5SnWpUsweuA== X-Received: by 2002:a05:600c:3d98:b0:3d0:a31b:ca32 with SMTP id bi24-20020a05600c3d9800b003d0a31bca32mr21610342wmb.1.1671108619406; Thu, 15 Dec 2022 04:50:19 -0800 (PST) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 08/29] hw/arm/virt: build SMBIOS 19 table Date: Thu, 15 Dec 2022 12:49:48 +0000 Message-Id: <20221215125009.980128-9-peter.maydell@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221215125009.980128-1-peter.maydell@linaro.org> References: <20221215125009.980128-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::32f; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x32f.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1671108761315100003 Content-Type: text/plain; charset="utf-8" From: Mihai Carabas Use the base_memmap to build the SMBIOS 19 table which provides the address mapping for a Physical Memory Array (from spec [1] chapter 7.20). This was present on i386 from commit c97294ec1b9e36887e119589d456557d72ab37= b5 ("SMBIOS: Build aggregate smbios tables and entry point"). [1] https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_3.= 5.0.pdf The absence of this table is a breach of the specs and is detected by the FirmwareTestSuite (FWTS), but it doesn't cause any known problems for guest OSes. Signed-off-by: Mihai Carabas Message-id: 1668789029-5432-1-git-send-email-mihai.carabas@oracle.com Reviewed-by: Peter Maydell Signed-off-by: Peter Maydell --- hw/arm/virt.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/hw/arm/virt.c b/hw/arm/virt.c index 0acb71be962..bf59784aefa 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -1614,9 +1614,11 @@ static void *machvirt_dtb(const struct arm_boot_info= *binfo, int *fdt_size) static void virt_build_smbios(VirtMachineState *vms) { MachineClass *mc =3D MACHINE_GET_CLASS(vms); + MachineState *ms =3D MACHINE(vms); VirtMachineClass *vmc =3D VIRT_MACHINE_GET_CLASS(vms); uint8_t *smbios_tables, *smbios_anchor; size_t smbios_tables_len, smbios_anchor_len; + struct smbios_phys_mem_area mem_array; const char *product =3D "QEMU Virtual Machine"; =20 if (kvm_enabled()) { @@ -1627,7 +1629,11 @@ static void virt_build_smbios(VirtMachineState *vms) vmc->smbios_old_sys_ver ? "1.0" : mc->name, false, true, SMBIOS_ENTRY_POINT_TYPE_64); =20 - smbios_get_tables(MACHINE(vms), NULL, 0, + /* build the array of physical mem area from base_memmap */ + mem_array.address =3D vms->memmap[VIRT_MEM].base; + mem_array.length =3D ms->ram_size; + + smbios_get_tables(ms, &mem_array, 1, &smbios_tables, &smbios_tables_len, &smbios_anchor, &smbios_anchor_len, &error_fatal); --=20 2.25.1 From nobody Sun May 19 06:05:04 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1671108678; cv=none; d=zohomail.com; s=zohoarc; b=GLj07pA2gXhwJ/XSN3ogxXUIOgiwZj2k4xGAfxmDyBqHbGCzpSipUO5EHuYdmKhB+O+0Q2QEQ8TmjlKN3HroXJQ963xgYtbWyRAXPQSYm3vRSyD4CduhTCVgyDJGvh+AB0jfoFJ1b0AAy7m+PMrwRBUZO33GjAYr6XPtCiXDTco= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671108678; h=Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=UcEEPbA9TVrn0lA237GLQjyDDGjqynsdLl9q4ZxOLp8=; b=amD5IHso3fKPLgcCxSn9/BvbYo62iv4R/okeKp7z5KQWiug1FcZIGd+PzlyTzEj/ZfCpJnh/XM7RhZqBbSgD9bLIKIjqPE6Vki3bQyw/FDDTUSxEmPCzrTSkfuDNdkwJFIYLcpALA7L50KWJ83UFpIAveaVEUk486NMXqep5xrI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671108678237978.433985644624; Thu, 15 Dec 2022 04:51:18 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5ngv-0006k7-IU; Thu, 15 Dec 2022 07:50:25 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5ngt-0006iZ-Tl for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:23 -0500 Received: from mail-wm1-x335.google.com ([2a00:1450:4864:20::335]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p5ngs-00045o-3Z for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:23 -0500 Received: by mail-wm1-x335.google.com with SMTP id v7so13711116wmn.0 for ; Thu, 15 Dec 2022 04:50:20 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id i12-20020a05600c354c00b003cfd64b6be1sm8388787wmq.27.2022.12.15.04.50.19 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Dec 2022 04:50:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=UcEEPbA9TVrn0lA237GLQjyDDGjqynsdLl9q4ZxOLp8=; b=fK2KfFjPt3k+yQI1IJJrETktve6iEJfRpRI7wdl4jbmU8XSvQN5HXR3EswRhFiyh6D vLRA6D1LInNkbS2RYJVOyiDTwHVilJAgWJ2DvbB/+E1fmhbxY98KirmHo5So9a3pW4Ny VgzmrDILdvTM2zLtT4/vzsm983+h7+wVgNq/zres0FWueanKJdnjUhQ9xR9wpAA9Kaou 457QkwKClUErPqUrnJwlpSyL4KFIIX+GCbBOj/KFmIUbkuGxDH66rLUSqX47pziKxr5j mrMtATdSImeMrVH9bxH6efGLAuigwApCwy2JsiEXBgb+w77LyZmFzW/fNiTzRkea0XgL ZbxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=UcEEPbA9TVrn0lA237GLQjyDDGjqynsdLl9q4ZxOLp8=; b=aR8E+Bq3pxpgi6GC6LhBhj3qh/eaCUo6qNFv3xRzsen01pJTHRkXshlyxzeOQCsz3C +uC3bYMzqFbYzuNxHSuXwipHicQtlnbbbS68722FiwYqFG1bMWPXfWI4afdtJPX7GJAI yCUShmK9uDT4F6izQzAXkGpjsXTPfopVPeOv/gIA4GLIbgDctwZIaJvPGTcNJlmCWV+L OYbZxrmrbzSNTszprVGR/IDzfSoKU+gZpJAbluv5ZooPRLvb+dUagbWc004dERyUswZq 2bIsvR5ErSXlMYAnuo+HxXnhCV8owBnX9yPfsen7GfAsLuBi6wxj6rDVej3u5GLPhj5B 4qJg== X-Gm-Message-State: ANoB5pknynAWD2s7y3mZ9O6C3tcnk+XuA17XjRtWlwA685nWZmdhFGVl U3LsU3xHP+pMfFQ1NLWdz6hr5y7ER/I1Sl46 X-Google-Smtp-Source: AA0mqf6Kv3Hk7abZiOIAoiH2PmRqiyUS3kZOZt3E/9E+VaLCZ5C7JprsbNqui95pQkov2ZgJGuE07g== X-Received: by 2002:a05:600c:6899:b0:3d1:cfcb:7d19 with SMTP id fn25-20020a05600c689900b003d1cfcb7d19mr29640840wmb.32.1671108620317; Thu, 15 Dec 2022 04:50:20 -0800 (PST) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 09/29] target/arm: Add Cortex-A55 CPU Date: Thu, 15 Dec 2022 12:49:49 +0000 Message-Id: <20221215125009.980128-10-peter.maydell@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221215125009.980128-1-peter.maydell@linaro.org> References: <20221215125009.980128-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::335; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x335.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1671108679439100001 Content-Type: text/plain; charset="utf-8" From: Timofey Kutergin The Cortex-A55 is one of the newer armv8.2+ CPUs; in particular it supports the Privileged Access Never (PAN) feature. Add a model of this CPU, so you can use a CPU type on the virt board that models a specific real hardware CPU, rather than having to use the QEMU-specific "max" CPU type. Signed-off-by: Timofey Kutergin Message-id: 20221121150819.2782817-1-tkutergin@gmail.com [PMM: tweaked commit message] Reviewed-by: Peter Maydell Signed-off-by: Peter Maydell --- docs/system/arm/virt.rst | 1 + hw/arm/virt.c | 1 + target/arm/cpu64.c | 69 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 71 insertions(+) diff --git a/docs/system/arm/virt.rst b/docs/system/arm/virt.rst index 188a4f211f4..1cab33f02e3 100644 --- a/docs/system/arm/virt.rst +++ b/docs/system/arm/virt.rst @@ -54,6 +54,7 @@ Supported guest CPU types: - ``cortex-a15`` (32-bit; the default) - ``cortex-a35`` (64-bit) - ``cortex-a53`` (64-bit) +- ``cortex-a55`` (64-bit) - ``cortex-a57`` (64-bit) - ``cortex-a72`` (64-bit) - ``cortex-a76`` (64-bit) diff --git a/hw/arm/virt.c b/hw/arm/virt.c index bf59784aefa..a2dd48dfb80 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -207,6 +207,7 @@ static const char *valid_cpus[] =3D { ARM_CPU_TYPE_NAME("cortex-a15"), ARM_CPU_TYPE_NAME("cortex-a35"), ARM_CPU_TYPE_NAME("cortex-a53"), + ARM_CPU_TYPE_NAME("cortex-a55"), ARM_CPU_TYPE_NAME("cortex-a57"), ARM_CPU_TYPE_NAME("cortex-a72"), ARM_CPU_TYPE_NAME("cortex-a76"), diff --git a/target/arm/cpu64.c b/target/arm/cpu64.c index 3d74f134f57..cec64471b4e 100644 --- a/target/arm/cpu64.c +++ b/target/arm/cpu64.c @@ -792,6 +792,74 @@ static void aarch64_a53_initfn(Object *obj) define_cortex_a72_a57_a53_cp_reginfo(cpu); } =20 +static void aarch64_a55_initfn(Object *obj) +{ + ARMCPU *cpu =3D ARM_CPU(obj); + + cpu->dtb_compatible =3D "arm,cortex-a55"; + set_feature(&cpu->env, ARM_FEATURE_V8); + set_feature(&cpu->env, ARM_FEATURE_NEON); + set_feature(&cpu->env, ARM_FEATURE_GENERIC_TIMER); + set_feature(&cpu->env, ARM_FEATURE_AARCH64); + set_feature(&cpu->env, ARM_FEATURE_CBAR_RO); + set_feature(&cpu->env, ARM_FEATURE_EL2); + set_feature(&cpu->env, ARM_FEATURE_EL3); + set_feature(&cpu->env, ARM_FEATURE_PMU); + + /* Ordered by B2.4 AArch64 registers by functional group */ + cpu->clidr =3D 0x82000023; + cpu->ctr =3D 0x84448004; /* L1Ip =3D VIPT */ + cpu->dcz_blocksize =3D 4; /* 64 bytes */ + cpu->isar.id_aa64dfr0 =3D 0x0000000010305408ull; + cpu->isar.id_aa64isar0 =3D 0x0000100010211120ull; + cpu->isar.id_aa64isar1 =3D 0x0000000000100001ull; + cpu->isar.id_aa64mmfr0 =3D 0x0000000000101122ull; + cpu->isar.id_aa64mmfr1 =3D 0x0000000010212122ull; + cpu->isar.id_aa64mmfr2 =3D 0x0000000000001011ull; + cpu->isar.id_aa64pfr0 =3D 0x0000000010112222ull; + cpu->isar.id_aa64pfr1 =3D 0x0000000000000010ull; + cpu->id_afr0 =3D 0x00000000; + cpu->isar.id_dfr0 =3D 0x04010088; + cpu->isar.id_isar0 =3D 0x02101110; + cpu->isar.id_isar1 =3D 0x13112111; + cpu->isar.id_isar2 =3D 0x21232042; + cpu->isar.id_isar3 =3D 0x01112131; + cpu->isar.id_isar4 =3D 0x00011142; + cpu->isar.id_isar5 =3D 0x01011121; + cpu->isar.id_isar6 =3D 0x00000010; + cpu->isar.id_mmfr0 =3D 0x10201105; + cpu->isar.id_mmfr1 =3D 0x40000000; + cpu->isar.id_mmfr2 =3D 0x01260000; + cpu->isar.id_mmfr3 =3D 0x02122211; + cpu->isar.id_mmfr4 =3D 0x00021110; + cpu->isar.id_pfr0 =3D 0x10010131; + cpu->isar.id_pfr1 =3D 0x00011011; + cpu->isar.id_pfr2 =3D 0x00000011; + cpu->midr =3D 0x412FD050; /* r2p0 */ + cpu->revidr =3D 0; + + /* From B2.23 CCSIDR_EL1 */ + cpu->ccsidr[0] =3D 0x700fe01a; /* 32KB L1 dcache */ + cpu->ccsidr[1] =3D 0x200fe01a; /* 32KB L1 icache */ + cpu->ccsidr[2] =3D 0x703fe07a; /* 512KB L2 cache */ + + /* From B2.96 SCTLR_EL3 */ + cpu->reset_sctlr =3D 0x30c50838; + + /* From B4.45 ICH_VTR_EL2 */ + cpu->gic_num_lrs =3D 4; + cpu->gic_vpribits =3D 5; + cpu->gic_vprebits =3D 5; + cpu->gic_pribits =3D 5; + + cpu->isar.mvfr0 =3D 0x10110222; + cpu->isar.mvfr1 =3D 0x13211111; + cpu->isar.mvfr2 =3D 0x00000043; + + /* From D5.4 AArch64 PMU register summary */ + cpu->isar.reset_pmcr_el0 =3D 0x410b3000; +} + static void aarch64_a72_initfn(Object *obj) { ARMCPU *cpu =3D ARM_CPU(obj); @@ -1243,6 +1311,7 @@ static const ARMCPUInfo aarch64_cpus[] =3D { { .name =3D "cortex-a35", .initfn =3D aarch64_a35_initfn }, { .name =3D "cortex-a57", .initfn =3D aarch64_a57_initfn }, { .name =3D "cortex-a53", .initfn =3D aarch64_a53_initfn }, + { .name =3D "cortex-a55", .initfn =3D aarch64_a55_initfn }, { .name =3D "cortex-a72", .initfn =3D aarch64_a72_initfn }, { .name =3D "cortex-a76", .initfn =3D aarch64_a76_initfn }, { .name =3D "a64fx", .initfn =3D aarch64_a64fx_initfn }, --=20 2.25.1 From nobody Sun May 19 06:05:04 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1671108717; cv=none; d=zohomail.com; s=zohoarc; b=ihoZEs9L9GvI/3QZouHEyOO7JjYUQgg+vfgOJHskpIgUPznE3RI1Q0PXgIynunkLxzVBWNHffjawCDPo4j5vANoNmn2eNb+XPZbkYOMY7SJvxRKnO8Sy6RIy1W1uyqPdc8Mwydz1J4hmwUdFQIP+YvgJ53ltMz+RJ52p/LQ0vkQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671108717; h=Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=5/Zq4XCg0nK4f+CPKGhxaJKU8gkK5Z/SgaPEaxtwj2c=; b=IBms6pfi+Zdyx7bzRixApZgAAGuoZEJZezgF60eQtdzq4ACQSZC0z41w0A//KQGl2I0xh51GnYXsEAvNAywaQVwp0XTT/IqnliAXuVf+wE+18isD1wFRVFMBJbX5hlGD/up/n/D7w2hTNcsWhaaNduezCDIa4Fk25mcFWJ0V8kg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671108717751149.64039486658328; Thu, 15 Dec 2022 04:51:57 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5ngw-0006lw-Uf; Thu, 15 Dec 2022 07:50:26 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5ngv-0006jj-9m for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:25 -0500 Received: from mail-wm1-x329.google.com ([2a00:1450:4864:20::329]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p5ngs-00047E-R8 for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:25 -0500 Received: by mail-wm1-x329.google.com with SMTP id p13-20020a05600c468d00b003cf8859ed1bso1755741wmo.1 for ; Thu, 15 Dec 2022 04:50:22 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id i12-20020a05600c354c00b003cfd64b6be1sm8388787wmq.27.2022.12.15.04.50.20 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Dec 2022 04:50:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=5/Zq4XCg0nK4f+CPKGhxaJKU8gkK5Z/SgaPEaxtwj2c=; b=qLQPYdvez0Bf/bTRUMjWPz+Wfb5N9aupMI0iiku/J85BdBp8ReeJO5/SNxaVi85oH3 OqW5YFwIRRrNPKxTNSJ/oR8SaMqpCVBNIzarC6d31BeGmzN3J2C0mgdLLDzI2wyHWsBg ertDoceiXmn9KiWXZTo9NM99Vt9wFKaZxcqOlt6HNz4nADY8AXgnN1Z/SdacLLVAJHmR 8KBwK5z4NcMT/bLs2kNpyjT4d2tx+jXmkTCEDs9nOwgg9gsot5XKSzmCt1W+5XLeMwwj +z7vS4S97jIszZHS/Ja2IQmVTzL/PfV/6ghCBGZIA/LStoO9LFx+XgVZLyst+NbNhHmo jTNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=5/Zq4XCg0nK4f+CPKGhxaJKU8gkK5Z/SgaPEaxtwj2c=; b=p8LevIFsqrfkKX3j6micRjuad/cguOq3cGYG2yYhzmmr0CcJtzffs5m22GZg4HGeeg /HK6+op4s6w4W6UE/5gPd3BbBVvAErvsJzuFnk5aawGhbDg7DYaObofaSSp/H6glP6jO Fkk9coE7H/YoBliqZ/dlWYknoEi2tzV8cbB9jY6sb6IcdNHZ+YUfssXsR16nNvhTPLja xDKMhSEo8zRyARSPngJMwDljEnGVm9CritjcphCPMOknRMf9zdPjogcyV8AF3fmrPNjL p8ojEbxPoATK8y2cdecEPJ1UCUHkfHWwoP5+93yVvzLJMvgLQjEOp1PgS2efm3e1zCCJ Z9Mg== X-Gm-Message-State: ANoB5pmJvs6P762qfmpVTQEPqzZrTF8PefV0yHuOeauVqfQWAHupLNdd jUMO1w5ynCN4vVRWdVd5yqWioLV0aarqNPPo X-Google-Smtp-Source: AA0mqf6eYE1nIsgv81yGBIH2+7n6Pd6+pbLkjZOhPljbEWy3ZTvReK4i2kOwP6/fPywM2nYx5MPGQA== X-Received: by 2002:a05:600c:19c7:b0:3d0:8722:a145 with SMTP id u7-20020a05600c19c700b003d08722a145mr22146237wmq.40.1671108621186; Thu, 15 Dec 2022 04:50:21 -0800 (PST) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 10/29] hw/intc/arm_gicv3: Fix GICD_TYPER ITLinesNumber advertisement Date: Thu, 15 Dec 2022 12:49:50 +0000 Message-Id: <20221215125009.980128-11-peter.maydell@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221215125009.980128-1-peter.maydell@linaro.org> References: <20221215125009.980128-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::329; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x329.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1671108718961100003 Content-Type: text/plain; charset="utf-8" From: Luke Starrett The ARM GICv3 TRM describes that the ITLinesNumber field of GICD_TYPER register: "indicates the maximum SPI INTID that the GIC implementation supports" As SPI #0 is absolute IRQ #32, the max SPI INTID should have accounted for the internal 16x SGI's and 16x PPI's. However, the original GICv3 model subtracted off the SGI/PPI. Cosmetically this can be seen at OS boot (Linux) showing 32 shy of what should be there, i.e.: [ 0.000000] GICv3: 224 SPIs implemented Though in hw/arm/virt.c, the machine is configured for 256 SPI's. ARM virt machine likely doesn't have a problem with this because the upper 32 IRQ's don't actually have anything meaningful wired. But, this does become a functional issue on a custom use case which wants to make use of these IRQ's. Additionally, boot code (i.e. TF-A) will only init up to the number (blocks of 32) that it believes to actually be there. Signed-off-by: Luke Starrett Message-id: AM9P193MB168473D99B761E204E032095D40D9@AM9P193MB1684.EURP193.PR= OD.OUTLOOK.COM Reviewed-by: Peter Maydell Signed-off-by: Peter Maydell --- hw/intc/arm_gicv3_dist.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/intc/arm_gicv3_dist.c b/hw/intc/arm_gicv3_dist.c index eea03681187..d599fefcbcf 100644 --- a/hw/intc/arm_gicv3_dist.c +++ b/hw/intc/arm_gicv3_dist.c @@ -390,9 +390,9 @@ static bool gicd_readl(GICv3State *s, hwaddr offset, * MBIS =3D=3D 0 (message-based SPIs not supported) * SecurityExtn =3D=3D 1 if security extns supported * CPUNumber =3D=3D 0 since for us ARE is always 1 - * ITLinesNumber =3D=3D (num external irqs / 32) - 1 + * ITLinesNumber =3D=3D (((max SPI IntID + 1) / 32) - 1) */ - int itlinesnumber =3D ((s->num_irq - GIC_INTERNAL) / 32) - 1; + int itlinesnumber =3D (s->num_irq / 32) - 1; /* * SecurityExtn must be RAZ if GICD_CTLR.DS =3D=3D 1, and * "security extensions not supported" always implies DS =3D=3D 1, --=20 2.25.1 From nobody Sun May 19 06:05:04 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1671109114; cv=none; d=zohomail.com; s=zohoarc; b=CnTsg8IthhxtPI3E2lRe/Mhlz9UPvOW/qY79/gO44EaIQ98slSXCZhjJl2YHmGEjOJqa/sKlO2EXA6XwlGnLQ+ohfvMBiHcvMyrPAwtZKRDGrk2URMFLsTLQcc7A6y4XJE4Wj56xWLOvOU0yPPeEYAmLodZTXFFkYwUOAOpuMQw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671109114; h=Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=uupKhb0u/oKN7bGek/c6f+4vzO/X9cJUo24FKyvg7uE=; b=fIBlRg7m5D1mnrD5PxLPwdOMGVIMK2L0gJF1Xm0IeuUgSrY41+SfCeshUo/ul8hJ0YsuQGDzc5u4h65gKuZPMfjXDm5yLXVn/EPI5Wu/jHo5m0vQ9dSOwqzHQcOSUuH1z+OTaxcKu89/fLpy7Qh7HSTRLuhGx18vmPSwx0kol7g= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671109114355987.9581296342968; Thu, 15 Dec 2022 04:58:34 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5ngx-0006nz-Oe; Thu, 15 Dec 2022 07:50:27 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5ngv-0006jn-Cx for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:25 -0500 Received: from mail-wm1-x32d.google.com ([2a00:1450:4864:20::32d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p5ngt-00047M-DA for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:25 -0500 Received: by mail-wm1-x32d.google.com with SMTP id c65-20020a1c3544000000b003cfffd00fc0so1632598wma.1 for ; Thu, 15 Dec 2022 04:50:22 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id i12-20020a05600c354c00b003cfd64b6be1sm8388787wmq.27.2022.12.15.04.50.21 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Dec 2022 04:50:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=uupKhb0u/oKN7bGek/c6f+4vzO/X9cJUo24FKyvg7uE=; b=GafXR0H62DHoizKAMC6X6O5jzyBN5SU1Xt+wW1YuMwA+Vo3LsoRKWXuTUIrScP2o9s F164/qg2JBiIm10NI9zw28kW5bC/AX3mqgJI+IImUio6+wxT8bP9VUXYePOYPVyvWZPn WjgvR7t8J10zYPKa14cnubKAmSoi1EY9xETTS3Z48JxLY/qQF41cDg2cZNZ0Z4Pse+hw PEHePgCVpXrbweHU4Bdgu4NRJxfuJ7e8Oz16+qj74Qu6Y7zbbTTzWwy8IVrxBS1OON1v njZ/9jxgiMw3qL0SFpZevIP+qAEy3bmF1Zv+5wVjYVfAu6Xhvz3SVSy5xJRD0p0W7H3x cmLQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=uupKhb0u/oKN7bGek/c6f+4vzO/X9cJUo24FKyvg7uE=; b=R4UcOwbtcrNZl73gbhVKhtEuJqu69ex6ZugdMrqAcrpAGFFMd2jJQ3PKetxNt4UdnG JqhvEu8E76RGNPWnAen8gmZ7KlYNKANtDkP68aiKQF/JTiKlLS5wqTFPTJgQvUeMGPWV tursAHGdDuO5Y9MIi7GVN9sS5P98js6uLOf786Bqu4swEs3jxkSRVVkv0k4YgbEIrnyC u24soAO59cg1mPWLCpOLjY8c84KIJJj5hvIa1aodFvcMMdJUgL9nC3uYV1UrvtxppOGs M4M2+HcB1Qub++s3kGrEjQwp8ROgNgDJ6Lo3n3QpARy/ijs+hX5Syuq1cCVsesXN/3sW ExCw== X-Gm-Message-State: ANoB5pmqHrCmAurDR/xZpntu0qAi4pPBrF/Bn+7OMSFPFQSiI6Z4/iSH F1l4mpXDZoMQgzzkalIVKe2fnQIxUPoCOpa4 X-Google-Smtp-Source: AA0mqf4thmjTOcRIfHH95n7Nmb3moD5pD/Q6wjYr7wS2rbE6PZmWWn2zWkPMscpVzU6+/pbLvoa0lQ== X-Received: by 2002:a05:600c:1e86:b0:3cf:81af:8b73 with SMTP id be6-20020a05600c1e8600b003cf81af8b73mr21821896wmb.23.1671108622170; Thu, 15 Dec 2022 04:50:22 -0800 (PST) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 11/29] target/arm: Allow relevant HCR bits to be written for FEAT_EVT Date: Thu, 15 Dec 2022 12:49:51 +0000 Message-Id: <20221215125009.980128-12-peter.maydell@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221215125009.980128-1-peter.maydell@linaro.org> References: <20221215125009.980128-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::32d; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x32d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1671109115860100001 Content-Type: text/plain; charset="utf-8" FEAT_EVT adds five new bits to the HCR_EL2 register: TTLBIS, TTLBOS, TICAB, TOCU and TID4. These allow the guest to enable trapping of various EL1 instructions to EL2. In this commit, add the necessary code to allow the guest to set these bits if the feature is present; because the bit is always zero when the feature isn't present we won't need to use explicit feature checks in the "trap on condition" tests in the following commits. Note that although full implementation of the feature (mandatory from Armv8.5 onward) requires all five trap bits, the ID registers permit a value indicating that only TICAB, TOCU and TID4 are implemented, which might be the case for CPUs between Armv8.2 and Armv8.5. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson --- target/arm/cpu.h | 30 ++++++++++++++++++++++++++++++ target/arm/helper.c | 6 ++++++ 2 files changed, 36 insertions(+) diff --git a/target/arm/cpu.h b/target/arm/cpu.h index 9aeed3c8481..2b4bd20f9d0 100644 --- a/target/arm/cpu.h +++ b/target/arm/cpu.h @@ -3757,6 +3757,16 @@ static inline bool isar_feature_aa32_tts2uxn(const A= RMISARegisters *id) return FIELD_EX32(id->id_mmfr4, ID_MMFR4, XNX) !=3D 0; } =20 +static inline bool isar_feature_aa32_half_evt(const ARMISARegisters *id) +{ + return FIELD_EX32(id->id_mmfr4, ID_MMFR4, EVT) >=3D 1; +} + +static inline bool isar_feature_aa32_evt(const ARMISARegisters *id) +{ + return FIELD_EX32(id->id_mmfr4, ID_MMFR4, EVT) >=3D 2; +} + static inline bool isar_feature_aa32_dit(const ARMISARegisters *id) { return FIELD_EX32(id->id_pfr0, ID_PFR0, DIT) !=3D 0; @@ -4029,6 +4039,16 @@ static inline bool isar_feature_aa64_ids(const ARMIS= ARegisters *id) return FIELD_EX64(id->id_aa64mmfr2, ID_AA64MMFR2, IDS) !=3D 0; } =20 +static inline bool isar_feature_aa64_half_evt(const ARMISARegisters *id) +{ + return FIELD_EX64(id->id_aa64mmfr2, ID_AA64MMFR2, EVT) >=3D 1; +} + +static inline bool isar_feature_aa64_evt(const ARMISARegisters *id) +{ + return FIELD_EX64(id->id_aa64mmfr2, ID_AA64MMFR2, EVT) >=3D 2; +} + static inline bool isar_feature_aa64_bti(const ARMISARegisters *id) { return FIELD_EX64(id->id_aa64pfr1, ID_AA64PFR1, BT) !=3D 0; @@ -4313,6 +4333,16 @@ static inline bool isar_feature_any_ras(const ARMISA= Registers *id) return isar_feature_aa64_ras(id) || isar_feature_aa32_ras(id); } =20 +static inline bool isar_feature_any_half_evt(const ARMISARegisters *id) +{ + return isar_feature_aa64_half_evt(id) || isar_feature_aa32_half_evt(id= ); +} + +static inline bool isar_feature_any_evt(const ARMISARegisters *id) +{ + return isar_feature_aa64_evt(id) || isar_feature_aa32_evt(id); +} + /* * Forward to the above feature tests given an ARMCPU pointer. */ diff --git a/target/arm/helper.c b/target/arm/helper.c index d8c8223ec38..751c360ce45 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -5267,6 +5267,12 @@ static void do_hcr_write(CPUARMState *env, uint64_t = value, uint64_t valid_mask) } } =20 + if (cpu_isar_feature(any_evt, cpu)) { + valid_mask |=3D HCR_TTLBIS | HCR_TTLBOS | HCR_TICAB | HCR_TOCU | H= CR_TID4; + } else if (cpu_isar_feature(any_half_evt, cpu)) { + valid_mask |=3D HCR_TICAB | HCR_TOCU | HCR_TID4; + } + /* Clear RES0 bits. */ value &=3D valid_mask; =20 --=20 2.25.1 From nobody Sun May 19 06:05:04 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1671111234; cv=none; d=zohomail.com; s=zohoarc; b=HzPXFlwpLKs3YqR1+9XRxUVppHIr1lwC6Y8k4n5I+g7mVXxqrgn2o5FlEcYoSkhzLFHjX5RHQbsjje2iAHlzsAr1JhdeWs+CBwFYAIZl0VgNLcnOOzhofyfx+sRpK0UaptkB90kjJIsQv5pQ6AJVB8zvEZEqEgb3J63PHqGaNdY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671111234; h=Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=DrWNKUI5/mIVVsAs8JQZepO2Gy1iWGNfZwBpATQuyTk=; b=nwG0jn264tf0xJ7+3N3imB/NPmONoB28LBBC3d4YD4bUJQgBCROpUUghgOKziFrUPKsDVwD7JrJFl7RIfJbDesYbpnVCGDwl0g9nEJP3yYnDioQYkjhIatParFRF9O7tZTMImJ/tAdzlkfk6rnHiPn7hpaVU1BT3SqAe/CmDd6o= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671111234785835.8787907308799; Thu, 15 Dec 2022 05:33:54 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5ngy-0006oV-Sw; Thu, 15 Dec 2022 07:50:29 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5ngw-0006ko-El for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:26 -0500 Received: from mail-wm1-x32f.google.com ([2a00:1450:4864:20::32f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p5ngu-00047Y-Dt for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:26 -0500 Received: by mail-wm1-x32f.google.com with SMTP id z8-20020a05600c220800b003d33b0bda11so660178wml.0 for ; Thu, 15 Dec 2022 04:50:24 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id i12-20020a05600c354c00b003cfd64b6be1sm8388787wmq.27.2022.12.15.04.50.22 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Dec 2022 04:50:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=DrWNKUI5/mIVVsAs8JQZepO2Gy1iWGNfZwBpATQuyTk=; b=MLSzjHd0DDF0ZKZJwwVZWywaVRMv+835mY3UhbZoHpfR3a/Cx/FIm2vFrzrlLoJe7O ABmll1YI46TISQMAwM2OVZ9R/tcihEpYcHqUHlXtsM1aS+cPm1CAe+i2XKIwJS7KxcNc QCd10tFANqH54Ot4ai34ALLssYigxhDJhByMY7OZYf+HyCFjp11y4HXzKcJZ7P4K4fXV EFlgJzDIyDzDnizZwPu8akUPz/hDJZoccp8wBlsTUg31bcCO016mBpHP9n2STunYkTDN gkyRD3nFTPzaACBu1mM+P+Z6i5CLm1mpvtMPxP6X2ywosPED8M/XUIX2dTB38i3M/rFA QOLA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=DrWNKUI5/mIVVsAs8JQZepO2Gy1iWGNfZwBpATQuyTk=; b=FURKh6Q6t5LcU0f2hz6Hi1kJJJ4MJ501TWwISymvskJXv2qnhfex62a6mf6QGUvQtM SuNBUcI/ey6jfz87PFE6vkDAEdZax2MqY8m3RzQ0x8gntUnNoumtFeJnumy9EdAPSp+D JN4jIXkhgt3MmRWa8FGPJCGRDj6ebK36AB6y/TTxaxTWhOTyqz7Qamx2erkbIgYcxbEZ 776JM72tMFH95EQsBQg309EBXhO7bNCBZX4XYbUgdDVkcx+Ou2lUnnHCHcKI6XALISAL YpPTX/K5ORXXOgyL8f+LZSek3S+jAtmZKz9AqKnA+ZVab0reGIp7Tuygqs/TmYq0qj7B bJCA== X-Gm-Message-State: ANoB5plDlQIc/x99hOj2EJMkTbwvVbG3wJWExxWH+t4DWXOSjue0CG90 +7YW2YYtEf9xTGSYjGxxdzuUju3LGkGiuXtU X-Google-Smtp-Source: AA0mqf4h54H426jGWzvIGNj8ZOsIQTSBXjR6s7wFyGmHFA8L90IfeacWo8beaPdQy0w2hgYHTYEzAw== X-Received: by 2002:a05:600c:540c:b0:3d0:57ea:319c with SMTP id he12-20020a05600c540c00b003d057ea319cmr22875628wmb.13.1671108623087; Thu, 15 Dec 2022 04:50:23 -0800 (PST) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 12/29] target/arm: Implement HCR_EL2.TTLBIS traps Date: Thu, 15 Dec 2022 12:49:52 +0000 Message-Id: <20221215125009.980128-13-peter.maydell@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221215125009.980128-1-peter.maydell@linaro.org> References: <20221215125009.980128-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::32f; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x32f.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1671111236784100007 Content-Type: text/plain; charset="utf-8" For FEAT_EVT, the HCR_EL2.TTLBIS bit allows trapping on EL1 use of TLB maintenance instructions that operate on the inner shareable domain: AArch64: TLBI VMALLE1IS, TLBI VAE1IS, TLBI ASIDE1IS, TLBI VAAE1IS, TLBI VALE1IS, TLBI VAALE1IS, TLBI RVAE1IS, TLBI RVAAE1IS, TLBI RVALE1IS, and TLBI RVAALE1IS. AArch32: TLBIALLIS, TLBIMVAIS, TLBIASIDIS, TLBIMVAAIS, TLBIMVALIS, and TLBIMVAALIS. Add the trapping support. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson --- target/arm/helper.c | 43 +++++++++++++++++++++++++++---------------- 1 file changed, 27 insertions(+), 16 deletions(-) diff --git a/target/arm/helper.c b/target/arm/helper.c index 751c360ce45..475b48750e9 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -362,6 +362,17 @@ static CPAccessResult access_ttlb(CPUARMState *env, co= nst ARMCPRegInfo *ri, return CP_ACCESS_OK; } =20 +/* Check for traps from EL1 due to HCR_EL2.TTLB or TTLBIS. */ +static CPAccessResult access_ttlbis(CPUARMState *env, const ARMCPRegInfo *= ri, + bool isread) +{ + if (arm_current_el(env) =3D=3D 1 && + (arm_hcr_el2_eff(env) & (HCR_TTLB | HCR_TTLBIS))) { + return CP_ACCESS_TRAP_EL2; + } + return CP_ACCESS_OK; +} + static void dacr_write(CPUARMState *env, const ARMCPRegInfo *ri, uint64_t = value) { ARMCPU *cpu =3D env_archcpu(env); @@ -2206,16 +2217,16 @@ static const ARMCPRegInfo v7_cp_reginfo[] =3D { static const ARMCPRegInfo v7mp_cp_reginfo[] =3D { /* 32 bit TLB invalidates, Inner Shareable */ { .name =3D "TLBIALLIS", .cp =3D 15, .opc1 =3D 0, .crn =3D 8, .crm =3D= 3, .opc2 =3D 0, - .type =3D ARM_CP_NO_RAW, .access =3D PL1_W, .accessfn =3D access_ttl= b, + .type =3D ARM_CP_NO_RAW, .access =3D PL1_W, .accessfn =3D access_ttl= bis, .writefn =3D tlbiall_is_write }, { .name =3D "TLBIMVAIS", .cp =3D 15, .opc1 =3D 0, .crn =3D 8, .crm =3D= 3, .opc2 =3D 1, - .type =3D ARM_CP_NO_RAW, .access =3D PL1_W, .accessfn =3D access_ttl= b, + .type =3D ARM_CP_NO_RAW, .access =3D PL1_W, .accessfn =3D access_ttl= bis, .writefn =3D tlbimva_is_write }, { .name =3D "TLBIASIDIS", .cp =3D 15, .opc1 =3D 0, .crn =3D 8, .crm = =3D 3, .opc2 =3D 2, - .type =3D ARM_CP_NO_RAW, .access =3D PL1_W, .accessfn =3D access_ttl= b, + .type =3D ARM_CP_NO_RAW, .access =3D PL1_W, .accessfn =3D access_ttl= bis, .writefn =3D tlbiasid_is_write }, { .name =3D "TLBIMVAAIS", .cp =3D 15, .opc1 =3D 0, .crn =3D 8, .crm = =3D 3, .opc2 =3D 3, - .type =3D ARM_CP_NO_RAW, .access =3D PL1_W, .accessfn =3D access_ttl= b, + .type =3D ARM_CP_NO_RAW, .access =3D PL1_W, .accessfn =3D access_ttl= bis, .writefn =3D tlbimvaa_is_write }, }; =20 @@ -4948,27 +4959,27 @@ static const ARMCPRegInfo v8_cp_reginfo[] =3D { /* TLBI operations */ { .name =3D "TLBI_VMALLE1IS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 0, .crn =3D 8, .crm =3D 3, .opc2 =3D 0, - .access =3D PL1_W, .accessfn =3D access_ttlb, .type =3D ARM_CP_NO_RA= W, + .access =3D PL1_W, .accessfn =3D access_ttlbis, .type =3D ARM_CP_NO_= RAW, .writefn =3D tlbi_aa64_vmalle1is_write }, { .name =3D "TLBI_VAE1IS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 0, .crn =3D 8, .crm =3D 3, .opc2 =3D 1, - .access =3D PL1_W, .accessfn =3D access_ttlb, .type =3D ARM_CP_NO_RA= W, + .access =3D PL1_W, .accessfn =3D access_ttlbis, .type =3D ARM_CP_NO_= RAW, .writefn =3D tlbi_aa64_vae1is_write }, { .name =3D "TLBI_ASIDE1IS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 0, .crn =3D 8, .crm =3D 3, .opc2 =3D 2, - .access =3D PL1_W, .accessfn =3D access_ttlb, .type =3D ARM_CP_NO_RA= W, + .access =3D PL1_W, .accessfn =3D access_ttlbis, .type =3D ARM_CP_NO_= RAW, .writefn =3D tlbi_aa64_vmalle1is_write }, { .name =3D "TLBI_VAAE1IS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 0, .crn =3D 8, .crm =3D 3, .opc2 =3D 3, - .access =3D PL1_W, .accessfn =3D access_ttlb, .type =3D ARM_CP_NO_RA= W, + .access =3D PL1_W, .accessfn =3D access_ttlbis, .type =3D ARM_CP_NO_= RAW, .writefn =3D tlbi_aa64_vae1is_write }, { .name =3D "TLBI_VALE1IS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 0, .crn =3D 8, .crm =3D 3, .opc2 =3D 5, - .access =3D PL1_W, .accessfn =3D access_ttlb, .type =3D ARM_CP_NO_RA= W, + .access =3D PL1_W, .accessfn =3D access_ttlbis, .type =3D ARM_CP_NO_= RAW, .writefn =3D tlbi_aa64_vae1is_write }, { .name =3D "TLBI_VAALE1IS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 0, .crn =3D 8, .crm =3D 3, .opc2 =3D 7, - .access =3D PL1_W, .accessfn =3D access_ttlb, .type =3D ARM_CP_NO_RA= W, + .access =3D PL1_W, .accessfn =3D access_ttlbis, .type =3D ARM_CP_NO_= RAW, .writefn =3D tlbi_aa64_vae1is_write }, { .name =3D "TLBI_VMALLE1", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 0, .crn =3D 8, .crm =3D 7, .opc2 =3D 0, @@ -5078,10 +5089,10 @@ static const ARMCPRegInfo v8_cp_reginfo[] =3D { #endif /* TLB invalidate last level of translation table walk */ { .name =3D "TLBIMVALIS", .cp =3D 15, .opc1 =3D 0, .crn =3D 8, .crm = =3D 3, .opc2 =3D 5, - .type =3D ARM_CP_NO_RAW, .access =3D PL1_W, .accessfn =3D access_ttl= b, + .type =3D ARM_CP_NO_RAW, .access =3D PL1_W, .accessfn =3D access_ttl= bis, .writefn =3D tlbimva_is_write }, { .name =3D "TLBIMVAALIS", .cp =3D 15, .opc1 =3D 0, .crn =3D 8, .crm = =3D 3, .opc2 =3D 7, - .type =3D ARM_CP_NO_RAW, .access =3D PL1_W, .accessfn =3D access_ttl= b, + .type =3D ARM_CP_NO_RAW, .access =3D PL1_W, .accessfn =3D access_ttl= bis, .writefn =3D tlbimvaa_is_write }, { .name =3D "TLBIMVAL", .cp =3D 15, .opc1 =3D 0, .crn =3D 8, .crm =3D = 7, .opc2 =3D 5, .type =3D ARM_CP_NO_RAW, .access =3D PL1_W, .accessfn =3D access_ttl= b, @@ -6726,19 +6737,19 @@ static const ARMCPRegInfo pauth_reginfo[] =3D { static const ARMCPRegInfo tlbirange_reginfo[] =3D { { .name =3D "TLBI_RVAE1IS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 0, .crn =3D 8, .crm =3D 2, .opc2 =3D 1, - .access =3D PL1_W, .accessfn =3D access_ttlb, .type =3D ARM_CP_NO_RA= W, + .access =3D PL1_W, .accessfn =3D access_ttlbis, .type =3D ARM_CP_NO_= RAW, .writefn =3D tlbi_aa64_rvae1is_write }, { .name =3D "TLBI_RVAAE1IS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 0, .crn =3D 8, .crm =3D 2, .opc2 =3D 3, - .access =3D PL1_W, .accessfn =3D access_ttlb, .type =3D ARM_CP_NO_RA= W, + .access =3D PL1_W, .accessfn =3D access_ttlbis, .type =3D ARM_CP_NO_= RAW, .writefn =3D tlbi_aa64_rvae1is_write }, { .name =3D "TLBI_RVALE1IS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 0, .crn =3D 8, .crm =3D 2, .opc2 =3D 5, - .access =3D PL1_W, .accessfn =3D access_ttlb, .type =3D ARM_CP_NO_RA= W, + .access =3D PL1_W, .accessfn =3D access_ttlbis, .type =3D ARM_CP_NO_= RAW, .writefn =3D tlbi_aa64_rvae1is_write }, { .name =3D "TLBI_RVAALE1IS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 0, .crn =3D 8, .crm =3D 2, .opc2 =3D 7, - .access =3D PL1_W, .accessfn =3D access_ttlb, .type =3D ARM_CP_NO_RA= W, + .access =3D PL1_W, .accessfn =3D access_ttlbis, .type =3D ARM_CP_NO_= RAW, .writefn =3D tlbi_aa64_rvae1is_write }, { .name =3D "TLBI_RVAE1OS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 0, .crn =3D 8, .crm =3D 5, .opc2 =3D 1, --=20 2.25.1 From nobody Sun May 19 06:05:04 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1671109073; cv=none; d=zohomail.com; s=zohoarc; b=n5dJasyZro9ewDiV79J+k3crLclUX7nus415UCUmkzjT/rv76NtMM+5mN3/jn9ovb+rhxdJsezZhf6pXatGIz/B35w9d6k1Jf/iBX+YA0DEWSxjZlADjGv3Sn4TKuqr+ZCWCxrttvEAZE0iLA8oXB1DfiRh7WkpoGDRe4SMMzxQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671109073; h=Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=pndyua6GQxDRbibB+EyaHhVlkQrlkAiIxwoWzrOAWQQ=; b=SXMeGvpcyDPgYXZra/U4Dko6oT+xopTDz80SaZzhzKhyntqKBoIGgBVuko0rSo2QfoAebc+NZFyDIAPegFtPRovIy/E2JSxliCxyQ7AadNi41rBc2mHX/qeTC8E3lEsdU2/GRoDzhgxxm68v5DkxjdfIwJm85arsUyNSE7rJzfg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671109073460630.739259201296; Thu, 15 Dec 2022 04:57:53 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5nh0-0006oc-FR; Thu, 15 Dec 2022 07:50:30 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5ngx-0006m8-4N for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:27 -0500 Received: from mail-wm1-x332.google.com ([2a00:1450:4864:20::332]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p5ngv-00047j-9m for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:26 -0500 Received: by mail-wm1-x332.google.com with SMTP id c65-20020a1c3544000000b003cfffd00fc0so1632678wma.1 for ; Thu, 15 Dec 2022 04:50:24 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id i12-20020a05600c354c00b003cfd64b6be1sm8388787wmq.27.2022.12.15.04.50.23 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Dec 2022 04:50:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=pndyua6GQxDRbibB+EyaHhVlkQrlkAiIxwoWzrOAWQQ=; b=csWs5ji5IaZjIrLhXrXwbUQP72gA2Jq56Za9U4Th4Y+eRWHklw4ZnR6px3oIoQBxtR D6DxUtZ6+sn2cTs+rU4B+lvqrrpd7S3d5GWu9Le2NigItyCOm7T5Cquwc0SO7fdkaF95 D/DrFmAMr8BE6Yv+jTfswJeLFtrupKUTkqOuDyivZGKiZ86myjFufF+hWXSdspGUJHpO XZLarKtxnH1rvqqRf2zQpHTS41Gup72LcxVFPIrfltMLxYf43KbBx2aw83xX/OCb3iGf gG3cTizINjVHzXr4ohIU92T6P8r9Ey99hqtmVAbYSUMZwyq+2K0h83+2evcD8bfze2zG jYfA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=pndyua6GQxDRbibB+EyaHhVlkQrlkAiIxwoWzrOAWQQ=; b=uA5GRiInBzyvpxlk3sQ+tYiGE0NV9VB3sDia+tfiow88+8Jr7MT9B3BAPt0z3wUCvK n43KeeIwrN/jOvXRw/6wm5MUIVDWGkxwj02yYctBXLfujVbKrBSFKeEa8FDBDaRpFQuF 3fJBL8DEOV0GywomhnnZyxHIuhuAT7ZVOFlNR97dTYN3O9m8+7xp5NIEMimbqLS/d2MY pPGc7vRobPqR2cSYebqnWDF61ibrkrgBhKEdY4PrUNTaE41OEuMYUiKgOhogSB/1xbrz jS/0OdOcbzqdRlBjWHmInOnqKe5c80ITszPsWp3OawpwwYDU7u7k5lBKe4DFKXNRXA5z hCNA== X-Gm-Message-State: ANoB5pnIo8n11VIV5NlgWpPtYtNfdWiCnXntYtM0gJ49EH2ok05MB2e5 QiY7nX5rIQokccP2UkwIwqBDp6HytfktQfLO X-Google-Smtp-Source: AA0mqf7+9KK89thjBCMC8RwtVFaIxvWSxVb8Jw7K+jtxPbK20o9DE4PO6oKT0V2dYqh16Dfw8BbcMw== X-Received: by 2002:a7b:c7d8:0:b0:3d2:2a72:2573 with SMTP id z24-20020a7bc7d8000000b003d22a722573mr11045279wmk.11.1671108623915; Thu, 15 Dec 2022 04:50:23 -0800 (PST) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 13/29] target/arm: Implement HCR_EL2.TTLBOS traps Date: Thu, 15 Dec 2022 12:49:53 +0000 Message-Id: <20221215125009.980128-14-peter.maydell@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221215125009.980128-1-peter.maydell@linaro.org> References: <20221215125009.980128-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::332; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x332.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1671109075738100007 Content-Type: text/plain; charset="utf-8" For FEAT_EVT, the HCR_EL2.TTLBOS bit allows trapping on EL1 use of TLB maintenance instructions that operate on the outer shareable domain: TLBI VMALLE1OS, TLBI VAE1OS, TLBI ASIDE1OS,TLBI VAAE1OS, TLBI VALE1OS, TLBI VAALE1OS, TLBI RVAE1OS, TLBI RVAAE1OS, TLBI RVALE1OS, and TLBI RVAALE1OS. (There are no AArch32 outer-shareable TLB maintenance ops.) Implement the trapping. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson --- target/arm/helper.c | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/target/arm/helper.c b/target/arm/helper.c index 475b48750e9..0ec1c3ffbd6 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -373,6 +373,19 @@ static CPAccessResult access_ttlbis(CPUARMState *env, = const ARMCPRegInfo *ri, return CP_ACCESS_OK; } =20 +#ifdef TARGET_AARCH64 +/* Check for traps from EL1 due to HCR_EL2.TTLB or TTLBOS. */ +static CPAccessResult access_ttlbos(CPUARMState *env, const ARMCPRegInfo *= ri, + bool isread) +{ + if (arm_current_el(env) =3D=3D 1 && + (arm_hcr_el2_eff(env) & (HCR_TTLB | HCR_TTLBOS))) { + return CP_ACCESS_TRAP_EL2; + } + return CP_ACCESS_OK; +} +#endif + static void dacr_write(CPUARMState *env, const ARMCPRegInfo *ri, uint64_t = value) { ARMCPU *cpu =3D env_archcpu(env); @@ -6753,19 +6766,19 @@ static const ARMCPRegInfo tlbirange_reginfo[] =3D { .writefn =3D tlbi_aa64_rvae1is_write }, { .name =3D "TLBI_RVAE1OS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 0, .crn =3D 8, .crm =3D 5, .opc2 =3D 1, - .access =3D PL1_W, .accessfn =3D access_ttlb, .type =3D ARM_CP_NO_RA= W, + .access =3D PL1_W, .accessfn =3D access_ttlbos, .type =3D ARM_CP_NO_= RAW, .writefn =3D tlbi_aa64_rvae1is_write }, { .name =3D "TLBI_RVAAE1OS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 0, .crn =3D 8, .crm =3D 5, .opc2 =3D 3, - .access =3D PL1_W, .accessfn =3D access_ttlb, .type =3D ARM_CP_NO_RA= W, + .access =3D PL1_W, .accessfn =3D access_ttlbos, .type =3D ARM_CP_NO_= RAW, .writefn =3D tlbi_aa64_rvae1is_write }, { .name =3D "TLBI_RVALE1OS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 0, .crn =3D 8, .crm =3D 5, .opc2 =3D 5, - .access =3D PL1_W, .accessfn =3D access_ttlb, .type =3D ARM_CP_NO_RA= W, + .access =3D PL1_W, .accessfn =3D access_ttlbos, .type =3D ARM_CP_NO_= RAW, .writefn =3D tlbi_aa64_rvae1is_write }, { .name =3D "TLBI_RVAALE1OS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 0, .crn =3D 8, .crm =3D 5, .opc2 =3D 7, - .access =3D PL1_W, .accessfn =3D access_ttlb, .type =3D ARM_CP_NO_RA= W, + .access =3D PL1_W, .accessfn =3D access_ttlbos, .type =3D ARM_CP_NO_= RAW, .writefn =3D tlbi_aa64_rvae1is_write }, { .name =3D "TLBI_RVAE1", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 0, .crn =3D 8, .crm =3D 6, .opc2 =3D 1, @@ -6852,27 +6865,27 @@ static const ARMCPRegInfo tlbirange_reginfo[] =3D { static const ARMCPRegInfo tlbios_reginfo[] =3D { { .name =3D "TLBI_VMALLE1OS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 0, .crn =3D 8, .crm =3D 1, .opc2 =3D 0, - .access =3D PL1_W, .accessfn =3D access_ttlb, .type =3D ARM_CP_NO_RA= W, + .access =3D PL1_W, .accessfn =3D access_ttlbos, .type =3D ARM_CP_NO_= RAW, .writefn =3D tlbi_aa64_vmalle1is_write }, { .name =3D "TLBI_VAE1OS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 0, .crn =3D 8, .crm =3D 1, .opc2 =3D 1, - .access =3D PL1_W, .accessfn =3D access_ttlb, .type =3D ARM_CP_NO_RA= W, + .access =3D PL1_W, .accessfn =3D access_ttlbos, .type =3D ARM_CP_NO_= RAW, .writefn =3D tlbi_aa64_vae1is_write }, { .name =3D "TLBI_ASIDE1OS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 0, .crn =3D 8, .crm =3D 1, .opc2 =3D 2, - .access =3D PL1_W, .accessfn =3D access_ttlb, .type =3D ARM_CP_NO_RA= W, + .access =3D PL1_W, .accessfn =3D access_ttlbos, .type =3D ARM_CP_NO_= RAW, .writefn =3D tlbi_aa64_vmalle1is_write }, { .name =3D "TLBI_VAAE1OS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 0, .crn =3D 8, .crm =3D 1, .opc2 =3D 3, - .access =3D PL1_W, .accessfn =3D access_ttlb, .type =3D ARM_CP_NO_RA= W, + .access =3D PL1_W, .accessfn =3D access_ttlbos, .type =3D ARM_CP_NO_= RAW, .writefn =3D tlbi_aa64_vae1is_write }, { .name =3D "TLBI_VALE1OS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 0, .crn =3D 8, .crm =3D 1, .opc2 =3D 5, - .access =3D PL1_W, .accessfn =3D access_ttlb, .type =3D ARM_CP_NO_RA= W, + .access =3D PL1_W, .accessfn =3D access_ttlbos, .type =3D ARM_CP_NO_= RAW, .writefn =3D tlbi_aa64_vae1is_write }, { .name =3D "TLBI_VAALE1OS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 0, .crn =3D 8, .crm =3D 1, .opc2 =3D 7, - .access =3D PL1_W, .accessfn =3D access_ttlb, .type =3D ARM_CP_NO_RA= W, + .access =3D PL1_W, .accessfn =3D access_ttlbos, .type =3D ARM_CP_NO_= RAW, .writefn =3D tlbi_aa64_vae1is_write }, { .name =3D "TLBI_ALLE2OS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 4, .crn =3D 8, .crm =3D 1, .opc2 =3D 0, --=20 2.25.1 From nobody Sun May 19 06:05:04 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1671108671; cv=none; d=zohomail.com; s=zohoarc; b=SdvURECS3zLuMp1geLfUtCJP5VOB9iAATZoQWUWkaM5yeW8DdN7Ugg5AQHw2PMzHfSUkFt3Xe+hobDungY8LJwPzBZVdheZxA3pcB/3jGxj3SQOvwe5sC3Cxz4F5bPLjHQBIpZwOtJnfBebYyoXGNDq/vzyX/kNgQzin7JmRxv8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671108671; h=Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=OyeQ4yPNj+C/vssV1sHtgciwO5ee7WuxGatE6ryMCsI=; b=W0b+m5RDXofAksFhfu9fNVlZWBMC/EleIKBWfyazgIYgExjNK4QD8XrgD4HCnNNWdAbGRb8nm1458jgiLpU6tR4sAXQ+kcTsO5YclV1WwDuYh1Hz0ld4Dn8pXvjF3hnjlInQOnMiVxJuv0w/qHm5UVgTpn38+Oc2SNJMI91R8Nw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671108671179301.21860999058254; Thu, 15 Dec 2022 04:51:11 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5nhM-0006s7-Oe; Thu, 15 Dec 2022 07:50:52 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5ngy-0006oF-5Q for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:28 -0500 Received: from mail-wm1-x336.google.com ([2a00:1450:4864:20::336]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p5ngw-00047q-8E for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:27 -0500 Received: by mail-wm1-x336.google.com with SMTP id m5-20020a7bca45000000b003d2fbab35c6so1384258wml.4 for ; Thu, 15 Dec 2022 04:50:25 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id i12-20020a05600c354c00b003cfd64b6be1sm8388787wmq.27.2022.12.15.04.50.23 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Dec 2022 04:50:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=OyeQ4yPNj+C/vssV1sHtgciwO5ee7WuxGatE6ryMCsI=; b=junQ3quI5fbUMmuI7S5Gq+4v7cOmFduiyj4PobxrECTuYPP6FMcMjdpsEIPDl0dFPc 2nICW9KY3eWeDbB1FRlwMgdCtXUClbG/zha+T8dya/0Ov4s1450WZKFDxGk0nOHRTFoQ 8FPnit15wahNN8741lN0P6lnw7aOH+S/Pfwp39xvCT6h/HUp37x9dd8ALM0MI4TWa9nQ bklJpMMABbYFOPHhQOFQze3M9Hz6WgiRnb/F84CdhB0tN+nInO5FSbyJVMocVXfzdsnm 9eJp9wezkWRF+ZDlsbEs2z91c6YgOzGJCHsYcvIL9KpxvNoY/3EPQGHpLkmpd+4tn15L 2wWA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=OyeQ4yPNj+C/vssV1sHtgciwO5ee7WuxGatE6ryMCsI=; b=RXstwa0cOq5cYynl4K46xkPAPnTq4j7M80YN8yzWs4pYlXaoYH2HQGVoMmCuKyYesA iW3JlLUs6T6D/ACE2IAnVIxd9lI4eG2+Rn3ftHdj02Ua3TYuVepEXgZxFBJXDmkT4IRW jlTBSgx0Aw6um90SaTcm4GtK3xPnAUt/Dr5e+AyVoIhuE4AlnFXiM8cJHzRwhufRvm7c TQrlHBY9etH8tSOYb6Ojx82vIFd9BaDbbvy6N1Pc34iZzjr2G26ugyrJN/v4v70aMiWY F/tTucpU1PdFytGI05+Zwd10IkPiF5Z2SU9Ps7wKOMBRYdbVHbrqq9PAaeNk9SzxLBXP Ln6w== X-Gm-Message-State: ANoB5pmG8RZEfhN7TKq1/qeza2YwZsc9zawX/b8ClAhzN0UlxS2oxdKW yE2lKkSj93u/VBHCom420Te95g3pCMXv86IH X-Google-Smtp-Source: AA0mqf4k3hbY5JeH1+IT6yQk92yg39YQqtU9Rsz1ZPqAtO4+Qx4EYqjnFAnyni3ELM26vzbeVHWXfA== X-Received: by 2002:a05:600c:1c9e:b0:3d2:7a7:5cc6 with SMTP id k30-20020a05600c1c9e00b003d207a75cc6mr19796040wms.18.1671108624721; Thu, 15 Dec 2022 04:50:24 -0800 (PST) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 14/29] target/arm: Implement HCR_EL2.TICAB,TOCU traps Date: Thu, 15 Dec 2022 12:49:54 +0000 Message-Id: <20221215125009.980128-15-peter.maydell@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221215125009.980128-1-peter.maydell@linaro.org> References: <20221215125009.980128-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::336; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x336.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1671108673404100003 Content-Type: text/plain; charset="utf-8" For FEAT_EVT, the HCR_EL2.TICAB bit allows trapping of the ICIALLUIS and IC IALLUIS cache maintenance instructions. The HCR_EL2.TOCU bit traps all the other cache maintenance instructions that operate to the point of unification: AArch64 IC IVAU, IC IALLU, DC CVAU AArch32 ICIMVAU, ICIALLU, DCCMVAU The two trap bits between them cover all of the cache maintenance instructions which must also check the HCR_TPU flag. Turn the old aa64_cacheop_pou_access() function into a helper function which takes the set of HCR_EL2 flags to check as an argument, and call it from new access_ticab() and access_tocu() functions as appropriate for each cache op. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson --- target/arm/helper.c | 36 +++++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/target/arm/helper.c b/target/arm/helper.c index 0ec1c3ffbd6..eee95a42f7f 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -4273,9 +4273,7 @@ static CPAccessResult aa64_cacheop_poc_access(CPUARMS= tate *env, return CP_ACCESS_OK; } =20 -static CPAccessResult aa64_cacheop_pou_access(CPUARMState *env, - const ARMCPRegInfo *ri, - bool isread) +static CPAccessResult do_cacheop_pou_access(CPUARMState *env, uint64_t hcr= flags) { /* Cache invalidate/clean to Point of Unification... */ switch (arm_current_el(env)) { @@ -4286,8 +4284,8 @@ static CPAccessResult aa64_cacheop_pou_access(CPUARMS= tate *env, } /* fall through */ case 1: - /* ... EL1 must trap to EL2 if HCR_EL2.TPU is set. */ - if (arm_hcr_el2_eff(env) & HCR_TPU) { + /* ... EL1 must trap to EL2 if relevant HCR_EL2 flags are set. */ + if (arm_hcr_el2_eff(env) & hcrflags) { return CP_ACCESS_TRAP_EL2; } break; @@ -4295,6 +4293,18 @@ static CPAccessResult aa64_cacheop_pou_access(CPUARM= State *env, return CP_ACCESS_OK; } =20 +static CPAccessResult access_ticab(CPUARMState *env, const ARMCPRegInfo *r= i, + bool isread) +{ + return do_cacheop_pou_access(env, HCR_TICAB | HCR_TPU); +} + +static CPAccessResult access_tocu(CPUARMState *env, const ARMCPRegInfo *ri, + bool isread) +{ + return do_cacheop_pou_access(env, HCR_TOCU | HCR_TPU); +} + /* See: D4.7.2 TLB maintenance requirements and the TLB maintenance instru= ctions * Page D4-1736 (DDI0487A.b) */ @@ -4935,15 +4945,15 @@ static const ARMCPRegInfo v8_cp_reginfo[] =3D { { .name =3D "IC_IALLUIS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 0, .crn =3D 7, .crm =3D 1, .opc2 =3D 0, .access =3D PL1_W, .type =3D ARM_CP_NOP, - .accessfn =3D aa64_cacheop_pou_access }, + .accessfn =3D access_ticab }, { .name =3D "IC_IALLU", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 0, .crn =3D 7, .crm =3D 5, .opc2 =3D 0, .access =3D PL1_W, .type =3D ARM_CP_NOP, - .accessfn =3D aa64_cacheop_pou_access }, + .accessfn =3D access_tocu }, { .name =3D "IC_IVAU", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 3, .crn =3D 7, .crm =3D 5, .opc2 =3D 1, .access =3D PL0_W, .type =3D ARM_CP_NOP, - .accessfn =3D aa64_cacheop_pou_access }, + .accessfn =3D access_tocu }, { .name =3D "DC_IVAC", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 0, .crn =3D 7, .crm =3D 6, .opc2 =3D 1, .access =3D PL1_W, .accessfn =3D aa64_cacheop_poc_access, @@ -4961,7 +4971,7 @@ static const ARMCPRegInfo v8_cp_reginfo[] =3D { { .name =3D "DC_CVAU", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 3, .crn =3D 7, .crm =3D 11, .opc2 =3D 1, .access =3D PL0_W, .type =3D ARM_CP_NOP, - .accessfn =3D aa64_cacheop_pou_access }, + .accessfn =3D access_tocu }, { .name =3D "DC_CIVAC", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 3, .crn =3D 7, .crm =3D 14, .opc2 =3D 1, .access =3D PL0_W, .type =3D ARM_CP_NOP, @@ -5138,13 +5148,13 @@ static const ARMCPRegInfo v8_cp_reginfo[] =3D { .writefn =3D tlbiipas2is_hyp_write }, /* 32 bit cache operations */ { .name =3D "ICIALLUIS", .cp =3D 15, .opc1 =3D 0, .crn =3D 7, .crm =3D= 1, .opc2 =3D 0, - .type =3D ARM_CP_NOP, .access =3D PL1_W, .accessfn =3D aa64_cacheop_= pou_access }, + .type =3D ARM_CP_NOP, .access =3D PL1_W, .accessfn =3D access_ticab = }, { .name =3D "BPIALLUIS", .cp =3D 15, .opc1 =3D 0, .crn =3D 7, .crm =3D= 1, .opc2 =3D 6, .type =3D ARM_CP_NOP, .access =3D PL1_W }, { .name =3D "ICIALLU", .cp =3D 15, .opc1 =3D 0, .crn =3D 7, .crm =3D 5= , .opc2 =3D 0, - .type =3D ARM_CP_NOP, .access =3D PL1_W, .accessfn =3D aa64_cacheop_= pou_access }, + .type =3D ARM_CP_NOP, .access =3D PL1_W, .accessfn =3D access_tocu }, { .name =3D "ICIMVAU", .cp =3D 15, .opc1 =3D 0, .crn =3D 7, .crm =3D 5= , .opc2 =3D 1, - .type =3D ARM_CP_NOP, .access =3D PL1_W, .accessfn =3D aa64_cacheop_= pou_access }, + .type =3D ARM_CP_NOP, .access =3D PL1_W, .accessfn =3D access_tocu }, { .name =3D "BPIALL", .cp =3D 15, .opc1 =3D 0, .crn =3D 7, .crm =3D 5,= .opc2 =3D 6, .type =3D ARM_CP_NOP, .access =3D PL1_W }, { .name =3D "BPIMVA", .cp =3D 15, .opc1 =3D 0, .crn =3D 7, .crm =3D 5,= .opc2 =3D 7, @@ -5158,7 +5168,7 @@ static const ARMCPRegInfo v8_cp_reginfo[] =3D { { .name =3D "DCCSW", .cp =3D 15, .opc1 =3D 0, .crn =3D 7, .crm =3D 10,= .opc2 =3D 2, .type =3D ARM_CP_NOP, .access =3D PL1_W, .accessfn =3D access_tsw }, { .name =3D "DCCMVAU", .cp =3D 15, .opc1 =3D 0, .crn =3D 7, .crm =3D 1= 1, .opc2 =3D 1, - .type =3D ARM_CP_NOP, .access =3D PL1_W, .accessfn =3D aa64_cacheop_= pou_access }, + .type =3D ARM_CP_NOP, .access =3D PL1_W, .accessfn =3D access_tocu }, { .name =3D "DCCIMVAC", .cp =3D 15, .opc1 =3D 0, .crn =3D 7, .crm =3D = 14, .opc2 =3D 1, .type =3D ARM_CP_NOP, .access =3D PL1_W, .accessfn =3D aa64_cacheop_= poc_access }, { .name =3D "DCCISW", .cp =3D 15, .opc1 =3D 0, .crn =3D 7, .crm =3D 14= , .opc2 =3D 2, --=20 2.25.1 From nobody Sun May 19 06:05:04 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1671108655; cv=none; d=zohomail.com; s=zohoarc; b=l553gPtKXY0rpvrcNYrxKfv4aH1Yse+lFhLvJ8SIJ/DFo7FrzuSTyJ6oLuC0e/hOVzOxLAQVpHsiDOzmaT0h3Fz3th/1SZA8/DNhTWV5xw8U8uED9/Ml9E0HskOxSbcswVrbd3Y/0io7ATg+MMj4TyM/tnglFTXW1HD5s384vuU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671108655; h=Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ougWcpCr0agOiWwlIFOxBLhj1zjV6ygB6kJrSrjza6I=; b=QCqh4PVSECXpa7m8IuVr6JtYj8Oepx2/PyZe/UxUwk/jBcZ3QjmPA+0D778QqqpX9HMvKGe/+3zv0vZbSrBSNl8PVCt/4o4frBLl5+d8MgKqdtDETOyZhAZzCQwPnx+M1EOI1FQLxuc1Ct21JikZMOBWg1OWQ5Hl7FtfU8EkaJk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671108655821881.6744163003646; Thu, 15 Dec 2022 04:50:55 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5nh6-0006pu-5i; Thu, 15 Dec 2022 07:50:36 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5ngy-0006o6-3o for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:28 -0500 Received: from mail-wm1-x32c.google.com ([2a00:1450:4864:20::32c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p5ngw-00045d-B8 for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:27 -0500 Received: by mail-wm1-x32c.google.com with SMTP id ay40so13693114wmb.2 for ; Thu, 15 Dec 2022 04:50:25 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id i12-20020a05600c354c00b003cfd64b6be1sm8388787wmq.27.2022.12.15.04.50.24 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Dec 2022 04:50:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=ougWcpCr0agOiWwlIFOxBLhj1zjV6ygB6kJrSrjza6I=; b=UEJVFVWqI+mE9AZhklJe4JNahIOLU5WJQc1avxvwklyIhYtwOP9CBhWyu7Yr1ZaXpg Lj8r4Do368UaLXRrGfi3JcLHiwYS+1eNJqKHbVtrexGgS4ek4z2WE/8WDs7PDSHEmUlW b1WKDhvsrl1O1P2cgNywzpnFRn3KyLfO2IwxHEDd/CWiIt1q8nz4LiNyks1Dgnq4htiL IP3yN0GRtk/XQaeM8XU14AV3ulRdEVrsjNJ/cizc7ZJ2upCv5VHxTekDLPy3ym5Ig4sD FPC9wORaSS2s4PARvZbEHxKn99mDyRbqYG42cmvkLK9vQoKOa5qfdxlObf/KqwyDkfTh 6+HQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ougWcpCr0agOiWwlIFOxBLhj1zjV6ygB6kJrSrjza6I=; b=4DfiieEZ8m0LzsPIz+nwWSO93LCbwlr77HWMHmpADUZgyduJ5vkA6/IxDC+0hat4Au wTbeKIDZVS8QHCN87OVy/M5oo+JM1pzprdIb6kQOJXOU+V0NOSZocJBAQ1P7qnQEqsK0 WDleP1hWQWjpyxuKeu3T4dDq1lVGqvK5Wm8ATlYbaeYiM9RcMRK9JSkgQO8z53d2gQXF MUxV7ym2Gng+xQekT4JWjwK2loprsmkyLu2uEDwQgPa+rUnfdX9MD5zMeePgqE3aVgXU +J2xvxGBW5L8sMVGPenF90pwa8XDK/xNPbJNwMG2UF0wC5nSi79z+kJH1gT4z6praNbq Jc4w== X-Gm-Message-State: ANoB5pk1/YYF+5WeTt15JNRaj985psWY0LaXkrwvI53drPYo+LS6oTk2 zaE86hbMbrDJIZ8JBvRhJXhptM10MkVtbdGd X-Google-Smtp-Source: AA0mqf5DvmJiuyqTU5Au1xsHMbe5UfTKwhahnJ2LxQLqAbfipMypHSQQp7PB0qNiVnyH/jhBk9XM8Q== X-Received: by 2002:a05:600c:21c1:b0:3cf:8833:1841 with SMTP id x1-20020a05600c21c100b003cf88331841mr22236184wmj.39.1671108625672; Thu, 15 Dec 2022 04:50:25 -0800 (PST) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 15/29] target/arm: Implement HCR_EL2.TID4 traps Date: Thu, 15 Dec 2022 12:49:55 +0000 Message-Id: <20221215125009.980128-16-peter.maydell@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221215125009.980128-1-peter.maydell@linaro.org> References: <20221215125009.980128-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::32c; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x32c.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1671108657649100003 Content-Type: text/plain; charset="utf-8" For FEAT_EVT, the HCR_EL2.TID4 trap allows trapping of the cache ID registers CCSIDR_EL1, CCSIDR2_EL1, CLIDR_EL1 and CSSELR_EL1 (and their AArch32 equivalents). This is a subset of the registers trapped by HCR_EL2.TID2, which includes all of these and also the CTR_EL0 register. Our implementation already uses a separate access function for CTR_EL0 (ctr_el0_access()), so all of the registers currently using access_aa64_tid2() should also be checking TID4. Make that function check both TID2 and TID4, and rename it appropriately. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson --- target/arm/helper.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/target/arm/helper.c b/target/arm/helper.c index eee95a42f7f..bac2ea62c44 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -1895,11 +1895,12 @@ static void scr_reset(CPUARMState *env, const ARMCP= RegInfo *ri) scr_write(env, ri, 0); } =20 -static CPAccessResult access_aa64_tid2(CPUARMState *env, - const ARMCPRegInfo *ri, - bool isread) +static CPAccessResult access_tid4(CPUARMState *env, + const ARMCPRegInfo *ri, + bool isread) { - if (arm_current_el(env) =3D=3D 1 && (arm_hcr_el2_eff(env) & HCR_TID2))= { + if (arm_current_el(env) =3D=3D 1 && + (arm_hcr_el2_eff(env) & (HCR_TID2 | HCR_TID4))) { return CP_ACCESS_TRAP_EL2; } =20 @@ -2130,12 +2131,12 @@ static const ARMCPRegInfo v7_cp_reginfo[] =3D { { .name =3D "CCSIDR", .state =3D ARM_CP_STATE_BOTH, .opc0 =3D 3, .crn =3D 0, .crm =3D 0, .opc1 =3D 1, .opc2 =3D 0, .access =3D PL1_R, - .accessfn =3D access_aa64_tid2, + .accessfn =3D access_tid4, .readfn =3D ccsidr_read, .type =3D ARM_CP_NO_RAW }, { .name =3D "CSSELR", .state =3D ARM_CP_STATE_BOTH, .opc0 =3D 3, .crn =3D 0, .crm =3D 0, .opc1 =3D 2, .opc2 =3D 0, .access =3D PL1_RW, - .accessfn =3D access_aa64_tid2, + .accessfn =3D access_tid4, .writefn =3D csselr_write, .resetvalue =3D 0, .bank_fieldoffsets =3D { offsetof(CPUARMState, cp15.csselr_s), offsetof(CPUARMState, cp15.csselr_ns) } }, @@ -7281,7 +7282,7 @@ static const ARMCPRegInfo ccsidr2_reginfo[] =3D { { .name =3D "CCSIDR2", .state =3D ARM_CP_STATE_BOTH, .opc0 =3D 3, .opc1 =3D 1, .crn =3D 0, .crm =3D 0, .opc2 =3D 2, .access =3D PL1_R, - .accessfn =3D access_aa64_tid2, + .accessfn =3D access_tid4, .readfn =3D ccsidr2_read, .type =3D ARM_CP_NO_RAW }, }; =20 @@ -7581,7 +7582,7 @@ void register_cp_regs_for_features(ARMCPU *cpu) .name =3D "CLIDR", .state =3D ARM_CP_STATE_BOTH, .opc0 =3D 3, .crn =3D 0, .crm =3D 0, .opc1 =3D 1, .opc2 =3D 1, .access =3D PL1_R, .type =3D ARM_CP_CONST, - .accessfn =3D access_aa64_tid2, + .accessfn =3D access_tid4, .resetvalue =3D cpu->clidr }; define_one_arm_cp_reg(cpu, &clidr); --=20 2.25.1 From nobody Sun May 19 06:05:04 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1671111234; cv=none; d=zohomail.com; s=zohoarc; b=dvlOnQhXmT/kEumpvcFjYHOv9+2up+vgy9/d8xNEwENogb4EpLbtpMtEFHOB4Cm+iI+ACrBh+JExdjcZaqbmKQftoeDwgUfwWay9l+dpLof4Wq0q+JuIMzv4HGpV6ncCpcRyeMCwACtqhHGMQJYV+0rYy3Ogegm7bBH/VviB0l4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671111234; h=Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=PWgRSqdjM6ICBFf0pToxvYsV7w6dTK2uUn0DKaor9os=; b=aTgL8+8Aa8l4AWpHfM9rk2RtiOF/aAaeV8aSXibs2m7PxwjyZo7om3nxkCY2QVi9Dg3PcLkSYX6nzRGuQ3/y49dQyHFwOEIf2lFHsROoeab+B28t8Zlcf8GC1L/IsHmFDyuCfnj92IaM2Km00H4JHLcuBnRPvdkzreBtyFb+ViA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671111234510369.58280314206786; Thu, 15 Dec 2022 05:33:54 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5nhV-00077H-3d; Thu, 15 Dec 2022 07:51:01 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5ngz-0006od-HZ for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:30 -0500 Received: from mail-wm1-x335.google.com ([2a00:1450:4864:20::335]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p5ngx-00048J-SP for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:29 -0500 Received: by mail-wm1-x335.google.com with SMTP id r83-20020a1c4456000000b003d1e906ca23so975329wma.3 for ; Thu, 15 Dec 2022 04:50:27 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id i12-20020a05600c354c00b003cfd64b6be1sm8388787wmq.27.2022.12.15.04.50.25 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Dec 2022 04:50:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=PWgRSqdjM6ICBFf0pToxvYsV7w6dTK2uUn0DKaor9os=; b=zMKo2uygkxeUbr+867EaHRif+t0IWy0RijwqBPdioKugLUBEDBUNwJmZNrp51mu1U7 Wee2ThUAGLJMi/JH1GVso9i9ZH8FBl6wf1LGwT7nzLdHEhMSPZb/KBfv7bbaHCjFHlAs YSv/eQ5ll7JmFIkKgc9k3qe74mqH5Fiptf/fNN9BbkC/AqZogIQrpcO5j4WQWbIe+TmY h7Sdu+gwjxLIxbBDA2nb9x+sQs/j9KsbcAMwa3dK5wdCLDaMbBXv9Q0y5VZFNT2kgdmE TWAhiGKUym4yqf2CW7sB+XWlUWSOAW8N9tWVFAOoL8GFtRyLSxZ7An9u3FugOvW38BGV 3kaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=PWgRSqdjM6ICBFf0pToxvYsV7w6dTK2uUn0DKaor9os=; b=O/PCkMjW4MXIovlzKWD0XWaY1+O0z2tZIcTGhttblnkVwnxXUdSuEq8irHz9uij7mn Jm9ylqXZASrSfEqyHCBzQbtv+h/OlrLKmkox4nvZqOsqkBjGhlqoyCHQ3dWDFbSOKXaE Ic+iWkU+i07IIm31AWs5EsEMpQXR28fKDQjszANdcWwMaubn6xFAU5eY/Mzw8GlNVPVB wGqclkruyGE4cr6zE0DAX/GeyD4HpapqI2MzTNlm/D5VfGW0cYqBGuYciAiFfUg+v3Yq LX8VXG9TLsZM9c9GDWpxgmo+Tyy4gvSrVeirSNKSFgaNA3RpPatgQ80dcmYoeuNr3N3J qayw== X-Gm-Message-State: ANoB5pnWUMRfx6IsgmAh9koEzNTS4cFdV7DFmxZTRWH9vOmvIlB+hlDA nQCOyY9uRVm9QSlkIH0LwHmYdppCNtlPW9Pk X-Google-Smtp-Source: AA0mqf7PUsei9AgLfH0PKNHc4RWqDDgvO4tqa8LrdZUAKBegPkghdysL2ALdPnXVUnS92T/mErKoXA== X-Received: by 2002:a05:600c:4e16:b0:3d0:7415:c5a9 with SMTP id b22-20020a05600c4e1600b003d07415c5a9mr21604414wmq.21.1671108626479; Thu, 15 Dec 2022 04:50:26 -0800 (PST) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 16/29] target/arm: Report FEAT_EVT for TCG '-cpu max' Date: Thu, 15 Dec 2022 12:49:56 +0000 Message-Id: <20221215125009.980128-17-peter.maydell@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221215125009.980128-1-peter.maydell@linaro.org> References: <20221215125009.980128-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::335; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x335.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1671111234751100001 Content-Type: text/plain; charset="utf-8" Update the ID registers for TCG's '-cpu max' to report the FEAT_EVT Enhanced Virtualization Traps support. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson --- docs/system/arm/emulation.rst | 1 + target/arm/cpu64.c | 1 + target/arm/cpu_tcg.c | 1 + 3 files changed, 3 insertions(+) diff --git a/docs/system/arm/emulation.rst b/docs/system/arm/emulation.rst index e3af79bb8c9..b33d7c28dc1 100644 --- a/docs/system/arm/emulation.rst +++ b/docs/system/arm/emulation.rst @@ -26,6 +26,7 @@ the following architecture extensions: - FEAT_DoubleFault (Double Fault Extension) - FEAT_E0PD (Preventing EL0 access to halves of address maps) - FEAT_ETS (Enhanced Translation Synchronization) +- FEAT_EVT (Enhanced Virtualization Traps) - FEAT_FCMA (Floating-point complex number instructions) - FEAT_FHM (Floating-point half-precision multiplication instructions) - FEAT_FP16 (Half-precision floating-point data processing) diff --git a/target/arm/cpu64.c b/target/arm/cpu64.c index cec64471b4e..2cf2ca4ce5a 100644 --- a/target/arm/cpu64.c +++ b/target/arm/cpu64.c @@ -1254,6 +1254,7 @@ static void aarch64_max_initfn(Object *obj) t =3D FIELD_DP64(t, ID_AA64MMFR2, FWB, 1); /* FEAT_S2FWB */ t =3D FIELD_DP64(t, ID_AA64MMFR2, TTL, 1); /* FEAT_TTL */ t =3D FIELD_DP64(t, ID_AA64MMFR2, BBM, 2); /* FEAT_BBM at level 2= */ + t =3D FIELD_DP64(t, ID_AA64MMFR2, EVT, 2); /* FEAT_EVT */ t =3D FIELD_DP64(t, ID_AA64MMFR2, E0PD, 1); /* FEAT_E0PD */ cpu->isar.id_aa64mmfr2 =3D t; =20 diff --git a/target/arm/cpu_tcg.c b/target/arm/cpu_tcg.c index 9a2cef7d05a..568cbcfc524 100644 --- a/target/arm/cpu_tcg.c +++ b/target/arm/cpu_tcg.c @@ -65,6 +65,7 @@ void aa32_max_features(ARMCPU *cpu) t =3D FIELD_DP32(t, ID_MMFR4, AC2, 1); /* ACTLR2, HACTLR2 */ t =3D FIELD_DP32(t, ID_MMFR4, CNP, 1); /* FEAT_TTCNP */ t =3D FIELD_DP32(t, ID_MMFR4, XNX, 1); /* FEAT_XNX */ + t =3D FIELD_DP32(t, ID_MMFR4, EVT, 2); /* FEAT_EVT */ cpu->isar.id_mmfr4 =3D t; =20 t =3D cpu->isar.id_mmfr5; --=20 2.25.1 From nobody Sun May 19 06:05:04 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1671109446; cv=none; d=zohomail.com; s=zohoarc; b=OkCSfrq9KQwAiLlxrQCogd2SoDEJA2LzYRhW6UCCZx/sy6uJqZox/0gkyxb0PMjQ9TQmy/SP/oVDWO3WlOWGlt/JoHxo2DmIHKGt5yoPwt9M/4MTlfHS9c6FHiahh/AhJpMuAwBHUSOfLdTKvIANKLhLJXpp3f/tfgPiWZCfn+8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671109446; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=/8/61FsKkax9rY6lVJh9sK4fG7jg73p6fZusY0m7KIE=; b=E3LuxkBr66KlsMTmoc3dEMWHRe4y3MwMSkefyKQZub2V5S0f4o1lf8Z6IBCcx7tcFLqEswojwL2MNTinMjGCBtD0fEkKEVxnkwPL25l5RUkS02Vx/kvUFGPM6ht8PUBe4rpgP0e/i+cytHn7dgwfDYMizRcA652oqgNr4c8GiDM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671109446642717.2302982149242; Thu, 15 Dec 2022 05:04:06 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5nhQ-0006sg-Pe; Thu, 15 Dec 2022 07:50:56 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5ngz-0006oj-PZ for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:30 -0500 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p5ngy-00045j-2M for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:29 -0500 Received: by mail-wm1-x32a.google.com with SMTP id f13-20020a1cc90d000000b003d08c4cf679so1735422wmb.5 for ; Thu, 15 Dec 2022 04:50:27 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id i12-20020a05600c354c00b003cfd64b6be1sm8388787wmq.27.2022.12.15.04.50.26 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Dec 2022 04:50:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=/8/61FsKkax9rY6lVJh9sK4fG7jg73p6fZusY0m7KIE=; b=deQNOFOD9AZqQ20RX3GUt1we2oH13LiXu9ChFvpVPZHRyZ9GQCA8CCHFjvan0G52hl hOegMc/yGLUNuiBklMoBhv0MdxCr+j1xlIjCLetDGHv4zzgr1Uc4iqoGKnsqhtUUBSYA v3gvK1Na8Ako+aWG+/4RW6Pk4hQgbDNk/Lm5Nyw+XpBHczjHmiztnPHFejR9BisQNLQK IqlM3GEqJqbHXAtnstDJ21vUAZT30xFtA7rEiIN49ZLdNxf3L+wBk/04+AaZWZpOX/ag SiBUm9uv9lPwkoAhaMXSbF3sLExAe+8SF+ieSwbp25SxlftU0gfTQDd9YZdwrZxvn+s6 GXYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=/8/61FsKkax9rY6lVJh9sK4fG7jg73p6fZusY0m7KIE=; b=7ytTNJzMdeI/w8Hh3kEn+kDLIbmeKGd/nllTZqnZzoD+Sx/GrfLx76E5Zyc35XMy10 aHvMfY6+mdLp7HRKlgukUYWebWy1ptW3sP9vwMxmeoZJ2AyxCO2KFVAnyAC3WY4Pm/Gv CbnrMJHZMK6XzocVaajr+gwDo1AbkqG4ZnsHriySwc+/bwZ7Mg4w55S5S9i7qK4dxcMU Dtxnr7P/plqneifViiVJKdkcllHWCJzndzTTD7BBwvoRlwmqC3oqM3U78NMIgUO7H4FH bcX2RKxHu9KZvtYmB95x5xfBBLpnSMoU0Co6u+Oc8v7KCPseICVZopvrIb0LW+CdcTsF PoeQ== X-Gm-Message-State: ANoB5pkUWl/MCr743alEXTAvSR16AtkCI83EO1ICPNfvB/PkaEOB0Wwj 71rdugvR2lOcJ6MQeAe2de4nQTb4ljj5i0HB X-Google-Smtp-Source: AA0mqf44gWz241F0q5aqmtw8LI+ET5OFReMsb3lfXvr3uSBnmE+rtFzOr95NKrjxXEhNcrgjjJ/lLQ== X-Received: by 2002:a05:600c:4e52:b0:3c7:18:b339 with SMTP id e18-20020a05600c4e5200b003c70018b339mr29915420wmq.37.1671108627375; Thu, 15 Dec 2022 04:50:27 -0800 (PST) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 17/29] hw/arm: Convert TYPE_ARM_SMMU to 3-phase reset Date: Thu, 15 Dec 2022 12:49:57 +0000 Message-Id: <20221215125009.980128-18-peter.maydell@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221215125009.980128-1-peter.maydell@linaro.org> References: <20221215125009.980128-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::32a; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x32a.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1671109446991100001 Convert the TYPE_ARM_SMMU device to 3-phase reset. The legacy method doesn't do anything that's invalid in the hold phase, so the conversion is simple and not a behaviour change. Note that we must convert this base class before we can convert the TYPE_ARM_SMMUV3 subclass -- transitional support in Resettable handles "chain to parent class reset" when the base class is 3-phase and the subclass is still using legacy reset, but not the other way around. Signed-off-by: Peter Maydell Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Reviewed-by: Eric Auger Message-id: 20221109161444.3397405-2-peter.maydell@linaro.org --- hw/arm/smmu-common.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/hw/arm/smmu-common.c b/hw/arm/smmu-common.c index e09b9c13b74..220838525d4 100644 --- a/hw/arm/smmu-common.c +++ b/hw/arm/smmu-common.c @@ -526,9 +526,9 @@ static void smmu_base_realize(DeviceState *dev, Error *= *errp) } } =20 -static void smmu_base_reset(DeviceState *dev) +static void smmu_base_reset_hold(Object *obj) { - SMMUState *s =3D ARM_SMMU(dev); + SMMUState *s =3D ARM_SMMU(obj); =20 g_hash_table_remove_all(s->configs); g_hash_table_remove_all(s->iotlb); @@ -543,12 +543,13 @@ static Property smmu_dev_properties[] =3D { static void smmu_base_class_init(ObjectClass *klass, void *data) { DeviceClass *dc =3D DEVICE_CLASS(klass); + ResettableClass *rc =3D RESETTABLE_CLASS(klass); SMMUBaseClass *sbc =3D ARM_SMMU_CLASS(klass); =20 device_class_set_props(dc, smmu_dev_properties); device_class_set_parent_realize(dc, smmu_base_realize, &sbc->parent_realize); - dc->reset =3D smmu_base_reset; + rc->phases.hold =3D smmu_base_reset_hold; } =20 static const TypeInfo smmu_base_info =3D { --=20 2.25.1 From nobody Sun May 19 06:05:04 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1671111356; cv=none; d=zohomail.com; s=zohoarc; b=LomArreNTHedluRf+VvcfK8Q1gw5oTn4jA92/54bkJVw0A49BTwDhiUNRuiM4PU+2I9fP397TOuRbmuGptyvu4BF0edbcHQ0lzEP2pgnjXddqh/6sHFiJmyJyakpZ8shCvBzUmP5kG/EQ0iiBvp25pcXSfDqwI7qV7YNg32JVyU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671111356; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Dw6wotKA3haXzI9jka+bFUKrg99kB/zH8+x+4g05lKY=; b=abrJ/Avy5ZFmK+UbJDv7lYvLkHmqPeWSU2w7BqCsMzlCth0gxihw1HU3LicLdTEeLRhg5vMD/gK/EndTzlmR+GtiXdlvrRgV/INbifjYiAHzPRP5pLcnorQwYRKVWFEHObT8ItZByIsGTO/sM2F76NKpZxVIrzr7BKdd7KJMHWE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671111355725312.56201536941774; Thu, 15 Dec 2022 05:35:55 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5nhV-00077G-3J; Thu, 15 Dec 2022 07:51:01 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5nh0-0006pC-UA for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:32 -0500 Received: from mail-wm1-x329.google.com ([2a00:1450:4864:20::329]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p5ngz-00047E-25 for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:30 -0500 Received: by mail-wm1-x329.google.com with SMTP id p13-20020a05600c468d00b003cf8859ed1bso1755936wmo.1 for ; Thu, 15 Dec 2022 04:50:28 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id i12-20020a05600c354c00b003cfd64b6be1sm8388787wmq.27.2022.12.15.04.50.27 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Dec 2022 04:50:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=Dw6wotKA3haXzI9jka+bFUKrg99kB/zH8+x+4g05lKY=; b=HzPCvfdq1cqVR7NokUtxiCHf1oyOrpsFIQgq78dPQk5/Rk8PAUG6/IvHDLcTcJRrHS PGrQ+yF6FAleCmo2WuhxcOXT5SmfdybPBhx7FSUxhFyq78/iS/QnzuOmNX3uMyjsmy/H sQf0UcDM5FW4YwWgvFmDzT7J2U/U5hNsGaWxuHfyLYOy8zWUOV4X+V/M5EOkaxSD6CYt /pDVqcNxIwGZbbN4x89kjiHrwRitzrYtz42XpNRW9MLIyK4UC2OmM2cZy0MBYsMsFpNw BeIBykf2vnagXLIxhgdbhKTPU+TCGd+3dNKp4zaLY7OES7RvzrbDh3eOYZJcWKg8N1+t 0bCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Dw6wotKA3haXzI9jka+bFUKrg99kB/zH8+x+4g05lKY=; b=GFUTBkBonb1wToz52chLETWtjxMknU8k7fee1WVxG0h/VxnXzMYrzQW/TAdblOZQHe Ot90PTjV0gtpGM5fprMaShM0hFB/cpdiRV+4f5ctooSIkDQf4W5jjj++AtaZrnbyu+qm rDyuvVAZe3XS3YbAMq9zcrtTQNu9UqTDx25nKhm0rC+WArPvrwdm7uVZ4rYKt0dbZpHi KFEFNzecWg4TW1ecC/EijsLt0K0xWnv/PrlQaSDRpr+tlZguw2DgAHRDCTnjbYBXmJKB nQynBhfMEO1Vkf0ke7zzsGWAFXXg+dPN9vWQHpvXQGAUr69Rj5D572IOzxqBPafAixuR 54lg== X-Gm-Message-State: ANoB5plTpGa8CfTV7KgkGFdTbGXYkOKjZxbjAPeT9+b6G3HK6c1VkJxA 8GDzwSMqqBq1PPFQbZALw3XFinSOTg8eQfvK X-Google-Smtp-Source: AA0mqf6rBfvXlk2mC78/9AkPawAQ0YGsxqxBx0F2TA41uE2ZpK26HRJsbcwNmx/ZUdZonrPPSFujTw== X-Received: by 2002:a05:600c:4e91:b0:3d1:dc6f:b1a4 with SMTP id f17-20020a05600c4e9100b003d1dc6fb1a4mr29960606wmq.5.1671108628328; Thu, 15 Dec 2022 04:50:28 -0800 (PST) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 18/29] hw/arm: Convert TYPE_ARM_SMMUV3 to 3-phase reset Date: Thu, 15 Dec 2022 12:49:58 +0000 Message-Id: <20221215125009.980128-19-peter.maydell@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221215125009.980128-1-peter.maydell@linaro.org> References: <20221215125009.980128-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::329; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x329.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1671111357525100001 Convert the TYPE_ARM_SMMUV3 device to 3-phase reset. The legacy reset method doesn't do anything that's invalid in the hold phase, so the conversion only requires changing it to a hold phase method, and using the 3-phase versions of the "save the parent reset method and chain to it" code. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Reviewed-by: Eric Auger Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-id: 20221109161444.3397405-3-peter.maydell@linaro.org --- include/hw/arm/smmuv3.h | 2 +- hw/arm/smmuv3.c | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/include/hw/arm/smmuv3.h b/include/hw/arm/smmuv3.h index c641e60735e..f1921fdf9e7 100644 --- a/include/hw/arm/smmuv3.h +++ b/include/hw/arm/smmuv3.h @@ -77,7 +77,7 @@ struct SMMUv3Class { /*< public >*/ =20 DeviceRealize parent_realize; - DeviceReset parent_reset; + ResettablePhases parent_phases; }; =20 #define TYPE_ARM_SMMUV3 "arm-smmuv3" diff --git a/hw/arm/smmuv3.c b/hw/arm/smmuv3.c index daa80e9c7b6..955b89c8d59 100644 --- a/hw/arm/smmuv3.c +++ b/hw/arm/smmuv3.c @@ -1431,12 +1431,14 @@ static void smmu_init_irq(SMMUv3State *s, SysBusDev= ice *dev) } } =20 -static void smmu_reset(DeviceState *dev) +static void smmu_reset_hold(Object *obj) { - SMMUv3State *s =3D ARM_SMMUV3(dev); + SMMUv3State *s =3D ARM_SMMUV3(obj); SMMUv3Class *c =3D ARM_SMMUV3_GET_CLASS(s); =20 - c->parent_reset(dev); + if (c->parent_phases.hold) { + c->parent_phases.hold(obj); + } =20 smmuv3_init_regs(s); } @@ -1520,10 +1522,12 @@ static void smmuv3_instance_init(Object *obj) static void smmuv3_class_init(ObjectClass *klass, void *data) { DeviceClass *dc =3D DEVICE_CLASS(klass); + ResettableClass *rc =3D RESETTABLE_CLASS(klass); SMMUv3Class *c =3D ARM_SMMUV3_CLASS(klass); =20 dc->vmsd =3D &vmstate_smmuv3; - device_class_set_parent_reset(dc, smmu_reset, &c->parent_reset); + resettable_class_set_parent_phases(rc, NULL, smmu_reset_hold, NULL, + &c->parent_phases); c->parent_realize =3D dc->realize; dc->realize =3D smmu_realize; } --=20 2.25.1 From nobody Sun May 19 06:05:04 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1671109139; cv=none; d=zohomail.com; s=zohoarc; b=NBJb89fW5tZoIM2JPd7u2dkV5LyFZcENG6Wa6Y2NVIRB72NqWl8tx7O8AlCagKMth5Ho96L2imcwObRyPkFwwfjAr93gU0/QfF5hDDz0RMTmKCb2A2pk7fhYp7KmlkM6UgatSZpHLRYUUEEZpPUCX+Ig8QDsNr86zmXTRWvgK2g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671109139; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=0TV5qsA14dk+cYd8jhe+sXqAEhXPrpR+F1VJLlzHiEs=; b=VizVhJR+lLcksB9JSWmLFgyYYpJmNuxGwI7vHspaMPPasFXFHelldCed1DuEuTFiXfvAlzjg5tLZcO60U55hy3GUqYjC/Le1jMx77tvSSGk/n9p2vLubvzDVQXWeky9peJPB8iBzj2KyV4F2PKacNG8pewTDes5YEBPtDIoLymc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671109139299680.8779301681934; Thu, 15 Dec 2022 04:58:59 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5nhR-00071D-Vt; Thu, 15 Dec 2022 07:50:58 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5nh2-0006pV-VW for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:33 -0500 Received: from mail-wm1-x335.google.com ([2a00:1450:4864:20::335]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p5ngz-00045o-TA for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:31 -0500 Received: by mail-wm1-x335.google.com with SMTP id v7so13711456wmn.0 for ; Thu, 15 Dec 2022 04:50:29 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id i12-20020a05600c354c00b003cfd64b6be1sm8388787wmq.27.2022.12.15.04.50.28 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Dec 2022 04:50:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=0TV5qsA14dk+cYd8jhe+sXqAEhXPrpR+F1VJLlzHiEs=; b=QBLi2Zt/XXAjwo9Fe4WabnUrbHRkiyuc/G5PLyKA4Oj3KSdoZhLhVrF/qwyiq+Ee/s 19ZVGX8NOChD5ZRbJllaHlOUzIbBmKjUqv6yUMo/ai7mdhMnxJzB1aILMPemFLcS9gCs P6baFR+DanfMYgxOriH/cRbCY9HAJtozlMDe+SGbaaQdbPGtRoZJyunJOkUhnqzIoRBg OJw2vfJXIVXgY00svAARYxxaQcaMvnkpPhpFNstoXBUqiBeR8gBKF0t/CJwEagTP/8gl Mz7KI5oGXgeyDRg7shW34qxHc+DcMnJeKWyNjYcalRYbU1Gwe1SGKDF9JyI2j3kfPYnk eVsw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0TV5qsA14dk+cYd8jhe+sXqAEhXPrpR+F1VJLlzHiEs=; b=FmDxFQS6MVr8GlvHiaz0xposFek/Y2sNr4qbsppX3qMj5vxr3xa/4q+koGf7fztxpt X+YlZvz5aP7eNrEkqd0vnuQOlr3jI2G1DW1EhooHLzE+lp7MbHKwWpC/WTG0BsXiQ3+i o0sx2oeUJdm2WhPYpYdHT8g2zDqgLcD2DM4Rb7cjZkQerkCCL8Vf2suduhLUzREjUf9D wo3N104GgTsmqYZz+zoJBBq+EzWT+P+A602ZBbN+YFtOmH0Tronbkatm/19F/t3ftXA0 wcGeemF8a7TbiFVkZwxgucLmIrAobopUUae6pAm7NOW49Tr+24tlb+EHvYyhrZjHa9Uq jLlQ== X-Gm-Message-State: ANoB5pk5UAeUcCugn+bAy4zSGDhUBnUEwfrQpbf0nb0kX4UfRrCeN9U6 JgmvsfsFripz6vnIcqOe66s8V/X3duHbJuNj X-Google-Smtp-Source: AA0mqf7XQb8UQfbciAmx/QfJZhxu3+8CwqMLPSLkeaflJE2cypxJUgUNQD6E8yiDJc1JYNT1vMZcew== X-Received: by 2002:a05:600c:783:b0:3d2:2105:1761 with SMTP id z3-20020a05600c078300b003d221051761mr13593524wmo.25.1671108629210; Thu, 15 Dec 2022 04:50:29 -0800 (PST) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 19/29] hw/intc: Convert TYPE_ARM_GIC_COMMON to 3-phase reset Date: Thu, 15 Dec 2022 12:49:59 +0000 Message-Id: <20221215125009.980128-20-peter.maydell@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221215125009.980128-1-peter.maydell@linaro.org> References: <20221215125009.980128-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::335; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x335.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1671109140068100001 Convert the TYPE_ARM_GIC_COMMON device to 3-phase reset. This is a simple no-behaviour-change conversion. Signed-off-by: Peter Maydell Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Message-id: 20221109161444.3397405-4-peter.maydell@linaro.org --- hw/intc/arm_gic_common.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/hw/intc/arm_gic_common.c b/hw/intc/arm_gic_common.c index 7b44d5625b6..a379cea3959 100644 --- a/hw/intc/arm_gic_common.c +++ b/hw/intc/arm_gic_common.c @@ -261,9 +261,9 @@ static inline void arm_gic_common_reset_irq_state(GICSt= ate *s, int first_cpu, } } =20 -static void arm_gic_common_reset(DeviceState *dev) +static void arm_gic_common_reset_hold(Object *obj) { - GICState *s =3D ARM_GIC_COMMON(dev); + GICState *s =3D ARM_GIC_COMMON(obj); int i, j; int resetprio; =20 @@ -364,9 +364,10 @@ static Property arm_gic_common_properties[] =3D { static void arm_gic_common_class_init(ObjectClass *klass, void *data) { DeviceClass *dc =3D DEVICE_CLASS(klass); + ResettableClass *rc =3D RESETTABLE_CLASS(klass); ARMLinuxBootIfClass *albifc =3D ARM_LINUX_BOOT_IF_CLASS(klass); =20 - dc->reset =3D arm_gic_common_reset; + rc->phases.hold =3D arm_gic_common_reset_hold; dc->realize =3D arm_gic_common_realize; device_class_set_props(dc, arm_gic_common_properties); dc->vmsd =3D &vmstate_gic; --=20 2.25.1 From nobody Sun May 19 06:05:04 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1671109134; cv=none; d=zohomail.com; s=zohoarc; b=jGjc6ojGHDIgalhZhmhhUKsOOeeom6ytJD2LD2cJgjY0hetLTrey6A6iXpX9bkUACTPmbhSN3ErR+aQBihoPPWj8FcGj/y+kAikm8YAnX6+Q4OAqseS7iS8jCu5yGNdwUmy0l/gFVWJB4c4FaOFSSDGCVSOE3mVK3DBWC6v2jis= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671109134; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Sb8rZwHrNhrvr6X/OgCKlqVcv8NJTW1C2wl4Tbc0DMM=; b=fg3Itq3iEYnhr1/lwcGCfUf1yV/r7ZBMdDFKZjvdINi0Jm/tODqhCLWDWssJ5CtGBOvy/LJldlmdBVATDhc5vS4KFVgCT59lrbx6MZiAcdIpYfk1M+RbJJr2+f7pnYoXsJnKU7WRAQ9hMlZTX8ubf+tsdg9Nxbaym+EbtTWnPxM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671109134175105.08435083146958; Thu, 15 Dec 2022 04:58:54 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5nhU-00076t-QL; Thu, 15 Dec 2022 07:51:00 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5nh4-0006pm-C0 for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:34 -0500 Received: from mail-wm1-x333.google.com ([2a00:1450:4864:20::333]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p5nh2-000499-MS for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:34 -0500 Received: by mail-wm1-x333.google.com with SMTP id o5-20020a05600c510500b003d21f02fbaaso1596532wms.4 for ; Thu, 15 Dec 2022 04:50:31 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id i12-20020a05600c354c00b003cfd64b6be1sm8388787wmq.27.2022.12.15.04.50.29 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Dec 2022 04:50:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=Sb8rZwHrNhrvr6X/OgCKlqVcv8NJTW1C2wl4Tbc0DMM=; b=Rkth8aY08hhwADcOuqNzvAxeLga+JfzOWSJWzc2RLTxZuWpHTu8wHgATffzxUgSQEU awFL8ZskKjI4H4C2HUZbasDEJfuAiPgV6uKilsubqJ0e7g9I4uP/qySVj8kFG9j9Y/Ng OjWYYeroQdAg8sr7uW0OqsKUlqlD+le9v3PR/odfHDQ/0y6uCVIXMU3v8cXvewFP5Cpn 1i+BdfXTYCs3WJVWUbqtwooqPcYXFRh3/36Pp4LQSzxX12dOgYL1RzLN61zGnqRQW+md uLlTPPPYVynwLwcNs9XsWC8nPmRY2OW0fh9zKjfXyrzL1DAwtp+H9iWfisJq7rWe8owl b4Zw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Sb8rZwHrNhrvr6X/OgCKlqVcv8NJTW1C2wl4Tbc0DMM=; b=1QKim7yizhY7/VQZjQJTnQGvnQTbnUl96NYhic643i4jrAWO+AqrYaLRLU5FTc3Js5 CF0pA+jLkhgoX8l2KNJE+zfEQNT9A8riB2kEURubA/WOwRhtv30ikMLbn9It9cPCmx12 Le9igd+7JARBRcQeQzVrfPqwjraDGpRBj1EFkUy4OhSIAF01t8mN6+C4+qHPHux8ExP5 Qix3fLczM+fAX3IVU8R496O1YihNItMlhnxUsdo7nP4VINZlCUzS/tqGJZHhSILHUUhl K1+SY/85VDjOMhvbaMnVeWF+GwCQhGac3rlwgELR0HhM8yLztcdA7IgOuSjdaPmLpe3o XQXQ== X-Gm-Message-State: ANoB5pll5j4fied57hIaENYCsyH3JNzMMVgoE0HM6Zf7rp7I7Og0Yvaj MP+Cu1U+s1YsZst/vycBrFZ0+z9X4qWeuBgb X-Google-Smtp-Source: AA0mqf6/piLY4iSF2+xc56MOaZAOYtocyvLiQpiJEu+zn8XdCrdZ+vaQ1frQzWi1SmB68aFKxoVL7A== X-Received: by 2002:a05:600c:1d83:b0:3c7:a5:610c with SMTP id p3-20020a05600c1d8300b003c700a5610cmr21692970wms.16.1671108630031; Thu, 15 Dec 2022 04:50:30 -0800 (PST) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 20/29] hw/intc: Convert TYPE_ARM_GIC_KVM to 3-phase reset Date: Thu, 15 Dec 2022 12:50:00 +0000 Message-Id: <20221215125009.980128-21-peter.maydell@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221215125009.980128-1-peter.maydell@linaro.org> References: <20221215125009.980128-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::333; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x333.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1671109136022100003 Now we have converted TYPE_ARM_GIC_COMMON, we can convert the TYPE_ARM_GIC_KVM subclass to 3-phase reset. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-id: 20221109161444.3397405-5-peter.maydell@linaro.org --- hw/intc/arm_gic_kvm.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/hw/intc/arm_gic_kvm.c b/hw/intc/arm_gic_kvm.c index 7d2a13273a4..1d588946bce 100644 --- a/hw/intc/arm_gic_kvm.c +++ b/hw/intc/arm_gic_kvm.c @@ -38,7 +38,7 @@ DECLARE_OBJ_CHECKERS(GICState, KVMARMGICClass, struct KVMARMGICClass { ARMGICCommonClass parent_class; DeviceRealize parent_realize; - void (*parent_reset)(DeviceState *dev); + ResettablePhases parent_phases; }; =20 void kvm_arm_gic_set_irq(uint32_t num_irq, int irq, int level) @@ -473,12 +473,14 @@ static void kvm_arm_gic_get(GICState *s) } } =20 -static void kvm_arm_gic_reset(DeviceState *dev) +static void kvm_arm_gic_reset_hold(Object *obj) { - GICState *s =3D ARM_GIC_COMMON(dev); + GICState *s =3D ARM_GIC_COMMON(obj); KVMARMGICClass *kgc =3D KVM_ARM_GIC_GET_CLASS(s); =20 - kgc->parent_reset(dev); + if (kgc->parent_phases.hold) { + kgc->parent_phases.hold(obj); + } =20 if (kvm_arm_gic_can_save_restore(s)) { kvm_arm_gic_put(s); @@ -593,6 +595,7 @@ static void kvm_arm_gic_realize(DeviceState *dev, Error= **errp) static void kvm_arm_gic_class_init(ObjectClass *klass, void *data) { DeviceClass *dc =3D DEVICE_CLASS(klass); + ResettableClass *rc =3D RESETTABLE_CLASS(klass); ARMGICCommonClass *agcc =3D ARM_GIC_COMMON_CLASS(klass); KVMARMGICClass *kgc =3D KVM_ARM_GIC_CLASS(klass); =20 @@ -600,7 +603,8 @@ static void kvm_arm_gic_class_init(ObjectClass *klass, = void *data) agcc->post_load =3D kvm_arm_gic_put; device_class_set_parent_realize(dc, kvm_arm_gic_realize, &kgc->parent_realize); - device_class_set_parent_reset(dc, kvm_arm_gic_reset, &kgc->parent_rese= t); + resettable_class_set_parent_phases(rc, NULL, kvm_arm_gic_reset_hold, N= ULL, + &kgc->parent_phases); } =20 static const TypeInfo kvm_arm_gic_info =3D { --=20 2.25.1 From nobody Sun May 19 06:05:04 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1671109075; cv=none; d=zohomail.com; s=zohoarc; b=OFV20SJAle5JVa3QBhuyom5+uDpu/yAcqbA9VdH+kEta9ke5W/kbynDnYQCM3s0iGhdJkh5Ns8QG+OLQTLgCAedwdnrZduU3fSAQ1831ve2FxfYA10DIDftSXFvkdMNDQcTTRCEIZw0Ek30QTx/P0MRoGS4qyIKdgODY1baFmA4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671109075; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=3CXHTArsm4UuNjlPNq5RxTfGkxiav15C2fGC40drAkY=; b=Ky/Oh+eGQDes7GqA5bJaCSJk0m7Rs2ySvR98SW6nu4l+A9HIflq7MCWR2cJ1W34xPsTF+jHVUNsSNYuU3ZBoIB3DWUo1kVZdNxtNVYUMDtYnFbVHqlV+jYciVebVuefKmKdGJCh2Ozs3eq9VzIAv24WYas1nuwpAQkeKZrXe0oA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671109075782538.5435766404079; Thu, 15 Dec 2022 04:57:55 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5nhT-00074f-GI; Thu, 15 Dec 2022 07:50:59 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5nh4-0006pl-AT for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:34 -0500 Received: from mail-wm1-x330.google.com ([2a00:1450:4864:20::330]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p5nh2-00049O-Ns for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:34 -0500 Received: by mail-wm1-x330.google.com with SMTP id k22-20020a05600c1c9600b003d1ee3a6289so1743420wms.2 for ; Thu, 15 Dec 2022 04:50:31 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id i12-20020a05600c354c00b003cfd64b6be1sm8388787wmq.27.2022.12.15.04.50.30 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Dec 2022 04:50:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=3CXHTArsm4UuNjlPNq5RxTfGkxiav15C2fGC40drAkY=; b=MISN9LGB2AvG3eYLvgxsGzLv1IdrWHz2JLCrwUSlJGYNjiK1F5ttGRfx1aqmrxlw8i 2Li/tRMajwKiMnuiCDh8kw1JCcLdzWLp4IQ5GJ8fB5cYpWJrEx/HUF90plXrK6P3hXCF hD03jBgOJlSPQS849MEA3fQjytlvpxU0375Dnc+R3+UO9mXBP3civ0j+U/1EiAcB80BZ FUYEI3NG0jYtC5Ueh2PGl/YyiXdhbSH2n8BKQjbeUOsm80CM8/nQrjNl8H55vrUTs8Qt qZImHOhYeh88pwxHDc/ltCUIGhObT8mbxs9gDzl9wGFbEZjGhgRHQisFdvHwlmrUP7uB VzTA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=3CXHTArsm4UuNjlPNq5RxTfGkxiav15C2fGC40drAkY=; b=q6vN4rmBSUxcGPGt8u005IiLq9un+9vbeR0IQImOJHeQC+rGNwOK8EFqu8k7um+zDR 1MI6E5/r8C5j5df7/O3nbBjT1HY0ew2xvUXUAlLKU2AJLl2dyvV0M4dgI3HYC2t/zJEx dMnADEAuKa+JguDh+U/UeYqs5yjUafF7BSAdUgJgYQZGYDGSZvGL2h3K6Ycnp1S7gNP0 cUoXfsHwjMyKnPrOgd/RTBpuN5knpUkpPJfDEXGomFV3ElDoZ8s4KNm7gekQ0FNXSW22 FOhwe0YfmV0UojxDfvbjHEvmdskOFqVyeV7EnQVVGI3qhHO4o1qNYImHlRycMVYQBjQM XfMQ== X-Gm-Message-State: ANoB5pm7xgMDMlaw7ZjHEOYcKjh3swtvL1FlCl4LABvOVsOro70oiSe3 a7BgtZLMgx1syMIR8h/wUfBQGC6pbvOpAtOp X-Google-Smtp-Source: AA0mqf6hmf3dbOeS6AYv8E6k4JDlStjGNxFRA7Gd6qyxJenI6zqPaHkVQN7YC7JC7k4rCTm5Q5Ygxw== X-Received: by 2002:a05:600c:3c95:b0:3cf:e7c8:494 with SMTP id bg21-20020a05600c3c9500b003cfe7c80494mr21967108wmb.29.1671108630874; Thu, 15 Dec 2022 04:50:30 -0800 (PST) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 21/29] hw/intc: Convert TYPE_ARM_GICV3_COMMON to 3-phase reset Date: Thu, 15 Dec 2022 12:50:01 +0000 Message-Id: <20221215125009.980128-22-peter.maydell@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221215125009.980128-1-peter.maydell@linaro.org> References: <20221215125009.980128-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::330; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x330.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1671109077683100009 Convert the TYPE_ARM_GICV3_COMMON parent class to 3-phase reset. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-id: 20221109161444.3397405-6-peter.maydell@linaro.org --- hw/intc/arm_gicv3_common.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/hw/intc/arm_gicv3_common.c b/hw/intc/arm_gicv3_common.c index 351843db4aa..642a8243ed4 100644 --- a/hw/intc/arm_gicv3_common.c +++ b/hw/intc/arm_gicv3_common.c @@ -450,9 +450,9 @@ static void arm_gicv3_finalize(Object *obj) g_free(s->redist_region_count); } =20 -static void arm_gicv3_common_reset(DeviceState *dev) +static void arm_gicv3_common_reset_hold(Object *obj) { - GICv3State *s =3D ARM_GICV3_COMMON(dev); + GICv3State *s =3D ARM_GICV3_COMMON(obj); int i; =20 for (i =3D 0; i < s->num_cpu; i++) { @@ -578,9 +578,10 @@ static Property arm_gicv3_common_properties[] =3D { static void arm_gicv3_common_class_init(ObjectClass *klass, void *data) { DeviceClass *dc =3D DEVICE_CLASS(klass); + ResettableClass *rc =3D RESETTABLE_CLASS(klass); ARMLinuxBootIfClass *albifc =3D ARM_LINUX_BOOT_IF_CLASS(klass); =20 - dc->reset =3D arm_gicv3_common_reset; + rc->phases.hold =3D arm_gicv3_common_reset_hold; dc->realize =3D arm_gicv3_common_realize; device_class_set_props(dc, arm_gicv3_common_properties); dc->vmsd =3D &vmstate_gicv3; --=20 2.25.1 From nobody Sun May 19 06:05:04 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1671108781; cv=none; d=zohomail.com; s=zohoarc; b=Nf7ZC/mp4uaGScM5d1bXPL1DJWHbo9N0xX4XnQepeorFyv5CRE5Q7UJTGBuygtsfdZQhKR86WnIurj8N93w6D8IUJCcPqzSnDfL5gf0//9gjdK8yN2OaB/FBpdnJ/ByFHyNrvuSytLPUwaw20c+gg6WUJcDTnGdIBtFQFjjgDTI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671108781; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=YeQ3kvahs94WhbLIqT4du5oVyKuAmCQx8YIV7LpenHE=; b=K7Ov5J4YpspWR/lYw4I54xCwHoAwTccW60r9FciSCa6nFqrA8aGtQK3Tj61fZwhaNq/6a2r1dUTHBUec/AeoH05i8a6QamR83UwsMofTQl9z93xL7rCfEfKS0BBOHEIc5y5/31MJ/lDB30wXngCbXqwBIycM1augG+GqwQl8WJI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671108780995491.7045093064397; Thu, 15 Dec 2022 04:53:00 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5nhQ-0006sj-Qq; Thu, 15 Dec 2022 07:50:56 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5nh6-0006qQ-C8 for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:36 -0500 Received: from mail-wm1-x32e.google.com ([2a00:1450:4864:20::32e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p5nh3-00049Z-9P for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:35 -0500 Received: by mail-wm1-x32e.google.com with SMTP id ay2-20020a05600c1e0200b003d22e3e796dso1786427wmb.0 for ; Thu, 15 Dec 2022 04:50:32 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id i12-20020a05600c354c00b003cfd64b6be1sm8388787wmq.27.2022.12.15.04.50.30 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Dec 2022 04:50:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=YeQ3kvahs94WhbLIqT4du5oVyKuAmCQx8YIV7LpenHE=; b=tBVpKu3w+SQ/CDz699809OuPGUp8m0/4rcQGYAT5I8MR0hb55rH9eNJ8FzvP217Ii0 H34LNizs3uc4O3QSBFbmdWM52mPqmJmiwCNmog4D19fVg6MGQfn9znASZHf6fNzMy83d 0uZhEKsyePuLxPl2/xdWhqrz+4VTsDR5If2LC8t8oZAUpIzj3QRzfHp9aLN7TZj05f2X FvuLL/IfGQZudpIIBESLsaVWhgKr5QHDkiRBYPgdIs5WWnZwwZGeNa9s6Y/1Qob8vGrk XHBW7fwmahOQ9Ky3Uf3qislqNtjbCpLoUdfC8dmnWjkrR2tP8bxxogh/Pw1S51OFFCok nDcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=YeQ3kvahs94WhbLIqT4du5oVyKuAmCQx8YIV7LpenHE=; b=zhUUlZpFP77kRtGjEgnu52wLjEgVblnHu55D9lJF2014owJuqItjiIVBR4nyUSNwNN l8hLnBXTJUKkj/mh0zJnxlp13z7Oy6LLhxjksajgfPG25qYC4NKegnP2X+XMdeJQpIDa 6RjnSflMh4tk9AwCeMY8d0tHp9IQFRK/MUWyN5IYexyOMcpaZS7Tx0pkS6dplARSK6AX 7E1zNr0aQ8+mSGm+Gi7N/ZLwQxgzu7pTqthMze3ayECvvQ1cGY7a049k3rOJYybHmmQ+ rUs0kUPuuxREXvuIYaAXBkpGupMEZbnxQDkbZ0pc7/qv3szvYzRAflapr6Rjo3jQUlo+ 733w== X-Gm-Message-State: ANoB5pkBZELKeu49kme3DhbC2ZuEXqMy1GcvCZPVnL0vEYqZuZ/3hoYU 3qVt9DWW5Vxt1IlonqDX2honHogEr3lpPKnf X-Google-Smtp-Source: AA0mqf7bJPnzJY6xwUZLZlDYQhr7AEAgH/Zd7qSRb554s0Wzre1w62FR31A3+0hk2sQ0SoR46wZk6A== X-Received: by 2002:a7b:cbd2:0:b0:3d2:191d:2420 with SMTP id n18-20020a7bcbd2000000b003d2191d2420mr15622346wmi.7.1671108631888; Thu, 15 Dec 2022 04:50:31 -0800 (PST) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 22/29] hw/intc: Convert TYPE_KVM_ARM_GICV3 to 3-phase reset Date: Thu, 15 Dec 2022 12:50:02 +0000 Message-Id: <20221215125009.980128-23-peter.maydell@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221215125009.980128-1-peter.maydell@linaro.org> References: <20221215125009.980128-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::32e; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x32e.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1671108781487100001 Convert the TYPE_KVM_ARM_GICV3 device to 3-phase reset. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-id: 20221109161444.3397405-7-peter.maydell@linaro.org --- hw/intc/arm_gicv3_kvm.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/hw/intc/arm_gicv3_kvm.c b/hw/intc/arm_gicv3_kvm.c index 3ca643ecba4..72ad916d3db 100644 --- a/hw/intc/arm_gicv3_kvm.c +++ b/hw/intc/arm_gicv3_kvm.c @@ -77,7 +77,7 @@ DECLARE_OBJ_CHECKERS(GICv3State, KVMARMGICv3Class, struct KVMARMGICv3Class { ARMGICv3CommonClass parent_class; DeviceRealize parent_realize; - void (*parent_reset)(DeviceState *dev); + ResettablePhases parent_phases; }; =20 static void kvm_arm_gicv3_set_irq(void *opaque, int irq, int level) @@ -703,14 +703,16 @@ static void arm_gicv3_icc_reset(CPUARMState *env, con= st ARMCPRegInfo *ri) c->icc_ctlr_el1[GICV3_S] =3D c->icc_ctlr_el1[GICV3_NS]; } =20 -static void kvm_arm_gicv3_reset(DeviceState *dev) +static void kvm_arm_gicv3_reset_hold(Object *obj) { - GICv3State *s =3D ARM_GICV3_COMMON(dev); + GICv3State *s =3D ARM_GICV3_COMMON(obj); KVMARMGICv3Class *kgc =3D KVM_ARM_GICV3_GET_CLASS(s); =20 DPRINTF("Reset\n"); =20 - kgc->parent_reset(dev); + if (kgc->parent_phases.hold) { + kgc->parent_phases.hold(obj); + } =20 if (s->migration_blocker) { DPRINTF("Cannot put kernel gic state, no kernel interface\n"); @@ -890,6 +892,7 @@ static void kvm_arm_gicv3_realize(DeviceState *dev, Err= or **errp) static void kvm_arm_gicv3_class_init(ObjectClass *klass, void *data) { DeviceClass *dc =3D DEVICE_CLASS(klass); + ResettableClass *rc =3D RESETTABLE_CLASS(klass); ARMGICv3CommonClass *agcc =3D ARM_GICV3_COMMON_CLASS(klass); KVMARMGICv3Class *kgc =3D KVM_ARM_GICV3_CLASS(klass); =20 @@ -897,7 +900,8 @@ static void kvm_arm_gicv3_class_init(ObjectClass *klass= , void *data) agcc->post_load =3D kvm_arm_gicv3_put; device_class_set_parent_realize(dc, kvm_arm_gicv3_realize, &kgc->parent_realize); - device_class_set_parent_reset(dc, kvm_arm_gicv3_reset, &kgc->parent_re= set); + resettable_class_set_parent_phases(rc, NULL, kvm_arm_gicv3_reset_hold,= NULL, + &kgc->parent_phases); } =20 static const TypeInfo kvm_arm_gicv3_info =3D { --=20 2.25.1 From nobody Sun May 19 06:05:04 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1671108947; cv=none; d=zohomail.com; s=zohoarc; b=HD92UThmTMFkknvUaA/jP8PfO2FnNvEL5+RPHIVHWSrkh334B2wKck4tzyjtXSJwQY8xnXb4Sok8gTc0vERXhGiCy2XALXFfqWqG18lx5QZ4iPLrf5OwcaubTW1LcaozXGb9KvBMfkLjekB0hgsf1TKQlzD6Xak/w7ekwsr7a6s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671108947; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=FQo9Y/PQ+gSmSXMPIhENR7hhWLKzE50YR9SZb6U2RxE=; b=gIjSr4EA0qwdneCTnKdVqfTWiSTJ1QggtVdPhXJTZMnWCV4kiEYeV8WwWn7nM17Nzoufucln6c1aRQO7HbCjFflUHKzFCPqkoFsOTHeBzhOzv6KYMYjV2NCE1P7/OKJFk7MQzU4s63a62QS71OsuIdetXxSNm9iurS5EL1ejD18= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671108947723319.75895751944506; Thu, 15 Dec 2022 04:55:47 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5nhS-00073P-AD; Thu, 15 Dec 2022 07:50:58 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5nh6-0006qO-CU for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:36 -0500 Received: from mail-wm1-x32f.google.com ([2a00:1450:4864:20::32f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p5nh3-00047Y-Dh for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:35 -0500 Received: by mail-wm1-x32f.google.com with SMTP id z8-20020a05600c220800b003d33b0bda11so660382wml.0 for ; Thu, 15 Dec 2022 04:50:33 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id i12-20020a05600c354c00b003cfd64b6be1sm8388787wmq.27.2022.12.15.04.50.32 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Dec 2022 04:50:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=FQo9Y/PQ+gSmSXMPIhENR7hhWLKzE50YR9SZb6U2RxE=; b=u7lqJVvX0Z5ElvyiiHxYDXGrwt5vZKNRnupeVU4h9PWtDo3CcF/N577pdpRaECC0/G HJVdMYNKnRf6f2kj9R8A2X7W22zNEFP/Pbkplmt5UhY/blebG5Ez/yL826K2LkZoWfov 1Cmyb1FErNGPQSJVFjn6uk6Rxa+AhNWU7Zji+CHnQC+gaS2xrA1STPLcaD0en5rYxu0o THe2qg7Q2LPRdkZZLjhmugMSIDFbV4bpYS3bMUAd7W3ZQL1uJEZ3cUr7HCQoqFTMXa+5 9mWh7Ovt/DNk8OxUSaggYSG/6YEx+NgA3ObdZiLCL0ToxQtrSvsMr9e+jcLbChNZdpd7 fu8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=FQo9Y/PQ+gSmSXMPIhENR7hhWLKzE50YR9SZb6U2RxE=; b=fWTplq1XmoJbaWZaBNtm+hTJrFyftcZZeQmhdyGnzmZYcmkdsdRlQADFeF1hEl22uI qAJ7bfP1roZ8IlSSetNRtBbhslQ9AQh4W7G/+wRfweqlCHN+3Va9ewpy2vhdB0FfSIDz GMeDAXZ7J5zJ2ZpFrFmZuS86GYj0/NNGyGAAfNsQZEBu5DJBTTVbiBFcMYeP80NQkJRs WxdLoKpiTxpXqe31jACL3dveLjBa12cqxkMKY1EAxFkDcquxs6sS/Q3uR3VrlC+GR37z kDmT7pryrwmdix1YjmHNXS7V2bkUvBxbB2xvjExJOBoj5No5DSsTf9+PAWvkm7aAVdU2 K36A== X-Gm-Message-State: ANoB5pkMIRCBpZf9v8nGsT2U0GqByEK3Y6WfJMQZYbOnwUjix5k/sKr3 rpKLQdUkJZXYl6NfWwS4dXwZTRJw7kktDzaf X-Google-Smtp-Source: AA0mqf7xl8qKVSt9Qg+WSql+0UhHh9rBC9tzxhHnbjijMFwKfXyn8fQvdN88Lb6gEe81FlIAhp4y1A== X-Received: by 2002:a05:600c:500b:b0:3cf:6d5b:8768 with SMTP id n11-20020a05600c500b00b003cf6d5b8768mr21256509wmr.8.1671108632755; Thu, 15 Dec 2022 04:50:32 -0800 (PST) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 23/29] hw/intc: Convert TYPE_ARM_GICV3_ITS_COMMON to 3-phase reset Date: Thu, 15 Dec 2022 12:50:03 +0000 Message-Id: <20221215125009.980128-24-peter.maydell@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221215125009.980128-1-peter.maydell@linaro.org> References: <20221215125009.980128-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::32f; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x32f.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1671108949044100001 Convert the TYPE_ARM_GICV3_ITS_COMMON parent class to 3-phase reset. Signed-off-by: Peter Maydell Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Message-id: 20221109161444.3397405-8-peter.maydell@linaro.org --- hw/intc/arm_gicv3_its_common.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/hw/intc/arm_gicv3_its_common.c b/hw/intc/arm_gicv3_its_common.c index 90b85f1e25c..d7532a7a899 100644 --- a/hw/intc/arm_gicv3_its_common.c +++ b/hw/intc/arm_gicv3_its_common.c @@ -122,9 +122,9 @@ void gicv3_its_init_mmio(GICv3ITSState *s, const Memory= RegionOps *ops, msi_nonbroken =3D true; } =20 -static void gicv3_its_common_reset(DeviceState *dev) +static void gicv3_its_common_reset_hold(Object *obj) { - GICv3ITSState *s =3D ARM_GICV3_ITS_COMMON(dev); + GICv3ITSState *s =3D ARM_GICV3_ITS_COMMON(obj); =20 s->ctlr =3D 0; s->cbaser =3D 0; @@ -137,8 +137,9 @@ static void gicv3_its_common_reset(DeviceState *dev) static void gicv3_its_common_class_init(ObjectClass *klass, void *data) { DeviceClass *dc =3D DEVICE_CLASS(klass); + ResettableClass *rc =3D RESETTABLE_CLASS(klass); =20 - dc->reset =3D gicv3_its_common_reset; + rc->phases.hold =3D gicv3_its_common_reset_hold; dc->vmsd =3D &vmstate_its; } =20 --=20 2.25.1 From nobody Sun May 19 06:05:04 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1671110270; cv=none; d=zohomail.com; s=zohoarc; b=amqFlR9/f02H+pCM6SJdOCKQ/A3VvY/CnBII8gjex48aEavyKKmuOg1nXv2oNg+UAcJPempqp2nCu+Tj7B9/0uEr05Bbk5AYfITZixJ2F8eb6I1hUmuXzNYmeaEwzOrS2/uTTwdG3h1KFhO2Boo6X9oX+LgKwdifRSCX238JAsA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671110270; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=NdfqtkLWyZ9Oq9V2fhNGIBisTuR7jxFRlD6CQdAIeIY=; b=Sz/QcG2tHp0l6E4RR3k1AhhBaRI6EJiribgWE9TNEn5w2bZYzA+WkTnCOXV7R9Kuvh2oyJhZTzcjHvKUqOtMs+Oqq7GzDFLeVfIMvSst/LQuvKx1p66hfzYJubVIFVdamW1Z5jmfEHLmCfPXPCBoQT8imWRDvwtSAmT/+g7IpS8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671110270959765.7516852266453; Thu, 15 Dec 2022 05:17:50 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5nhW-000791-1A; Thu, 15 Dec 2022 07:51:02 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5nh6-0006qP-BO for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:36 -0500 Received: from mail-wm1-x32d.google.com ([2a00:1450:4864:20::32d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p5nh4-00047M-Lr for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:36 -0500 Received: by mail-wm1-x32d.google.com with SMTP id c65-20020a1c3544000000b003cfffd00fc0so1633036wma.1 for ; Thu, 15 Dec 2022 04:50:33 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id i12-20020a05600c354c00b003cfd64b6be1sm8388787wmq.27.2022.12.15.04.50.32 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Dec 2022 04:50:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=NdfqtkLWyZ9Oq9V2fhNGIBisTuR7jxFRlD6CQdAIeIY=; b=ZIqHdKSorxDZyvJG8HURI8TVyLqluXXX/z42TejZVwa7L4S2a7nmqVd6+WUz0QsDN8 AHCrMuh3Tgex2+E+VR1rrEsdcP4+vjasJL3Knfb5BGVuauShd4pRSwraPFulJgPZOBX1 isM4rWSmN6Td3j3I0PQCQv6oImG2P8Xd5z7xTXtGMMhTSNSvT5TYTrfIC4iHV8DgGVnF nO8HKe3L49aVpBMNsLQ8CHjbC3PXBE0o/G889qOZwPTEvW70ZiNlQzS/QlNA3SIVBVnT Pce3J4J3tJkqwPCFvE6YHiuXCvcB3HwC0BfC+Sn815vxJ0p9GPuG0eJnTk+mriH75p4Y /FIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=NdfqtkLWyZ9Oq9V2fhNGIBisTuR7jxFRlD6CQdAIeIY=; b=DfwcOC+3HiGkc8MjVtZHlRsLfeQYUR0xeZmvbefwLjucDmwn/9HutrauzsqtWKldug aBqdxpfQE50ncQkMkAMniTJF+gV3Jha05lb1LNsn07LRqMn+ijmn4IJCxk2qGlNlGgK2 GrPsWeIGD58T4u0SqPEUWCagRStabo7XiAOgrFPVrNYc52FYJK0J8EzkWdq0dD+gXE6O T4t8EjRJ03uB5YrhCB4vHOjO1HahPXaE0hbwJZpiBWN6Es9I70wuXCoRDRGyZwndVr+8 BJolOoyqehJbSVmLWiWiyKvhNr/yVeKzZz74YUnuTbi98JxPOaDTaCM2YEvH8pD8lsOe r1PQ== X-Gm-Message-State: ANoB5pnfTZjJfd6HOsFI5JKlltTNgeo6Gd7cGAWrJVZemmFpDVEdTyFK xediN9itvmuqK+ppfz8w3mFFVeVJjH/KNf0r X-Google-Smtp-Source: AA0mqf7C07syH+OZ/onwEvcu43c1sHvWT4YhdgvMYvmbCVzs5QL/KIBWhoWg+ssPvLRWZ2db5zxwsw== X-Received: by 2002:a05:600c:4fc3:b0:3d2:2fa9:cffa with SMTP id o3-20020a05600c4fc300b003d22fa9cffamr8479671wmq.25.1671108633624; Thu, 15 Dec 2022 04:50:33 -0800 (PST) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 24/29] hw/intc: Convert TYPE_ARM_GICV3_ITS to 3-phase reset Date: Thu, 15 Dec 2022 12:50:04 +0000 Message-Id: <20221215125009.980128-25-peter.maydell@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221215125009.980128-1-peter.maydell@linaro.org> References: <20221215125009.980128-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::32d; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x32d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1671110272588100003 Convert the TYPE_ARM_GICV3_ITS device to 3-phase reset. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-id: 20221109161444.3397405-9-peter.maydell@linaro.org --- hw/intc/arm_gicv3_its.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/hw/intc/arm_gicv3_its.c b/hw/intc/arm_gicv3_its.c index 2ff21ed6bbe..57c79da5c55 100644 --- a/hw/intc/arm_gicv3_its.c +++ b/hw/intc/arm_gicv3_its.c @@ -27,7 +27,7 @@ DECLARE_OBJ_CHECKERS(GICv3ITSState, GICv3ITSClass, =20 struct GICv3ITSClass { GICv3ITSCommonClass parent_class; - void (*parent_reset)(DeviceState *dev); + ResettablePhases parent_phases; }; =20 /* @@ -1953,12 +1953,14 @@ static void gicv3_arm_its_realize(DeviceState *dev,= Error **errp) } } =20 -static void gicv3_its_reset(DeviceState *dev) +static void gicv3_its_reset_hold(Object *obj) { - GICv3ITSState *s =3D ARM_GICV3_ITS_COMMON(dev); + GICv3ITSState *s =3D ARM_GICV3_ITS_COMMON(obj); GICv3ITSClass *c =3D ARM_GICV3_ITS_GET_CLASS(s); =20 - c->parent_reset(dev); + if (c->parent_phases.hold) { + c->parent_phases.hold(obj); + } =20 /* Quiescent bit reset to 1 */ s->ctlr =3D FIELD_DP32(s->ctlr, GITS_CTLR, QUIESCENT, 1); @@ -2012,12 +2014,14 @@ static Property gicv3_its_props[] =3D { static void gicv3_its_class_init(ObjectClass *klass, void *data) { DeviceClass *dc =3D DEVICE_CLASS(klass); + ResettableClass *rc =3D RESETTABLE_CLASS(klass); GICv3ITSClass *ic =3D ARM_GICV3_ITS_CLASS(klass); GICv3ITSCommonClass *icc =3D ARM_GICV3_ITS_COMMON_CLASS(klass); =20 dc->realize =3D gicv3_arm_its_realize; device_class_set_props(dc, gicv3_its_props); - device_class_set_parent_reset(dc, gicv3_its_reset, &ic->parent_reset); + resettable_class_set_parent_phases(rc, NULL, gicv3_its_reset_hold, NUL= L, + &ic->parent_phases); icc->post_load =3D gicv3_its_post_load; } =20 --=20 2.25.1 From nobody Sun May 19 06:05:04 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1671108787; cv=none; d=zohomail.com; s=zohoarc; b=KEtdrUebqLMMVhbvKcGQhBO+ByW87RX+CBleo2rrJtZZkXVAC4man4Hkt8VbKM78aUFfxNoelEDsLspwgLz0BrNJpTKz74CD8KD1iDDVLMDf1xakRH24RKFT0YOLI1fwYJY0iRE6dz/Xm4bsljlY6sax5czI6LVRMdpXrht7U+Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671108787; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=gbsPptG/9NycljswTXfQ1MSykEPoHxgef4kzxlHWXjY=; b=HzJ5ROOkEt7KcBlLo98FaqQdFA66nV6LT6REfL8x3iahtQE2jSPe8hK8+qBrFNGTae71b6nkeDoA0QsUYC1v0mSQGDizqdqkrLNs8DS7j247EDTmzCRPDYw9mgQOQilcobcCiH6oJf2NUrrcmceF3UG5JHu6dTO/d+vHaS5fgYk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671108787245170.7734619327449; Thu, 15 Dec 2022 04:53:07 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5nhU-00076I-Cz; Thu, 15 Dec 2022 07:51:00 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5nh9-0006qU-6F for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:50 -0500 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p5nh6-0004AH-Eo for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:38 -0500 Received: by mail-wm1-x32a.google.com with SMTP id ay8-20020a05600c1e0800b003d0808d2826so4325294wmb.1 for ; Thu, 15 Dec 2022 04:50:35 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id i12-20020a05600c354c00b003cfd64b6be1sm8388787wmq.27.2022.12.15.04.50.33 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Dec 2022 04:50:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=gbsPptG/9NycljswTXfQ1MSykEPoHxgef4kzxlHWXjY=; b=Reaz40tN1/N44x+K+uwRdqqKFy8zv5w6XDtuGAuXh+kqcqg0/WETs5tnl+t/fajZws Jb7V9Ipf55Eao2Mu/IoR67R/zN751kqvzMujMc036sfFLl5Ls+DoGQnDNIoXPKLEucjQ xeuKuQSZe1Ip17Dly4etlITCg7kkrxhY2tGvDWAezzI/30Ndol3DBZfOSMYFlG00RUjV 98UxKFay27l0qmVJbz2RWRcTX9PgUnYytAq771j+K4nTMHJ7KxwmSbGT/YABYBGgKySK VcFd4vn42OgaT8wG6rSMKSFrCBPz/p8gHjFHAWC4h434fYmUgQDb6u9Kt8EYWxEgGR3w QkKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=gbsPptG/9NycljswTXfQ1MSykEPoHxgef4kzxlHWXjY=; b=Cqh/wFjH4PCM3ITIRssqOqVkbw1iTTlq9FIz29BPC/90heMsLEw3ulgkG0VBJOpaFv MNq4mNq7kkw/psPVFF1TTYqXtlh3wQuF+16n0aEfwknD0j9cTm1jamPa2rBsEbbjfRGw Wy8JWs0hp+48UMTVB2XliQqN9mkwNDZg75PX+cYNe0wlBRU29F8pNH/zzLGZQRpJv/cZ hwWT37xMNJbznJookmv0ydr5kqIW1OOlP7zBn4rHpFyx9I6IghUEOaXGB+XLoVxMvJgd gCHGT1CAbaVbtgtl1hDhWef08b14laJrpomsJ18wJN2Qt307EzR7fGcIxmfIZk525r/x tVcw== X-Gm-Message-State: ANoB5plq16W1BnFt5Rknef5rxm3+J1b+B4IbvUWNuLhRumxVrIyCWQ2p ala7rUXHnjWuwSs+D2JP5SYBQVuEovBTfNVa X-Google-Smtp-Source: AA0mqf6eB5RzkcS8Qs0+DXtmgfmRql2JKeB2VIDHhp+a63OMrS4dJbCOdLECWzVdFZKVn1vr+vdWUg== X-Received: by 2002:a05:600c:4f89:b0:3cf:d0be:1231 with SMTP id n9-20020a05600c4f8900b003cfd0be1231mr29843875wmq.13.1671108634588; Thu, 15 Dec 2022 04:50:34 -0800 (PST) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 25/29] hw/intc: Convert TYPE_KVM_ARM_ITS to 3-phase reset Date: Thu, 15 Dec 2022 12:50:05 +0000 Message-Id: <20221215125009.980128-26-peter.maydell@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221215125009.980128-1-peter.maydell@linaro.org> References: <20221215125009.980128-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::32a; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x32a.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1671108787527100001 Convert the TYPE_KVM_ARM_ITS device to 3-phase reset. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-id: 20221109161444.3397405-10-peter.maydell@linaro.org --- hw/intc/arm_gicv3_its_kvm.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/hw/intc/arm_gicv3_its_kvm.c b/hw/intc/arm_gicv3_its_kvm.c index 529c7bd4946..7eda9fb86ea 100644 --- a/hw/intc/arm_gicv3_its_kvm.c +++ b/hw/intc/arm_gicv3_its_kvm.c @@ -37,7 +37,7 @@ DECLARE_OBJ_CHECKERS(GICv3ITSState, KVMARMITSClass, =20 struct KVMARMITSClass { GICv3ITSCommonClass parent_class; - void (*parent_reset)(DeviceState *dev); + ResettablePhases parent_phases; }; =20 =20 @@ -197,13 +197,15 @@ static void kvm_arm_its_post_load(GICv3ITSState *s) GITS_CTLR, &s->ctlr, true, &error_abort); } =20 -static void kvm_arm_its_reset(DeviceState *dev) +static void kvm_arm_its_reset_hold(Object *obj) { - GICv3ITSState *s =3D ARM_GICV3_ITS_COMMON(dev); + GICv3ITSState *s =3D ARM_GICV3_ITS_COMMON(obj); KVMARMITSClass *c =3D KVM_ARM_ITS_GET_CLASS(s); int i; =20 - c->parent_reset(dev); + if (c->parent_phases.hold) { + c->parent_phases.hold(obj); + } =20 if (kvm_device_check_attr(s->dev_fd, KVM_DEV_ARM_VGIC_GRP_CTRL, KVM_DEV_ARM_ITS_CTRL_RESET)) { @@ -241,12 +243,14 @@ static Property kvm_arm_its_props[] =3D { static void kvm_arm_its_class_init(ObjectClass *klass, void *data) { DeviceClass *dc =3D DEVICE_CLASS(klass); + ResettableClass *rc =3D RESETTABLE_CLASS(klass); GICv3ITSCommonClass *icc =3D ARM_GICV3_ITS_COMMON_CLASS(klass); KVMARMITSClass *ic =3D KVM_ARM_ITS_CLASS(klass); =20 dc->realize =3D kvm_arm_its_realize; device_class_set_props(dc, kvm_arm_its_props); - device_class_set_parent_reset(dc, kvm_arm_its_reset, &ic->parent_reset= ); + resettable_class_set_parent_phases(rc, NULL, kvm_arm_its_reset_hold, N= ULL, + &ic->parent_phases); icc->send_msi =3D kvm_its_send_msi; icc->pre_save =3D kvm_arm_its_pre_save; icc->post_load =3D kvm_arm_its_post_load; --=20 2.25.1 From nobody Sun May 19 06:05:04 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1671111307; cv=none; d=zohomail.com; s=zohoarc; b=EtG4YqwuSuZnS5DUtTX0ouiVJOiPjrpI2W0c1KOed0B0asOHnRQlAh1KnLoOVccEmoU5hQt9rY+AsnXVlkxraw8JU4nx6A1kyhRr7OsX6K8peV6kZUq/XkA3zgAV3FnkpY+p8UB9Ip/b28nOFAVerGx4tL7sbC68dumPzKJ2qvo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671111307; h=Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=14LvpKp7/VTsP7I0u8An5rfr4jPKW0e5uC6loLOGGqM=; b=RYs3KnvXk915anXgC5kkJPh5jx8+vfa/PqAN9PlmdTd5HgWGXXMaE1jiL/1iEOR0tyT5zyxGmkH7yKPRUmazp1sUxeKpgJkxTncBJD7hNoVP+Vl9pDRrq6hQfaQ/mEwaSN1pwhXIxYgMRvU+3jX5q7eAsigeWdfFxrV/CI4kVvQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671111307109468.88672564303624; Thu, 15 Dec 2022 05:35:07 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5nhV-00078M-Nk; Thu, 15 Dec 2022 07:51:01 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5nh7-0006qR-Qu for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:43 -0500 Received: from mail-wm1-x335.google.com ([2a00:1450:4864:20::335]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p5nh6-00045o-6Q for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:37 -0500 Received: by mail-wm1-x335.google.com with SMTP id v7so13711696wmn.0 for ; Thu, 15 Dec 2022 04:50:35 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id i12-20020a05600c354c00b003cfd64b6be1sm8388787wmq.27.2022.12.15.04.50.34 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Dec 2022 04:50:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=14LvpKp7/VTsP7I0u8An5rfr4jPKW0e5uC6loLOGGqM=; b=i9Lc8fig3YxW+a3N8hY3WNsQUnERcl1Sm5i/KXqznGM9KDRV8U+4zeV7B3lgieTwim rquH1YsTZLWzQf06Sn3q/CREEBjF9OQKwJvmzD61KfyCAuSYpQrpIKy+NyhbIGc2+1ms 6FQhwGjRrliCZed8THx1XHJHE+o5yd+m4ELJA068cQz8Lu5uIh/tnafbFFenw6Eh4k5M dBGEMeVu9qc+2dO0PU+kui5u/kWxE4suYim65HfKdVYBn2Sf1asGAjUjL3oquMLCQj5/ j7Yt2WbYbqEDCW93eW1SqSjB1soyX+mfjaEwQMKgKP/QZHK8xXKYKg+4gWIQkaZfisDO lgww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=14LvpKp7/VTsP7I0u8An5rfr4jPKW0e5uC6loLOGGqM=; b=D45MUkLV2J0n0Q4wmasmRV01hhx6mgnPO0yLQ18epm3mzVdYaw8ZTHOVprDXUtAYT6 R3IlId6Tc7Z1D/+rCLrfRDyOiPveDsRQX+umBlxAcZKip4JlcC+lgf7T/ySkmlxpy4n7 59l5LvCG8vHMsX//Hy4fpoEC9B/pB/ztkWoMY5akKM1SL18Wp800MOdNt8L3ZvtdrSTt vFheZGHoeiPZ+xM2Iq+uBeqf4kO5eA5vniM2l7Rusxyu5NzJb0kgV3VWeYMiPgnW9dG0 EY8uGqZuApHXrsCsa6wBv9JdY5FRrDravBCqwxr5Pg7SeH7itVKaPeiX8RVblBBIF8aV ycbA== X-Gm-Message-State: ANoB5pn1jW6rwa8n+FYw2dJ+RcMlrmihfRO4b4Ue74ZF2e8XBKQRM30k LmGkG1vO4neaO48I0AkEbQ90/lr8Q+WXBmrg X-Google-Smtp-Source: AA0mqf6wSbpH+Ay8BSjd+22eK/VqgVPddhhfTBA8rniJim+EFV1fvyGR1PEl75xFzdLGnB3F/HXbEA== X-Received: by 2002:a05:600c:1da2:b0:3cf:5fd2:87a0 with SMTP id p34-20020a05600c1da200b003cf5fd287a0mr20915844wms.40.1671108635426; Thu, 15 Dec 2022 04:50:35 -0800 (PST) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 26/29] hw/arm/boot: set initrd with #address-cells type in fdt Date: Thu, 15 Dec 2022 12:50:06 +0000 Message-Id: <20221215125009.980128-27-peter.maydell@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221215125009.980128-1-peter.maydell@linaro.org> References: <20221215125009.980128-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::335; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x335.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1671111308873100001 Content-Type: text/plain; charset="utf-8" From: Schspa Shi We use 32bit value for linux,initrd-[start/end], when we have loader_start > 4GB, there will be a wrong initrd_start passed to the kernel, and the kernel will report the following warning. [ 0.000000] ------------[ cut here ]------------ [ 0.000000] initrd not fully accessible via the linear mapping -- please= check your bootloader ... [ 0.000000] WARNING: CPU: 0 PID: 0 at arch/arm64/mm/init.c:355 arm64_mem= block_init+0x158/0x244 [ 0.000000] Modules linked in: [ 0.000000] CPU: 0 PID: 0 Comm: swapper Tainted: G W 6.1= .0-rc3-13250-g30a0b95b1335-dirty #28 [ 0.000000] Hardware name: Horizon Sigi Virtual development board (DT) [ 0.000000] pstate: 600000c5 (nZCv daIF -PAN -UAO -TCO -DIT -SSBS BTYPE= =3D--) [ 0.000000] pc : arm64_memblock_init+0x158/0x244 [ 0.000000] lr : arm64_memblock_init+0x158/0x244 [ 0.000000] sp : ffff800009273df0 [ 0.000000] x29: ffff800009273df0 x28: 0000001000cc0010 x27: 00008000000= 00000 [ 0.000000] x26: 000000000050a3e2 x25: ffff800008b46000 x24: ffff800008b= 46000 [ 0.000000] x23: ffff800008a53000 x22: ffff800009420000 x21: ffff800008a= 53000 [ 0.000000] x20: 0000000004000000 x19: 0000000004000000 x18: 00000000fff= f1020 [ 0.000000] x17: 6568632065736165 x16: 6c70202d2d20676e x15: 697070616d2= 07261 [ 0.000000] x14: 656e696c20656874 x13: 0a2e2e2e20726564 x12: 00000000000= 00000 [ 0.000000] x11: 0000000000000000 x10: 00000000ffffffff x9 : 00000000000= 00000 [ 0.000000] x8 : 0000000000000000 x7 : 796c6c756620746f x6 : 6e206472746= 96e69 [ 0.000000] x5 : ffff8000093c7c47 x4 : ffff800008a2102f x3 : ffff8000092= 73a88 [ 0.000000] x2 : 80000000fffff038 x1 : 00000000000000c0 x0 : 00000000000= 00056 [ 0.000000] Call trace: [ 0.000000] arm64_memblock_init+0x158/0x244 [ 0.000000] setup_arch+0x164/0x1cc [ 0.000000] start_kernel+0x94/0x4ac [ 0.000000] __primary_switched+0xb4/0xbc [ 0.000000] ---[ end trace 0000000000000000 ]--- [ 0.000000] Zone ranges: [ 0.000000] DMA [mem 0x0000001000000000-0x0000001007ffffff] This doesn't affect any machine types we currently support, because for all of our machine types the RAM starts well below the 4GB mark, but it does demonstrate that we're not currently writing the device-tree properties quite as intended. To fix it, we can change it to write these values to the dtb using a type width matching #address-cells. This is the intended size for these dtb properties, and is how u-boot, for instance, writes them, although in practice the Linux kernel will cope with them being any width as long as they're big enough to fit the value. Signed-off-by: Schspa Shi Message-id: 20221129160724.75667-1-schspa@gmail.com [PMM: tweaked commit message] Reviewed-by: Peter Maydell Signed-off-by: Peter Maydell --- hw/arm/boot.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/hw/arm/boot.c b/hw/arm/boot.c index 15c2bf1867f..3d7d11f782f 100644 --- a/hw/arm/boot.c +++ b/hw/arm/boot.c @@ -656,15 +656,17 @@ int arm_load_dtb(hwaddr addr, const struct arm_boot_i= nfo *binfo, } =20 if (binfo->initrd_size) { - rc =3D qemu_fdt_setprop_cell(fdt, "/chosen", "linux,initrd-start", - binfo->initrd_start); + rc =3D qemu_fdt_setprop_sized_cells(fdt, "/chosen", "linux,initrd-= start", + acells, binfo->initrd_start); if (rc < 0) { fprintf(stderr, "couldn't set /chosen/linux,initrd-start\n"); goto fail; } =20 - rc =3D qemu_fdt_setprop_cell(fdt, "/chosen", "linux,initrd-end", - binfo->initrd_start + binfo->initrd_siz= e); + rc =3D qemu_fdt_setprop_sized_cells(fdt, "/chosen", "linux,initrd-= end", + acells, + binfo->initrd_start + + binfo->initrd_size); if (rc < 0) { fprintf(stderr, "couldn't set /chosen/linux,initrd-end\n"); goto fail; --=20 2.25.1 From nobody Sun May 19 06:05:04 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1671111182; cv=none; d=zohomail.com; s=zohoarc; b=PJvqbD5MNe/e4dGIHhnE72LrGF0lYfQLqukrFR4fgHFYN9gLnv0flB1qY168ALl6uLRObn96uVcqC07rHpxjX1TJwawlmWKmlp0OBJK3WJGH7lcrqRmTSHBO+soFtLu8MB1GW7DvkcHBduWfxbCSjgeEpwJvwFAYaVkXkXT+L/E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671111182; h=Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=RK1UPNBesBVFKDD7ufhJMalSW0NQP8K9iyGi9aR9dj4=; b=fsDjoDBnYnnMzf0l+/t+ELKd507BtqNKTkbQqDYnfd6RszFxqHcOoNsvkfBCaQIyj7Wzsw2CWBfbwUfAyxOytQONYxir5ecfn17VNLoAZIIgdwDvoYrdj4bAsLo3VeOE8O2gMhkEBhVp8P/XksEt1uVEHtnhEcwAVhtgk08OniU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671111182678143.40587307519968; Thu, 15 Dec 2022 05:33:02 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5nhV-00078S-QL; Thu, 15 Dec 2022 07:51:01 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5nh9-0006qV-Ku for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:50 -0500 Received: from mail-wm1-x331.google.com ([2a00:1450:4864:20::331]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p5nh7-0004Af-On for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:39 -0500 Received: by mail-wm1-x331.google.com with SMTP id bg10so13698366wmb.1 for ; Thu, 15 Dec 2022 04:50:37 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id i12-20020a05600c354c00b003cfd64b6be1sm8388787wmq.27.2022.12.15.04.50.35 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Dec 2022 04:50:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=RK1UPNBesBVFKDD7ufhJMalSW0NQP8K9iyGi9aR9dj4=; b=AswGKamNI6Sy+h70UsIN1JyikVi52Q7/uGDNZmZOohZv9eYJI6gGrErZGgBjtLnPhZ 7pNll8ps6zgcJ89co3uWTFQf+ltrwepbOCnhRwsOnBaUNhh9W99z5DrSEEz+zOzmWMFB OVdy4mwvEFsiyNivQQKdFEXwQmR9ILUOxH6Me73q6Fb2ijxQIAJjvaPI3zRYOJqZzHX0 Rv1lb5x5ikxXav25dYQyN+H2XsZmyoJ+PmrdgODgZ5Fq9wS9E0HuHYQHXCwZVQgwlFfz NScA8x5rnQeJsXMnXF3+hRe1E0jIwGahpbQvgXzjOyDJ4MMW293tqFVQNYS5ZnBn+7ws nBCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=RK1UPNBesBVFKDD7ufhJMalSW0NQP8K9iyGi9aR9dj4=; b=bQIpzUYqCE4Z0AgPFqJKBglXVzp5Px32cDh+AhdQk5Yw8QMwSgcSrDZ2nBDEWMB3Sl 8XKh4FYNTGeGWL2IMiPXpLw/rxCveuxIptijzvCdohDMdeZp/guLOuBuT9Hl0zH5KKjG UTH5UsPb+Z2h3Fc8K5/vS87JT6TLg0ay1J8NpyFwCLMZjOaA81V99qwhDatOR5C64qPw FmpaoNGSGvV34u7yB1RxIAg2VMgHRwpl1BJdtwzRWGrjwJuCtjl5TgCSSNspz832voYt fU/czDhSk7aSNiM5Q+gby+5ZtsH3LTXfg4+Kj83p5E0pNXiP/Esthy2iEnOjL4mwb8pA iXng== X-Gm-Message-State: ANoB5plkhL658sx2uFznJl0nHpmzWbhJwhoXf+PqZL4XFxbxTHVnLb0J DfHX3e8RqMFLvG+7R8+OJ0MAYKzOmGUvaMcO X-Google-Smtp-Source: AA0mqf6gqxVIFDuLeZP1Q21h/n+5DJviHgQsp0PI21eIMr6seR55qybFy3RnV6vjmOJXS1AWVyKJDw== X-Received: by 2002:a05:600c:1d83:b0:3d2:13c6:4740 with SMTP id p3-20020a05600c1d8300b003d213c64740mr24773548wms.39.1671108636272; Thu, 15 Dec 2022 04:50:36 -0800 (PST) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 27/29] target/arm: align exposed ID registers with Linux Date: Thu, 15 Dec 2022 12:50:07 +0000 Message-Id: <20221215125009.980128-28-peter.maydell@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221215125009.980128-1-peter.maydell@linaro.org> References: <20221215125009.980128-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::331; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x331.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1671111184373100003 Content-Type: text/plain; charset="utf-8" From: Zhuojia Shen In CPUID registers exposed to userspace, some registers were missing and some fields were not exposed. This patch aligns exposed ID registers and their fields with what the upstream kernel currently exposes. Specifically, the following new ID registers/fields are exposed to userspace: ID_AA64PFR1_EL1.BT: bits 3-0 ID_AA64PFR1_EL1.MTE: bits 11-8 ID_AA64PFR1_EL1.SME: bits 27-24 ID_AA64ZFR0_EL1.SVEver: bits 3-0 ID_AA64ZFR0_EL1.AES: bits 7-4 ID_AA64ZFR0_EL1.BitPerm: bits 19-16 ID_AA64ZFR0_EL1.BF16: bits 23-20 ID_AA64ZFR0_EL1.SHA3: bits 35-32 ID_AA64ZFR0_EL1.SM4: bits 43-40 ID_AA64ZFR0_EL1.I8MM: bits 47-44 ID_AA64ZFR0_EL1.F32MM: bits 55-52 ID_AA64ZFR0_EL1.F64MM: bits 59-56 ID_AA64SMFR0_EL1.F32F32: bit 32 ID_AA64SMFR0_EL1.B16F32: bit 34 ID_AA64SMFR0_EL1.F16F32: bit 35 ID_AA64SMFR0_EL1.I8I32: bits 39-36 ID_AA64SMFR0_EL1.F64F64: bit 48 ID_AA64SMFR0_EL1.I16I64: bits 55-52 ID_AA64SMFR0_EL1.FA64: bit 63 ID_AA64MMFR0_EL1.ECV: bits 63-60 ID_AA64MMFR1_EL1.AFP: bits 47-44 ID_AA64MMFR2_EL1.AT: bits 35-32 ID_AA64ISAR0_EL1.RNDR: bits 63-60 ID_AA64ISAR1_EL1.FRINTTS: bits 35-32 ID_AA64ISAR1_EL1.BF16: bits 47-44 ID_AA64ISAR1_EL1.DGH: bits 51-48 ID_AA64ISAR1_EL1.I8MM: bits 55-52 ID_AA64ISAR2_EL1.WFxT: bits 3-0 ID_AA64ISAR2_EL1.RPRES: bits 7-4 ID_AA64ISAR2_EL1.GPA3: bits 11-8 ID_AA64ISAR2_EL1.APA3: bits 15-12 The code is also refactored to use symbolic names for ID register fields for better readability and maintainability. Signed-off-by: Zhuojia Shen Message-id: DS7PR12MB6309BC9133877BCC6FC419FEAC0D9@DS7PR12MB6309.namprd12.p= rod.outlook.com Reviewed-by: Peter Maydell Signed-off-by: Peter Maydell --- target/arm/helper.c | 96 +++++++++++++++++++++++++++++++++++++-------- 1 file changed, 79 insertions(+), 17 deletions(-) diff --git a/target/arm/helper.c b/target/arm/helper.c index bac2ea62c44..6efc632b20d 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -7864,31 +7864,89 @@ void register_cp_regs_for_features(ARMCPU *cpu) #ifdef CONFIG_USER_ONLY static const ARMCPRegUserSpaceInfo v8_user_idregs[] =3D { { .name =3D "ID_AA64PFR0_EL1", - .exported_bits =3D 0x000f000f00ff0000, - .fixed_bits =3D 0x0000000000000011 }, + .exported_bits =3D R_ID_AA64PFR0_FP_MASK | + R_ID_AA64PFR0_ADVSIMD_MASK | + R_ID_AA64PFR0_SVE_MASK | + R_ID_AA64PFR0_DIT_MASK, + .fixed_bits =3D (0x1 << R_ID_AA64PFR0_EL0_SHIFT) | + (0x1 << R_ID_AA64PFR0_EL1_SHIFT) }, { .name =3D "ID_AA64PFR1_EL1", - .exported_bits =3D 0x00000000000000f0 }, + .exported_bits =3D R_ID_AA64PFR1_BT_MASK | + R_ID_AA64PFR1_SSBS_MASK | + R_ID_AA64PFR1_MTE_MASK | + R_ID_AA64PFR1_SME_MASK }, { .name =3D "ID_AA64PFR*_EL1_RESERVED", - .is_glob =3D true }, - { .name =3D "ID_AA64ZFR0_EL1" }, + .is_glob =3D true }, + { .name =3D "ID_AA64ZFR0_EL1", + .exported_bits =3D R_ID_AA64ZFR0_SVEVER_MASK | + R_ID_AA64ZFR0_AES_MASK | + R_ID_AA64ZFR0_BITPERM_MASK | + R_ID_AA64ZFR0_BFLOAT16_MASK | + R_ID_AA64ZFR0_SHA3_MASK | + R_ID_AA64ZFR0_SM4_MASK | + R_ID_AA64ZFR0_I8MM_MASK | + R_ID_AA64ZFR0_F32MM_MASK | + R_ID_AA64ZFR0_F64MM_MASK }, + { .name =3D "ID_AA64SMFR0_EL1", + .exported_bits =3D R_ID_AA64SMFR0_F32F32_MASK | + R_ID_AA64SMFR0_B16F32_MASK | + R_ID_AA64SMFR0_F16F32_MASK | + R_ID_AA64SMFR0_I8I32_MASK | + R_ID_AA64SMFR0_F64F64_MASK | + R_ID_AA64SMFR0_I16I64_MASK | + R_ID_AA64SMFR0_FA64_MASK }, { .name =3D "ID_AA64MMFR0_EL1", - .fixed_bits =3D 0x00000000ff000000 }, - { .name =3D "ID_AA64MMFR1_EL1" }, + .exported_bits =3D R_ID_AA64MMFR0_ECV_MASK, + .fixed_bits =3D (0xf << R_ID_AA64MMFR0_TGRAN64_SHIFT) | + (0xf << R_ID_AA64MMFR0_TGRAN4_SHIFT) }, + { .name =3D "ID_AA64MMFR1_EL1", + .exported_bits =3D R_ID_AA64MMFR1_AFP_MASK }, + { .name =3D "ID_AA64MMFR2_EL1", + .exported_bits =3D R_ID_AA64MMFR2_AT_MASK }, { .name =3D "ID_AA64MMFR*_EL1_RESERVED", - .is_glob =3D true }, + .is_glob =3D true }, { .name =3D "ID_AA64DFR0_EL1", - .fixed_bits =3D 0x0000000000000006 }, - { .name =3D "ID_AA64DFR1_EL1" }, + .fixed_bits =3D (0x6 << R_ID_AA64DFR0_DEBUGVER_SHIFT) }, + { .name =3D "ID_AA64DFR1_EL1" }, { .name =3D "ID_AA64DFR*_EL1_RESERVED", - .is_glob =3D true }, + .is_glob =3D true }, { .name =3D "ID_AA64AFR*", - .is_glob =3D true }, + .is_glob =3D true }, { .name =3D "ID_AA64ISAR0_EL1", - .exported_bits =3D 0x00fffffff0fffff0 }, + .exported_bits =3D R_ID_AA64ISAR0_AES_MASK | + R_ID_AA64ISAR0_SHA1_MASK | + R_ID_AA64ISAR0_SHA2_MASK | + R_ID_AA64ISAR0_CRC32_MASK | + R_ID_AA64ISAR0_ATOMIC_MASK | + R_ID_AA64ISAR0_RDM_MASK | + R_ID_AA64ISAR0_SHA3_MASK | + R_ID_AA64ISAR0_SM3_MASK | + R_ID_AA64ISAR0_SM4_MASK | + R_ID_AA64ISAR0_DP_MASK | + R_ID_AA64ISAR0_FHM_MASK | + R_ID_AA64ISAR0_TS_MASK | + R_ID_AA64ISAR0_RNDR_MASK }, { .name =3D "ID_AA64ISAR1_EL1", - .exported_bits =3D 0x000000f0ffffffff }, + .exported_bits =3D R_ID_AA64ISAR1_DPB_MASK | + R_ID_AA64ISAR1_APA_MASK | + R_ID_AA64ISAR1_API_MASK | + R_ID_AA64ISAR1_JSCVT_MASK | + R_ID_AA64ISAR1_FCMA_MASK | + R_ID_AA64ISAR1_LRCPC_MASK | + R_ID_AA64ISAR1_GPA_MASK | + R_ID_AA64ISAR1_GPI_MASK | + R_ID_AA64ISAR1_FRINTTS_MASK | + R_ID_AA64ISAR1_SB_MASK | + R_ID_AA64ISAR1_BF16_MASK | + R_ID_AA64ISAR1_DGH_MASK | + R_ID_AA64ISAR1_I8MM_MASK }, + { .name =3D "ID_AA64ISAR2_EL1", + .exported_bits =3D R_ID_AA64ISAR2_WFXT_MASK | + R_ID_AA64ISAR2_RPRES_MASK | + R_ID_AA64ISAR2_GPA3_MASK | + R_ID_AA64ISAR2_APA3_MASK }, { .name =3D "ID_AA64ISAR*_EL1_RESERVED", - .is_glob =3D true }, + .is_glob =3D true }, }; modify_arm_cp_regs(v8_idregs, v8_user_idregs); #endif @@ -8206,8 +8264,12 @@ void register_cp_regs_for_features(ARMCPU *cpu) #ifdef CONFIG_USER_ONLY static const ARMCPRegUserSpaceInfo id_v8_user_midr_cp_reginfo[] = =3D { { .name =3D "MIDR_EL1", - .exported_bits =3D 0x00000000ffffffff }, - { .name =3D "REVIDR_EL1" }, + .exported_bits =3D R_MIDR_EL1_REVISION_MASK | + R_MIDR_EL1_PARTNUM_MASK | + R_MIDR_EL1_ARCHITECTURE_MASK | + R_MIDR_EL1_VARIANT_MASK | + R_MIDR_EL1_IMPLEMENTER_MASK }, + { .name =3D "REVIDR_EL1" }, }; modify_arm_cp_regs(id_v8_midr_cp_reginfo, id_v8_user_midr_cp_regin= fo); #endif --=20 2.25.1 From nobody Sun May 19 06:05:04 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1671109142; cv=none; d=zohomail.com; s=zohoarc; b=Rb+1WiDjKgv84N+cB1tuHPasjvKJAQ9sVmpWFOEZ4tzf4QJ7MQEYeoi6yW/UJX+Ko3NcYWetj5jIYMIAmrMM6GLNcSrkFw9aCsgbellFwVbby+pPrPJZIpjm2MCowdhYiR77+QmmSk+UIkw2hVVw4DHxjo9GpjmA+Z8DeNuybTo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671109142; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Vx55fGlR/Z1os6C31JObsSgVzCPuLsEtiQEKGRSF7A4=; b=dduRC6WJ6bKoLesjmaUfERrMunSKgFKIDXrayUuDv8PQCIeAHyAJj0kR8F0Zcf/itukv/tUzG2J6+BRDccBvJ9rypBytmbTCTokiGNzA7hweFJC8Ryf7VYaCKGiAotItsuhcYann/vzPK5VJggf3k3soKcQavIv1q+935acbW3A= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671109142796122.05040648573379; Thu, 15 Dec 2022 04:59:02 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5nhT-00074j-HV; Thu, 15 Dec 2022 07:50:59 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5nhA-0006qb-11 for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:50 -0500 Received: from mail-wm1-x332.google.com ([2a00:1450:4864:20::332]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p5nh7-00047j-SF for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:39 -0500 Received: by mail-wm1-x332.google.com with SMTP id c65-20020a1c3544000000b003cfffd00fc0so1633144wma.1 for ; Thu, 15 Dec 2022 04:50:37 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id i12-20020a05600c354c00b003cfd64b6be1sm8388787wmq.27.2022.12.15.04.50.36 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Dec 2022 04:50:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=Vx55fGlR/Z1os6C31JObsSgVzCPuLsEtiQEKGRSF7A4=; b=eb13ztEm+cNqI1MLmTuDb4d3H2Ox5V+hBF3Mf3wucS6jxbmhLy0wvZn+vyNNBcGUSG 1CBqKGKXONovkFV/Yifq1aGSJoyi94upNrMvxzjDlIEo8jIPixM8AIZxIN4NKwitWXtZ xy5s+u3X9WRV2wk/EOPEZjtwIph2Gn/bVH+PGGmPZQooDAY/1Zp7LT/+aFCu+bDbwDqW 3k+fyyaMfCLnzHeAUsGEkzkoDXwzc+KlMRJ5mysM63OwpykMjqVSPDeg+hr/ZlC3dUc9 Yf+LBXQF+AaUez+OeLvFRvxlRPPoDZfdU0/jGkVOZvOLHvo51U1fmVNlCXfSq0OS1/JD UxcQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Vx55fGlR/Z1os6C31JObsSgVzCPuLsEtiQEKGRSF7A4=; b=cY++qKVORUed+8n3C0hDSHLo93rpqW1eQ9dUPSCKW6CxnsfVA9AQDRTz51q/zsv47J 8QnjcOVCd3TNp9PJAK+OCmCXZqRtEAg7jdx5n7BabgR3kiGkjhMT41NVNCstiBnWGg/x QURIS2LSuvNYfdfdpffE6m6WlD/89RUgk765SKNbGblhK0EvUZ6xFLIf6LGZ4ls7kx9s V33M5Cve7rcxuYh76tBqgYgZo2/m9SbOP8BuTgvD/YgaH9PWrx6QBbF5dqn0NGddWv2k aAJUpmrcpwSzaBg4oLbOL2s4sqSOrCvQWDihOSzVwa0+26EWFXYVruhUxiw/FnGwxks0 kjYg== X-Gm-Message-State: ANoB5pmHkDstYJIXe/JNA1+OfDwxoDfKkgTYlhhKsiSWsYrKQnAQVeo+ CE5dHzR30+/QHTIItszNnIQltFzYJeuxHsRN X-Google-Smtp-Source: AA0mqf45j6Byq5ixgzzgPFvBjwWG5QHVzLYOARtJ4j4XXeRO/waMukGNtloZBBPUT0Pi15Hl3iSvIA== X-Received: by 2002:a05:600c:310e:b0:3cf:b07a:cd2f with SMTP id g14-20020a05600c310e00b003cfb07acd2fmr21396777wmo.37.1671108637112; Thu, 15 Dec 2022 04:50:37 -0800 (PST) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 28/29] hw/misc: Move some arm-related files from specific_ss into softmmu_ss Date: Thu, 15 Dec 2022 12:50:08 +0000 Message-Id: <20221215125009.980128-29-peter.maydell@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221215125009.980128-1-peter.maydell@linaro.org> References: <20221215125009.980128-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::332; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x332.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1671109144071100001 From: Thomas Huth The header target/arm/kvm-consts.h checks CONFIG_KVM which is marked as poisoned in common code, so the files that include this header have to be added to specific_ss and recompiled for each, qemu-system-arm and qemu-system-aarch64. However, since the kvm headers are only optionally used in kvm-constants.h for some sanity checks, we can additionally check the NEED_CPU_H macro first to avoid the poisoned CONFIG_KVM macro, so kvm-constants.h can also be used from "common" files (without the sanity checks - which should be OK since they are still done from other target-specific files instead). This way, and by adjusting some other include statements in the related files here and there, we can move some files from specific_ss into softmmu_ss, so that they only need to be compiled once during the build process. Signed-off-by: Thomas Huth Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-id: 20221202154023.293614-1-thuth@redhat.com Signed-off-by: Peter Maydell --- include/hw/misc/xlnx-zynqmp-apu-ctrl.h | 2 +- target/arm/kvm-consts.h | 8 ++++---- hw/misc/imx6_src.c | 2 +- hw/misc/iotkit-sysctl.c | 1 - hw/misc/meson.build | 11 +++++------ 5 files changed, 11 insertions(+), 13 deletions(-) diff --git a/include/hw/misc/xlnx-zynqmp-apu-ctrl.h b/include/hw/misc/xlnx-= zynqmp-apu-ctrl.h index b8ca9434afb..c3bf3c1583b 100644 --- a/include/hw/misc/xlnx-zynqmp-apu-ctrl.h +++ b/include/hw/misc/xlnx-zynqmp-apu-ctrl.h @@ -13,7 +13,7 @@ =20 #include "hw/sysbus.h" #include "hw/register.h" -#include "target/arm/cpu.h" +#include "target/arm/cpu-qom.h" =20 #define TYPE_XLNX_ZYNQMP_APU_CTRL "xlnx.apu-ctrl" OBJECT_DECLARE_SIMPLE_TYPE(XlnxZynqMPAPUCtrl, XLNX_ZYNQMP_APU_CTRL) diff --git a/target/arm/kvm-consts.h b/target/arm/kvm-consts.h index faacf96fdc7..09967ec5e64 100644 --- a/target/arm/kvm-consts.h +++ b/target/arm/kvm-consts.h @@ -14,16 +14,16 @@ #ifndef ARM_KVM_CONSTS_H #define ARM_KVM_CONSTS_H =20 +#ifdef NEED_CPU_H #ifdef CONFIG_KVM #include #include - #define MISMATCH_CHECK(X, Y) QEMU_BUILD_BUG_ON(X !=3D Y) +#endif +#endif =20 -#else - +#ifndef MISMATCH_CHECK #define MISMATCH_CHECK(X, Y) QEMU_BUILD_BUG_ON(0) - #endif =20 #define CP_REG_SIZE_SHIFT 52 diff --git a/hw/misc/imx6_src.c b/hw/misc/imx6_src.c index 7b0e968804a..a9c64d06ebc 100644 --- a/hw/misc/imx6_src.c +++ b/hw/misc/imx6_src.c @@ -15,7 +15,7 @@ #include "qemu/log.h" #include "qemu/main-loop.h" #include "qemu/module.h" -#include "arm-powerctl.h" +#include "target/arm/arm-powerctl.h" #include "hw/core/cpu.h" =20 #ifndef DEBUG_IMX6_SRC diff --git a/hw/misc/iotkit-sysctl.c b/hw/misc/iotkit-sysctl.c index 7147e2f84e6..e664215ee67 100644 --- a/hw/misc/iotkit-sysctl.c +++ b/hw/misc/iotkit-sysctl.c @@ -30,7 +30,6 @@ #include "hw/qdev-properties.h" #include "hw/arm/armsse-version.h" #include "target/arm/arm-powerctl.h" -#include "target/arm/cpu.h" =20 REG32(SECDBGSTAT, 0x0) REG32(SECDBGSET, 0x4) diff --git a/hw/misc/meson.build b/hw/misc/meson.build index 95268eddc07..ed0598dc9eb 100644 --- a/hw/misc/meson.build +++ b/hw/misc/meson.build @@ -51,6 +51,7 @@ softmmu_ss.add(when: 'CONFIG_IMX', if_true: files( 'imx25_ccm.c', 'imx31_ccm.c', 'imx6_ccm.c', + 'imx6_src.c', 'imx6ul_ccm.c', 'imx7_ccm.c', 'imx7_gpr.c', @@ -84,8 +85,8 @@ softmmu_ss.add(when: 'CONFIG_RASPI', if_true: files( )) softmmu_ss.add(when: 'CONFIG_SLAVIO', if_true: files('slavio_misc.c')) softmmu_ss.add(when: 'CONFIG_ZYNQ', if_true: files('zynq_slcr.c')) -specific_ss.add(when: 'CONFIG_XLNX_ZYNQMP_ARM', if_true: files('xlnx-zynqm= p-crf.c')) -specific_ss.add(when: 'CONFIG_XLNX_ZYNQMP_ARM', if_true: files('xlnx-zynqm= p-apu-ctrl.c')) +softmmu_ss.add(when: 'CONFIG_XLNX_ZYNQMP_ARM', if_true: files('xlnx-zynqmp= -crf.c')) +softmmu_ss.add(when: 'CONFIG_XLNX_ZYNQMP_ARM', if_true: files('xlnx-zynqmp= -apu-ctrl.c')) specific_ss.add(when: 'CONFIG_XLNX_VERSAL', if_true: files('xlnx-versal-cr= l.c')) softmmu_ss.add(when: 'CONFIG_XLNX_VERSAL', if_true: files( 'xlnx-versal-xramc.c', @@ -101,6 +102,7 @@ softmmu_ss.add(when: 'CONFIG_TZ_MPC', if_true: files('t= z-mpc.c')) softmmu_ss.add(when: 'CONFIG_TZ_MSC', if_true: files('tz-msc.c')) softmmu_ss.add(when: 'CONFIG_TZ_PPC', if_true: files('tz-ppc.c')) softmmu_ss.add(when: 'CONFIG_IOTKIT_SECCTL', if_true: files('iotkit-secctl= .c')) +softmmu_ss.add(when: 'CONFIG_IOTKIT_SYSCTL', if_true: files('iotkit-sysctl= .c')) softmmu_ss.add(when: 'CONFIG_IOTKIT_SYSINFO', if_true: files('iotkit-sysin= fo.c')) softmmu_ss.add(when: 'CONFIG_ARMSSE_CPU_PWRCTRL', if_true: files('armsse-c= pu-pwrctrl.c')) softmmu_ss.add(when: 'CONFIG_ARMSSE_CPUID', if_true: files('armsse-cpuid.c= ')) @@ -126,15 +128,12 @@ softmmu_ss.add(when: 'CONFIG_GRLIB', if_true: files('= grlib_ahb_apb_pnp.c')) =20 specific_ss.add(when: 'CONFIG_AVR_POWER', if_true: files('avr_power.c')) =20 -specific_ss.add(when: 'CONFIG_IMX', if_true: files('imx6_src.c')) -specific_ss.add(when: 'CONFIG_IOTKIT_SYSCTL', if_true: files('iotkit-sysct= l.c')) - specific_ss.add(when: 'CONFIG_MAC_VIA', if_true: files('mac_via.c')) =20 specific_ss.add(when: 'CONFIG_MIPS_CPS', if_true: files('mips_cmgcr.c', 'm= ips_cpc.c')) specific_ss.add(when: 'CONFIG_MIPS_ITU', if_true: files('mips_itu.c')) =20 -specific_ss.add(when: 'CONFIG_SBSA_REF', if_true: files('sbsa_ec.c')) +softmmu_ss.add(when: 'CONFIG_SBSA_REF', if_true: files('sbsa_ec.c')) =20 # HPPA devices softmmu_ss.add(when: 'CONFIG_LASI', if_true: files('lasi.c')) --=20 2.25.1 From nobody Sun May 19 06:05:04 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1671109070; cv=none; d=zohomail.com; s=zohoarc; b=Xz/XwudF7Pte7SXKVjqMqypefZY/fCS5P+yA4ZhTQYBrMW0xLA4tTgZGMNyt2g27svJHU4XSsgOZbxLVdeEqf8HKJpp2s2SMZNkhZVdiwp9LjqZ+yZKnvBCSgxvMccmS6GJ8TQKnC577cYm3belKfFcqkKNHaGwsOYpHVUR5E2s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671109070; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=SPVz5nzpUxR9kUw3FrhH8ulO7d6/4IhNh0TGhcwS5DA=; b=mXFxFP6ztxe4deRsBUcHVa1NV7cdpXPN1R8iF+HOGLJ8V9gg/R/lICKEIQSBTiqd77eTYu07xeq5cZ0FYNscPVwNFm6kjECGxCQ8M1UqC3tUMG8G2FdIOyBpWYPQdmcUI6Trb7hTuf7tZzJIgdh55qtHs2nsx/UOP2ynFctxr0Y= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671109070684715.4183737847557; Thu, 15 Dec 2022 04:57:50 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5nhU-00076E-C2; Thu, 15 Dec 2022 07:51:00 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5nhA-0006qe-MF for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:50 -0500 Received: from mail-wm1-x32d.google.com ([2a00:1450:4864:20::32d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p5nh8-00047M-Mm for qemu-devel@nongnu.org; Thu, 15 Dec 2022 07:50:40 -0500 Received: by mail-wm1-x32d.google.com with SMTP id c65-20020a1c3544000000b003cfffd00fc0so1633166wma.1 for ; Thu, 15 Dec 2022 04:50:38 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id i12-20020a05600c354c00b003cfd64b6be1sm8388787wmq.27.2022.12.15.04.50.37 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Dec 2022 04:50:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=SPVz5nzpUxR9kUw3FrhH8ulO7d6/4IhNh0TGhcwS5DA=; b=Ob1aCX6fPJzwCw0klTUbHSIT9PQBnLJtbU3l8Y5BhCAdA3utiBtv/8LUNyEOEVSOPK Vfm5OMjY9MCEWdS9DoRF55/FJ3N+GHyx+K64XC4FKnzzlU9fqHQpe5zlWiMh00RxWHVs qeLaWNYMiGhoYuWhWx7S/jgTsD2tRmT1e3ulZgO6c7teTkq+QXf3cUWSkMY/5iTxs2oh mjyH/U7JTtwvtgbdcKqln5q8g7NjK5ChDzEBbEUNGE2+K5B4VLh8zdvdBI+9pMtNrCqD qjlbevcLAuO+qDmsKsWV8yI6fZqoCQK4Q/TyNOQwIPk1iNP4u1pOgxFAmRKJHtuhdk+H TkEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=SPVz5nzpUxR9kUw3FrhH8ulO7d6/4IhNh0TGhcwS5DA=; b=zHUtlT6HaeL0tRQ1c2Dr+w2vX+LdpKD+KYf29+SGgSPDhD83YBo/JbmeXW2KKV1kmC ujJLJPkUymfZvnrzjzIn+IKdh6bROqGi9+4yf8GH86E5of7uQXwIesXleJcis+Gq4mQU orLfwki1zkD/gSwoZzHcV+ewNWRPgwhjb7QoUE+oBwZBIrsduHCKQ8scciVcbLqPi3gD /slsUD43OrM6pgLxrP/pyHHIDUeq7sK7JXeDbB9qG9w8acRsxC4oNJhEq/Kq0AyYZcOY TEmIeYjoTaR8KOD2CxwbBgQhlaUX9zyWVRRi/gA+6IfyYHqGGFbmL+Db0OZAc4YaOrog thnQ== X-Gm-Message-State: ANoB5pkV6FiBc1jjXLo1dcYa19cGgVMlsEduZX6qX+cSUl8LkU6UJ0s9 KCgQADJed5ViNz69KIPOr/oT6WuzJAevOSMB X-Google-Smtp-Source: AA0mqf7gfyZObGM5QaRcsFMuaoaEkMPWxVJstJ9SUf2YSXATMxNwNkUn14VNNvpYiXCqKxEJje3qkg== X-Received: by 2002:a05:600c:3496:b0:3cf:7385:6783 with SMTP id a22-20020a05600c349600b003cf73856783mr29577917wmq.36.1671108638004; Thu, 15 Dec 2022 04:50:38 -0800 (PST) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 29/29] target/arm: Restrict arm_cpu_exec_interrupt() to TCG accelerator Date: Thu, 15 Dec 2022 12:50:09 +0000 Message-Id: <20221215125009.980128-30-peter.maydell@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221215125009.980128-1-peter.maydell@linaro.org> References: <20221215125009.980128-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::32d; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x32d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1671109072273100001 From: Philippe Mathieu-Daud=C3=A9 When building with --disable-tcg on Darwin we get: target/arm/cpu.c:725:16: error: incomplete definition of type 'struct TCG= CPUOps' cc->tcg_ops->do_interrupt(cs); ~~~~~~~~~~~^ Commit 083afd18a9 ("target/arm: Restrict cpu_exec_interrupt() handler to sysemu") limited this block to system emulation, but neglected to also limit it to TCG. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Fabiano Rosas Message-id: 20221209110823.59495-1-philmd@linaro.org Signed-off-by: Peter Maydell --- target/arm/cpu.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/target/arm/cpu.c b/target/arm/cpu.c index 38d066c294d..0f55004d7e7 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -528,7 +528,7 @@ static void arm_cpu_reset(DeviceState *dev) arm_rebuild_hflags(env); } =20 -#ifndef CONFIG_USER_ONLY +#if defined(CONFIG_TCG) && !defined(CONFIG_USER_ONLY) =20 static inline bool arm_excp_unmasked(CPUState *cs, unsigned int excp_idx, unsigned int target_el, @@ -725,7 +725,8 @@ static bool arm_cpu_exec_interrupt(CPUState *cs, int in= terrupt_request) cc->tcg_ops->do_interrupt(cs); return true; } -#endif /* !CONFIG_USER_ONLY */ + +#endif /* CONFIG_TCG && !CONFIG_USER_ONLY */ =20 void arm_cpu_update_virq(ARMCPU *cpu) { --=20 2.25.1