From nobody Fri Dec 19 10:42:15 2025 Received: from DUZPR83CU001.outbound.protection.outlook.com (mail-northeuropeazon11012001.outbound.protection.outlook.com [52.101.66.1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 08E8E2264DC; Thu, 9 Oct 2025 16:55:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.66.1 ARC-Seal: i=3; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760028928; cv=fail; b=U/o4bpd7S2FXY7S2Y1AqMjDaz2qfaYk8WpoanE3gJKerNAKMM+NnSKqNUHG6ehnIXhGWfG2S9QPqD+0DSSa1oIF5bj792hG6tecqqFlHzyr6Po+5tx44GCP+o1Wj59YwCDAvgm9h3EFSUGVqEblASjASiH72yB7RSw8MI+3Z9OE= ARC-Message-Signature: i=3; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760028928; c=relaxed/simple; bh=kIg2fmlCnCoDet1SmM15f2fjTUpcYgQnookAa31I5gw=; h=From:To:CC:Subject:Date:Message-ID:References:In-Reply-To: Content-Type:MIME-Version; b=Qsk/McQLpN3NatNWyrc85B/pHJduvZ7e2rs0+zBnjbjUtRMIOLwPCV86pXCKiU43AQqNJYHrctr+iWfz8/EJiCuO/aRO80Y+JZhRYBW4gMKxq/i4TsZepCDx6Vnk1Nu2v/Rjd9NWzpdn3tiPVYxJ9tFCnjZwWQ6w1xBoUA30aTg= ARC-Authentication-Results: i=3; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com; spf=pass smtp.mailfrom=arm.com; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b=TcqY/hvD; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b=TcqY/hvD; arc=fail smtp.client-ip=52.101.66.1 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=arm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b="TcqY/hvD"; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b="TcqY/hvD" ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=TQENvdL1jCefoRekPgiIjqZn7fVCUrncz0+YaG+LH5I1AraCdW+lu8SEWhtb45WMJ/cGRWyQ1PNog8ijiyEdfEnA7+da0Cis9AEVtpwPShbT/bUY54KC/r4lXzJZ+vpcZDGWhgii/Jo6GTlxCYijvS27m40Gz7JF8rQ9cGYFsboHebquCQqxwqoF5fNdQG1jlRYOOIQ0lOr8Qo98Ig0FXdz+kvwc6X5IwbGcKmThI0sGJUYpCpM6SvuMmzte43km3CTOuOEnGUAKQP6b1BtqJ6QHLJx5cPawbtVC/mjxusrnpOI4ac9Lfn6SIWdZZfwE2EEk/YL4aT0EO3ukeEdC4A== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Hb5Q2Ol0YLbT1pdH6xGpYSlcDHd3kJho7DfzzI4Uj9w=; b=VcYvpbTw4ckzF9LGcwdRLgCoADm7zmCimJoFGgJ1Rf8q2pQNWKECBzbflCqWegSvpQgGDur/4LZMWgYAa8WGQPjpzUU0LitZDE1u9JxtdiXTlSlt+MrWxWrhtKexSSc3xiM9d6ovqUD4PfPYS0P2OEmL2l/7DgFqkldIrgphT3OlQieffAmtP46btimuHTB4TNEM92QP1U/uurDmgy3d/JRhKezPDqxTiz6f/LHLDZk8H4bnXntG4nG2lJZGB3DAp138Olkgixl13JO+qDgRwljopetmelAhQ13z34lmUGqoocGqALheV73sZToW/DstjgwnHHi70Z4rfhyR78UsgQ== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 4.158.2.129) smtp.rcpttodomain=lists.infradead.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com]) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Hb5Q2Ol0YLbT1pdH6xGpYSlcDHd3kJho7DfzzI4Uj9w=; b=TcqY/hvDz0R5/WMPuoz99MdW+BefqN9hfliGmevWWDbCdG0CAz/YsL5TqaLnSqGu1UjDZElP4+TtZWVR4IziV1cHTLkeQAFdhwc2Rpo1bO275pwTF2zMOhmvpGSphIPR6SifCuAysyfp1JKAV2MfLCIqbhX9FJzVPd2SXwSXIz0= Received: from AM9P193CA0008.EURP193.PROD.OUTLOOK.COM (2603:10a6:20b:21e::13) by DB9PR08MB9803.eurprd08.prod.outlook.com (2603:10a6:10:460::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.9; Thu, 9 Oct 2025 16:55:21 +0000 Received: from AMS0EPF00000192.eurprd05.prod.outlook.com (2603:10a6:20b:21e:cafe::b6) by AM9P193CA0008.outlook.office365.com (2603:10a6:20b:21e::13) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9182.20 via Frontend Transport; Thu, 9 Oct 2025 16:55:21 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=arm.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 4.158.2.129 as permitted sender) receiver=protection.outlook.com; client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by AMS0EPF00000192.mail.protection.outlook.com (10.167.16.218) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.9 via Frontend Transport; Thu, 9 Oct 2025 16:55:20 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Q3grx1C1lTLoQs4dp1raEC7th9Erwfhaccf6lKme6wzIGa1h9dkQ4UcVgj9KFxkb8aS/38vpVWNLr+wW8U09LkhdrYeHw9yVRYVUQY23n99bobqz5TJMvjcggeshERxou3TPo1d9oMJUsxhVv46P5RfS9a1MCYC2FZUseTUQzBmnvFJ7HN1isAJgEoDpPvosir1uDoTqsLYdk++8ibJZthpdxM+9CZGHnmJXhJuL7VJTFPbIXGnfW3j5tp7kSO3ep7vgA1W0o/20GBVsk/C+pK2GfVfSAMr6F/7Hz10FC5vTNnJUgCodBdDrhxtvXpiPl1znTf1n+7EkY2K/v6egVQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Hb5Q2Ol0YLbT1pdH6xGpYSlcDHd3kJho7DfzzI4Uj9w=; b=RsD22/BRaNmiBMOhq8MxhcWWoUypqWzhAhmGqHL9fNZKRg41POdmxXAN2wTOU2sxpIdp7K3ZD8O3G/kizOOa5vQYTZ9eiJOgnII6QgC5EJYorj2ZpObnIEYZ7fdJgXw08HHM0lfRAE+7+52QimTxROCkZI2Hnz6GVWEN9jOIt3iQbTSgZsXU374gYM9scw2SFTfKNpI/+DtXYsY0TLrUU2cJlOa+UIOsJKifIwuJxR1peIgTpbAwyul8N6A8QQnj901w8YwiMjlkNctP/HLwMubV1SeG7RfK8ME/tACe/kChlRFv6My30UFIjyHYESDXlZTUW5kQ5YMInIZZe5FkAg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Hb5Q2Ol0YLbT1pdH6xGpYSlcDHd3kJho7DfzzI4Uj9w=; b=TcqY/hvDz0R5/WMPuoz99MdW+BefqN9hfliGmevWWDbCdG0CAz/YsL5TqaLnSqGu1UjDZElP4+TtZWVR4IziV1cHTLkeQAFdhwc2Rpo1bO275pwTF2zMOhmvpGSphIPR6SifCuAysyfp1JKAV2MfLCIqbhX9FJzVPd2SXwSXIz0= Received: from PR3PR08MB5786.eurprd08.prod.outlook.com (2603:10a6:102:85::9) by DB3PR08MB8795.eurprd08.prod.outlook.com (2603:10a6:10:432::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.9; Thu, 9 Oct 2025 16:54:48 +0000 Received: from PR3PR08MB5786.eurprd08.prod.outlook.com ([fe80::320c:9322:f90f:8522]) by PR3PR08MB5786.eurprd08.prod.outlook.com ([fe80::320c:9322:f90f:8522%4]) with mapi id 15.20.9203.009; Thu, 9 Oct 2025 16:54:48 +0000 From: Sascha Bischoff To: "linux-arm-kernel@lists.infradead.org" , "kvmarm@lists.linux.dev" , "linux-kernel@vger.kernel.org" , "kvm@vger.kernel.org" CC: nd , Mark Rutland , Mark Brown , Catalin Marinas , "maz@kernel.org" , "oliver.upton@linux.dev" , Joey Gouly , Suzuki Poulose , "yuzenghui@huawei.com" , "will@kernel.org" , "lpieralisi@kernel.org" Subject: [PATCH v2 1/4] arm64/sysreg: Fix checks for incomplete sysreg definitions Thread-Topic: [PATCH v2 1/4] arm64/sysreg: Fix checks for incomplete sysreg definitions Thread-Index: AQHcOT1r6a65ndYfEE+XapMGdpiAfA== Date: Thu, 9 Oct 2025 16:54:47 +0000 Message-ID: <20251009165427.437379-2-sascha.bischoff@arm.com> References: <20251009165427.437379-1-sascha.bischoff@arm.com> In-Reply-To: <20251009165427.437379-1-sascha.bischoff@arm.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.34.1 Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-traffictypediagnostic: PR3PR08MB5786:EE_|DB3PR08MB8795:EE_|AMS0EPF00000192:EE_|DB9PR08MB9803:EE_ X-MS-Office365-Filtering-Correlation-Id: d9b8a982-1948-4e72-d7de-08de0754a1c4 x-checkrecipientrouted: true nodisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0;ARA:13230040|7416014|376014|1800799024|366016|38070700021; X-Microsoft-Antispam-Message-Info-Original: =?iso-8859-1?Q?SclAl3qBCJIdwWu2u3EzVSZKNG3y9FOAU/7cIHfH4AWCGdJB5fGTuCDsb9?= =?iso-8859-1?Q?oJbd8ydaHwjCoSY1yucKSN2MMxDXkMZI3vkV9FKxtFvXmhFG3NsUw/UZK+?= =?iso-8859-1?Q?XCeWM+jDqY5m1pO/tE7VU6aO/N54qQcCJDiHJ1E7loAJHPVcvv2rJz6StT?= =?iso-8859-1?Q?ZmketWl4fXA8YLn+amgUB8azL4GMUXBlH+n3BeZIp490w4xjpFA89eFq1X?= =?iso-8859-1?Q?x56Ngu/dMqGir8WtN6o0wvn6SGIgbkJv0dFS4jeK/jeaH9+Fvb21K8XNnH?= =?iso-8859-1?Q?pXt1CXMl6goDSRfoPUnxJbRiZTki1rgjDDA3cn3p12xinPaAQOIjhpAVen?= =?iso-8859-1?Q?ZloSZa4VjaivM1eSnlP0OTuPGa2MLZwt5EHzdiT73rSmulpHFq+jcIA2oV?= =?iso-8859-1?Q?f6D0hUgTAE1z6/MGj7C3d9eJ59SfKQvj96BoWVagk+2U6apGBgfWMwNNk/?= =?iso-8859-1?Q?EgAKRuZFBmPhoA9EYW6bHcETWtCvU5uO/dCuaHIwQ9pqB94FgXxZNva3GQ?= =?iso-8859-1?Q?FNDAbC0GZQUcIKZtbhzg8WViLw9cJ5aO9LlJECEmB6Lt0Gk8FCv3mi0BAR?= =?iso-8859-1?Q?+7ejVDHgHLeGeHfUc2b5sDTfc8mVlaC5E/JpiFxWUgFOeLGZs9kt3wkfsR?= =?iso-8859-1?Q?uUbL7LN2gwcaYpGSLsMO1SlAY2ZwbZIIz+66ZTVmh5O1bTXO+AEJXWrm7f?= =?iso-8859-1?Q?Xc2gKopoJLj49YlD0IfXP78Ma1SOXzbOCr2lThjk3xbYf/CQYw1Nea4WQ/?= =?iso-8859-1?Q?T/wkNfpsWN/AlL7iRght4EaLHNL/agLnfG6nQs/O9EcsLeiyudrzujJAG5?= =?iso-8859-1?Q?+6j21+s2wBeVKnY/CU6mDUwEjaODj2ADWnRfNfFH6m8SZu5zOXs7JqNy2h?= =?iso-8859-1?Q?PCyzQNHI60Wf5uRbeBvwjlcLWnrPfBfDJ7pxJbB82CEBDkubf3YiI1GQ6P?= =?iso-8859-1?Q?ZtnyIN+jB8NNNpNdIObhT1C4pYQ8R/W/dMW68jUpKuI5NqslHqGj9+tJz+?= =?iso-8859-1?Q?bt2hHmRaITSJOS2BxcZ7rjcu7Fu7ARyzrNNTQtGXXHqs6WmCCssd33F5yf?= =?iso-8859-1?Q?peMUfGvs06hbs19HqCUYl5QJjIcEna31oBcuEmIB5Mc+tqRDa0am7PBRYs?= =?iso-8859-1?Q?xt4qS6RcSvAbJj8UWunOMo8tB5j7N4KDCtA4OE247xernnJ+9REUZL2KoS?= =?iso-8859-1?Q?t+7ZqLAyDfOQ6s6/eqOfUQsoU4edcTvMrlca2sr+mRWKRiAklhAy/QDMgx?= =?iso-8859-1?Q?oH6PMrcL7uszdzbFsFI1DTaYC7ZoL5mQfvHvIPQ17x28Oh70vzljg+gE2i?= =?iso-8859-1?Q?nUSycZ3ccIOL2yXG4EcnjVWnh8yMN5D8b/+jUD0QPB0saEK7UAAhaNtCDu?= =?iso-8859-1?Q?DCQ/JR7q+KRkbD4S5nBLzxpzNPFiVPQOf4ocO44+oIj4OdwChDq8x+Rn/q?= =?iso-8859-1?Q?QoMJPQY/YHweKM511rPrOiYTXd8TJvH1x3WOgxWZnstRmo5cO5AO+8Drpr?= =?iso-8859-1?Q?AfLsHUYZZZH1coqfcJZ8wSnC/nxn3i7b5w9VSfZAsXsYxk5IzlHKibRidO?= =?iso-8859-1?Q?tJLFRfkxLoXcLZkqEAnkwcY/xylo?= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5786.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(366016)(38070700021);DIR:OUT;SFP:1101; Content-Transfer-Encoding: quoted-printable Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR08MB8795 X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AMS0EPF00000192.eurprd05.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: e69ff6c1-5314-4f90-45f9-08de07548e79 X-Microsoft-Antispam: BCL:0;ARA:13230040|35042699022|14060799003|376014|7416014|36860700013|1800799024|82310400026; X-Microsoft-Antispam-Message-Info: =?iso-8859-1?Q?1+lPETLTKBPSw+RX9kjDaAG22oVNTXPgHo8dDiCZ2l110kokTLxd1MwXii?= =?iso-8859-1?Q?ZmX7ulHSio7Yo3O8HGOqi/8sZ+Vrk9+ZYxb/NxJ6qI9oAAVwmU2EmJHhta?= =?iso-8859-1?Q?hG5AFAnVQnO7sQIePWM3tm6IgZCtFlEzVJYGjoQdn7w/Lb74ohfJEw4he2?= =?iso-8859-1?Q?2er04cdMFB34GyEDjbJE9YWsXjynelZYe+dtKan1iFOLykl8AxEqN/spAp?= =?iso-8859-1?Q?ulnd7bc8MOw+j/pJnIQuB0vnwElMT5hIDhs0GPcIcQG6ean8YfQ/7m4F1R?= =?iso-8859-1?Q?UVs/LJQDsOHzplErtu4tGST1s0xO5zgFsM5TZSc7wgWtM4n0lMrEsIocGP?= =?iso-8859-1?Q?4NC8eYrwK+jOC1OwTOogCXTfPoSt01Lg9gSj0FCVCYW8HOsjGk/L+OahoO?= =?iso-8859-1?Q?FFFGmQkLb5OjAWHcXiKpbXqgkMrdrSDi2ffKzp1kgPCqY5K1h/73ZoLwVy?= =?iso-8859-1?Q?l07HI2DqCc7UpOWdI2OChV1BJmws5VjyyPW9yKetXQMxEoMeb67feOecYw?= =?iso-8859-1?Q?8eurY8m5jRQfqndoF7h5OZcae6gDX5e3CMjL2z+P2xP6vZwfRNP6d1iRsm?= =?iso-8859-1?Q?ym+tHWNFkUHw0/73yF2aswRGn3+tqFVYUI11ml/KX55dlhqm6sGO3XaWy6?= =?iso-8859-1?Q?4dvYlVs4uL1LZNvJ2EC76wkma/4D3teTN3VoX9mbqU194dhUzOafTdFoCf?= =?iso-8859-1?Q?Cr7t8fGpGQvgkbz1gXJvCrpduC9UYPDaOc1o4O9hMCvkX8qSS4FyI32FDh?= =?iso-8859-1?Q?xos0chvLd5s8vsLv2PA3YHdQeV0HdzQbO/gbXmVQQA2n4C2nIUAzYSuDbE?= =?iso-8859-1?Q?jxHRhk+HzMR/FCz2mGqLR/1RKKeGQbKa7FcOEW4oeqJVvBsgYo3fr+0pPa?= =?iso-8859-1?Q?164yK436xvTSizTUzFD6olD2mEgK+qXS8goJPjy5FwuBe/wTDOkZ13zk4a?= =?iso-8859-1?Q?aGh6tePxy+l0287G5h3d8y3iLmZ+cr2YGJlEvh58p8zuziT1we1IancEQ9?= =?iso-8859-1?Q?vOmDmVOF5xxlB3ZJDGOyPwwZld7rpGskXl0z7+xone9BykfjSTxJVaDcgz?= =?iso-8859-1?Q?BzplEHkTAAc+Cyzj5bARNhH8QWx4TL4PGVsLApwTvoJtpUuMatvYN+rzTH?= =?iso-8859-1?Q?kN7bkhmZ8vuGlZwkCTdjRKSfvCD2kZTyqHnJjVpHsIOeSyVO1AnaxQy9kt?= =?iso-8859-1?Q?2wuQfbfHI7OH7w3DcKbXvfme/xMhOZdSP0wTxiF+ZTi6aUHx3Zc2Qn1Gjl?= =?iso-8859-1?Q?+dkY6iBQF4067zR1DSE+kl2Ej/67hJD2Hi6RIRjp7wu4dL+P74yLsP1jKP?= =?iso-8859-1?Q?XyIv/TP45pg2QZtfiNAxrOtwWGptLz7oMyrrKGBa2xQBkMwyUG/bbMhLaV?= =?iso-8859-1?Q?pF4A4y+HbTh14pJm+civ06BPAH/LHM/tMuJhyuh5SNAPFwVMVRRBp+F6z8?= =?iso-8859-1?Q?XxhvG9EzWY2/9rWbbnDXJLC64YoaUcq3dsqjzC5ZBl0UFZr20KE4K25kF4?= =?iso-8859-1?Q?NUIOTqdVxPLw8DWV06kG5UopJ4LiEMjAFQJcXJu4ning9zmkcc3RaMU0qE?= =?iso-8859-1?Q?Xm4ECN0euj2NdZPkagEfoIYIKJj/c128ECgFcwhHUclWzeJo+RKVeu17d1?= =?iso-8859-1?Q?ap66s4454zU2c=3D?= X-Forefront-Antispam-Report: CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(35042699022)(14060799003)(376014)(7416014)(36860700013)(1800799024)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Oct 2025 16:55:20.4986 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d9b8a982-1948-4e72-d7de-08de0754a1c4 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com] X-MS-Exchange-CrossTenant-AuthSource: AMS0EPF00000192.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB9803 Content-Type: text/plain; charset="utf-8" The checks for incomplete sysreg definitions were checking if the next_bit was greater than 0, which is incorrect and missed occasions where bit 0 hasn't been defined for a sysreg. The reason is that next_bit is -1 when all bits have been processed (LSB - 1). Change the checks to use >=3D 0, instead. Also, set next_bit in Mapping to -1 instead of 0 to match these new checks. There are no changes to the generated sysreg definitons as part of this change, and conveniently no definitions lack definitions for bit 0. Signed-off-by: Sascha Bischoff Reviewed-by: Mark Brown --- arch/arm64/tools/gen-sysreg.awk | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/arm64/tools/gen-sysreg.awk b/arch/arm64/tools/gen-sysreg.= awk index f2a1732cb1f63..c74d805a2aa38 100755 --- a/arch/arm64/tools/gen-sysreg.awk +++ b/arch/arm64/tools/gen-sysreg.awk @@ -129,7 +129,7 @@ $1 =3D=3D "SysregFields" && block_current() =3D=3D "Roo= t" { =20 $1 =3D=3D "EndSysregFields" && block_current() =3D=3D "SysregFields" { expect_fields(1) - if (next_bit > 0) + if (next_bit >=3D 0) fatal("Unspecified bits in " reg) =20 define(reg "_RES0", "(" res0 ")") @@ -180,7 +180,7 @@ $1 =3D=3D "Sysreg" && block_current() =3D=3D "Root" { =20 $1 =3D=3D "EndSysreg" && block_current() =3D=3D "Sysreg" { expect_fields(1) - if (next_bit > 0) + if (next_bit >=3D 0) fatal("Unspecified bits in " reg) =20 if (res0 !=3D null) @@ -217,7 +217,7 @@ $1 =3D=3D "EndSysreg" && block_current() =3D=3D "Sysreg= " { print "/* For " reg " fields see " $2 " */" print "" =20 - next_bit =3D 0 + next_bit =3D -1 res0 =3D null res1 =3D null unkn =3D null --=20 2.34.1 From nobody Fri Dec 19 10:42:15 2025 Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazon11011020.outbound.protection.outlook.com [40.107.130.20]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0CFB7230BEC; Thu, 9 Oct 2025 16:55:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.130.20 ARC-Seal: i=3; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760028930; cv=fail; b=k53NczOKdGROwnkBrkHaw0T3RcO2Ww3pRb6ii9B5DH2y7WWs5E9aLXva5BbUYjd2FcFJ7si5xxywhoIN68v3kP3PoLljOyJPsZCovrCiwc0VE7s1YKBxktelIfl5X/0RBET0kblcLR08hcukH34ob86giUxTr9qhUTc1aZK1gSA= ARC-Message-Signature: i=3; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760028930; c=relaxed/simple; bh=Ar0l2bWi423MKpPZfNZNu/Oo9tH0VmY2XMmTgkq1Jvw=; h=From:To:CC:Subject:Date:Message-ID:References:In-Reply-To: Content-Type:MIME-Version; b=bE8YSLKroJjzGaqHfqyYls6iDyAKgUlx8A5j21DAiDW4GEGf0B8ByQOdblcwpqj+MzDXuRHBldZscTaJ0jnVBkrzRDJ/bBeRUhHYMJ1+KLQCNOYiXLh8FSF9aC+Msaw6ONGKjUm1x1BEuWi1MELqT/zZ/pe44QZ02asH9RlQyAo= ARC-Authentication-Results: i=3; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com; spf=pass smtp.mailfrom=arm.com; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b=ZgY0jHrg; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b=ZgY0jHrg; arc=fail smtp.client-ip=40.107.130.20 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=arm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b="ZgY0jHrg"; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b="ZgY0jHrg" ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=f9iWxU7UOM4NJfKFlh4gcm3tIzisvG+gpYREEfPC8tk5e7WjlK0HvTwVGDtyHIIAFw7GNh4P7AmBYk/fbWq473Y/h3pQIel+aG/BwdeLQrSOwpGtMlAU/CnJruuZy/yLEGRCtjJxoXfYO8V2Vf1LgSH6e3OGJPvUMTzXh4q8nERjrXvoOIOXhczXTC1JNeekNLwyMHRAOrEDFzQ84edk+Ax6iUuutNa2ayrufWBQCI3jWwdLwFXaLNYR/C3Hbspkmc8VaQ+nPLDRkL7woxhWxA6kHT+ztcxuCQfSSk+93i/PtOFj7Gck9l6nK5nTjVCrkaZf93A2ZvznnMZYLS07zA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=5Ge6ScMR5iz029wS5YWmPkEXH15DZcIDC4jbtyoau2M=; b=lpJe9KVFuZ98aDs5fqSywPUTY/GowTbMpXrXUe8zPpC7tX6ua6K0bNT4XNGRAASvb0OfdYv1Tw6+4KtoqmHaEYcCMzn51aFXZrLu4/rtr1YtCfPAmJeS4fRVejxg+DFV8sKtrZpkQ6dn+FGaVkbOEmf9PAx0V1F2YmwWYxF9kUtIC3Tm1pEZ1WfJgM7XQxXB7wufxANMvaFcyFSMSW6A0ewuqbFU0UCpCKR3Lfxxhw8GceTpBZUrzbZ2dLPz7Z4oElU51a8AenApoBZylTvjKOBBvaMUVD8LfRgEFnjq9gtvJ6NuqwfskxuvFvDIvVsT/xejwiXuSjyXtMkCPKXomw== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 4.158.2.129) smtp.rcpttodomain=lists.infradead.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com]) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5Ge6ScMR5iz029wS5YWmPkEXH15DZcIDC4jbtyoau2M=; b=ZgY0jHrguDUrOG6d/14xXOGOxq2eeXBXWZvGFTsSCTUEzIOZntruEo4gU7iD0V9OkteKMKG/ywl0UMNFExLNXV/Yb26mlWPnZIOCnnJ4G57woBOFtzIRagbGz8H+cmqunE+zLUBaLhP03rySnsRz/swdwUgepKep7otEbk6Bcks= Received: from DU2PR04CA0052.eurprd04.prod.outlook.com (2603:10a6:10:234::27) by DB9PR08MB9828.eurprd08.prod.outlook.com (2603:10a6:10:45f::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.9; Thu, 9 Oct 2025 16:55:21 +0000 Received: from DB1PEPF000509E9.eurprd03.prod.outlook.com (2603:10a6:10:234:cafe::e9) by DU2PR04CA0052.outlook.office365.com (2603:10a6:10:234::27) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9182.20 via Frontend Transport; Thu, 9 Oct 2025 16:55:21 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=arm.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 4.158.2.129 as permitted sender) receiver=protection.outlook.com; client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by DB1PEPF000509E9.mail.protection.outlook.com (10.167.242.59) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.9 via Frontend Transport; Thu, 9 Oct 2025 16:55:21 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=X9aPxrI982+WqQeGOtPLTS3yYapi33o86hyjnHRzO7wkPowNbn1nraSmjME8Tnau8zU62nUVurnOeNphoQCs2SekeOfPLFZF3cGxysoKo3gCkvH6zEhebzCq5+tefa4Y+PtzSij9ZN4SuwduZmc9QkHl+H/sqDRt/F32V56ZKz69llwsLqtqYvmBOLQVFkrlEUWKiL5JUIneow5n2c2z0Cvv0FKosM3Uqzw2HfV4UNQ1hjO+zztY21KwXD9bfrYejxNAFGN1OUBiNgt1ZTfZOLm+HxJ/EAuP1s1oPRWSOH/1ckQagU/NyJygPDbUWmeRYFyGYD51p9vv9rMcaRjsqg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=5Ge6ScMR5iz029wS5YWmPkEXH15DZcIDC4jbtyoau2M=; b=e/iZgNnUKKuNjJh9A/LXxtfsQjvxGkSMcXbnAnMzu+2MqBRLO08XlVJpFnp2IZ0Blj2AqQVB01LBVCLvtISPhUxwIG3etn9eY6S2ko0LIOY4qmViGGyU2CBQw2ZxRAAADfMs1vkPjp4gBvzq0F+NQjcCTDFr2D7XqCfma+dRcd6i5oS/5BtzELu/xdxNU0I+fA1UBfl2PY163izWwCQivE+M1YitQZ14NEjso6ZLGJaJEBa86aD9nMwPoXe3apWfFznwIJ7UunfYofu0XsMcyqvbqzjI9La9ZkLEA+KP9Y/6894rC0bRTKeqjfpOW9wNNHHdcSUqUCiWu067a5jxYw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5Ge6ScMR5iz029wS5YWmPkEXH15DZcIDC4jbtyoau2M=; b=ZgY0jHrguDUrOG6d/14xXOGOxq2eeXBXWZvGFTsSCTUEzIOZntruEo4gU7iD0V9OkteKMKG/ywl0UMNFExLNXV/Yb26mlWPnZIOCnnJ4G57woBOFtzIRagbGz8H+cmqunE+zLUBaLhP03rySnsRz/swdwUgepKep7otEbk6Bcks= Received: from PR3PR08MB5786.eurprd08.prod.outlook.com (2603:10a6:102:85::9) by DB3PR08MB8795.eurprd08.prod.outlook.com (2603:10a6:10:432::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.9; Thu, 9 Oct 2025 16:54:48 +0000 Received: from PR3PR08MB5786.eurprd08.prod.outlook.com ([fe80::320c:9322:f90f:8522]) by PR3PR08MB5786.eurprd08.prod.outlook.com ([fe80::320c:9322:f90f:8522%4]) with mapi id 15.20.9203.009; Thu, 9 Oct 2025 16:54:48 +0000 From: Sascha Bischoff To: "linux-arm-kernel@lists.infradead.org" , "kvmarm@lists.linux.dev" , "linux-kernel@vger.kernel.org" , "kvm@vger.kernel.org" CC: nd , Mark Rutland , Mark Brown , Catalin Marinas , "maz@kernel.org" , "oliver.upton@linux.dev" , Joey Gouly , Suzuki Poulose , "yuzenghui@huawei.com" , "will@kernel.org" , "lpieralisi@kernel.org" Subject: [PATCH v2 2/4] arm64/sysreg: Support feature-specific fields with 'Prefix' descriptor Thread-Topic: [PATCH v2 2/4] arm64/sysreg: Support feature-specific fields with 'Prefix' descriptor Thread-Index: AQHcOT1sw/RLAN0XPEKm4HiHviet8g== Date: Thu, 9 Oct 2025 16:54:48 +0000 Message-ID: <20251009165427.437379-3-sascha.bischoff@arm.com> References: <20251009165427.437379-1-sascha.bischoff@arm.com> In-Reply-To: <20251009165427.437379-1-sascha.bischoff@arm.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.34.1 Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-traffictypediagnostic: PR3PR08MB5786:EE_|DB3PR08MB8795:EE_|DB1PEPF000509E9:EE_|DB9PR08MB9828:EE_ X-MS-Office365-Filtering-Correlation-Id: b038a121-ea4f-49ea-d379-08de0754a223 x-checkrecipientrouted: true nodisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0;ARA:13230040|7416014|376014|1800799024|366016|38070700021; X-Microsoft-Antispam-Message-Info-Original: =?iso-8859-1?Q?WRxahRFSGsX6hgM88mbDj46YnA4o0Wnb0gcZK0y9okDjaUCXgK1vZLpuDT?= =?iso-8859-1?Q?Vi8A+nDO6W77kh8YnMF5vghsR8U66zOEl596VE2IZIzg926LfavR+ecV25?= =?iso-8859-1?Q?m3KBTIe9cSg8f+sxaQARCZWaBGe6t3Uv3oRd2kQpZtoJ9dF/okTGlIz0eY?= =?iso-8859-1?Q?JhK1BC2DiHefHpXTyNpu1IcPoXdrN2Xe0vGWN1ZmocOqouOGQ4+uNgtGOB?= =?iso-8859-1?Q?qs4egvjE5l7Mc1HW3yfn5Us28XAeyV6GHXNBr+aB2WUswyKnWEUiASRF2m?= =?iso-8859-1?Q?XUjP1U86VoSkost3vO+pV1t6wMD3ZQcN36WaibhI0QXpITDJtofewoJltp?= =?iso-8859-1?Q?aAN3u0XjqDgVfmSq8y1hTR377Jc1GkkKoOKOC/tyrEQvoJnyCP54z0PYRc?= =?iso-8859-1?Q?qk3cfgft9biZpepo54aqvMb1RqvO1Zll02aHSp8I/s3/MJXsVLQ98z9uKu?= =?iso-8859-1?Q?hsFfry+Jv/hKnAEK6eWE4us/Xt8aKFrOAwIMCVHGzBAKGB3NaH6asNHuM5?= =?iso-8859-1?Q?IcG+Qci2vXmCVqcsBIlg7NIkFyKWHNabjpMbPbanJexQsqdIHw5V6Ozksz?= =?iso-8859-1?Q?niY4M9DLAN1Ecg7kt9UPax77M4xIe+b9MX3fvYe7RhgRFTnCOJsJUN8Gs8?= =?iso-8859-1?Q?/qZBLS1XcJIwECymVQKFu99NWP3ipFPXFWkEE3ydlkkIgtQsIXfKDGzneJ?= =?iso-8859-1?Q?AHmkywp7LRwB9XdKwzneDMcVDpforXRV0DX+8c7r1R6LrdqrW2vpW8PIrK?= =?iso-8859-1?Q?AmdgooTg5n2u1GO252cn9Z5I+nYisJfb3acesH1qrtjc7i9eOJYYEvkRPf?= =?iso-8859-1?Q?SFzNFaH4aZF2f6/4YosmQytugwmo40cg8uqi9doVdcQqIVGbrsuPQcwMlZ?= =?iso-8859-1?Q?ACXQTCB2VeTg3eqFtizQz9If2O7mdLDj36wtWOlbeJfous8UOKQNWUM3Uf?= =?iso-8859-1?Q?T2wb3IUT45nZ5wkqWccL4X1hgQLV1yUec8wyf4WA4KXDKtquFpfYer08iX?= =?iso-8859-1?Q?UGIFO5jWaFeWfIGuZYKjxZwPu6R/1ISV4jxFh8dXymRa116ppHzms8SAi9?= =?iso-8859-1?Q?hTrcWmoJjwFE0I1iiPCXQdTFUHXuxubwZDcA2hrWtLln+rF2aun6tDGx1p?= =?iso-8859-1?Q?doTyuG230XsOdADI1lXoOxc1aSeWCzxiR5so3tHTRFAr6nQBbtOuuUeYbs?= =?iso-8859-1?Q?1BYFyIqtdGsmTmFuWQkVZfNaBkWaPSy2KPXWVYHARTIuADH3U5bFT8mIpD?= =?iso-8859-1?Q?QQMC24I2UONh/ClZuXGzKnq3sbEH9AcWaWtFwt9HO7S4Y4oiG64jSCozeA?= =?iso-8859-1?Q?X4OKLAK58r+cuPqPKldEcTwBMdQA0ECGzCLAREnx+GxPMSonzrHeyS7+pM?= =?iso-8859-1?Q?/KHnB8iHiW14QMec/nw0LSAPJV3echr7eknzdpMUAgRsX9crbscNTGWuHk?= =?iso-8859-1?Q?hJT4xIAJ6TeZjWdhpytXhUW7Gu67C9Ri4v1LdYIePviIzWgN3o8tiHC5Ej?= =?iso-8859-1?Q?60JE04KGQ7qJg5nVlQ4eX2c/2G6sZ+WqPM52rWlgGx22uSA+tp0GtjC8fe?= =?iso-8859-1?Q?NLhrAl4opUeUr4HFIZeMGyPdRFud?= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5786.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(366016)(38070700021);DIR:OUT;SFP:1101; Content-Transfer-Encoding: quoted-printable Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR08MB8795 X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB1PEPF000509E9.eurprd03.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 16e13f41-9946-4eca-a314-08de07548ea4 X-Microsoft-Antispam: BCL:0;ARA:13230040|35042699022|82310400026|14060799003|376014|7416014|36860700013|1800799024; X-Microsoft-Antispam-Message-Info: =?iso-8859-1?Q?g4MAFXvU/USsbSWeaMazu8wS0KaTh1mGdQXJLgGsfcurxE4/mm8Yf8fdSe?= =?iso-8859-1?Q?QKbM1Hh2AF6XSE7lOlMDsJJxyViJwEyrQmYLSVlA5NrOHPnofQtvHvIdD/?= =?iso-8859-1?Q?8gdIJlCpD60O4IlPocIAvH9iMZf5rZPsOvDc8UoTCZ8S6Dac7TA6dr8yd7?= =?iso-8859-1?Q?wb6nZBLWuLgZCEiRxJKECHioHJ5nSeZ+LbXE268xrt5Efu/bMlRYaifhqo?= =?iso-8859-1?Q?RielquMJolS1H3xZZsobR67rWmxU5+8konxipFiqgdEjsPm/38INLXkdlH?= =?iso-8859-1?Q?nuCaAL7ETn8rIYVSM1+dPCI15t/AQ6eaXari5/Vu3H8K/eebql5gjHe0pX?= =?iso-8859-1?Q?SM+ufcR7p0vGFFTu+K8Zhg2Ip+SBQ8WTnHKTMShZHRln60rNxldGxkLt13?= =?iso-8859-1?Q?yRGVt6GXwZw3AOd6FTiCC0MXUsULvOcC7SXKcVQEL5bN3oG+b59Gzjv47O?= =?iso-8859-1?Q?LD+PTvct2nafhBOh6ZdgjwgYSInlw8Quf3vCERSYvLfnKiainC2rFTnZdi?= =?iso-8859-1?Q?C1HMc05CDSukHIfVNsIvo8qANSiCgkln0VxjPzi/i4FXbyKa5r7rdGMkXG?= =?iso-8859-1?Q?Eq9YDF7f+9RX2Aa0QWi3Qz/+08mYyQPFhBH0KlGn4gdwM0lS8RxR6DiEy7?= =?iso-8859-1?Q?/m3sx20HzvmfFVX+iU4f0ZQoHT9rDOtnKOqKVXmu6FhwTPUAPKWp5YGLGS?= =?iso-8859-1?Q?OC75urTz1YFaQWoGDvKb+ucResODhOMxNSiw560ji0lvPjJdt8KbRiTkPt?= =?iso-8859-1?Q?z5V9+Xcm0HzQRczVT/9PR7NjWQAT3w1P/c6AmW3B36hYEO/wlfjgI8nBdJ?= =?iso-8859-1?Q?nPdvB3c/H5/0I6TxDLKTEO86H7xiWiWhGLWgkGIHl0zLijs1GMhiY2pjoW?= =?iso-8859-1?Q?xDiQ3BIPeEVnfTOX9dW/mD4qla54uIDpXx1SQc69ceSaiZ9y3ko41x6O6l?= =?iso-8859-1?Q?80ymxlEVrD9dIG5ov9xVWi0B+epFFZI8A9nEzGt1ePBqa+z9JkHqrmQjY+?= =?iso-8859-1?Q?8qR22mD+GKRJi2OVgfb26AjmC1YKveJTBYfN+YPr3rk0Mk8lyFyY/ou7/H?= =?iso-8859-1?Q?4iUthLeeORMmRSU2t6ps8rnxxomAg08fZN0tRMID62T8o4oihiAIf95hF4?= =?iso-8859-1?Q?dI7kSYcnjy5FopIwPzadX4U33JowyXb6j7bq1rHXLn/g4hQBpzp/cJIVcz?= =?iso-8859-1?Q?krJEXx0MmArK9RGdj1jioESNjh2cJ3T5kkarVVXklvQ+7IR25XAJLlhSpe?= =?iso-8859-1?Q?yx/IfYFjBJduJzPqctUp0gUAgDULsSfBkARRCb0NoqTESkCMUCwe9oV1n6?= =?iso-8859-1?Q?lEfhegamF6R87XGyLY4dIw3ykPBbZ7qFmKtcSwgSvnvYs9M6PYm+ctLJDw?= =?iso-8859-1?Q?VA8bL7jc6VT/JkwbrbwBkn61itYAVJ38PR00GS/zmsoKv/2n8a9o4L14mg?= =?iso-8859-1?Q?hw/rWXb9xS5CvOBhpi6SpMOSvRSxHFR/mbtdFpSZVyPs2T8mam/6nOmGU5?= =?iso-8859-1?Q?bXXl+kdOEsFs/CqnMpHeiz8yrJ8guysLu5m3BjuUFiYyUP6RsnYyzOqZYW?= =?iso-8859-1?Q?n27BJTtNNFtRbkmYBrWOKy1VX+ZHI+H1SU/GRFw99bZeDHOo7XigxbD+9I?= =?iso-8859-1?Q?G6i//TNM7Wvp8=3D?= X-Forefront-Antispam-Report: CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(35042699022)(82310400026)(14060799003)(376014)(7416014)(36860700013)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Oct 2025 16:55:21.0948 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b038a121-ea4f-49ea-d379-08de0754a223 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com] X-MS-Exchange-CrossTenant-AuthSource: DB1PEPF000509E9.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB9828 Content-Type: text/plain; charset="utf-8" Some system register field encodings change based on, for example the in-use architecture features, or the context in which they are accessed. In order to support these different field encodings, introduce the Prefix descriptor (Prefix, EndPrefix) for describing such sysregs. The Prefix descriptor can be used in the following way: Sysreg EXAMPLE 0 1 2 3 4 Prefix FEAT_A Field 63:0 Foo EndPrefix Prefix FEAT_B Field 63:1 Bar Res0 0 EndPrefix Field 63:0 Baz EndSysreg This will generate a single set of system register encodings (REG_, SYS_, ...), and then generate three sets of field definitions for the system register called EXAMPLE. The first set is prefixed by FEAT_A, e.g. FEAT_A_EXAMPLE_Foo. The second set is prefixed by FEAT_B, e.g., FEAT_B_EXAMPLE_Bar. The third set is not given a prefix at all, e.g. EXAMPLE_BAZ. For each set, a corresponding set of defines for Res0, Res1, and Unkn is generated. The intent for the final prefix-less fields is to describe default or legacy field encodings. This ensure that prefixed encodings can be added to already-present sysregs without affecting existing legacy code. Prefixed fields must be defined before those without a prefix, and this is checked by the generator. This ensures consisnt ordering within the sysregs definitions. The Prefix descriptor can be used within Sysreg or SysregFields blocks. Field, Res0, Res1, Unkn, Rax, SignedEnum, Enum can all be used within a Prefix block. Fields and Mapping can not. Fields that vary with features must be described as part of a SysregFields block, instead. Mappings, which are just a code comment, make little sense in this context, and have hence not been included. There are no changes to the generated system register definitions as part of this change. Signed-off-by: Sascha Bischoff Reviewed-by: Mark Brown --- arch/arm64/tools/gen-sysreg.awk | 131 +++++++++++++++++++++----------- 1 file changed, 87 insertions(+), 44 deletions(-) diff --git a/arch/arm64/tools/gen-sysreg.awk b/arch/arm64/tools/gen-sysreg.= awk index c74d805a2aa38..0fbe1c7165574 100755 --- a/arch/arm64/tools/gen-sysreg.awk +++ b/arch/arm64/tools/gen-sysreg.awk @@ -44,21 +44,38 @@ function expect_fields(nf) { =20 # Print a CPP macro definition, padded with spaces so that the macro bodies # line up in a column -function define(name, val) { - printf "%-56s%s\n", "#define " name, val +function define(prefix, name, val) { + printf "%-56s%s\n", "#define " prefix name, val +} + +# Same as above, but without a prefix +function define_reg(name, val) { + define(null, name, val) } =20 # Print standard BITMASK/SHIFT/WIDTH CPP definitions for a field -function define_field(reg, field, msb, lsb) { - define(reg "_" field, "GENMASK(" msb ", " lsb ")") - define(reg "_" field "_MASK", "GENMASK(" msb ", " lsb ")") - define(reg "_" field "_SHIFT", lsb) - define(reg "_" field "_WIDTH", msb - lsb + 1) +function define_field(prefix, reg, field, msb, lsb) { + define(prefix, reg "_" field, "GENMASK(" msb ", " lsb ")") + define(prefix, reg "_" field "_MASK", "GENMASK(" msb ", " lsb ")") + define(prefix, reg "_" field "_SHIFT", lsb) + define(prefix, reg "_" field "_WIDTH", msb - lsb + 1) } =20 # Print a field _SIGNED definition for a field -function define_field_sign(reg, field, sign) { - define(reg "_" field "_SIGNED", sign) +function define_field_sign(prefix, reg, field, sign) { + define(prefix, reg "_" field "_SIGNED", sign) +} + +# Print the Res0, Res1, Unkn masks +function define_resx_unkn(prefix, reg, res0, res1, unkn) { + if (res0 !=3D null) + define(prefix, reg "_RES0", "(" res0 ")") + if (res1 !=3D null) + define(prefix, reg "_RES1", "(" res1 ")") + if (unkn !=3D null) + define(prefix, reg "_UNKN", "(" unkn ")") + if (res0 !=3D null || res1 !=3D null || unkn !=3D null) + print "" } =20 # Parse a "[:]" string into the global variables @msb and @lsb @@ -132,10 +149,7 @@ $1 =3D=3D "EndSysregFields" && block_current() =3D=3D = "SysregFields" { if (next_bit >=3D 0) fatal("Unspecified bits in " reg) =20 - define(reg "_RES0", "(" res0 ")") - define(reg "_RES1", "(" res1 ")") - define(reg "_UNKN", "(" unkn ")") - print "" + define_resx_unkn(prefix, reg, res0, res1, unkn) =20 reg =3D null res0 =3D null @@ -162,17 +176,18 @@ $1 =3D=3D "Sysreg" && block_current() =3D=3D "Root" { res1 =3D "UL(0)" unkn =3D "UL(0)" =20 - define("REG_" reg, "S" op0 "_" op1 "_C" crn "_C" crm "_" op2) - define("SYS_" reg, "sys_reg(" op0 ", " op1 ", " crn ", " crm ", " op2 ")") + define_reg("REG_" reg, "S" op0 "_" op1 "_C" crn "_C" crm "_" op2) + define_reg("SYS_" reg, "sys_reg(" op0 ", " op1 ", " crn ", " crm ", " op2= ")") =20 - define("SYS_" reg "_Op0", op0) - define("SYS_" reg "_Op1", op1) - define("SYS_" reg "_CRn", crn) - define("SYS_" reg "_CRm", crm) - define("SYS_" reg "_Op2", op2) + define_reg("SYS_" reg "_Op0", op0) + define_reg("SYS_" reg "_Op1", op1) + define_reg("SYS_" reg "_CRn", crn) + define_reg("SYS_" reg "_CRm", crm) + define_reg("SYS_" reg "_Op2", op2) =20 print "" =20 + prefix =3D null next_bit =3D 63 =20 next @@ -183,14 +198,7 @@ $1 =3D=3D "EndSysreg" && block_current() =3D=3D "Sysre= g" { if (next_bit >=3D 0) fatal("Unspecified bits in " reg) =20 - if (res0 !=3D null) - define(reg "_RES0", "(" res0 ")") - if (res1 !=3D null) - define(reg "_RES1", "(" res1 ")") - if (unkn !=3D null) - define(reg "_UNKN", "(" unkn ")") - if (res0 !=3D null || res1 !=3D null || unkn !=3D null) - print "" + define_resx_unkn(prefix, reg, res0, res1, unkn) =20 reg =3D null op0 =3D null @@ -201,6 +209,7 @@ $1 =3D=3D "EndSysreg" && block_current() =3D=3D "Sysreg= " { res0 =3D null res1 =3D null unkn =3D null + prefix =3D null =20 block_pop() next @@ -225,8 +234,7 @@ $1 =3D=3D "EndSysreg" && block_current() =3D=3D "Sysreg= " { next } =20 - -$1 =3D=3D "Res0" && (block_current() =3D=3D "Sysreg" || block_current() = =3D=3D "SysregFields") { +$1 =3D=3D "Res0" && (block_current() =3D=3D "Sysreg" || block_current() = =3D=3D "SysregFields" || block_current() =3D=3D "Prefix") { expect_fields(2) parse_bitdef(reg, "RES0", $2) field =3D "RES0_" msb "_" lsb @@ -236,7 +244,7 @@ $1 =3D=3D "Res0" && (block_current() =3D=3D "Sysreg" ||= block_current() =3D=3D "SysregFields next } =20 -$1 =3D=3D "Res1" && (block_current() =3D=3D "Sysreg" || block_current() = =3D=3D "SysregFields") { +$1 =3D=3D "Res1" && (block_current() =3D=3D "Sysreg" || block_current() = =3D=3D "SysregFields" || block_current() =3D=3D "Prefix") { expect_fields(2) parse_bitdef(reg, "RES1", $2) field =3D "RES1_" msb "_" lsb @@ -246,7 +254,7 @@ $1 =3D=3D "Res1" && (block_current() =3D=3D "Sysreg" ||= block_current() =3D=3D "SysregFields next } =20 -$1 =3D=3D "Unkn" && (block_current() =3D=3D "Sysreg" || block_current() = =3D=3D "SysregFields") { +$1 =3D=3D "Unkn" && (block_current() =3D=3D "Sysreg" || block_current() = =3D=3D "SysregFields" || block_current() =3D=3D "Prefix") { expect_fields(2) parse_bitdef(reg, "UNKN", $2) field =3D "UNKN_" msb "_" lsb @@ -256,58 +264,58 @@ $1 =3D=3D "Unkn" && (block_current() =3D=3D "Sysreg" = || block_current() =3D=3D "SysregFields next } =20 -$1 =3D=3D "Field" && (block_current() =3D=3D "Sysreg" || block_current() = =3D=3D "SysregFields") { +$1 =3D=3D "Field" && (block_current() =3D=3D "Sysreg" || block_current() = =3D=3D "SysregFields" || block_current() =3D=3D "Prefix") { expect_fields(3) field =3D $3 parse_bitdef(reg, field, $2) =20 - define_field(reg, field, msb, lsb) + define_field(prefix, reg, field, msb, lsb) print "" =20 next } =20 -$1 =3D=3D "Raz" && (block_current() =3D=3D "Sysreg" || block_current() =3D= =3D "SysregFields") { +$1 =3D=3D "Raz" && (block_current() =3D=3D "Sysreg" || block_current() =3D= =3D "SysregFields" || block_current() =3D=3D "Prefix") { expect_fields(2) parse_bitdef(reg, field, $2) =20 next } =20 -$1 =3D=3D "SignedEnum" && (block_current() =3D=3D "Sysreg" || block_curren= t() =3D=3D "SysregFields") { +$1 =3D=3D "SignedEnum" && (block_current() =3D=3D "Sysreg" || block_curren= t() =3D=3D "SysregFields" || block_current() =3D=3D "Prefix") { block_push("Enum") =20 expect_fields(3) field =3D $3 parse_bitdef(reg, field, $2) =20 - define_field(reg, field, msb, lsb) - define_field_sign(reg, field, "true") + define_field(prefix, reg, field, msb, lsb) + define_field_sign(prefix, reg, field, "true") =20 next } =20 -$1 =3D=3D "UnsignedEnum" && (block_current() =3D=3D "Sysreg" || block_curr= ent() =3D=3D "SysregFields") { +$1 =3D=3D "UnsignedEnum" && (block_current() =3D=3D "Sysreg" || block_curr= ent() =3D=3D "SysregFields" || block_current() =3D=3D "Prefix") { block_push("Enum") =20 expect_fields(3) field =3D $3 parse_bitdef(reg, field, $2) =20 - define_field(reg, field, msb, lsb) - define_field_sign(reg, field, "false") + define_field(prefix, reg, field, msb, lsb) + define_field_sign(prefix, reg, field, "false") =20 next } =20 -$1 =3D=3D "Enum" && (block_current() =3D=3D "Sysreg" || block_current() = =3D=3D "SysregFields") { +$1 =3D=3D "Enum" && (block_current() =3D=3D "Sysreg" || block_current() = =3D=3D "SysregFields" || block_current() =3D=3D "Prefix") { block_push("Enum") =20 expect_fields(3) field =3D $3 parse_bitdef(reg, field, $2) =20 - define_field(reg, field, msb, lsb) + define_field(prefix, reg, field, msb, lsb) =20 next } @@ -329,7 +337,42 @@ $1 =3D=3D "EndEnum" && block_current() =3D=3D "Enum" { val =3D $1 name =3D $2 =20 - define(reg "_" field "_" name, "UL(" val ")") + define(prefix, reg "_" field "_" name, "UL(" val ")") + next +} + +$1 =3D=3D "Prefix" && (block_current() =3D=3D "Sysreg" || block_current() = =3D=3D "SysregFields") { + block_push("Prefix") + + expect_fields(2) + + if (next_bit < 63) + fatal("Prefixed fields must precede non-prefixed fields (" reg ")") + + prefix =3D $2 "_" + res0 =3D "UL(0)" + res1 =3D "UL(0)" + unkn =3D "UL(0)" + next_bit =3D 63 + + next +} + +$1 =3D=3D "EndPrefix" && block_current() =3D=3D "Prefix" { + expect_fields(1) + if (next_bit >=3D 0) + fatal("Unspecified bits in prefix " prefix " for " reg) + + define_resx_unkn(prefix, reg, res0, res1, unkn) + + prefix =3D null + res0 =3D "UL(0)" + res1 =3D "UL(0)" + unkn =3D "UL(0)" + next_bit =3D 63 + + block_pop() + next } =20 --=20 2.34.1 From nobody Fri Dec 19 10:42:15 2025 Received: from AM0PR83CU005.outbound.protection.outlook.com (mail-westeuropeazon11010006.outbound.protection.outlook.com [52.101.69.6]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 734C222B8D0; Thu, 9 Oct 2025 16:55:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.69.6 ARC-Seal: i=3; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760028929; cv=fail; b=Wg7M/rx702f/Yt2HI28WLF0vjlwQsC4waTMYsV2AYsaMIAOq4970rZ7ej1EKpWc607DRs3WlOXwp8bDXfQd/l7SzTf+XJLYZDT7GnkPR5vH0l04hTJd0EVC5LAWbin4yEXHHNw4spBCI7gKPsqDPWmLI0KzibFBHZq2Hh3ftnEM= ARC-Message-Signature: i=3; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760028929; c=relaxed/simple; bh=7q1R5sCn+NuILRgQtm6DyYmBzhM8BcXsaRGApLdSf1U=; h=From:To:CC:Subject:Date:Message-ID:References:In-Reply-To: Content-Type:MIME-Version; b=pYBQerhCB0M4XiWLLDJBHe7a2KjMYYMNywsABHS1VBYSmvk2pOMreuGxxOQ4LRNmG89BgpiAhOXEdRUEQ3thx+FyVUNuh6vofjVkpnwfy7MCSs58PR5AXA66SKdcHfbSDz+NluBZ3vH2dFmEIGTVPzB4IDqkujiFhqRt5E4prvo= ARC-Authentication-Results: i=3; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com; spf=pass smtp.mailfrom=arm.com; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b=EQqB8AQp; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b=EQqB8AQp; arc=fail smtp.client-ip=52.101.69.6 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=arm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b="EQqB8AQp"; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b="EQqB8AQp" ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=XUF4IIHRA5Td1gJUyjQSgCmWn0N6kjK4Y6CY2lv9grKAh+SNSk5WNEjcZf20xFgJgMcZZ1GgKimf3JS79duzBXggfPmKsA+BY9cjemSsu6cbEFEto6sLryTytITg2RpwFqJ5J9+g5XVznPtjYaVHgnnIrMp9n+A9ueIS5cEq5b//2bT5vvWCUy+Gc6MmNCGMKUmMUVmh9l3ZgiEgNXWWS+ijZDNSkzChV3D/PR1cwOyf0nP+kQy9nKmXWjEQS93QDLJlZwT+KPEvgU6U+dmK8WLYSFKXUyOcwa2f51dCqwkLbl6WpXa5PpiUiIMfSG8qh601VQxlT4cgmC9AgFFtqg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=F2VwvQCuhj8pB/eUv2nqRJn4LiZ8oAD9fKQzkO6g108=; b=I9w7rXkM99kxAHsd5rcBavhZaMyLUuzypP+2iJ2ki6e4/ZhMcAvg6GCMAifyr3neDh7Ya+RzywTHpHzyOEeWC6C8x77p0lRIC8UDM9kqV31A84NhNYjPPDvjCHPyISoV7psZTLAMo21bhesPa0DoaQJRNnc6fetL7G4VmPIQhfOhPEL7NZsarS77QPmkyTQiYkdV4mq0BEfblLS6OMe+XQAT4DQvYOBljlsuZWVDrMSPL2g/5ekHMPt2JW1rNpcHLww9gzbcjgdcWY884M5cYfNSUid4m5W8rJ/+T6erdBQlXZateWWlLlNGKbtGqFytoZ1lC/jsEmUEpkq2O6Bunw== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 4.158.2.129) smtp.rcpttodomain=lists.infradead.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com]) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=F2VwvQCuhj8pB/eUv2nqRJn4LiZ8oAD9fKQzkO6g108=; b=EQqB8AQpMuMiGkEHcUnPYvbbCUOC3vJtzLG/I7p+kGTSN0hS76ZYMq6DEh64P7u4irxU1czHVUjlKdmn/TjwQzW0uPuVoNyrpk2wW9m1gUfsnIPiTdHTSxIDNcAbAs0EtJNvAYBdYCGplghWdZ9/mnZATqAiko2EnI69A+itKh8= Received: from DUZP191CA0064.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:4fa::17) by PAWPR08MB9808.eurprd08.prod.outlook.com (2603:10a6:102:2ea::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.10; Thu, 9 Oct 2025 16:55:21 +0000 Received: from DU6PEPF00009528.eurprd02.prod.outlook.com (2603:10a6:10:4fa:cafe::75) by DUZP191CA0064.outlook.office365.com (2603:10a6:10:4fa::17) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.10 via Frontend Transport; Thu, 9 Oct 2025 16:55:20 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=arm.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 4.158.2.129 as permitted sender) receiver=protection.outlook.com; client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by DU6PEPF00009528.mail.protection.outlook.com (10.167.8.9) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.9 via Frontend Transport; Thu, 9 Oct 2025 16:55:21 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=N92HwBXhYjn9qGMRMwZnPcnTpKifbM7HK5EFKTZi286IxRf6rNyK5pLxfyU0niGPpLWdor+pcK9aHefk/6c8eplWW/2fQrv/LzpCunvfi+2zS2ZMbpBjbIbQn6pLwHuLXCzYgp+DYGXygrsBMhtKU6tHwcK7B3G411/9L1VIJb3vQQj8g3WvqeE/8LGwnvnUA+cE+BmGvlJFOIiSReftL31Id8tYpfdxDK4zxG6gltDig/TBk1TQM/NNsIK3VcTcecfwTp5QbMusUfcH0CJZm2+utW6YX1aIIr70kdo6AqpU1HjA4MfmzaSy59Ijx+vqbeSWf5YvdwwhNlibPCZBCQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=F2VwvQCuhj8pB/eUv2nqRJn4LiZ8oAD9fKQzkO6g108=; b=Jg17wMnXVmgqksqpzoeSw0CpjTb2kH2l+WwWoh3JVNuPQ5AN5btJztL/NpX1Z3MKDRK/dNWjhHJyhM31x0F2e1h0eq4CBlppgOoWTRsoX3QLqUzOKPSw8dwev6FvQYr62GkxAAF4D8h3Jj2IWmjNUa7RWHghljl2X1BldMYbB/i0fN9Jf8iO+EdarnnbxpVnuEO9he2RF3F6dzaNd5nCPqH6ah/oOPlipAghxhRU84PvKRj3AfgwOwtMKTQVEnSkcAr0E2PNVYNJkoW6tzjuQ+7+VNWA5evhOHbg3tQwxy7CnwqIcLPGzzHuJK3UEUoSrpbHQ8hY2J8FCNTeJM59pg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=F2VwvQCuhj8pB/eUv2nqRJn4LiZ8oAD9fKQzkO6g108=; b=EQqB8AQpMuMiGkEHcUnPYvbbCUOC3vJtzLG/I7p+kGTSN0hS76ZYMq6DEh64P7u4irxU1czHVUjlKdmn/TjwQzW0uPuVoNyrpk2wW9m1gUfsnIPiTdHTSxIDNcAbAs0EtJNvAYBdYCGplghWdZ9/mnZATqAiko2EnI69A+itKh8= Received: from PR3PR08MB5786.eurprd08.prod.outlook.com (2603:10a6:102:85::9) by DB3PR08MB8795.eurprd08.prod.outlook.com (2603:10a6:10:432::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.9; Thu, 9 Oct 2025 16:54:49 +0000 Received: from PR3PR08MB5786.eurprd08.prod.outlook.com ([fe80::320c:9322:f90f:8522]) by PR3PR08MB5786.eurprd08.prod.outlook.com ([fe80::320c:9322:f90f:8522%4]) with mapi id 15.20.9203.009; Thu, 9 Oct 2025 16:54:48 +0000 From: Sascha Bischoff To: "linux-arm-kernel@lists.infradead.org" , "kvmarm@lists.linux.dev" , "linux-kernel@vger.kernel.org" , "kvm@vger.kernel.org" CC: nd , Mark Rutland , Mark Brown , Catalin Marinas , "maz@kernel.org" , "oliver.upton@linux.dev" , Joey Gouly , Suzuki Poulose , "yuzenghui@huawei.com" , "will@kernel.org" , "lpieralisi@kernel.org" Subject: [PATCH v2 3/4] arm64/sysreg: Add ICH_VMCR_EL2 Thread-Topic: [PATCH v2 3/4] arm64/sysreg: Add ICH_VMCR_EL2 Thread-Index: AQHcOT1szE8urJIjv0icwk1HXl5Piw== Date: Thu, 9 Oct 2025 16:54:48 +0000 Message-ID: <20251009165427.437379-4-sascha.bischoff@arm.com> References: <20251009165427.437379-1-sascha.bischoff@arm.com> In-Reply-To: <20251009165427.437379-1-sascha.bischoff@arm.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.34.1 Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-traffictypediagnostic: PR3PR08MB5786:EE_|DB3PR08MB8795:EE_|DU6PEPF00009528:EE_|PAWPR08MB9808:EE_ X-MS-Office365-Filtering-Correlation-Id: 08363599-e5be-4b41-22eb-08de0754a223 x-checkrecipientrouted: true nodisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0;ARA:13230040|7416014|376014|1800799024|366016|38070700021; X-Microsoft-Antispam-Message-Info-Original: =?iso-8859-1?Q?Vt7pWGb8vXz8ImDSCxv67FuDQVjLYpFFNRWGxYjTmTokA2UL8Jl4OCuJBa?= =?iso-8859-1?Q?Q4V+oBLYBur8a0EJp05IVKGoEnRtIdJ4zZb9eLW66lXKIfTPHnc8KyDcoL?= =?iso-8859-1?Q?KJSRNC5CR3/X8XHoKsVHLnMM9LNbdLj+MfPr8tpcC+fRCPlayel9GS8z+e?= =?iso-8859-1?Q?EE6srBW2dtastvlNB//hPq6BzN1GPx2X5YPwpUkR9mc2AQI7xYig3faakU?= =?iso-8859-1?Q?WA3Nz9VXqeIRifzLQY6i8KacraYsKIriQEmvQTnN+apM2DBh2mzoPkJJbJ?= =?iso-8859-1?Q?U81ah/gMkO+S2m57cfpgTAcMW6CkB5ycb8Spf3Ow5TfEC2tnd5sR2+X8Xq?= =?iso-8859-1?Q?pmef9gQJqOCUm+w8La9trVEJQGFV5W/cfXa5iGs5zbFPgJSUZie4G1AoEQ?= =?iso-8859-1?Q?9jZSEHUlu5OIE39lYtL3dziDB2WMy6syzHKJKB/jjog7iJOMHYnrGCQJ27?= =?iso-8859-1?Q?8Ebj8gpyUpRgpT4fSZyUnbVRUWKhOr0YKYcEB0En3jXF/8HfiJYRfnwJa5?= =?iso-8859-1?Q?K+J+D6o0E14LEbSLe1kFDOU37n9SfClZG4UdMJBLszodNfSmtGfBtaWi4N?= =?iso-8859-1?Q?tDhes194ahAXhwrvdELb3e0gMCWc2ucy5Aalbv9RtA3qaipKXgHihP8YU4?= =?iso-8859-1?Q?o030fCj3dI2Ee5z/cFVvDS4p0t0hqMhVaWk96HUJ0d40lwBxqK0e5bQyki?= =?iso-8859-1?Q?Xge9ktVQRdY+ehpPRFmJPNx/OC/0wy9dApKMX+wYQbTfKqqoauBlizufu3?= =?iso-8859-1?Q?3iOqvkYdpy5ji8wI8OcKEcOrFB3iRMV1cCshvZ7/WgzxDnf+BWxBL7n0HL?= =?iso-8859-1?Q?D3T7/YDvyZr58TXS31HPeM2BErmkJGepODpplAgBXOnlHB5sKQ5UB4vZZK?= =?iso-8859-1?Q?O1qvVIBlww7WOimWRZhCu85Pdx4umcdTywliujZdJrEsOcTTZM5o0LinUQ?= =?iso-8859-1?Q?nVPCFPIU7Xk6UF25bkxVfdK/Bur6CF6g+TxHx6kqFz1b3NX3mgF0g+6f7z?= =?iso-8859-1?Q?qwPtDjjaAQA7gMqfvRNGAgRkzdUTINcbKgYbpJeYip8o9TSihPWCRJZ8b7?= =?iso-8859-1?Q?y1y+Pq2X8IeXnNwbPCKS/pu+kepyY0ZKsL4+KqATf6mqba1hoaI01MHdY7?= =?iso-8859-1?Q?E9Fw4081AkD6LeYWeP0uY/ssQE7CA66+dEKqUa65SwEtbgevN+9nG4nKXI?= =?iso-8859-1?Q?9eYhBGmXlM9peBiJXhLdcfVSm9vT1oXt/v2Ce3+P2MepPdweqXksENtmNs?= =?iso-8859-1?Q?L6eCtUyDjb6wxhd1NlK/yj90p80qKOUVySQK1sVIFPzS6P9HNwftYT9TDZ?= =?iso-8859-1?Q?Mp8LcKJCeQIRR4+Fa2xyGKrFriEb8D5yqX7f4p2j75E6uU1dENEO01uxL6?= =?iso-8859-1?Q?uHcxxVzuzt7M68HoCHwl4MIuIbCoyC3+fkaOsCsL82eYCstDLtWkptCR3T?= =?iso-8859-1?Q?tqX+XZ7suIZnE6hLVo7/YgVWrO3RhnZLmgF1biNvO7kj1JNG626CIS2WYZ?= =?iso-8859-1?Q?HM476czc157D10T/5iWHl8+S8bEZo82IxWfDIe76NzVr0FKR/HVKbKSfZY?= =?iso-8859-1?Q?d9/isj9dfIXLLlQ7cMWj1px5YDfQ?= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5786.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(366016)(38070700021);DIR:OUT;SFP:1101; Content-Transfer-Encoding: quoted-printable Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR08MB8795 X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DU6PEPF00009528.eurprd02.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: e7d66cd0-992f-4909-0e0d-08de07548ed9 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|14060799003|35042699022|82310400026|36860700013; X-Microsoft-Antispam-Message-Info: =?iso-8859-1?Q?NhgxwxY5ivMTwtzSUFssYR4x+FV9E6h940HqLtSNuUmgDSe90V2u2wlg9B?= =?iso-8859-1?Q?YO8BpkzX18DIJgjyA4qt75/9hk1+dZ3zIvX10mm6JridQp8grC0BTpkpha?= =?iso-8859-1?Q?a+nYOIWRujyh7Lvbjm4Lhxa5W45I01WzA13d2NmV0X10w1DVR6DHxxC9d/?= =?iso-8859-1?Q?bbHne7CIEoQXi/RgaGUChHOFh6eIbWtjXTWJMz94tQruTXWtvnQr78yP9H?= =?iso-8859-1?Q?Qf5WCN1kQVPMRxahqem557VJ+HsZNwZ95KYAurJIo4dsiz7dQf7PasFAXV?= =?iso-8859-1?Q?sgw6GiSSWNlRszsuVRTf1C6A6W8bIYMR51QFfYzjL5wF7gY1iI3WqTsNju?= =?iso-8859-1?Q?3SlZzbHz+rcAceAMS/WXYa1jrwlw/zQoe/h+rS+q6iwYv1KKDF3lwWhi38?= =?iso-8859-1?Q?rANmYCgXP2Poc1z3WhoKD4mDoLeJy0d7M6XRcwgie7v3gcOzoLq+qAaRNU?= =?iso-8859-1?Q?rzTX6DA+i+6PObdqpsQqSKj0GG6toRbuke17GLa9OxBubOqOqBnRGF9SFr?= =?iso-8859-1?Q?ekAgQwU5z8cDqXHN3kMXUt+atFTIgRdfhyC0aHzJxjTup2e6/CN666slvy?= =?iso-8859-1?Q?p3dDNho3PU6kgi8rMCoG7nAVQCQFf4hfIDN4QJlEgoTOEnxdGtzaq8u0cp?= =?iso-8859-1?Q?UVfL4FQqe47DpczLY6HplW2ZTL1Yp42wtnsSbSACpflyIRFXmuU0dOvyr6?= =?iso-8859-1?Q?FzNT6iswH2wdzz+6/4g6gJdWpnN7V1PCPvJYHydKOO/IReg1Dd58YJ6MJr?= =?iso-8859-1?Q?kg6clItXPC9bIBQ8aytRHtlynKqIVg/42EthDRUTdCsLJzDkd8LgMib4/L?= =?iso-8859-1?Q?4I7ZQEv0oDJN5bhO1QUFBmmUPahcBmhE9ZLaoZYUonozGG3ME6WNyx9C0y?= =?iso-8859-1?Q?2BsQsEBt7cIas603m88FijSM+Y18mw2uZ9EEcBaQRNAXOIJ63h4Ke3BJwp?= =?iso-8859-1?Q?pgrOzhzcXKrxE/hECC09POznUPH0R4uRLdPxJlGNgQ380A0p+ha0yXXyAv?= =?iso-8859-1?Q?cRVV3nP7UjETfNrCwWcdw1CW6n9mhue73wUw0MICo3Yjy7SrqPgh+xekM/?= =?iso-8859-1?Q?6ejkkvGJJJX4cXja1HSEUqIceKnQwHwAC57jGwDvGpUd/I5cInS+fLkPp4?= =?iso-8859-1?Q?2CBbGi03Od78tQZ0InW4zwWZqelDzl9jWFBIV5q7bwnjuD1kq33Kea4XGN?= =?iso-8859-1?Q?F6stl9sQBNvQZ+eqTjbo2aJHhClsMKSlu5vYauh62+QGGpNuhs+fLmAdfL?= =?iso-8859-1?Q?pCYUrfMeF3KsSJFNI23bPX96Q8lW9k+QB6fSHFX5H0tyo5g+7qE9vthC3v?= =?iso-8859-1?Q?NlPQ32R92TUaZfcHUalY/HVHuOjnETpO3rkclo8WgL2t5puuKi3sGE3vDl?= =?iso-8859-1?Q?2dfkCIl9j2DAHpnZj0J8gV8bRLXGn0rulfl15Bvbty7LPBGYCGfzYkxkwa?= =?iso-8859-1?Q?rRvKHxy/UjovUY0Upf80j9yNvOtHZJszX0Wo0KePx47jgA6Gmpt/DSIReT?= =?iso-8859-1?Q?05iXr4zcoUttnaTx4Y6wV6jNP56VclXd3yLvARj4vwORGKQDwNIX7nwTOB?= =?iso-8859-1?Q?8L4yCKCz70/qPF+cgIERigP6t8sTLau+jxUBr28+BMh2XodB6jzMeIWkcv?= =?iso-8859-1?Q?H5lk3S1aC1GrE=3D?= X-Forefront-Antispam-Report: CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(14060799003)(35042699022)(82310400026)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Oct 2025 16:55:21.1070 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 08363599-e5be-4b41-22eb-08de0754a223 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com] X-MS-Exchange-CrossTenant-AuthSource: DU6PEPF00009528.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR08MB9808 Content-Type: text/plain; charset="utf-8" Add the ICH_VMCR_EL2 register, which is required for the upcoming GICv5 KVM support. This register has two different field encodings, based on if it is used for GICv3 or GICv5-based VMs. The GICv5-specific field encodings are generated with a FEAT_GCIE prefix. This register is already described in the GICv3 KVM code directly. This will be ported across to use the generated encodings as part of an upcoming change. Signed-off-by: Sascha Bischoff --- arch/arm64/tools/sysreg | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg index 696ab1f32a674..11ddcb3198fbc 100644 --- a/arch/arm64/tools/sysreg +++ b/arch/arm64/tools/sysreg @@ -4668,6 +4668,27 @@ Field 1 V3 Field 0 En EndSysreg =20 +Sysreg ICH_VMCR_EL2 3 4 12 11 7 +Prefix FEAT_GCIE +Res0 63:32 +Field 31:27 VPMR +Res0 26:1 +Field 0 EN +EndPrefix +Res0 63:32 +Field 31:24 VPMR +Field 23:21 VBPR0 +Field 20:18 VBPR1 +Res0 17:10 +Field 9 VEOIM +Res0 8:5 +Field 4 VCBPR +Field 3 VFIQEn +Field 2 VAckCtl +Field 1 VENG1 +Field 0 VENG0 +EndSysreg + Sysreg CONTEXTIDR_EL2 3 4 13 0 1 Fields CONTEXTIDR_ELx EndSysreg --=20 2.34.1 From nobody Fri Dec 19 10:42:15 2025 Received: from GVXPR05CU001.outbound.protection.outlook.com (mail-swedencentralazon11013037.outbound.protection.outlook.com [52.101.83.37]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 90C5123D7CA; Thu, 9 Oct 2025 16:55:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.83.37 ARC-Seal: i=3; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760028935; cv=fail; b=VfDQhcjopYHXci/+pHaHJQnuw7uJ2Bp+Rue6rDo6JVc8LuccctOE24UHEmno6y8k9lJmOjpddFh/JjccfhJs45C2aIlNXeTSs3MdjIdyO789zDPS25Tr98WLHU2kqGNFzV0nPn6bsCrLtBDY/S3duRm4QQcFNg2OZyJHSM9ttno= ARC-Message-Signature: i=3; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760028935; c=relaxed/simple; bh=Get2MfRVhVfai4Z27hv7M8Pxi+UQmjLIBgLn2ZKzgUc=; h=From:To:CC:Subject:Date:Message-ID:References:In-Reply-To: Content-Type:MIME-Version; b=IzEsf8bdYc36m8Zp6c8jlAs3hrzzSiKrvyCNro15VIQR/N6svwUqUucAWhwVOHtxLgyd3pDcp2l44CeFRKppdcxkGAg9tniFDd4J7/V1Ll1HA+LMO+V5jfJbgZhRqEY/4mQXyZt9Edobe2WJpY7twzmGZK7Y0VTbN0JuSHqNeIQ= ARC-Authentication-Results: i=3; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com; spf=pass smtp.mailfrom=arm.com; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b=B/KoVf5h; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b=B/KoVf5h; arc=fail smtp.client-ip=52.101.83.37 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=arm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b="B/KoVf5h"; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b="B/KoVf5h" ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=gpflpwN95Or50LvuRx0sYnWXcCji/5VOJW9ItYSxWln5PM+NYhO//Qi+rdCZL5mWNNgKpNzzNHWqh0JFc3HOo9lQH0Kc1gmvhSHgUf4fLl/ewoOgrjNiIJ2WOkD1jbyfBILILk7o1/gZclphV/Rjqmc4Nmw1D1ZWu5cRCd1OPbq0Bp5shxk7LLS+0oNWA8NKg/4x53CLMlvU8bmpkFCXibjqppfs2wxHVPkTSq55yJVSshI+XIuwZyIXhaYgJhEitV3g5O5J6pYlSXTue64BODt+vRWZGaTy7jK9l+OV+aGPVMW0jECPvyNOadx6ezjwzplfUrVH4nc9f3rVCFv2sA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=p6exw/zOqb98LmTg+WH0DT4Y8LBiOvpwhk9bM6sLWhc=; b=Jdl+y50ZXJlhgrzBrkaljOhLXYgFN9KlfsetsKelttOFX9nIA3GGW5RplnC+e92Zd8MkwrKBu++LmltonseMNW5VbFSg42SXFeuYOBpKnxbBocWpFP1pGdNZrHNhzAg5rYHardN8XjFn5Mzk7aHqskG0Qx7l2ck8XVZEfYIgi1hZE763HHIHIjmeR19OXF4bu/A6IEDzwwrYcDC+6FCzAG4qi62FhyQPm3gGKL57RD1X2aaAbgfAJtmCU10gtviFFD5MkVeEDq9QGfkjdPldd1B6Xjm2iDXDj3ujWyyYtZ0dDBjtBgLhqdf0RWvN6gaX49yuwZ4PMwfl6Q0LtnDoSw== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 4.158.2.129) smtp.rcpttodomain=lists.infradead.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com]) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=p6exw/zOqb98LmTg+WH0DT4Y8LBiOvpwhk9bM6sLWhc=; b=B/KoVf5hilzQKNU5whJG7VrXwaSEjKMIROyEqJ9f8+jGPrmY9UxpoDgyhU7vFCWHXAnzufiTRb9o2rG2GwwVvbDM5PMusWWDqNFHMZ/V/XpI+1hUckXmiN6bOYf0KWeq/bk2YkBtF1YMOXNunhtfojPm/A+6UTjndfYE/zV8Lqc= Received: from DB8PR04CA0002.eurprd04.prod.outlook.com (2603:10a6:10:110::12) by DBBPR08MB10700.eurprd08.prod.outlook.com (2603:10a6:10:537::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.10; Thu, 9 Oct 2025 16:55:23 +0000 Received: from DB1PEPF000509F6.eurprd02.prod.outlook.com (2603:10a6:10:110:cafe::5) by DB8PR04CA0002.outlook.office365.com (2603:10a6:10:110::12) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.10 via Frontend Transport; Thu, 9 Oct 2025 16:55:22 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=arm.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 4.158.2.129 as permitted sender) receiver=protection.outlook.com; client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by DB1PEPF000509F6.mail.protection.outlook.com (10.167.242.152) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9203.9 via Frontend Transport; Thu, 9 Oct 2025 16:55:21 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=xe9ZBIwWItGf+gN30nUxSG4qcDXVNqXd+o+dIkehX6KGiOGq4768NxqcimzGcQfH8RmxLlxFd+uuNN3tIlKCRZ51tthQ+NeQk2/rCsut1xzmiJKXfyLySakz/p++663uWpak+3JqBP8ZOMZsej6sFS0gIRXZwNuj78DCwwlkdKMYj7ds3RYGNmaFcV+6MGOD9Pjl72J5QEUUQ8nVlD5nbdVFo40MzNc47c+zPt05+DfgmSO2D3lq8SEJ1A+yeh7C4D02Bedq5AM0MiC8Q2mEmD9/VmFTkuu6wDM66BVTQ4FSFYMRuQ9PgfJ8GWJOJNmHsR429ljGfCQXLQc0nhzgEg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=p6exw/zOqb98LmTg+WH0DT4Y8LBiOvpwhk9bM6sLWhc=; b=yUeNSuYkKDrnWw6ZNJKLjWgfnX7nn2QripxVq7TNVDImnDA7uKNCt4x+hSCnbyxxS6ue8DHiBHgJoxEM5EECCHam18WaUjz9drzLRi0vxXhCsRL/p8BQTeMmDbaaDJ8RBhoA+vPtqsO9p6bXUmI4WZwJKH71n6rfwiAyt/tcT7+JWvdjcxpzHj5H0w+qR1kh1Bu6vWvtOvlFGcJVr2pApSAoTj9bspZotxtblzXmdCMi1ub3neiPSI4WXZPrO8csV2sprvhasDapnYpLYZLd0IlsDrQ93UxYBiYQ06K74RHXZUCjAzs7aXg7+kKFZNYYPg19WG5ldfCdJnGPfT5xHw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=p6exw/zOqb98LmTg+WH0DT4Y8LBiOvpwhk9bM6sLWhc=; b=B/KoVf5hilzQKNU5whJG7VrXwaSEjKMIROyEqJ9f8+jGPrmY9UxpoDgyhU7vFCWHXAnzufiTRb9o2rG2GwwVvbDM5PMusWWDqNFHMZ/V/XpI+1hUckXmiN6bOYf0KWeq/bk2YkBtF1YMOXNunhtfojPm/A+6UTjndfYE/zV8Lqc= Received: from PR3PR08MB5786.eurprd08.prod.outlook.com (2603:10a6:102:85::9) by DB3PR08MB8795.eurprd08.prod.outlook.com (2603:10a6:10:432::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.9; Thu, 9 Oct 2025 16:54:49 +0000 Received: from PR3PR08MB5786.eurprd08.prod.outlook.com ([fe80::320c:9322:f90f:8522]) by PR3PR08MB5786.eurprd08.prod.outlook.com ([fe80::320c:9322:f90f:8522%4]) with mapi id 15.20.9203.009; Thu, 9 Oct 2025 16:54:49 +0000 From: Sascha Bischoff To: "linux-arm-kernel@lists.infradead.org" , "kvmarm@lists.linux.dev" , "linux-kernel@vger.kernel.org" , "kvm@vger.kernel.org" CC: nd , Mark Rutland , Mark Brown , Catalin Marinas , "maz@kernel.org" , "oliver.upton@linux.dev" , Joey Gouly , Suzuki Poulose , "yuzenghui@huawei.com" , "will@kernel.org" , "lpieralisi@kernel.org" Subject: [PATCH v2 4/4] KVM: arm64: gic-v3: Switch vGIC-v3 to use generated ICH_VMCR_EL2 Thread-Topic: [PATCH v2 4/4] KVM: arm64: gic-v3: Switch vGIC-v3 to use generated ICH_VMCR_EL2 Thread-Index: AQHcOT1sEJpQvf0ckk6LdJWV6xHdUA== Date: Thu, 9 Oct 2025 16:54:48 +0000 Message-ID: <20251009165427.437379-5-sascha.bischoff@arm.com> References: <20251009165427.437379-1-sascha.bischoff@arm.com> In-Reply-To: <20251009165427.437379-1-sascha.bischoff@arm.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.34.1 Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-traffictypediagnostic: PR3PR08MB5786:EE_|DB3PR08MB8795:EE_|DB1PEPF000509F6:EE_|DBBPR08MB10700:EE_ X-MS-Office365-Filtering-Correlation-Id: 3a6f816f-8df2-43c4-f46f-08de0754a272 x-checkrecipientrouted: true nodisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0;ARA:13230040|7416014|376014|1800799024|366016|38070700021; X-Microsoft-Antispam-Message-Info-Original: =?iso-8859-1?Q?NckXZmqKvKxq+Iag6lXzDTN+cZWMz4AsgrnCSuOQ1gaEkQEQ5k0oe24Gg7?= =?iso-8859-1?Q?ojY6U5/0xnAlKa8AIXTCwIIoqGAIIfcgjmPuiSaoZtkPFkisKOEeUg9Z+Z?= =?iso-8859-1?Q?fzJLR21Ng+CQgQj6IvRrq4fIOi0Ux8vLFWTA31waI5A2odO9MBCt1tAjaW?= =?iso-8859-1?Q?lIhP2YzOjkfHonaQPuVS611xiflp3LkhGzEOB5/nyCNx4PhfkfIRbwUvfL?= =?iso-8859-1?Q?M7+jJUfTLml7I/GHeamzDdg7wXZ/bDaTJHMrHb7O//UnJzPKNLm9oneeyW?= =?iso-8859-1?Q?Z9X8LHZRHa4aUZtbdiHS3CarCGAickOCNqqMam/u/xvwFxfpQ+hE08jnLM?= =?iso-8859-1?Q?J6z76a/LwMBaaSGKmyoFRYvJzTEOMgSLbnrFg0FzQAxPYLN8ubPShN3S3r?= =?iso-8859-1?Q?I/M19pRRqFIqSPrRZ09JXWKWAMZN8vQYfqOEAotJj5HSxMM9EnxLuzMnzM?= =?iso-8859-1?Q?84YTkcrbMIJOU4jKaMe9+HWbMpaRklwsJNEXdQ4115hcktk49GhjqCoICE?= =?iso-8859-1?Q?42RxCvBxQd2Uo2ltu5Sgp1mllfg6Ezfg8qM85T4TvrHzvG37O04AAzuaqE?= =?iso-8859-1?Q?FfqDv2XDWdAhBYaata59iBHHS5ThbTYI+N738zkw9E7JEJOQB5eMhZ65OM?= =?iso-8859-1?Q?SHvw8MPXqTAzUmzUbc6ILHUEJdeLg28ztWUdKDfzZjS4EFWzdb9VQFoe5l?= =?iso-8859-1?Q?oNB9TVfhR+a+sT/y4zn1TupbhgJbr3eZ/3BITseosqBQyrykpEckUFIe1I?= =?iso-8859-1?Q?ZHleQ3cDL7+05n0nd8GPxo7TXxwuqTfZDGXGo3ncqkPxfLwiTQk4/p8BFf?= =?iso-8859-1?Q?aiUAwbS4z5uexp+749tAzvT5zcirOO26mhM96tKl4kqDHedRR6tKroc4uU?= =?iso-8859-1?Q?C+JR6Ztkm6vq9mDG3KAHVhpJKDouN+6rFUXVMQwVaS9VFlqD1UWKxWfvDN?= =?iso-8859-1?Q?ba0NF1+C/t7fcmqVb/lr7JKLqc5x02OvagwtTMdL7iLz2HChMZ4z6ToHwo?= =?iso-8859-1?Q?p92QS4D1q63mPJ2fKjBU3XvF2WBDf7l/TIm8GiTkA1TLMNtyTxSE+FCVjC?= =?iso-8859-1?Q?WO2odIe0Y9EKqAc22MCHewwDqaN51w0mA/l8odMqr1HEXtPoX2q803Hk17?= =?iso-8859-1?Q?ovwaD6Ou5ZVV0GCfNdBcLh2N2KJ4HBtEDydvKa7hEdKHWqUwVrG7aCEe3/?= =?iso-8859-1?Q?6Itq9rtX1RnOx3TxroZhFSTbEVNjLHU6i5qpl7Ftcb6Oc8b968p4TU1NQJ?= =?iso-8859-1?Q?6NPZPRZDuIC2BX+nKUu/BKObKdaJ7IUCD++6a9rpu+aJNwCFBuL3qsXEMS?= =?iso-8859-1?Q?ABZk4mDDJcq5msmXgrHxBkHaQ+r9Zu1TVRUMOlZRNV8JFITGHYEFVhE+ji?= =?iso-8859-1?Q?J/P9z6nPP922KdwXsJoR28bFJd9MvHwqT0CJCOPsXr+iusYurjpRAvQrBo?= =?iso-8859-1?Q?gYPRgFU3maE5haaDhY5sJPCFj4GP2AahEgRgq5rwTxK7EUto/YeEFLJouW?= =?iso-8859-1?Q?IzFWwdTsyGBRF80DVJZNbleT/2K/LySZniV3/dHl1gH0KdefI6e5r1u72m?= =?iso-8859-1?Q?S+qq4vQfaB0je+T6UP6A5hQ7sYqA?= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5786.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(366016)(38070700021);DIR:OUT;SFP:1101; Content-Transfer-Encoding: quoted-printable Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR08MB8795 X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB1PEPF000509F6.eurprd02.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: d54fc6d7-85b1-421d-546c-08de07548f0e X-Microsoft-Antispam: BCL:0;ARA:13230040|35042699022|14060799003|82310400026|36860700013|7416014|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?iso-8859-1?Q?iqzLjDmM/oP2lKUukB/NG0spRZKO74Ddg012xxzcglyQU6IT1mECmvHUjj?= =?iso-8859-1?Q?R7Del5bCwRRRI2UX8ur6UDieXsusMT1T0Z8INMHa/sSODO7yQ3eDJ/4R4+?= =?iso-8859-1?Q?1rmsV2Pc8MLYPpNo0tjH5/S2LSxaQjva6pXp3sSXMlQ43YpZBtRb3GqA8v?= =?iso-8859-1?Q?H4ypsAMAqTmiZgXvQb9a6uyEI+3kWNGaSOvH2XDugo7mR5Ey656sSn4Vw7?= =?iso-8859-1?Q?WA++yGOQqd70qyHMTJTuB/EqLZ7oMQWUdig9NldB0MFO1eqZF+OwNDWhDP?= =?iso-8859-1?Q?QIol3RnBjplXULdS9hxS8wrTUnEWab9A3UmxkCEbNkYPA+07DdKEVWjxCd?= =?iso-8859-1?Q?KDyCXiJ2uHYiF5ObkqJ4OMcL1B8BQuF8f8/jnD/AtE8u9yBoO6fRuSrbGc?= =?iso-8859-1?Q?1+m8YRJzJqxJZhfsEjbxn+w97+XS/MHfKQPDpVeGnLZbFq0iELdaKw/5EG?= =?iso-8859-1?Q?ho5u45mhoxUm4+VRlMBzQEeWT6zScomviAeUCfbAbb3TQx3BEcCs+FJIMN?= =?iso-8859-1?Q?7Btnqg82P/C6wNgsqaXz18xkj41maDVkh00JXpOfhgTdyc2kYZmeZRDuH0?= =?iso-8859-1?Q?kHOSbO4+z6XYJnFCgvoOkH5DWjmYoiN4Fp4pIXonCaGn0Zqur1G8XCGoHh?= =?iso-8859-1?Q?znbs9ScRePPAiLM9fwOMq5m8+yqL7EMmfj0BC02wFhQwwdsCyrqL16NVnm?= =?iso-8859-1?Q?dcEIFOpdwlzqKeyniDMvwbkZWl2uGnH4ZOsoRUOOqDhL9y+ka8qQNTsBYA?= =?iso-8859-1?Q?KoEmupJATpCn3eHv0I00AdbCJDOe2ed/v4+yO79xLgpaKIQ5E43+Ha37M7?= =?iso-8859-1?Q?jbich0z/4pwdIOxaJZAx/AYOUz/n2iEBQgoOm1SQ8tr0h88DlaRW4egfak?= =?iso-8859-1?Q?8BnQQj6cNo+Anw/Lrdf0bXafQwtHn7a51sk5JtHtrE/GvW1S8tqoJPVT6t?= =?iso-8859-1?Q?GJb5YYCq1luRTZyqsmjpt4x+yvTe/ihG+7SZXfTtEbL0ZgzGy2R5aP5mtu?= =?iso-8859-1?Q?NF/m4Ofmip3Z6AKrK+a+GY5eC17OS6gLOPBem9MumUuioDCGmQjPDu0pq8?= =?iso-8859-1?Q?RLqpe5OpqSoi+z+T6dHTI1vKP1E6qQchLGWv0/fYbIuGH9huXP02QdNrhI?= =?iso-8859-1?Q?awfSwYXZ2oMB0C1GJ8lITUl4UwlVBAagmv0DVVLE9ADREli9/k/xZ9fLSB?= =?iso-8859-1?Q?X7/QY+0fOYoSEV9fq+WhB9E8XVQYQOQXf/+O+Aqcbqep8VEzPJGunjTjUA?= =?iso-8859-1?Q?xCDUmvaNydzlM8OMnOou4wZ4VUTJfd7BViOq97Lp0zstCJDhW1Jqjpg8Y3?= =?iso-8859-1?Q?KZLxtZ8io6HCOo7QgsUc+bwZqumFeP2zIPUX1NFf1xpWNnWHQaAqm3VQoc?= =?iso-8859-1?Q?RX0d+kBvXLEqEdUcLGZuL4QjxFcQ7Eq3RoWBjr/V7seNEk6/UB7c8cnfp/?= =?iso-8859-1?Q?zr/t5TKrhd+WQOr95k9k4gKYUS4c83IDrBePTqob4AsURXau6WPiMWHJw9?= =?iso-8859-1?Q?fgRzOf68PwlGFTDR/qCMsTiFWDMuKqLd+wy3i6eTAmK00GNcOdqbWkrKEr?= =?iso-8859-1?Q?AB1QnzoVmF/iMERF90n9fs2bEoyswHMZX2zBbzbOcZjsOxQkPZvruNSMyw?= =?iso-8859-1?Q?lR0KEd9fzd1dA=3D?= X-Forefront-Antispam-Report: CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(35042699022)(14060799003)(82310400026)(36860700013)(7416014)(376014)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Oct 2025 16:55:21.6186 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3a6f816f-8df2-43c4-f46f-08de0754a272 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com] X-MS-Exchange-CrossTenant-AuthSource: DB1PEPF000509F6.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB10700 Content-Type: text/plain; charset="utf-8" The VGIC-v3 code relied on hand-written definitions for the ICH_VMCR_EL2 register. This register, and the associated fields, is now generated as part of the sysreg framework. Move to using the generated definitions instead of the hand-written ones. There are no functional changes as part of this change. Signed-off-by: Sascha Bischoff --- arch/arm64/include/asm/sysreg.h | 21 --------- arch/arm64/kvm/hyp/vgic-v3-sr.c | 64 ++++++++++++---------------- arch/arm64/kvm/vgic/vgic-v3-nested.c | 8 ++-- arch/arm64/kvm/vgic/vgic-v3.c | 42 +++++++++--------- 4 files changed, 51 insertions(+), 84 deletions(-) diff --git a/arch/arm64/include/asm/sysreg.h b/arch/arm64/include/asm/sysre= g.h index 6604fd6f33f45..06bc0e628b03e 100644 --- a/arch/arm64/include/asm/sysreg.h +++ b/arch/arm64/include/asm/sysreg.h @@ -571,7 +571,6 @@ #define SYS_ICC_SRE_EL2 sys_reg(3, 4, 12, 9, 5) #define SYS_ICH_EISR_EL2 sys_reg(3, 4, 12, 11, 3) #define SYS_ICH_ELRSR_EL2 sys_reg(3, 4, 12, 11, 5) -#define SYS_ICH_VMCR_EL2 sys_reg(3, 4, 12, 11, 7) =20 #define __SYS__LR0_EL2(x) sys_reg(3, 4, 12, 12, x) #define SYS_ICH_LR0_EL2 __SYS__LR0_EL2(0) @@ -999,26 +998,6 @@ #define ICH_LR_PRIORITY_SHIFT 48 #define ICH_LR_PRIORITY_MASK (0xffULL << ICH_LR_PRIORITY_SHIFT) =20 -/* ICH_VMCR_EL2 bit definitions */ -#define ICH_VMCR_ACK_CTL_SHIFT 2 -#define ICH_VMCR_ACK_CTL_MASK (1 << ICH_VMCR_ACK_CTL_SHIFT) -#define ICH_VMCR_FIQ_EN_SHIFT 3 -#define ICH_VMCR_FIQ_EN_MASK (1 << ICH_VMCR_FIQ_EN_SHIFT) -#define ICH_VMCR_CBPR_SHIFT 4 -#define ICH_VMCR_CBPR_MASK (1 << ICH_VMCR_CBPR_SHIFT) -#define ICH_VMCR_EOIM_SHIFT 9 -#define ICH_VMCR_EOIM_MASK (1 << ICH_VMCR_EOIM_SHIFT) -#define ICH_VMCR_BPR1_SHIFT 18 -#define ICH_VMCR_BPR1_MASK (7 << ICH_VMCR_BPR1_SHIFT) -#define ICH_VMCR_BPR0_SHIFT 21 -#define ICH_VMCR_BPR0_MASK (7 << ICH_VMCR_BPR0_SHIFT) -#define ICH_VMCR_PMR_SHIFT 24 -#define ICH_VMCR_PMR_MASK (0xffUL << ICH_VMCR_PMR_SHIFT) -#define ICH_VMCR_ENG0_SHIFT 0 -#define ICH_VMCR_ENG0_MASK (1 << ICH_VMCR_ENG0_SHIFT) -#define ICH_VMCR_ENG1_SHIFT 1 -#define ICH_VMCR_ENG1_MASK (1 << ICH_VMCR_ENG1_SHIFT) - /* * Permission Indirection Extension (PIE) permission encodings. * Encodings with the _O suffix, have overlays applied (Permission Overlay= Extension). diff --git a/arch/arm64/kvm/hyp/vgic-v3-sr.c b/arch/arm64/kvm/hyp/vgic-v3-s= r.c index d81275790e69b..c90608daa5b2b 100644 --- a/arch/arm64/kvm/hyp/vgic-v3-sr.c +++ b/arch/arm64/kvm/hyp/vgic-v3-sr.c @@ -567,11 +567,11 @@ static int __vgic_v3_highest_priority_lr(struct kvm_v= cpu *vcpu, u32 vmcr, continue; =20 /* Group-0 interrupt, but Group-0 disabled? */ - if (!(val & ICH_LR_GROUP) && !(vmcr & ICH_VMCR_ENG0_MASK)) + if (!(val & ICH_LR_GROUP) && !(vmcr & ICH_VMCR_EL2_VENG0_MASK)) continue; =20 /* Group-1 interrupt, but Group-1 disabled? */ - if ((val & ICH_LR_GROUP) && !(vmcr & ICH_VMCR_ENG1_MASK)) + if ((val & ICH_LR_GROUP) && !(vmcr & ICH_VMCR_EL2_VENG1_MASK)) continue; =20 /* Not the highest priority? */ @@ -644,19 +644,19 @@ static int __vgic_v3_get_highest_active_priority(void) =20 static unsigned int __vgic_v3_get_bpr0(u32 vmcr) { - return (vmcr & ICH_VMCR_BPR0_MASK) >> ICH_VMCR_BPR0_SHIFT; + return FIELD_GET(ICH_VMCR_EL2_VBPR0, vmcr); } =20 static unsigned int __vgic_v3_get_bpr1(u32 vmcr) { unsigned int bpr; =20 - if (vmcr & ICH_VMCR_CBPR_MASK) { + if (vmcr & ICH_VMCR_EL2_VCBPR_MASK) { bpr =3D __vgic_v3_get_bpr0(vmcr); if (bpr < 7) bpr++; } else { - bpr =3D (vmcr & ICH_VMCR_BPR1_MASK) >> ICH_VMCR_BPR1_SHIFT; + bpr =3D FIELD_GET(ICH_VMCR_EL2_VBPR1, vmcr); } =20 return bpr; @@ -756,7 +756,7 @@ static void __vgic_v3_read_iar(struct kvm_vcpu *vcpu, u= 32 vmcr, int rt) if (grp !=3D !!(lr_val & ICH_LR_GROUP)) goto spurious; =20 - pmr =3D (vmcr & ICH_VMCR_PMR_MASK) >> ICH_VMCR_PMR_SHIFT; + pmr =3D FIELD_GET(ICH_VMCR_EL2_VPMR, vmcr); lr_prio =3D (lr_val & ICH_LR_PRIORITY_MASK) >> ICH_LR_PRIORITY_SHIFT; if (pmr <=3D lr_prio) goto spurious; @@ -804,7 +804,7 @@ static void __vgic_v3_write_dir(struct kvm_vcpu *vcpu, = u32 vmcr, int rt) int lr; =20 /* EOImode =3D=3D 0, nothing to be done here */ - if (!(vmcr & ICH_VMCR_EOIM_MASK)) + if (!FIELD_GET(ICH_VMCR_EL2_VEOIM_MASK, vmcr)) return; =20 /* No deactivate to be performed on an LPI */ @@ -841,7 +841,7 @@ static void __vgic_v3_write_eoir(struct kvm_vcpu *vcpu,= u32 vmcr, int rt) } =20 /* EOImode =3D=3D 1 and not an LPI, nothing to be done here */ - if ((vmcr & ICH_VMCR_EOIM_MASK) && !(vid >=3D VGIC_MIN_LPI)) + if (FIELD_GET(ICH_VMCR_EL2_VEOIM_MASK, vmcr) && !(vid >=3D VGIC_MIN_LPI)) return; =20 lr_prio =3D (lr_val & ICH_LR_PRIORITY_MASK) >> ICH_LR_PRIORITY_SHIFT; @@ -857,12 +857,12 @@ static void __vgic_v3_write_eoir(struct kvm_vcpu *vcp= u, u32 vmcr, int rt) =20 static void __vgic_v3_read_igrpen0(struct kvm_vcpu *vcpu, u32 vmcr, int rt) { - vcpu_set_reg(vcpu, rt, !!(vmcr & ICH_VMCR_ENG0_MASK)); + vcpu_set_reg(vcpu, rt, !!FIELD_GET(ICH_VMCR_EL2_VENG0_MASK, vmcr)); } =20 static void __vgic_v3_read_igrpen1(struct kvm_vcpu *vcpu, u32 vmcr, int rt) { - vcpu_set_reg(vcpu, rt, !!(vmcr & ICH_VMCR_ENG1_MASK)); + vcpu_set_reg(vcpu, rt, !!FIELD_GET(ICH_VMCR_EL2_VENG1_MASK, vmcr)); } =20 static void __vgic_v3_write_igrpen0(struct kvm_vcpu *vcpu, u32 vmcr, int r= t) @@ -870,9 +870,9 @@ static void __vgic_v3_write_igrpen0(struct kvm_vcpu *vc= pu, u32 vmcr, int rt) u64 val =3D vcpu_get_reg(vcpu, rt); =20 if (val & 1) - vmcr |=3D ICH_VMCR_ENG0_MASK; + vmcr |=3D ICH_VMCR_EL2_VENG0_MASK; else - vmcr &=3D ~ICH_VMCR_ENG0_MASK; + vmcr &=3D ~ICH_VMCR_EL2_VENG0_MASK; =20 __vgic_v3_write_vmcr(vmcr); } @@ -882,9 +882,9 @@ static void __vgic_v3_write_igrpen1(struct kvm_vcpu *vc= pu, u32 vmcr, int rt) u64 val =3D vcpu_get_reg(vcpu, rt); =20 if (val & 1) - vmcr |=3D ICH_VMCR_ENG1_MASK; + vmcr |=3D ICH_VMCR_EL2_VENG1_MASK; else - vmcr &=3D ~ICH_VMCR_ENG1_MASK; + vmcr &=3D ~ICH_VMCR_EL2_VENG1_MASK; =20 __vgic_v3_write_vmcr(vmcr); } @@ -908,10 +908,8 @@ static void __vgic_v3_write_bpr0(struct kvm_vcpu *vcpu= , u32 vmcr, int rt) if (val < bpr_min) val =3D bpr_min; =20 - val <<=3D ICH_VMCR_BPR0_SHIFT; - val &=3D ICH_VMCR_BPR0_MASK; - vmcr &=3D ~ICH_VMCR_BPR0_MASK; - vmcr |=3D val; + vmcr &=3D ~ICH_VMCR_EL2_VBPR0_MASK; + vmcr |=3D FIELD_PREP(ICH_VMCR_EL2_VBPR0, val); =20 __vgic_v3_write_vmcr(vmcr); } @@ -921,17 +919,15 @@ static void __vgic_v3_write_bpr1(struct kvm_vcpu *vcp= u, u32 vmcr, int rt) u64 val =3D vcpu_get_reg(vcpu, rt); u8 bpr_min =3D __vgic_v3_bpr_min(); =20 - if (vmcr & ICH_VMCR_CBPR_MASK) + if (FIELD_GET(ICH_VMCR_EL2_VCBPR_MASK, val)) return; =20 /* Enforce BPR limiting */ if (val < bpr_min) val =3D bpr_min; =20 - val <<=3D ICH_VMCR_BPR1_SHIFT; - val &=3D ICH_VMCR_BPR1_MASK; - vmcr &=3D ~ICH_VMCR_BPR1_MASK; - vmcr |=3D val; + vmcr &=3D ~ICH_VMCR_EL2_VBPR1_MASK; + vmcr |=3D FIELD_PREP(ICH_VMCR_EL2_VBPR1, val); =20 __vgic_v3_write_vmcr(vmcr); } @@ -1021,19 +1017,15 @@ static void __vgic_v3_read_hppir(struct kvm_vcpu *v= cpu, u32 vmcr, int rt) =20 static void __vgic_v3_read_pmr(struct kvm_vcpu *vcpu, u32 vmcr, int rt) { - vmcr &=3D ICH_VMCR_PMR_MASK; - vmcr >>=3D ICH_VMCR_PMR_SHIFT; - vcpu_set_reg(vcpu, rt, vmcr); + vcpu_set_reg(vcpu, rt, FIELD_GET(ICH_VMCR_EL2_VPMR, vmcr)); } =20 static void __vgic_v3_write_pmr(struct kvm_vcpu *vcpu, u32 vmcr, int rt) { u32 val =3D vcpu_get_reg(vcpu, rt); =20 - val <<=3D ICH_VMCR_PMR_SHIFT; - val &=3D ICH_VMCR_PMR_MASK; - vmcr &=3D ~ICH_VMCR_PMR_MASK; - vmcr |=3D val; + vmcr &=3D ~ICH_VMCR_EL2_VPMR_MASK; + vmcr |=3D FIELD_PREP(ICH_VMCR_EL2_VPMR, val); =20 write_gicreg(vmcr, ICH_VMCR_EL2); } @@ -1056,9 +1048,9 @@ static void __vgic_v3_read_ctlr(struct kvm_vcpu *vcpu= , u32 vmcr, int rt) /* A3V */ val |=3D ((vtr >> 21) & 1) << ICC_CTLR_EL1_A3V_SHIFT; /* EOImode */ - val |=3D ((vmcr & ICH_VMCR_EOIM_MASK) >> ICH_VMCR_EOIM_SHIFT) << ICC_CTLR= _EL1_EOImode_SHIFT; + val |=3D FIELD_GET(ICH_VMCR_EL2_VEOIM, vmcr) << ICC_CTLR_EL1_EOImode_SHIF= T; /* CBPR */ - val |=3D (vmcr & ICH_VMCR_CBPR_MASK) >> ICH_VMCR_CBPR_SHIFT; + val |=3D FIELD_GET(ICH_VMCR_EL2_VCBPR, vmcr); =20 vcpu_set_reg(vcpu, rt, val); } @@ -1068,14 +1060,14 @@ static void __vgic_v3_write_ctlr(struct kvm_vcpu *v= cpu, u32 vmcr, int rt) u32 val =3D vcpu_get_reg(vcpu, rt); =20 if (val & ICC_CTLR_EL1_CBPR_MASK) - vmcr |=3D ICH_VMCR_CBPR_MASK; + vmcr |=3D ICH_VMCR_EL2_VCBPR_MASK; else - vmcr &=3D ~ICH_VMCR_CBPR_MASK; + vmcr &=3D ~ICH_VMCR_EL2_VCBPR_MASK; =20 if (val & ICC_CTLR_EL1_EOImode_MASK) - vmcr |=3D ICH_VMCR_EOIM_MASK; + vmcr |=3D ICH_VMCR_EL2_VEOIM_MASK; else - vmcr &=3D ~ICH_VMCR_EOIM_MASK; + vmcr &=3D ~ICH_VMCR_EL2_VEOIM_MASK; =20 write_gicreg(vmcr, ICH_VMCR_EL2); } diff --git a/arch/arm64/kvm/vgic/vgic-v3-nested.c b/arch/arm64/kvm/vgic/vgi= c-v3-nested.c index 7f1259b49c505..cf9c14e0edd48 100644 --- a/arch/arm64/kvm/vgic/vgic-v3-nested.c +++ b/arch/arm64/kvm/vgic/vgic-v3-nested.c @@ -199,16 +199,16 @@ u64 vgic_v3_get_misr(struct kvm_vcpu *vcpu) if ((hcr & ICH_HCR_EL2_NPIE) && !mi_state.pend) reg |=3D ICH_MISR_EL2_NP; =20 - if ((hcr & ICH_HCR_EL2_VGrp0EIE) && (vmcr & ICH_VMCR_ENG0_MASK)) + if ((hcr & ICH_HCR_EL2_VGrp0EIE) && (vmcr & ICH_VMCR_EL2_VENG0_MASK)) reg |=3D ICH_MISR_EL2_VGrp0E; =20 - if ((hcr & ICH_HCR_EL2_VGrp0DIE) && !(vmcr & ICH_VMCR_ENG0_MASK)) + if ((hcr & ICH_HCR_EL2_VGrp0DIE) && !(vmcr & ICH_VMCR_EL2_VENG0_MASK)) reg |=3D ICH_MISR_EL2_VGrp0D; =20 - if ((hcr & ICH_HCR_EL2_VGrp1EIE) && (vmcr & ICH_VMCR_ENG1_MASK)) + if ((hcr & ICH_HCR_EL2_VGrp1EIE) && (vmcr & ICH_VMCR_EL2_VENG1_MASK)) reg |=3D ICH_MISR_EL2_VGrp1E; =20 - if ((hcr & ICH_HCR_EL2_VGrp1DIE) && !(vmcr & ICH_VMCR_ENG1_MASK)) + if ((hcr & ICH_HCR_EL2_VGrp1DIE) && !(vmcr & ICH_VMCR_EL2_VENG1_MASK)) reg |=3D ICH_MISR_EL2_VGrp1D; =20 return reg; diff --git a/arch/arm64/kvm/vgic/vgic-v3.c b/arch/arm64/kvm/vgic/vgic-v3.c index b9ad7c42c5b01..f9dd5b6c57294 100644 --- a/arch/arm64/kvm/vgic/vgic-v3.c +++ b/arch/arm64/kvm/vgic/vgic-v3.c @@ -199,25 +199,23 @@ void vgic_v3_set_vmcr(struct kvm_vcpu *vcpu, struct v= gic_vmcr *vmcrp) u32 vmcr; =20 if (model =3D=3D KVM_DEV_TYPE_ARM_VGIC_V2) { - vmcr =3D (vmcrp->ackctl << ICH_VMCR_ACK_CTL_SHIFT) & - ICH_VMCR_ACK_CTL_MASK; - vmcr |=3D (vmcrp->fiqen << ICH_VMCR_FIQ_EN_SHIFT) & - ICH_VMCR_FIQ_EN_MASK; + vmcr =3D FIELD_PREP(ICH_VMCR_EL2_VAckCtl, vmcrp->ackctl); + vmcr |=3D FIELD_PREP(ICH_VMCR_EL2_VFIQEn, vmcrp->fiqen); } else { /* * When emulating GICv3 on GICv3 with SRE=3D1 on the * VFIQEn bit is RES1 and the VAckCtl bit is RES0. */ - vmcr =3D ICH_VMCR_FIQ_EN_MASK; + vmcr =3D ICH_VMCR_EL2_VFIQEn_MASK; } =20 - vmcr |=3D (vmcrp->cbpr << ICH_VMCR_CBPR_SHIFT) & ICH_VMCR_CBPR_MASK; - vmcr |=3D (vmcrp->eoim << ICH_VMCR_EOIM_SHIFT) & ICH_VMCR_EOIM_MASK; - vmcr |=3D (vmcrp->abpr << ICH_VMCR_BPR1_SHIFT) & ICH_VMCR_BPR1_MASK; - vmcr |=3D (vmcrp->bpr << ICH_VMCR_BPR0_SHIFT) & ICH_VMCR_BPR0_MASK; - vmcr |=3D (vmcrp->pmr << ICH_VMCR_PMR_SHIFT) & ICH_VMCR_PMR_MASK; - vmcr |=3D (vmcrp->grpen0 << ICH_VMCR_ENG0_SHIFT) & ICH_VMCR_ENG0_MASK; - vmcr |=3D (vmcrp->grpen1 << ICH_VMCR_ENG1_SHIFT) & ICH_VMCR_ENG1_MASK; + vmcr |=3D FIELD_PREP(ICH_VMCR_EL2_VCBPR, vmcrp->cbpr); + vmcr |=3D FIELD_PREP(ICH_VMCR_EL2_VEOIM, vmcrp->eoim); + vmcr |=3D FIELD_PREP(ICH_VMCR_EL2_VBPR1, vmcrp->abpr); + vmcr |=3D FIELD_PREP(ICH_VMCR_EL2_VBPR0, vmcrp->bpr); + vmcr |=3D FIELD_PREP(ICH_VMCR_EL2_VPMR, vmcrp->pmr); + vmcr |=3D FIELD_PREP(ICH_VMCR_EL2_VENG0, vmcrp->grpen0); + vmcr |=3D FIELD_PREP(ICH_VMCR_EL2_VENG1, vmcrp->grpen1); =20 cpu_if->vgic_vmcr =3D vmcr; } @@ -231,10 +229,8 @@ void vgic_v3_get_vmcr(struct kvm_vcpu *vcpu, struct vg= ic_vmcr *vmcrp) vmcr =3D cpu_if->vgic_vmcr; =20 if (model =3D=3D KVM_DEV_TYPE_ARM_VGIC_V2) { - vmcrp->ackctl =3D (vmcr & ICH_VMCR_ACK_CTL_MASK) >> - ICH_VMCR_ACK_CTL_SHIFT; - vmcrp->fiqen =3D (vmcr & ICH_VMCR_FIQ_EN_MASK) >> - ICH_VMCR_FIQ_EN_SHIFT; + vmcrp->ackctl =3D FIELD_GET(ICH_VMCR_EL2_VAckCtl, vmcr); + vmcrp->fiqen =3D FIELD_GET(ICH_VMCR_EL2_VFIQEn, vmcr); } else { /* * When emulating GICv3 on GICv3 with SRE=3D1 on the @@ -244,13 +240,13 @@ void vgic_v3_get_vmcr(struct kvm_vcpu *vcpu, struct v= gic_vmcr *vmcrp) vmcrp->ackctl =3D 0; } =20 - vmcrp->cbpr =3D (vmcr & ICH_VMCR_CBPR_MASK) >> ICH_VMCR_CBPR_SHIFT; - vmcrp->eoim =3D (vmcr & ICH_VMCR_EOIM_MASK) >> ICH_VMCR_EOIM_SHIFT; - vmcrp->abpr =3D (vmcr & ICH_VMCR_BPR1_MASK) >> ICH_VMCR_BPR1_SHIFT; - vmcrp->bpr =3D (vmcr & ICH_VMCR_BPR0_MASK) >> ICH_VMCR_BPR0_SHIFT; - vmcrp->pmr =3D (vmcr & ICH_VMCR_PMR_MASK) >> ICH_VMCR_PMR_SHIFT; - vmcrp->grpen0 =3D (vmcr & ICH_VMCR_ENG0_MASK) >> ICH_VMCR_ENG0_SHIFT; - vmcrp->grpen1 =3D (vmcr & ICH_VMCR_ENG1_MASK) >> ICH_VMCR_ENG1_SHIFT; + vmcrp->cbpr =3D FIELD_GET(ICH_VMCR_EL2_VCBPR, vmcr); + vmcrp->eoim =3D FIELD_GET(ICH_VMCR_EL2_VEOIM, vmcr); + vmcrp->abpr =3D FIELD_GET(ICH_VMCR_EL2_VBPR1, vmcr); + vmcrp->bpr =3D FIELD_GET(ICH_VMCR_EL2_VBPR0, vmcr); + vmcrp->pmr =3D FIELD_GET(ICH_VMCR_EL2_VPMR, vmcr); + vmcrp->grpen0 =3D FIELD_GET(ICH_VMCR_EL2_VENG0, vmcr); + vmcrp->grpen1 =3D FIELD_GET(ICH_VMCR_EL2_VENG1, vmcr); } =20 #define INITIAL_PENDBASER_VALUE \ --=20 2.34.1