From nobody Sat May 30 18:35:08 2026 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; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass(p=none dis=none) header.from=nutanix.com ARC-Seal: i=2; a=rsa-sha256; t=1778690151; cv=pass; d=zohomail.com; s=zohoarc; b=oEt6wHtksKfDC1CL/HhNTEBUkbCoR0i3dY/89NHOtHjg+cZXh/50VijCMqksqrpQPMdycJSFiV+CwW0HZFSLWdtN8rnWIKJdim6ZSLD8Gzwy9wOSQdzeJ4eAW9O8GeDyheHFHdGf0f3iAMe0E7+0WTcu6VwCQNL0IUNNi48ddAc= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778690151; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Qehw87LqGTidFltWgkPrhahfky/iAtDR2qfeAuhVGik=; b=Re872ccTIu8zKF3Jxx5vJltjZ/gYirhtX9vGNA6sqyjkOXWdagUMaEBkQclC7/bXFISKtzKBjm260XgXC/e27eQMf0pT9dWTAu8hQEA9q9xHTGxAJPJUqKCg0NCkr+mEaG6hVCc+puabEKdDlrzkDksNlTsTV4YRmpbmPxHQjUE= ARC-Authentication-Results: i=2; 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; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1778690151961111.06809664975447; Wed, 13 May 2026 09:35:51 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wNCYf-0003sL-8s; Wed, 13 May 2026 12:35:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wNCXg-0003Jp-7D; Wed, 13 May 2026 12:34:41 -0400 Received: from mx0b-002c1b01.pphosted.com ([148.163.155.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wNCXe-0000hh-Ls; Wed, 13 May 2026 12:34:39 -0400 Received: from pps.filterd (m0127842.ppops.net [127.0.0.1]) by mx0b-002c1b01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64DGLC5S2443715; Wed, 13 May 2026 09:34:11 -0700 Received: from ch1pr05cu001.outbound.protection.outlook.com (mail-northcentralusazon11020138.outbound.protection.outlook.com [52.101.193.138]) by mx0b-002c1b01.pphosted.com (PPS) with ESMTPS id 4e3nv6x8ym-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Wed, 13 May 2026 09:34:11 -0700 (PDT) Received: from PH7PR02MB10160.namprd02.prod.outlook.com (2603:10b6:510:2e7::19) by CH3PR02MB9564.namprd02.prod.outlook.com (2603:10b6:610:120::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Wed, 13 May 2026 16:34:08 +0000 Received: from PH7PR02MB10160.namprd02.prod.outlook.com ([fe80::4ed7:5c74:48e0:ff23]) by PH7PR02MB10160.namprd02.prod.outlook.com ([fe80::4ed7:5c74:48e0:ff23%7]) with mapi id 15.20.9891.021; Wed, 13 May 2026 16:34:08 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= proofpoint20171006; bh=Qehw87LqGTidFltWgkPrhahfky/iAtDR2qfeAuhVG ik=; b=Rxt0kW6bZGZgVmIDbM+uYE01xdmvi22Eah5L9ByL1DkesaI0tZhoHWqzE x65VUpc7LQPWjs5MZIVVbHtL5w1by4bArsBSZvi+6RjEoztQTGSXRK5+0/mQgmJs 5gh//hvADoa3YFdCrIXUnSmnFpRAG3PBXKnwZyhPTJ5VH5pBmdvoRPA18JqgNAuz KOLGzQpLeVZyKDqYcbLiekR6OyN6VdDhdKQrTJfHXzpJg2exwKRbgfUCm4ZsyrZQ JIubLBaE5lbne/SLzefXY25hGwfFvMj6k2BcBl8JcWjg7ZBNa5lvBjpkzNkY7XnX besmj5CM4mYpxJnEVj2Ed1wchtl4Q== ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=XGinTcRvggJPqTFJrqnxyGWMXMNzRQIaT0qNc6DLSL58wLcPvGQ0zR4L7bzo632CHVgqIAyMrSEjKjahRrykvN6afZGy6qto7+TMs3B34tKbvD0yC2vZYDsN2E4OvM0pN/dwFFXpIMoJ5bRmMp4rrvc0uGLY48Zx+YajZATzOSGY8aCVfTZem23Z2pD0V61ekKd9f4dH5s0DF5He9xv3xBBrxLZwIGQRy3xMPx1fhhCUhYT/VJGzzNeBj1kT3wPTY7elZom/tWUJ8TKDdFYhP15C8Hs1RJcPuGpdrTpAYMFE8MphTkx8TiZ2NoJCFvN2+FsGB+6cin10RmOXvgEejg== 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=Qehw87LqGTidFltWgkPrhahfky/iAtDR2qfeAuhVGik=; b=U4MjRQMKJdzMrcPobkOExW/CHehaG8Xw3m/fVY0P4AZqAXxTibXe93LlHL4MaB9Otu3BuFswbfiRdSc/ndK3WJ7d6Vmp6RBE4q9LuFUXFydP9q5WHXIrYpwIzamH5nUCAuDhkat6b32Hykk+DsDYzEml7kqkqpyoh3YdFDhyD9HYKXWWKCfV+JYf3POcmNaCa7zuld0Pzdn0bNE91UmLXaC1EX4bk0+Cmx/dbr7kgygzwbo8bHSY1zi55lVh/YoZyy90tVR5l9yK4tjXFdYx1IVeGIluEGz5/QOGcaDzvKlN5htCvhxfY686BYOfdXu4Dgim2CN0sGBobPrje0ScjQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Qehw87LqGTidFltWgkPrhahfky/iAtDR2qfeAuhVGik=; b=H2CQtvV8WjypxK5ZICCsD/Z4r4Gj9+qffG/Hgas9e0Vpajrrc7kGLPCKLFt4R4fiOpNE3XXzMoBrHny5F8Xw4gseyyy8/qdIdX9FAzAHYVV1je5pJE0kJxQPGHqI5zWiomUqzcCMikdoTLnxjsiuQGHbdIWIO7HH3rz9phwigYe0YE/zGzK8zYpymM9itzGkxZP4xnshtFgnRkRZk9LWhKyJVBHiIWja1Gv7r25gaCPpZU1OjZwOMFTfEI9MllRF2b6o67/cnQJ4VyJd0j0DaaY3UMHw6MOW9lQPVqaqkZ6CBAtCnGLk4uBZu3jCxzZMIlPsW1OVUQmE/NEN7y6THA== From: Shaju Abraham To: eric.auger@redhat.com, qemu-devel@nongnu.org, qemu-arm@nongnu.org, kvmarm@lists.linux.dev, peter.maydell@linaro.org, richard.henderson@linaro.org, cohuck@redhat.com, sebott@redhat.com, skolothumtho@nvidia.com, philmd@linaro.org Cc: maz@kernel.org, oliver.upton@linux.dev, pbonzini@redhat.com, prerna.saxena@nutanix.com, jon@nutanix.com, jond@nutanix.com, Shaju Abraham , Khushit Shah Subject: [RFC PATCH v1 01/13] target/arm: named_cpu_model: define containers for ID registers and fields Date: Wed, 13 May 2026 16:33:44 +0000 Message-ID: <20260513163356.3033159-2-shaju.abraham@nutanix.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260513163356.3033159-1-shaju.abraham@nutanix.com> References: <20260513163356.3033159-1-shaju.abraham@nutanix.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: CY5PR10CA0003.namprd10.prod.outlook.com (2603:10b6:930:1c::30) To PH7PR02MB10160.namprd02.prod.outlook.com (2603:10b6:510:2e7::19) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH7PR02MB10160:EE_|CH3PR02MB9564:EE_ X-MS-Office365-Filtering-Correlation-Id: bf32e7d2-7c7f-4a77-a379-08deb10d7455 x-proofpoint-crosstenant: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|7416014|376014|366016|1800799024|18002099003|22082099003|921020|56012099003; X-Microsoft-Antispam-Message-Info: hVzzHM/sayyFhpyXaP04FRyFSlmpl/kNYdcXVHi+OnqxlECe2CtSMQRT347gIqqluQOVtNAz4GkJTtsd8pMov5XxzNAPLuxAtYr6EI1/xskeKFtskAEc/YEdX45ibyGxkIfhoO6W7FZITMUqmu/d2RfMo5Ez3rZsQFwIp5Sd2Kc7GWcYQToQKcEQ/5xG6AJYgmW6pHf5BsFLPJ4EucjQwRnHMHubuSWxmbaLw6e5v1HYH9YyaBEV1XP70UW0OTiD+2BA5tDwrYNlwMm3yfbEi/qCxpDXQNin0R0csyaTITFJG10yor3V+tZ3OfPSpbHm0oVNfc63v9MCmmP/pZn3JbLsgY+h3tn9fz53ZZ/bAH6n8us5+MygMvXb60bhvmvGUC6z4qAEkxPbcag2vc67GjstXxQDCX0dJTKxEu5TZYUjip11HOCpOHlQ/rrYr3wC5Lggzpqv8P9a+lI4RiEIBCqe9eEaN599J5nkwU9mA4AuC6+A0Ry8g06s1it4lFvNo85TjcX0eOxoa+80Nryn0zpP74CiLkI5lbcisWfvCrornStpj54wAZ1SMkOa6w9JQaL5jDvUXzy1vNFOBrFfU5IsiW8+u9kwYuUklGlvHoeq8ZvapqKVB8WubFZUz/XDAXumNc/tM184dVDns90CGUGxFgeA74wM+zj7kvL07w3xaCqKWpz/WgO8VvP5LCO/PFcYDWL4yNI3hEfIpxnqV3ElQP2AG3cAqJXH41uCBVc= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH7PR02MB10160.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(7416014)(376014)(366016)(1800799024)(18002099003)(22082099003)(921020)(56012099003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?9oy0oFDFhOnoF8Aiq2eTpHQPZizBpgHH6tQjPYPOKSM6xP089vSdTEG8Yxoi?= =?us-ascii?Q?pMbri8s57Ji+b6Mrtw7CMdhlQ6c0e4cnA/lMY8+KYoDauVBCSnFbCG/yjBgi?= =?us-ascii?Q?wo5YquBB0eShLW9oN5U2jhhbDReYhZGZKBEeaxyfW32WVP1GClBt1n7exxN2?= =?us-ascii?Q?cxae99v3hG4JT1jJZSbBIGaW83pimv2bO/bRzu3e2C98TNxC5KZxN1nVf55B?= =?us-ascii?Q?6QDZ1D61zViDQn8O8rany67e/eEAPgmM2LJQfpM9O6Z4MrkqaT9Of34uuPT1?= =?us-ascii?Q?czmaF3gev5ZO1eCNdiR/ZS1FL1Efo3T2/dmoPTqjTBpOlpxX/Oir9xmqZi0h?= =?us-ascii?Q?XnjDVznYbaeAapww0ai/G7PEZEHx9umfRNxcKlWMxuuvoV6BE8mM04eap3/M?= =?us-ascii?Q?eeZXXhLmO/g/rzPsf3SOuh9xrmquu45HGwRfdKecggp6k4rjQMbVgIiB/nbQ?= =?us-ascii?Q?zYAGeDZ3fYquIxm/CtFK7bCBgSPac1zCZoouzOz45C6zkDUkehUr7uQxpmHo?= =?us-ascii?Q?84ZQCGJ+JG3WQXW7/1L994uhBwfl6igdjsbb3kABdi8O9nSFXEHScRsdcXIE?= =?us-ascii?Q?T4KmLStnRcPuNciTHM1SJV/qc+0adxthma2FkJzl8BUw2lBg1bLjSe7ylh33?= =?us-ascii?Q?B8ENnGXyvYbUPMGZEuLJjP6FzOobpT1XoEk9XSSE6kuhABU8BvNUYviU2zKJ?= =?us-ascii?Q?WwXVmU86PxuMSb1KvJ0N1r6R3u+7b4wgf3VA3iCJ+ckr2d3y4tbpqfRz/Ny3?= =?us-ascii?Q?mYqZqAyQgpXO8ZoWq8udaKrk9HTOLULA7riV6Z/jgY+1kisNdZKkAZ1+MG2S?= =?us-ascii?Q?WhE9ZTAYTe95KYgFjwok2S09d3z9H0GqqsskIak8D4hW5RTZniI37/heM1Pc?= =?us-ascii?Q?wCi1Z9hwuZ5t3rEjiN8YGwA1kbtlK7IKsjYhDKmeSqtra7hX59s8AYXVeqbq?= =?us-ascii?Q?wU4uEg6NhpdjqGYH/Y4fLtRR8rCBmoAOeNmFoD2Zx6Ulm+1Kb81jY+n5ZCfJ?= =?us-ascii?Q?AhSh+Nj7841mZautAFkcpFLysLJK1T+cyPjwAM47wDjDlWub5YSiUqLpRFWo?= =?us-ascii?Q?4DpvmHWqvh6YTEZQiZPbbZFlfpLcelqSG0g4vZmmzgslrZLFjzb/ArXeGxlb?= =?us-ascii?Q?/KHbT5mq1gnhbUIWg4gwU7V9yE+BUuify9eXJBbwyPbB0BvZawCn4YnL1/xD?= =?us-ascii?Q?R8nUmyShgeUT7ZbxtfHlGTeX+2fPCWeGhEtJQZVW1GcdhRGLgjSxRDaWQkh7?= =?us-ascii?Q?bHN4iQB1MXhINI4IxVzV+0IFxOcEuztrUG+XgQB/QAR/vZW7IhgEyRsfH0Pt?= =?us-ascii?Q?M/sekdfNLIEOld1VhDBlem9k5GW6UvMhcDeqqdqFXtsX5BGX2MPFA2qDehtV?= =?us-ascii?Q?KI/BDKa5YsU6+6PLi/mgPQibEoloNOTmzDcXsSDv5+Wje0+d0raKbWrPnzjP?= =?us-ascii?Q?cTpwIfncM7B7btpGVDAZbQjPZ/ypFuAF/NKqeV5pIxlIXHsBatWSzaKYUz2O?= =?us-ascii?Q?Iirf4h+Qmd4Pmva8Xnt4Rb5MoLWFzoR1y+A3A8C6kVefkm5U2lnSM2lDAQtI?= =?us-ascii?Q?PK0WuNk+yFkCvwoBr0PaIt1thic3wmnEPIKpyGkmaNqPUwvUgzCMO98iwpgI?= =?us-ascii?Q?Y3VzfMfmhr7l9SyLqs/jfx1F7hwDPNXdHf7UyrTRSBdM+AcTYDjzxaxRUqJD?= =?us-ascii?Q?L4fjjM8Z8pQvnTxcHh9Cyp/VwJ/sjIdSSJB40LzRLbvx/UmPG3+nBdl90Z2z?= =?us-ascii?Q?622cpEbEaqDh62cHetwGoE/oQQJcKjI=3D?= X-Exchange-RoutingPolicyChecked: P18ncruISGsx9TnI2ABlkM6tOeyTF0fALuLYcIUFx6Buu6I/Baa9gNRzAdVRyRG7TcBEaZVGUtUXlBZ4VT+sT8P1g4HzI+CAHA9flWLW0Udtg/7FZfGu1xfVmlX4TMJcREVxU12H9rht49X7+SNnSbS/i4XYeQ9/ZBS9euwryOSc4BjRLM8BWOSpd2HXt3HG+sWmp68bXB6qtaMR5gwjoTwYpbo97ub9bBuXzhCcg/i7sGKpXuUbbl4Y94jScY7hdNm9gWvBooy0VHtu6GiXH+LlJu+XwyWYx36ELXjCjib6pXDr040xoyVXfbtnfkiwHiZQ7EniGDyP1Kse7DosVQ== X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: bf32e7d2-7c7f-4a77-a379-08deb10d7455 X-MS-Exchange-CrossTenant-AuthSource: PH7PR02MB10160.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 16:34:07.9287 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: GbgNYKgMqjUL2nbQCqGm5OzydReUWXIjRoNx/gqtEE2Nnyi6MeOL7dAGqf/p5EEtxN4heVGzY8UdFsi7Tqw6ydTc7EzjD8SlkdHqFgq8Qaw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR02MB9564 X-Proofpoint-ORIG-GUID: LQlOHEOEweKRbfIAZpJ6RVyAXbvCkB6i X-Authority-Analysis: v=2.4 cv=P7QKQCAu c=1 sm=1 tr=0 ts=6a04a803 cx=c_pps a=wpg3e3TFAlO0qOiIlNsFBg==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=NGcC8JguVDcA:10 a=0kUYKlekyDsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VofLwUrZ8Iiv6rRUPXIb:22 a=VUi8bpU7OL1Oj2-RSIOF:22 a=64Cc0HZtAAAA:8 a=yZbjWOkPDpPANDiVIK4A:9 X-Proofpoint-GUID: LQlOHEOEweKRbfIAZpJ6RVyAXbvCkB6i X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDE2OCBTYWx0ZWRfX6U7FwoAd58q+ juXK+uEryr5LpJSHAngDCfZMlmOnDErlbHWQLPOj/b0xitTsvnCL0ZYMcW65l+KYlNYafQIPh+e mlQCsCixiVtLQRceNbtx1sLqXHmUQyfdwgfXdN8zBGaiECDLMOsTl0sRcQ7LxWCz0976tvW92cb Phe9e5qiQEfJJs/U/F34JQO2ELRtMPOHo1svoI/4P/xCa+SZjxN3GkEOsThG1U7LsfCm7Yvg6Xb jGnQ0NOZU2QK5AJX5dS66BDJYUHu2fqRAOQ2SRHWva18SW9nh1EWcCjg5MpJV2rpKEEpsGvpjDL mNYY8LKugIbpgge/nvdGBdCn/gQLcpSVkJnIkyGa6ND5cxZ4OMyVWnSTRKVKiRO9/1/Bet8uCJQ J/tAhLpV66w+PrfdIOrZE5KD0nAc5gp8LOn3p96GEq3rQ594KD4Mw7Afq4pEcsneMvADhBunduX P3Q9GDBepx+oOzSOkTQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-13_01,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Reason: safe 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=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.155.12; envelope-from=shaju.abraham@nutanix.com; helo=mx0b-002c1b01.pphosted.com X-Spam_score_int: -31 X-Spam_score: -3.2 X-Spam_bar: --- X-Spam_report: (-3.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.445, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, 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: qemu development 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 @nutanix.com) X-ZM-MESSAGEID: 1778690153613158500 Content-Type: text/plain; charset="utf-8" Define data structures for mapping the ARM ID registers and ID register fields. Co-authored-by: Khushit Shah Signed-off-by: Shaju Abraham --- target/arm/cpu-idregs.h | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 target/arm/cpu-idregs.h diff --git a/target/arm/cpu-idregs.h b/target/arm/cpu-idregs.h new file mode 100644 index 0000000000..403190cbd7 --- /dev/null +++ b/target/arm/cpu-idregs.h @@ -0,0 +1,41 @@ +/* + * ARM ID register field table -- shared declarations. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef CPU_IDREGS_H +#define CPU_IDREGS_H + +typedef enum ArmIdRegSafeRule { + IDREG_SAFE_LOWER, + IDREG_SAFE_HIGHER, + IDREG_SAFE_HIGHER_OR_ZERO, + IDREG_SAFE_SIGNED_LOWER, + IDREG_SAFE_EXACT, + IDREG_SAFE_ANY, +} ArmIdRegSafeRule; + +typedef struct ArmIdRegArchVal { + uint64_t value; + const char *name; +} ArmIdRegArchVal; + +typedef struct ArmIdRegField { + const char *name; + uint32_t shift; + uint32_t length; + ArmIdRegSafeRule safe_rule; + uint64_t default_val; + ArmIdRegArchVal *arch_vals; + uint32_t arch_vals_count; +} ArmIdRegField; + +typedef struct ArmIdReg { + const char *name; + struct ArmIdRegField *fields; + uint32_t fields_count; +} ArmIdReg; + + +#endif /* CPU_IDREGS_H */ --=20 2.52.0 From nobody Sat May 30 18:35:08 2026 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; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass(p=none dis=none) header.from=nutanix.com ARC-Seal: i=2; a=rsa-sha256; t=1778690181; cv=pass; d=zohomail.com; s=zohoarc; b=nKDGe4MkMBWsHXT/hK90lfcIr1w2pAfMGh0GwiK1PpU9Of+cGwUfT24/fuVrc7xiOaS3fSM8RVWVzsHgeie0LojrpcI0xoqeR75SYz8i0xzNKXfDtQnGTgQrQJrxKzHDqpDnrDVupzYlO6fvnQK5IhS7cLqL/5i2KUMcd+euSSg= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778690181; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=GXJ4TkC4GU3PilMmllwe61pRKZJq9E1JgZ0DWo8WIv4=; b=O35w5vymSMnzcbPjZDs5/ZdwL2jP+0KKRvhfrjn07q36oiecNyfHTkFYhnudYzrAtEypgeFy2y8IPUR+9lyAY7LbIYLlhKcjFxMgIcKkOSZyJqlNOGfaAmci29IQ+DA1cs1JpgIcMEtXk+Pc/qjvkSQHjYxInesw0cVXp2GKHhs= ARC-Authentication-Results: i=2; 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; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1778690181789176.21833535443204; Wed, 13 May 2026 09:36:21 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wNCYt-0004zg-Vm; Wed, 13 May 2026 12:35:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wNCXo-0003Ls-SO; Wed, 13 May 2026 12:34:51 -0400 Received: from mx0b-002c1b01.pphosted.com ([148.163.155.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wNCXj-0000kQ-D8; Wed, 13 May 2026 12:34:48 -0400 Received: from pps.filterd (m0127844.ppops.net [127.0.0.1]) by mx0b-002c1b01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64DGLWup4150443; Wed, 13 May 2026 09:34:12 -0700 Received: from ch1pr05cu001.outbound.protection.outlook.com (mail-northcentralusazon11020111.outbound.protection.outlook.com [52.101.193.111]) by mx0b-002c1b01.pphosted.com (PPS) with ESMTPS id 4e3nva674u-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Wed, 13 May 2026 09:34:12 -0700 (PDT) Received: from PH7PR02MB10160.namprd02.prod.outlook.com (2603:10b6:510:2e7::19) by CH3PR02MB9564.namprd02.prod.outlook.com (2603:10b6:610:120::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Wed, 13 May 2026 16:34:10 +0000 Received: from PH7PR02MB10160.namprd02.prod.outlook.com ([fe80::4ed7:5c74:48e0:ff23]) by PH7PR02MB10160.namprd02.prod.outlook.com ([fe80::4ed7:5c74:48e0:ff23%7]) with mapi id 15.20.9891.021; Wed, 13 May 2026 16:34:09 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= proofpoint20171006; bh=GXJ4TkC4GU3PilMmllwe61pRKZJq9E1JgZ0DWo8WI v4=; b=kwgT3WjUhbafrV0hNfsiPE1Sog5xkUgUjpmDIjQGYxDF+Gi4PTyp/R+6z i3vm0sCetD9aj9BiShoBpSEm5xX53o+iNd9hCjYGuZJqTZNn5UBPSs6I70O6FhQ1 tyt8ML+6raGzdHEOL4b83XUtnKzVv+c2lNF0tVSY416z54E9HdXAMCv09JtXNuM8 GXoFM8UqvnoL4LSzmP75W2mzvYxz97dlBVqREZZQh4ZpNP2rA0JBPeOgokVWp5EE Zc/K541EQLSfZcSj3raEXtF0GA3ps/VO8OIQ8WO4o1minD52Sk0ARJMjOOHGtvSA WTyTMu2HREFXSwXHIkUtBYrmo7Bhg== ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=avnlO3R515ET2wpnaeuUlNX71XQPk7keYseMXZhisFVxKwccQ8IPDpZ11UQ/MuqIjaK1vK02kl6euAXVF28MmMblgHcNHfOedNNAb68rJA4Sz/oLfqj52C0ae53rAZNODaj1sLCqRjKaRqrhKu2d8gq3FeDMzCpa/Vkli987+ZVzSRnoYKA+naqCRcnle/Lw3XOHGnNPTDopSK55Dn/vO485Q6KgTGL6FrH+OzhWgo116C5bzy7DwRS4J1797Cu8demxHZPIKPn2bmo41p3CLY+h5+uS5oEO4sjxEB9RYs/20/qattRU1DoB9/0Sc65d31uuIHFRFhSbvHc2bc80JQ== 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=GXJ4TkC4GU3PilMmllwe61pRKZJq9E1JgZ0DWo8WIv4=; b=BIfDSoJsI0L7petiKUECPzElUv4GVYpke+90v92Tx7dqWp0XrL2VUJ72VZ031xAngJveRx5UMWix2cXZhQ+GgZzT+Z/lpOgrzikM4YVV4O/u1xQ2TXcbNs1gGWPP/CwOj/uiGeTfZGbWhwIzczJS1vpVpfPxbnK2f2v1/ZYYZoasnReKlM5hHLTmjP40Cb8WNSFSctV6sxoS9a4ctRdMi5G9BuEUQk+WLSqR7EVVmVUKYsajE6yYW8OoVy0xygvB2AxCXi8PNiWk1Jah/wyIIpwaPe7XVyGEXNlljhiWSxc/hY6i1vpDJOUjuJwgfs9Nt+lC9rLrcuZB7B5TyYOkfg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GXJ4TkC4GU3PilMmllwe61pRKZJq9E1JgZ0DWo8WIv4=; b=oIJdQL1Mzep+eHRwVrrhMvtknY7c+9eY7llgPftHM/lJai3BPo98vqaIAdR0iKv1BF3tNj9ir8j72s5iG/vPo0koioVKATQaqh3lXs1YBORBY/3y6ExItxtqfBPRNIdIw9k0IhfYO72EWK/QpIuIi/dQRg4T5Pvqjyf3r5F8Bqx2tobX8Pii6NE+XPwtr1ZdVQnyU1zDt9Tsj2l2ctG4bKLvLbE0JtStLfEYsJnRHOdHH2rKIC0PNLEIiHWyGikHeBw13rpiIZ+hq56bJGVCwNA0OqmE4u3kJ5HlQ2rVznZihrAJ7jHCaha0yXLjiNFcm/tj1+THxw+2tjwoGq0zMw== From: Shaju Abraham To: eric.auger@redhat.com, qemu-devel@nongnu.org, qemu-arm@nongnu.org, kvmarm@lists.linux.dev, peter.maydell@linaro.org, richard.henderson@linaro.org, cohuck@redhat.com, sebott@redhat.com, skolothumtho@nvidia.com, philmd@linaro.org Cc: maz@kernel.org, oliver.upton@linux.dev, pbonzini@redhat.com, prerna.saxena@nutanix.com, jon@nutanix.com, jond@nutanix.com, Shaju Abraham , Khushit Shah Subject: [RFC PATCH v1 02/13] target/arm: named_cpu_model: Add ID Register Fields Date: Wed, 13 May 2026 16:33:45 +0000 Message-ID: <20260513163356.3033159-3-shaju.abraham@nutanix.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260513163356.3033159-1-shaju.abraham@nutanix.com> References: <20260513163356.3033159-1-shaju.abraham@nutanix.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: CY5PR10CA0003.namprd10.prod.outlook.com (2603:10b6:930:1c::30) To PH7PR02MB10160.namprd02.prod.outlook.com (2603:10b6:510:2e7::19) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH7PR02MB10160:EE_|CH3PR02MB9564:EE_ X-MS-Office365-Filtering-Correlation-Id: d9b28a3b-e6fe-48e9-849d-08deb10d7572 x-proofpoint-crosstenant: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|7416014|376014|366016|1800799024|18002099003|22082099003|921020|56012099003; X-Microsoft-Antispam-Message-Info: h4Kcb6oG4ONJ2/V6FE11fxgoaxQ+dYoJefYCaOgfpbx58bs1TgG0a9ID91orViDVLEswIlSkGvh6WoJ6SWChkGAwkOjt3CkGsrc7yNvqjKa9bj7tDqKUeXdWZoGVxq9DXd+80anx67kXWdAdCeq9WmMNn/l2KudUC9FJ8jp9R7X1g/YJ2t9tgnpbyP62Thly9udZ1K7FUbKUqu9HEZINS6Y4NYH4Qn/FypyDfO/t6Yvr2pr9RcfY7TXaV8kYWqzLaXbuf11bGPyr5bHotKRUHIJur1tBbPppRJVsaF13jqhzxNzpqyXAGXeA78pbPA9bZ+IOi0BrRAXs2K5oadPn8OFRYf08jVusAWJViXWyN1lzijxoG/cnaVr3mNqWpXgEBDs0aDYxGJhpzsnbu1rUI2RZs/9Vdfk3YI5LM7JeEqndmgR8ebhlPTcWnQMj11kNwiXOC0lGjKUGLY/bT1X6Ad61F7JB8b4t7kx8SJ/9FV5v/5/tlDmaJB2AxNLLiCwrRdWBRYQlFJv7rMaMMdTCrIgC/88/Ynfvd9R6s7snDWWQqAiTZ79npB7vJ1uNX0AP0A+7/r/R0cmCQKeLf1XkUb+zNy8HsdOFB/jRG8cY+YvVJFtkwWgE0m1Mu0gWfcyUE6fh1wpAQLCTlsl+f8PUV1J8/b++UYpb2vvuVnaZzRGcGFrWa0UHqFP7/+IqwqKK8xDlpOy7tcJrHwHJzAavdoQrSJ+/cheUJOVGEsjUPDE= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH7PR02MB10160.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(7416014)(376014)(366016)(1800799024)(18002099003)(22082099003)(921020)(56012099003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?pVdHhVTCMdlVWf4sphuZr6xs3rfTPfLbX8EXua6CyV9l0VTPZShBLAw6owoW?= =?us-ascii?Q?SL3B34PaHL6lKUFCMt6vUPj0AZydcnnMoHSE0sSPotn450F89nqQp+uTDoLI?= =?us-ascii?Q?GSOIqBQfx2hC/atnGLILi8dWmdibrnMKpFNI0Zs4Uwtxc8pHMKPz9XFzX4TT?= =?us-ascii?Q?B+zTWF7bBm04QWP4MDa8Z5qBlaDaGv3qYnP4IDDLvgFXa/RsrSAgRn7EJebH?= =?us-ascii?Q?E3jQpDCJllMdaJUnuiiok67nxLjLrWP6DZDNbU1JdsdvEkdxX+TstPfd5qEd?= =?us-ascii?Q?PFF9fpNR+cCeCwDRm3CEaHlw+fLI30216Xm20Z5K2hqoWM5o3ok5ZTBXjroh?= =?us-ascii?Q?4r+pU0C9EN28XC27HJVJfOo54Uqh4rAwzdMQ+rjXf5V+XgshY0j4PvXNUrzo?= =?us-ascii?Q?YZWhEoRu5apRIFAsbdeo2PAnwyMCVZ6VeI8cvjHHokAJj6iBz7nuKxiA5Jbe?= =?us-ascii?Q?/FbaJV4W5qlUlo2iB3NeTK6m9MNn2SqtgOtOJUYHZRf7ylPFGvrBT0LDlTsF?= =?us-ascii?Q?aQ3SaU++IEE7/ZW6197/JuzwguWHPcdOD6NWUtEvxbkxS7BvLcIa6zzYm9kJ?= =?us-ascii?Q?/fj0hmFbJeYh6LO4R5KTQZTyU+9xH6c7hm1HnFHTAeVBg063b9hC9ZRwkPGQ?= =?us-ascii?Q?wGDOqK/w1Xxz5lyDnevdjHEW9QOZ7IhoQ+I1nipKAFimGAAdHYmai5+HigPL?= =?us-ascii?Q?I0csMr6p4yIbfmIsooFZXMKZPmH0c9/zYOxjuAMgAgRjl/+VelZTuXXfQdKU?= =?us-ascii?Q?j8tKgCeHFj7T6ZzVY7Yqr2CPOv6Aa61AIArIYftogdIG5C2DKM9LDoOTf3oL?= =?us-ascii?Q?XZqeioYlXFy2HCYpRigjy93lYlXiqKsQ6zBAZOfjzHHAKidxtTafXiPQoqjM?= =?us-ascii?Q?f+OzgF861EEwXwdAIEJkZFftUlPd1/PA1N3E6nKnGbPH89pH+qSAiNK3yiFv?= =?us-ascii?Q?78l6MyJ4zqbHXLJ1mJdMumavRziXOwIdwuogc77Nqu14xsUeMtXQMSxfjG+8?= =?us-ascii?Q?E8dWI1zbKkQCAGqhvGWEo1jELsEheQ0TMEawLx/FASfIWsol76tH65lY7Ct1?= =?us-ascii?Q?AWKPmtH3gK5LDWaPHmFW2U89fxS5go6yFw3Ccg44FRJCaBF5dFWYdvkuSR34?= =?us-ascii?Q?L3IuzhV22XW19Hm7p641sLBdoinpezxkhZEVw450E1yU0ZkXgA0p6ptovB44?= =?us-ascii?Q?odJloIdmi1NxRVfamE4vmHEvY3KUvqEZFgma7PNR0EAWgCrRu/zvef9WSDOI?= =?us-ascii?Q?xZRbj8taIKNCfloO4uc+5zej3rCOcrbmyZbT4OFJy0H1+w00VS/s/oG6tM/u?= =?us-ascii?Q?728/6RHrwHsbRG+bzTaiwOwYzIKZFIm7wLLzV8KycJpCJYfyu2DRJRX6YbnE?= =?us-ascii?Q?QTKg0Gk6ZBekhgtrM3iZRe5vQRYLZnl1u5CsMJHjNZAS/fXCPldpowRGE+IE?= =?us-ascii?Q?zbbeYlHPumN3eYfWq9HOA24VaXspPjqwEgdq7vDvBOYlFvTcWA6bPAj1LRAx?= =?us-ascii?Q?W2A4r3LnKHDxlpQuUzKbenvU5fEBfP4K36UUinY5dz7tqagDkpxqm0WKqVof?= =?us-ascii?Q?CH5tTVvDqpjqUoWjLLS7FJHJheNIKg5b3UQtjqCy6uy3WUUxlRzmyOezt1yx?= =?us-ascii?Q?KGDpJyw912GRkcf9j07m0cL770xznOauNz5JZUvqGMVq0XLUgDr4J+Q5oFUZ?= =?us-ascii?Q?VwmF4RcyBfNnIeQfXxSPiU/MrRn8ZYUX7ql7F0idHHi1r19MlYSIR0Cu9mTs?= =?us-ascii?Q?pPAHUb6qjWeMss+bwG945KeoZMy89JI=3D?= X-Exchange-RoutingPolicyChecked: F/Y+zbUNHnXRSG+2z8s1sL5q9IEqQiyDck4flEL1MfZ7NXsF5LOAPEwNyzBjg6yhrpknbZD9KbONHzE+CngB53+8L2E8N8y7MW0z72EL4bKniWyTTWwImgMz4IW+TKgdLbubsvMLYZ1SR/i2sfpur/qyk+jR6yr4ibAyVU0zR6v1pwF98UX/GL6j3c+akYpaYqKaHzwdu/+3IdUr28fq8sAH3ly89QEZKBpVqqTHADDURjVaNMuqbkBcSlEGf1DLlqBeyVBURbz9GgWpJTDQ/sSmR5nvnxowVkPhKTf2riB5MELMRgcVNZauKfvVV+RzHCyHSPLSXhlXRyIlP7/AqA== X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: d9b28a3b-e6fe-48e9-849d-08deb10d7572 X-MS-Exchange-CrossTenant-AuthSource: PH7PR02MB10160.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 16:34:09.9038 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: AJY0LEo5dDyeE338lwPDCVKr7aMSCxjXlO/Om8U2AYA7a/0lUFQ9Eyq3X/YOptQggW+psW7JpuZANwKteqKtI2F3HajyNeCeMZ0r9rTIxLo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR02MB9564 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDE2OCBTYWx0ZWRfXy+gnJTyKHBPZ QzH03yj6o5M9qks9R/6s0QjuwImrLKAsGsuq9AwgVwJcn6gDn7mvfj74D0aiUNqRlhZ+UzUfhoi Sz7QUWOe81fl1ULf4Vcw2XECss/v3X33TYRGUFWpYlWtQMeG7yieft5mU/W6IWU3h+klkf6OjeY L2RZ8gONUKZd99RgcZwPnUzTgCLs1aQPN+bH/7/5nfX38BvFUIhldgqMQyieK6Na4AD0OzYNQuf EXz3BN9d8MS92X9FOozrRGyGTW+nJwZJu+rzDcQ18NUWhzAFm6rfJvHtlRWD6/HdYSSLmWumR6L UqCpNjvply+JV5EOTdkG2zK5I2qoGdTwVGeq0HCS3YME0y3ysUagVmpxCaCAUjL9hcnW8a6CTCG GomYT/Ka+DuO6rLpf2T+Peu62Pw5WBpZpTk7LtDnYCKEVzCmYi3rHlZ9seQDAfUqtPRdOBqzh/4 L84bw/S6VMtoTMpt86Q== X-Authority-Analysis: v=2.4 cv=evLvCIpX c=1 sm=1 tr=0 ts=6a04a804 cx=c_pps a=ZUDVJbHKkZYoAWA4fONUdg==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=NGcC8JguVDcA:10 a=0kUYKlekyDsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VofLwUrZ8Iiv6rRUPXIb:22 a=0LlEyIVc8U2lsR7dKhuH:22 a=64Cc0HZtAAAA:8 a=T-lFrMnA8onTQdNMNegA:9 X-Proofpoint-ORIG-GUID: 2UGvCPndxxCSqnSZ_e6AGUT0X0DVDQA3 X-Proofpoint-GUID: 2UGvCPndxxCSqnSZ_e6AGUT0X0DVDQA3 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-13_01,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Reason: safe 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=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.155.12; envelope-from=shaju.abraham@nutanix.com; helo=mx0b-002c1b01.pphosted.com X-Spam_score_int: -31 X-Spam_score: -3.2 X-Spam_bar: --- X-Spam_report: (-3.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.445, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UPPERCASE_50_75=0.008 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: qemu development 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 @nutanix.com) X-ZM-MESSAGEID: 1778690184008158500 Content-Type: text/plain; charset="utf-8" Add a declarative description of every architecturally defined field in the Arm64 ID registers in cpu-idregs.h.inc file. This file will be included multiple times with different definitions to build the per-field arch value= s, per-register field descriptor arrays, arm-idregs table etc. The architectur= ely defined values for each ID register field is extracted from kernel's arch/arm64/tools/sysreg file. The safe-value tags and default values are derived from the kernel's ftr_bits array. Aarch32 ID registers are added with dummy field so they can be defaulted to 0 by later commits. X-macro structure: IDREG_START(REG) IDREG_FIELD_START(REG, FIELD, SHIFT, LENGTH, SAFE_RULE, DEFAULT_VAL) IDREG_FIELD_ARCH_VAL(VALUE, NAME) ... IDREG_FIELD_END(REG, FIELD) ... IDREG_END(REG) Co-authored-by: Khushit Shah Signed-off-by: Shaju Abraham --- target/arm/cpu-idregs.h.inc | 1724 +++++++++++++++++++++++++++++++++++ 1 file changed, 1724 insertions(+) create mode 100644 target/arm/cpu-idregs.h.inc diff --git a/target/arm/cpu-idregs.h.inc b/target/arm/cpu-idregs.h.inc new file mode 100644 index 0000000000..5a627631c9 --- /dev/null +++ b/target/arm/cpu-idregs.h.inc @@ -0,0 +1,1724 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +/* ID_AA64ISAR0_EL1 */ +IDREG_START(ID_AA64ISAR0_EL1) +IDREG_FIELD_START(ID_AA64ISAR0, RES0_0, 0, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0, NULL) +IDREG_FIELD_END(ID_AA64ISAR0, RES0_0) + +IDREG_FIELD_START(ID_AA64ISAR0, AES, 4, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "aes") +IDREG_FIELD_ARCH_VAL(0b0010, "pmull") +IDREG_FIELD_END(ID_AA64ISAR0, AES) + +IDREG_FIELD_START(ID_AA64ISAR0, SHA1, 8, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64ISAR0, SHA1) + +IDREG_FIELD_START(ID_AA64ISAR0, SHA2, 12, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "sha256") +IDREG_FIELD_ARCH_VAL(0b0010, "sha512") +IDREG_FIELD_END(ID_AA64ISAR0, SHA2) + +IDREG_FIELD_START(ID_AA64ISAR0, CRC32, 16, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64ISAR0, CRC32) + +IDREG_FIELD_START(ID_AA64ISAR0, ATOMIC, 20, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0010, "on") +IDREG_FIELD_ARCH_VAL(0b0011, "LSE128") +IDREG_FIELD_END(ID_AA64ISAR0, ATOMIC) + +IDREG_FIELD_START(ID_AA64ISAR0, RES0_24, 24, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0, NULL) +IDREG_FIELD_END(ID_AA64ISAR0, RES0_24) + +IDREG_FIELD_START(ID_AA64ISAR0, RDM, 28, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64ISAR0, RDM) + +IDREG_FIELD_START(ID_AA64ISAR0, SHA3, 32, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64ISAR0, SHA3) + +IDREG_FIELD_START(ID_AA64ISAR0, SM3, 36, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64ISAR0, SM3) + +IDREG_FIELD_START(ID_AA64ISAR0, SM4, 40, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64ISAR0, SM4) + +IDREG_FIELD_START(ID_AA64ISAR0, DP, 44, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64ISAR0, DP) + +IDREG_FIELD_START(ID_AA64ISAR0, FHM, 48, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64ISAR0, FHM) + +IDREG_FIELD_START(ID_AA64ISAR0, TS, 52, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "flagm") +IDREG_FIELD_ARCH_VAL(0b0010, "flagm2") +IDREG_FIELD_END(ID_AA64ISAR0, TS) + +IDREG_FIELD_START(ID_AA64ISAR0, TLB, 56, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "os") +IDREG_FIELD_ARCH_VAL(0b0010, "range") +IDREG_FIELD_END(ID_AA64ISAR0, TLB) + +IDREG_FIELD_START(ID_AA64ISAR0, RNDR, 60, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64ISAR0, RNDR) + +IDREG_END(ID_AA64ISAR0_EL1) + +/* ID_AA64ISAR1_EL1 */ +IDREG_START(ID_AA64ISAR1_EL1) +IDREG_FIELD_START(ID_AA64ISAR1, DPB, 0, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_ARCH_VAL(0b0010, "dpb2") +IDREG_FIELD_END(ID_AA64ISAR1, DPB) + +IDREG_FIELD_START(ID_AA64ISAR1, APA, 4, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "pauth") +IDREG_FIELD_ARCH_VAL(0b0010, "epac") +IDREG_FIELD_ARCH_VAL(0b0011, "pauth2") +IDREG_FIELD_ARCH_VAL(0b0100, "fpac") +IDREG_FIELD_ARCH_VAL(0b0101, "fpaccombine") +IDREG_FIELD_ARCH_VAL(0b0110, "pauth_lr") +IDREG_FIELD_END(ID_AA64ISAR1, APA) + +IDREG_FIELD_START(ID_AA64ISAR1, API, 8, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "pauth") +IDREG_FIELD_ARCH_VAL(0b0010, "epac") +IDREG_FIELD_ARCH_VAL(0b0011, "pauth2") +IDREG_FIELD_ARCH_VAL(0b0100, "fpac") +IDREG_FIELD_ARCH_VAL(0b0101, "fpaccombine") +IDREG_FIELD_ARCH_VAL(0b0110, "pauth_lr") +IDREG_FIELD_END(ID_AA64ISAR1, API) + +IDREG_FIELD_START(ID_AA64ISAR1, JSCVT, 12, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64ISAR1, JSCVT) + +IDREG_FIELD_START(ID_AA64ISAR1, FCMA, 16, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64ISAR1, FCMA) + +IDREG_FIELD_START(ID_AA64ISAR1, LRCPC, 20, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_ARCH_VAL(0b0010, "lrcpc2") +IDREG_FIELD_ARCH_VAL(0b0011, "lrcpc3") +IDREG_FIELD_END(ID_AA64ISAR1, LRCPC) + +IDREG_FIELD_START(ID_AA64ISAR1, GPA, 24, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64ISAR1, GPA) + +IDREG_FIELD_START(ID_AA64ISAR1, GPI, 28, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64ISAR1, GPI) + +IDREG_FIELD_START(ID_AA64ISAR1, FRINTTS, 32, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64ISAR1, FRINTTS) + +IDREG_FIELD_START(ID_AA64ISAR1, SB, 36, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64ISAR1, SB) + +IDREG_FIELD_START(ID_AA64ISAR1, SPECRES, 40, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_ARCH_VAL(0b0010, "cosp_rctx") +IDREG_FIELD_END(ID_AA64ISAR1, SPECRES) + +IDREG_FIELD_START(ID_AA64ISAR1, BF16, 44, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_ARCH_VAL(0b0010, "ebf16") +IDREG_FIELD_END(ID_AA64ISAR1, BF16) + +IDREG_FIELD_START(ID_AA64ISAR1, DGH, 48, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64ISAR1, DGH) + +IDREG_FIELD_START(ID_AA64ISAR1, I8MM, 52, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64ISAR1, I8MM) + +IDREG_FIELD_START(ID_AA64ISAR1, XS, 56, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64ISAR1, XS) + +IDREG_FIELD_START(ID_AA64ISAR1, LS64, 60, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "ls64") +IDREG_FIELD_ARCH_VAL(0b0010, "ls64_v") +IDREG_FIELD_ARCH_VAL(0b0011, "ls64_accdata") +IDREG_FIELD_ARCH_VAL(0b0100, "ls64wb") +IDREG_FIELD_END(ID_AA64ISAR1, LS64) + +IDREG_END(ID_AA64ISAR1_EL1) + +/* ID_AA64ISAR2_EL1 */ +IDREG_START(ID_AA64ISAR2_EL1) +IDREG_FIELD_START(ID_AA64ISAR2, WFXT, 0, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0010, "on") +IDREG_FIELD_END(ID_AA64ISAR2, WFXT) + +IDREG_FIELD_START(ID_AA64ISAR2, RPRES, 4, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64ISAR2, RPRES) + +IDREG_FIELD_START(ID_AA64ISAR2, GPA3, 8, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64ISAR2, GPA3) + +IDREG_FIELD_START(ID_AA64ISAR2, APA3, 12, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "pauth") +IDREG_FIELD_ARCH_VAL(0b0010, "epac") +IDREG_FIELD_ARCH_VAL(0b0011, "pauth2") +IDREG_FIELD_ARCH_VAL(0b0100, "fpac") +IDREG_FIELD_ARCH_VAL(0b0101, "fpaccombine") +IDREG_FIELD_ARCH_VAL(0b0110, "pauth_lr") +IDREG_FIELD_END(ID_AA64ISAR2, APA3) + +IDREG_FIELD_START(ID_AA64ISAR2, MOPS, 16, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64ISAR2, MOPS) + +IDREG_FIELD_START(ID_AA64ISAR2, BC, 20, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64ISAR2, BC) + +IDREG_FIELD_START(ID_AA64ISAR2, PAC_FRAC, 24, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64ISAR2, PAC_FRAC) + +IDREG_FIELD_START(ID_AA64ISAR2, CLRBHB, 28, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64ISAR2, CLRBHB) + +IDREG_FIELD_START(ID_AA64ISAR2, SYSREG_128, 32, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64ISAR2, SYSREG_128) + +IDREG_FIELD_START(ID_AA64ISAR2, SYSINSTR_128, 36, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64ISAR2, SYSINSTR_128) + +IDREG_FIELD_START(ID_AA64ISAR2, PRFMSLC, 40, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64ISAR2, PRFMSLC) + +IDREG_FIELD_START(ID_AA64ISAR2, PCDPHINT, 44, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64ISAR2, PCDPHINT) + +IDREG_FIELD_START(ID_AA64ISAR2, RPRFM, 48, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64ISAR2, RPRFM) + +IDREG_FIELD_START(ID_AA64ISAR2, CSSC, 52, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_ARCH_VAL(0b0010, "cmpbr") +IDREG_FIELD_END(ID_AA64ISAR2, CSSC) + +IDREG_FIELD_START(ID_AA64ISAR2, LUT, 56, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64ISAR2, LUT) + +IDREG_FIELD_START(ID_AA64ISAR2, ATS1A, 60, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64ISAR2, ATS1A) + +IDREG_END(ID_AA64ISAR2_EL1) + +/* ID_AA64PFR0_EL1 */ +IDREG_START(ID_AA64PFR0_EL1) +IDREG_FIELD_START(ID_AA64PFR0, EL0, 0, 4, LOWER, 0b0001) +IDREG_FIELD_ARCH_VAL(0b0001, "aarch64") +IDREG_FIELD_ARCH_VAL(0b0010, "aarch32") +IDREG_FIELD_END(ID_AA64PFR0, EL0) + +IDREG_FIELD_START(ID_AA64PFR0, EL1, 4, 4, LOWER, 0b0001) +IDREG_FIELD_ARCH_VAL(0b0001, "aarch64") +IDREG_FIELD_ARCH_VAL(0b0010, "aarch32") +IDREG_FIELD_END(ID_AA64PFR0, EL1) + +IDREG_FIELD_START(ID_AA64PFR0, EL2, 8, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "aarch64") +IDREG_FIELD_ARCH_VAL(0b0010, "aarch32") +IDREG_FIELD_END(ID_AA64PFR0, EL2) + +IDREG_FIELD_START(ID_AA64PFR0, EL3, 12, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "aarch64") +IDREG_FIELD_ARCH_VAL(0b0010, "aarch32") +IDREG_FIELD_END(ID_AA64PFR0, EL3) + +IDREG_FIELD_START(ID_AA64PFR0, FP, 16, 4, SIGNED_LOWER, 0b1111) +IDREG_FIELD_ARCH_VAL(0b0000, "on") +IDREG_FIELD_ARCH_VAL(0b0001, "fp16") +IDREG_FIELD_ARCH_VAL(0b1111, "off") +IDREG_FIELD_END(ID_AA64PFR0, FP) + +IDREG_FIELD_START(ID_AA64PFR0, ADVSIMD,20, 4, SIGNED_LOWER, 0b1111) +IDREG_FIELD_ARCH_VAL(0b0000, "on") +IDREG_FIELD_ARCH_VAL(0b0001, "fp16") +IDREG_FIELD_ARCH_VAL(0b1111, "off") +IDREG_FIELD_END(ID_AA64PFR0, ADVSIMD) + +IDREG_FIELD_START(ID_AA64PFR0, GIC, 24, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_ARCH_VAL(0b0011, "v4p1") +IDREG_FIELD_END(ID_AA64PFR0, GIC) + +IDREG_FIELD_START(ID_AA64PFR0, RAS, 28, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_ARCH_VAL(0b0010, "v1p1") +IDREG_FIELD_ARCH_VAL(0b0011, "v2") +IDREG_FIELD_END(ID_AA64PFR0, RAS) + +IDREG_FIELD_START(ID_AA64PFR0, SVE, 32, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64PFR0, SVE) + +IDREG_FIELD_START(ID_AA64PFR0, SEL2, 36, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64PFR0, SEL2) + +IDREG_FIELD_START(ID_AA64PFR0, MPAM, 40, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "0") +IDREG_FIELD_ARCH_VAL(0b0001, "1") +IDREG_FIELD_END(ID_AA64PFR0, MPAM) + +IDREG_FIELD_START(ID_AA64PFR0, AMU, 44, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_ARCH_VAL(0b0010, "v1p1") +IDREG_FIELD_END(ID_AA64PFR0, AMU) + +IDREG_FIELD_START(ID_AA64PFR0, DIT, 48, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64PFR0, DIT) + +IDREG_FIELD_START(ID_AA64PFR0, RME, 52, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64PFR0, RME) + +IDREG_FIELD_START(ID_AA64PFR0, CSV2, 56, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_ARCH_VAL(0b0010, "csv2_2") +IDREG_FIELD_ARCH_VAL(0b0011, "csv2_3") +IDREG_FIELD_END(ID_AA64PFR0, CSV2) + +IDREG_FIELD_START(ID_AA64PFR0, CSV3, 60, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64PFR0, CSV3) + +IDREG_END(ID_AA64PFR0_EL1) + +/* ID_AA64PFR1_EL1 */ +IDREG_START(ID_AA64PFR1_EL1) +IDREG_FIELD_START(ID_AA64PFR1, BT, 0, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64PFR1, BT) + +IDREG_FIELD_START(ID_AA64PFR1, SSBS, 4, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_ARCH_VAL(0b0010, "ssbs2") +IDREG_FIELD_END(ID_AA64PFR1, SSBS) + +IDREG_FIELD_START(ID_AA64PFR1, MTE, 8, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_ARCH_VAL(0b0010, "mte2") +IDREG_FIELD_ARCH_VAL(0b0011, "mte3") +IDREG_FIELD_END(ID_AA64PFR1, MTE) + +IDREG_FIELD_START(ID_AA64PFR1, RAS_FRAC, 12, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "rasv1p1") +IDREG_FIELD_END(ID_AA64PFR1, RAS_FRAC) + +IDREG_FIELD_START(ID_AA64PFR1, MPAM_FRAC,16, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "minor_0") +IDREG_FIELD_ARCH_VAL(0b0001, "minor_1") +IDREG_FIELD_END(ID_AA64PFR1, MPAM_FRAC) + +IDREG_FIELD_START(ID_AA64PFR1, RES0_20, 20, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0, NULL) +IDREG_FIELD_END(ID_AA64PFR1, RES0_20) + +IDREG_FIELD_START(ID_AA64PFR1, SME, 24, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_ARCH_VAL(0b0010, "sme2") +IDREG_FIELD_END(ID_AA64PFR1, SME) + +IDREG_FIELD_START(ID_AA64PFR1, RNDR_TRAP,28, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64PFR1, RNDR_TRAP) + +IDREG_FIELD_START(ID_AA64PFR1, CSV2_FRAC,32, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "csv2_1p1") +IDREG_FIELD_ARCH_VAL(0b0010, "csv2_1p2") +IDREG_FIELD_END(ID_AA64PFR1, CSV2_FRAC) + +IDREG_FIELD_START(ID_AA64PFR1, NMI, 36, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64PFR1, NMI) + +IDREG_FIELD_START(ID_AA64PFR1, MTE_FRAC, 40, 4, SIGNED_LOWER, 0b1111) +IDREG_FIELD_ARCH_VAL(0b0000, "async") +IDREG_FIELD_ARCH_VAL(0b1111, "off") +IDREG_FIELD_END(ID_AA64PFR1, MTE_FRAC) + +IDREG_FIELD_START(ID_AA64PFR1, GCS, 44, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64PFR1, GCS) + +IDREG_FIELD_START(ID_AA64PFR1, THE, 48, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64PFR1, THE) + +IDREG_FIELD_START(ID_AA64PFR1, MTEX, 52, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "mte") +IDREG_FIELD_ARCH_VAL(0b0001, "mte4") +IDREG_FIELD_END(ID_AA64PFR1, MTEX) + +IDREG_FIELD_START(ID_AA64PFR1, DF2, 56, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64PFR1, DF2) + +IDREG_FIELD_START(ID_AA64PFR1, PFAR, 60, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64PFR1, PFAR) + +IDREG_END(ID_AA64PFR1_EL1) + +/* ID_AA64MMFR0_EL1 */ +IDREG_START(ID_AA64MMFR0_EL1) +IDREG_FIELD_START(ID_AA64MMFR0, PARANGE, 0, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "32") +IDREG_FIELD_ARCH_VAL(0b0001, "36") +IDREG_FIELD_ARCH_VAL(0b0010, "40") +IDREG_FIELD_ARCH_VAL(0b0011, "42") +IDREG_FIELD_ARCH_VAL(0b0100, "44") +IDREG_FIELD_ARCH_VAL(0b0101, "48") +IDREG_FIELD_ARCH_VAL(0b0110, "52") +IDREG_FIELD_ARCH_VAL(0b0111, "56") +IDREG_FIELD_END(ID_AA64MMFR0, PARANGE) + +IDREG_FIELD_START(ID_AA64MMFR0, ASIDBITS, 4, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "8") +IDREG_FIELD_ARCH_VAL(0b0010, "16") +IDREG_FIELD_END(ID_AA64MMFR0, ASIDBITS) + +IDREG_FIELD_START(ID_AA64MMFR0, BIGEND, 8, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64MMFR0, BIGEND) + +IDREG_FIELD_START(ID_AA64MMFR0, SNSMEM, 12, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64MMFR0, SNSMEM) + +IDREG_FIELD_START(ID_AA64MMFR0, BIGENDEL0, 16, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64MMFR0, BIGENDEL0) + +IDREG_FIELD_START(ID_AA64MMFR0, TGRAN16, 20, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_ARCH_VAL(0b0010, "52_bit") +IDREG_FIELD_END(ID_AA64MMFR0, TGRAN16) + +IDREG_FIELD_START(ID_AA64MMFR0, TGRAN64, 24, 4, SIGNED_LOWER, 0b1111) +IDREG_FIELD_ARCH_VAL(0b0000, "on") +IDREG_FIELD_ARCH_VAL(0b1111, "off") +IDREG_FIELD_END(ID_AA64MMFR0, TGRAN64) + +IDREG_FIELD_START(ID_AA64MMFR0, TGRAN4, 28, 4, SIGNED_LOWER, 0b1111) +IDREG_FIELD_ARCH_VAL(0b0000, "on") +IDREG_FIELD_ARCH_VAL(0b0001, "52_bit") +IDREG_FIELD_ARCH_VAL(0b1111, "off") +IDREG_FIELD_END(ID_AA64MMFR0, TGRAN4) + +IDREG_FIELD_START(ID_AA64MMFR0, TGRAN16_2, 32, 4, EXACT, 0b0001) +IDREG_FIELD_ARCH_VAL(0b0000, "tgran16") +IDREG_FIELD_ARCH_VAL(0b0001, "off") +IDREG_FIELD_ARCH_VAL(0b0010, "on") +IDREG_FIELD_ARCH_VAL(0b0011, "52_bit") +IDREG_FIELD_END(ID_AA64MMFR0, TGRAN16_2) + +IDREG_FIELD_START(ID_AA64MMFR0, TGRAN64_2, 36, 4, EXACT, 0b0001) +IDREG_FIELD_ARCH_VAL(0b0000, "tgran64") +IDREG_FIELD_ARCH_VAL(0b0001, "off") +IDREG_FIELD_ARCH_VAL(0b0010, "on") +IDREG_FIELD_END(ID_AA64MMFR0, TGRAN64_2) + +IDREG_FIELD_START(ID_AA64MMFR0, TGRAN4_2, 40, 4, EXACT, 0b0001) +IDREG_FIELD_ARCH_VAL(0b0000, "tgran4") +IDREG_FIELD_ARCH_VAL(0b0001, "off") +IDREG_FIELD_ARCH_VAL(0b0010, "on") +IDREG_FIELD_ARCH_VAL(0b0011, "52_bit") +IDREG_FIELD_END(ID_AA64MMFR0, TGRAN4_2) + +IDREG_FIELD_START(ID_AA64MMFR0, EXS, 44, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64MMFR0, EXS) + +IDREG_FIELD_START(ID_AA64MMFR0, RES0_48, 48, 8, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0, NULL) +IDREG_FIELD_END(ID_AA64MMFR0, RES0_48) + +IDREG_FIELD_START(ID_AA64MMFR0, FGT, 56, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_ARCH_VAL(0b0010, "fgt2") +IDREG_FIELD_END(ID_AA64MMFR0, FGT) + +IDREG_FIELD_START(ID_AA64MMFR0, ECV, 60, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_ARCH_VAL(0b0010, "cntpoff") +IDREG_FIELD_END(ID_AA64MMFR0, ECV) + +IDREG_END(ID_AA64MMFR0_EL1) + +/* ID_AA64MMFR1_EL1 */ +IDREG_START(ID_AA64MMFR1_EL1) +IDREG_FIELD_START(ID_AA64MMFR1, HAFDBS, 0, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "af") +IDREG_FIELD_ARCH_VAL(0b0010, "dbm") +IDREG_FIELD_ARCH_VAL(0b0011, "haft") +IDREG_FIELD_ARCH_VAL(0b0100, "hdbss") +IDREG_FIELD_END(ID_AA64MMFR1, HAFDBS) + +IDREG_FIELD_START(ID_AA64MMFR1, VMIDBITS, 4, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "8") +IDREG_FIELD_ARCH_VAL(0b0010, "16") +IDREG_FIELD_END(ID_AA64MMFR1, VMIDBITS) + +IDREG_FIELD_START(ID_AA64MMFR1, VH, 8, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64MMFR1, VH) + +IDREG_FIELD_START(ID_AA64MMFR1, HPDS, 12, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_ARCH_VAL(0b0010, "hpds2") +IDREG_FIELD_END(ID_AA64MMFR1, HPDS) + +IDREG_FIELD_START(ID_AA64MMFR1, LO, 16, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64MMFR1, LO) + +IDREG_FIELD_START(ID_AA64MMFR1, PAN, 20, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_ARCH_VAL(0b0010, "pan2") +IDREG_FIELD_ARCH_VAL(0b0011, "pan3") +IDREG_FIELD_END(ID_AA64MMFR1, PAN) + +IDREG_FIELD_START(ID_AA64MMFR1, SPECSEI, 24, 4, HIGHER, 0b0001) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64MMFR1, SPECSEI) + +IDREG_FIELD_START(ID_AA64MMFR1, XNX, 28, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64MMFR1, XNX) + +IDREG_FIELD_START(ID_AA64MMFR1, TWED, 32, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64MMFR1, TWED) + +IDREG_FIELD_START(ID_AA64MMFR1, ETS, 36, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_ARCH_VAL(0b0010, "ets2") +IDREG_FIELD_ARCH_VAL(0b0011, "ets3") +IDREG_FIELD_END(ID_AA64MMFR1, ETS) + +IDREG_FIELD_START(ID_AA64MMFR1, HCX, 40, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64MMFR1, HCX) + +IDREG_FIELD_START(ID_AA64MMFR1, AFP, 44, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64MMFR1, AFP) + +IDREG_FIELD_START(ID_AA64MMFR1, NTLBPA, 48, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64MMFR1, NTLBPA) + +IDREG_FIELD_START(ID_AA64MMFR1, TIDCP1, 52, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64MMFR1, TIDCP1) + +IDREG_FIELD_START(ID_AA64MMFR1, CMOW, 56, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64MMFR1, CMOW) + +IDREG_FIELD_START(ID_AA64MMFR1, ECBHB, 60, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64MMFR1, ECBHB) + +IDREG_END(ID_AA64MMFR1_EL1) + +/* ID_AA64MMFR2_EL1 */ +IDREG_START(ID_AA64MMFR2_EL1) +IDREG_FIELD_START(ID_AA64MMFR2, CNP, 0, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64MMFR2, CNP) + +IDREG_FIELD_START(ID_AA64MMFR2, UAO, 4, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64MMFR2, UAO) + +IDREG_FIELD_START(ID_AA64MMFR2, LSM, 8, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64MMFR2, LSM) + +IDREG_FIELD_START(ID_AA64MMFR2, IESB, 12, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64MMFR2, IESB) + +IDREG_FIELD_START(ID_AA64MMFR2, VARANGE, 16, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "48") +IDREG_FIELD_ARCH_VAL(0b0001, "52") +IDREG_FIELD_END(ID_AA64MMFR2, VARANGE) + +IDREG_FIELD_START(ID_AA64MMFR2, CCIDX, 20, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "32") +IDREG_FIELD_ARCH_VAL(0b0001, "64") +IDREG_FIELD_END(ID_AA64MMFR2, CCIDX) + +IDREG_FIELD_START(ID_AA64MMFR2, NV, 24, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_ARCH_VAL(0b0010, "nv2") +IDREG_FIELD_END(ID_AA64MMFR2, NV) + +IDREG_FIELD_START(ID_AA64MMFR2, ST, 28, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "39") +IDREG_FIELD_ARCH_VAL(0b0001, "48_47") +IDREG_FIELD_END(ID_AA64MMFR2, ST) + +IDREG_FIELD_START(ID_AA64MMFR2, AT, 32, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64MMFR2, AT) + +IDREG_FIELD_START(ID_AA64MMFR2, IDS, 36, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "0x0") +IDREG_FIELD_ARCH_VAL(0b0001, "0x18") +IDREG_FIELD_END(ID_AA64MMFR2, IDS) + +IDREG_FIELD_START(ID_AA64MMFR2, FWB, 40, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64MMFR2, FWB) + +IDREG_FIELD_START(ID_AA64MMFR2, RES0_44, 44, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0, NULL) +IDREG_FIELD_END(ID_AA64MMFR2, RES0_44) + +IDREG_FIELD_START(ID_AA64MMFR2, TTL, 48, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64MMFR2, TTL) + +IDREG_FIELD_START(ID_AA64MMFR2, BBM, 52, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "0") +IDREG_FIELD_ARCH_VAL(0b0001, "1") +IDREG_FIELD_ARCH_VAL(0b0010, "2") +IDREG_FIELD_END(ID_AA64MMFR2, BBM) + +IDREG_FIELD_START(ID_AA64MMFR2, EVT, 56, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_ARCH_VAL(0b0010, "ttlbxs") +IDREG_FIELD_END(ID_AA64MMFR2, EVT) + +IDREG_FIELD_START(ID_AA64MMFR2, E0PD, 60, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64MMFR2, E0PD) + +IDREG_END(ID_AA64MMFR2_EL1) + +/* ID_AA64MMFR3_EL1 */ +IDREG_START(ID_AA64MMFR3_EL1) +IDREG_FIELD_START(ID_AA64MMFR3, TCRX, 0, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64MMFR3, TCRX) + +IDREG_FIELD_START(ID_AA64MMFR3, SCTLRX, 4, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64MMFR3, SCTLRX) + +IDREG_FIELD_START(ID_AA64MMFR3, S1PIE, 8, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64MMFR3, S1PIE) + +IDREG_FIELD_START(ID_AA64MMFR3, S2PIE, 12, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64MMFR3, S2PIE) + +IDREG_FIELD_START(ID_AA64MMFR3, S1POE, 16, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64MMFR3, S1POE) + +IDREG_FIELD_START(ID_AA64MMFR3, S2POE, 20, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64MMFR3, S2POE) + +IDREG_FIELD_START(ID_AA64MMFR3, AIE, 24, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64MMFR3, AIE) + +IDREG_FIELD_START(ID_AA64MMFR3, MEC, 28, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64MMFR3, MEC) + +IDREG_FIELD_START(ID_AA64MMFR3, D128, 32, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64MMFR3, D128) + +IDREG_FIELD_START(ID_AA64MMFR3, D128_2, 36, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64MMFR3, D128_2) + +IDREG_FIELD_START(ID_AA64MMFR3, SNERR, 40, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "sync") +IDREG_FIELD_ARCH_VAL(0b0010, "ANERR") +IDREG_FIELD_ARCH_VAL(0b0011, "ANERR_IND") +IDREG_FIELD_END(ID_AA64MMFR3, SNERR) + +IDREG_FIELD_START(ID_AA64MMFR3, ANERR, 44, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "async") +IDREG_FIELD_ARCH_VAL(0b0010, "ANERR") +IDREG_FIELD_ARCH_VAL(0b0011, "ANERR_IND") +IDREG_FIELD_END(ID_AA64MMFR3, ANERR) + +IDREG_FIELD_START(ID_AA64MMFR3, RES0_48, 48, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0, NULL) +IDREG_FIELD_END(ID_AA64MMFR3, RES0_48) + +IDREG_FIELD_START(ID_AA64MMFR3, SDERR, 52, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "dev_sync") +IDREG_FIELD_ARCH_VAL(0b0010, "ADERR") +IDREG_FIELD_ARCH_VAL(0b0011, "ADERR_IND") +IDREG_FIELD_END(ID_AA64MMFR3, SDERR) + +IDREG_FIELD_START(ID_AA64MMFR3, ADERR, 56, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "dev_async") +IDREG_FIELD_ARCH_VAL(0b0010, "ADERR") +IDREG_FIELD_ARCH_VAL(0b0011, "ADERR_IND") +IDREG_FIELD_END(ID_AA64MMFR3, ADERR) + +IDREG_FIELD_START(ID_AA64MMFR3, SPEC_FPACC,60, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64MMFR3, SPEC_FPACC) + +IDREG_END(ID_AA64MMFR3_EL1) + +/* ID_AA64DFR0_EL1 */ +IDREG_START(ID_AA64DFR0_EL1) +IDREG_FIELD_START(ID_AA64DFR0, DEBUGVER, 0, 4, LOWER, 0x6) +IDREG_FIELD_ARCH_VAL(0b0110, "on") +IDREG_FIELD_ARCH_VAL(0b0111, "vhe") +IDREG_FIELD_ARCH_VAL(0b1000, "v8p2") +IDREG_FIELD_ARCH_VAL(0b1001, "v8p4") +IDREG_FIELD_ARCH_VAL(0b1010, "v8p8") +IDREG_FIELD_ARCH_VAL(0b1011, "v8p9") +IDREG_FIELD_END(ID_AA64DFR0, DEBUGVER) + +IDREG_FIELD_START(ID_AA64DFR0, TRACEVER, 4, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64DFR0, TRACEVER) + +IDREG_FIELD_START(ID_AA64DFR0, PMUVER, 8, 4, SIGNED_LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_ARCH_VAL(0b0100, "v3p1") +IDREG_FIELD_ARCH_VAL(0b0101, "v3p4") +IDREG_FIELD_ARCH_VAL(0b0110, "v3p5") +IDREG_FIELD_ARCH_VAL(0b0111, "v3p7") +IDREG_FIELD_ARCH_VAL(0b1000, "v3p8") +IDREG_FIELD_ARCH_VAL(0b1001, "v3p9") +IDREG_FIELD_ARCH_VAL(0b1111, "imp_def") +IDREG_FIELD_END(ID_AA64DFR0, PMUVER) + +IDREG_FIELD_START(ID_AA64DFR0, BRPS, 12, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL_ANY +IDREG_FIELD_END(ID_AA64DFR0, BRPS) + +IDREG_FIELD_START(ID_AA64DFR0, PMSS, 16, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64DFR0, PMSS) + +IDREG_FIELD_START(ID_AA64DFR0, WRPS, 20, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL_ANY +IDREG_FIELD_END(ID_AA64DFR0, WRPS) + +IDREG_FIELD_START(ID_AA64DFR0, SEBEP, 24, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64DFR0, SEBEP) + +IDREG_FIELD_START(ID_AA64DFR0, CTX_CMPS, 28, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL_ANY +IDREG_FIELD_END(ID_AA64DFR0, CTX_CMPS) + +IDREG_FIELD_START(ID_AA64DFR0, PMSVER, 32, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_ARCH_VAL(0b0010, "v1p1") +IDREG_FIELD_ARCH_VAL(0b0011, "v1p2") +IDREG_FIELD_ARCH_VAL(0b0100, "v1p3") +IDREG_FIELD_ARCH_VAL(0b0101, "v1p4") +IDREG_FIELD_ARCH_VAL(0b0110, "v1p5") +IDREG_FIELD_END(ID_AA64DFR0, PMSVER) + +IDREG_FIELD_START(ID_AA64DFR0, DOUBLELOCK, 36, 4, SIGNED_LOWER, 0b1111) +IDREG_FIELD_ARCH_VAL(0b0000, "on") +IDREG_FIELD_ARCH_VAL(0b1111, "off") +IDREG_FIELD_END(ID_AA64DFR0, DOUBLELOCK) + +IDREG_FIELD_START(ID_AA64DFR0, TRACEFILT, 40, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64DFR0, TRACEFILT) + +IDREG_FIELD_START(ID_AA64DFR0, TRACEBUFFER,44, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_ARCH_VAL(0b0010, "trbe_v1p1") +IDREG_FIELD_END(ID_AA64DFR0, TRACEBUFFER) + +IDREG_FIELD_START(ID_AA64DFR0, MTPMU, 48, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "ni_impdef") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_ARCH_VAL(0b1111, "off") +IDREG_FIELD_END(ID_AA64DFR0, MTPMU) + +IDREG_FIELD_START(ID_AA64DFR0, BRBE, 52, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_ARCH_VAL(0b0010, "brbe_v1p1") +IDREG_FIELD_END(ID_AA64DFR0, BRBE) + +IDREG_FIELD_START(ID_AA64DFR0, EXTTRCBUFF, 56, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64DFR0, EXTTRCBUFF) + +IDREG_FIELD_START(ID_AA64DFR0, HPMN0, 60, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "unpredictable") +IDREG_FIELD_ARCH_VAL(0b0001, "def") +IDREG_FIELD_END(ID_AA64DFR0, HPMN0) + +IDREG_END(ID_AA64DFR0_EL1) + +/* ID_AA64ZFR0_EL1 */ +IDREG_START(ID_AA64ZFR0_EL1) +IDREG_FIELD_START(ID_AA64ZFR0, SVEVER, 0, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "on") +IDREG_FIELD_ARCH_VAL(0b0001, "sve2") +IDREG_FIELD_ARCH_VAL(0b0010, "sve2p1") +IDREG_FIELD_ARCH_VAL(0b0011, "sve2p2") +IDREG_FIELD_END(ID_AA64ZFR0, SVEVER) + +IDREG_FIELD_START(ID_AA64ZFR0, AES, 4, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_ARCH_VAL(0b0010, "pmull128") +IDREG_FIELD_ARCH_VAL(0b0011, "aes2") +IDREG_FIELD_END(ID_AA64ZFR0, AES) + +IDREG_FIELD_START(ID_AA64ZFR0, RES0_8, 8, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0, NULL) +IDREG_FIELD_END(ID_AA64ZFR0, RES0_8) + +IDREG_FIELD_START(ID_AA64ZFR0, ELTPERM, 12, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64ZFR0, ELTPERM) + +IDREG_FIELD_START(ID_AA64ZFR0, BITPERM, 16, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64ZFR0, BITPERM) + +IDREG_FIELD_START(ID_AA64ZFR0, BFLOAT16, 20, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_ARCH_VAL(0b0010, "ebf16") +IDREG_FIELD_END(ID_AA64ZFR0, BFLOAT16) + +IDREG_FIELD_START(ID_AA64ZFR0, B16B16, 24, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_ARCH_VAL(0b0010, "bfscale") +IDREG_FIELD_END(ID_AA64ZFR0, B16B16) + +IDREG_FIELD_START(ID_AA64ZFR0, RES0_28, 28, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0, NULL) +IDREG_FIELD_END(ID_AA64ZFR0, RES0_28) + +IDREG_FIELD_START(ID_AA64ZFR0, SHA3, 32, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64ZFR0, SHA3) + +IDREG_FIELD_START(ID_AA64ZFR0, RES0_36, 36, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0, NULL) +IDREG_FIELD_END(ID_AA64ZFR0, RES0_36) + +IDREG_FIELD_START(ID_AA64ZFR0, SM4, 40, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64ZFR0, SM4) + +IDREG_FIELD_START(ID_AA64ZFR0, I8MM, 44, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64ZFR0, I8MM) + +IDREG_FIELD_START(ID_AA64ZFR0, F16MM, 48, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64ZFR0, F16MM) + +IDREG_FIELD_START(ID_AA64ZFR0, F32MM, 52, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64ZFR0, F32MM) + +IDREG_FIELD_START(ID_AA64ZFR0, F64MM, 56, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64ZFR0, F64MM) + +IDREG_FIELD_START(ID_AA64ZFR0, RES0_60, 60, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0, NULL) +IDREG_FIELD_END(ID_AA64ZFR0, RES0_60) + +IDREG_END(ID_AA64ZFR0_EL1) + +/* ID_AA64SMFR0_EL1 */ +IDREG_START(ID_AA64SMFR0_EL1) +IDREG_FIELD_START(ID_AA64SMFR0, SMOP4, 0, 1, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0, "off") +IDREG_FIELD_ARCH_VAL(0b1, "on") +IDREG_FIELD_END(ID_AA64SMFR0, SMOP4) + +IDREG_FIELD_START(ID_AA64SMFR0, RES0_1, 1, 15, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0, NULL) +IDREG_FIELD_END(ID_AA64SMFR0, RES0_1) + +IDREG_FIELD_START(ID_AA64SMFR0, STMOP, 16, 1, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0, "off") +IDREG_FIELD_ARCH_VAL(0b1, "on") +IDREG_FIELD_END(ID_AA64SMFR0, STMOP) + +IDREG_FIELD_START(ID_AA64SMFR0, RES0_17, 17, 6, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0, NULL) +IDREG_FIELD_END(ID_AA64SMFR0, RES0_17) + +IDREG_FIELD_START(ID_AA64SMFR0, SFEXPA, 23, 1, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0, "off") +IDREG_FIELD_ARCH_VAL(0b1, "on") +IDREG_FIELD_END(ID_AA64SMFR0, SFEXPA) + +IDREG_FIELD_START(ID_AA64SMFR0, AES, 24, 1, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0, "off") +IDREG_FIELD_ARCH_VAL(0b1, "on") +IDREG_FIELD_END(ID_AA64SMFR0, AES) + +IDREG_FIELD_START(ID_AA64SMFR0, SBITPERM, 25, 1, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0, "off") +IDREG_FIELD_ARCH_VAL(0b1, "on") +IDREG_FIELD_END(ID_AA64SMFR0, SBITPERM) + +IDREG_FIELD_START(ID_AA64SMFR0, RES0_26, 26, 2, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0, NULL) +IDREG_FIELD_END(ID_AA64SMFR0, RES0_26) + +IDREG_FIELD_START(ID_AA64SMFR0, SF8DP2, 28, 1, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0, "off") +IDREG_FIELD_ARCH_VAL(0b1, "on") +IDREG_FIELD_END(ID_AA64SMFR0, SF8DP2) + +IDREG_FIELD_START(ID_AA64SMFR0, SF8DP4, 29, 1, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0, "off") +IDREG_FIELD_ARCH_VAL(0b1, "on") +IDREG_FIELD_END(ID_AA64SMFR0, SF8DP4) + +IDREG_FIELD_START(ID_AA64SMFR0, SF8FMA, 30, 1, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0, "off") +IDREG_FIELD_ARCH_VAL(0b1, "on") +IDREG_FIELD_END(ID_AA64SMFR0, SF8FMA) + +IDREG_FIELD_START(ID_AA64SMFR0, RES0_31, 31, 1, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0, NULL) +IDREG_FIELD_END(ID_AA64SMFR0, RES0_31) + +IDREG_FIELD_START(ID_AA64SMFR0, F32F32, 32, 1, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0, "off") +IDREG_FIELD_ARCH_VAL(0b1, "on") +IDREG_FIELD_END(ID_AA64SMFR0, F32F32) + +IDREG_FIELD_START(ID_AA64SMFR0, BI32I32, 33, 1, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0, "off") +IDREG_FIELD_ARCH_VAL(0b1, "on") +IDREG_FIELD_END(ID_AA64SMFR0, BI32I32) + +IDREG_FIELD_START(ID_AA64SMFR0, B16F32, 34, 1, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0, "off") +IDREG_FIELD_ARCH_VAL(0b1, "on") +IDREG_FIELD_END(ID_AA64SMFR0, B16F32) + +IDREG_FIELD_START(ID_AA64SMFR0, F16F32, 35, 1, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0, "off") +IDREG_FIELD_ARCH_VAL(0b1, "on") +IDREG_FIELD_END(ID_AA64SMFR0, F16F32) + +IDREG_FIELD_START(ID_AA64SMFR0, I8I32, 36, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b1111, "on") +IDREG_FIELD_END(ID_AA64SMFR0, I8I32) + +IDREG_FIELD_START(ID_AA64SMFR0, F8F32, 40, 1, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0, "off") +IDREG_FIELD_ARCH_VAL(0b1, "on") +IDREG_FIELD_END(ID_AA64SMFR0, F8F32) + +IDREG_FIELD_START(ID_AA64SMFR0, F8F16, 41, 1, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0, "off") +IDREG_FIELD_ARCH_VAL(0b1, "on") +IDREG_FIELD_END(ID_AA64SMFR0, F8F16) + +IDREG_FIELD_START(ID_AA64SMFR0, F16F16, 42, 1, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0, "off") +IDREG_FIELD_ARCH_VAL(0b1, "on") +IDREG_FIELD_END(ID_AA64SMFR0, F16F16) + +IDREG_FIELD_START(ID_AA64SMFR0, B16B16, 43, 1, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0, "off") +IDREG_FIELD_ARCH_VAL(0b1, "on") +IDREG_FIELD_END(ID_AA64SMFR0, B16B16) + +IDREG_FIELD_START(ID_AA64SMFR0, I16I32, 44, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0101, "on") +IDREG_FIELD_END(ID_AA64SMFR0, I16I32) + +IDREG_FIELD_START(ID_AA64SMFR0, F64F64, 48, 1, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0, "off") +IDREG_FIELD_ARCH_VAL(0b1, "on") +IDREG_FIELD_END(ID_AA64SMFR0, F64F64) + +IDREG_FIELD_START(ID_AA64SMFR0, RES0_49, 49, 3, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0, NULL) +IDREG_FIELD_END(ID_AA64SMFR0, RES0_49) + +IDREG_FIELD_START(ID_AA64SMFR0, I16I64, 52, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b1111, "on") +IDREG_FIELD_END(ID_AA64SMFR0, I16I64) + +IDREG_FIELD_START(ID_AA64SMFR0, SMEVER, 56, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "sme") +IDREG_FIELD_ARCH_VAL(0b0001, "sme2") +IDREG_FIELD_ARCH_VAL(0b0010, "sme2p1") +IDREG_FIELD_ARCH_VAL(0b0011, "sme2p2") +IDREG_FIELD_END(ID_AA64SMFR0, SMEVER) + +IDREG_FIELD_START(ID_AA64SMFR0, LUTV2, 60, 1, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0, "off") +IDREG_FIELD_ARCH_VAL(0b1, "on") +IDREG_FIELD_END(ID_AA64SMFR0, LUTV2) + +IDREG_FIELD_START(ID_AA64SMFR0, RES0_61, 61, 2, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0, NULL) +IDREG_FIELD_END(ID_AA64SMFR0, RES0_61) + +IDREG_FIELD_START(ID_AA64SMFR0, FA64, 63, 1, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0, "off") +IDREG_FIELD_ARCH_VAL(0b1, "on") +IDREG_FIELD_END(ID_AA64SMFR0, FA64) + +IDREG_END(ID_AA64SMFR0_EL1) + +/* CTR_EL0 */ +IDREG_START(CTR_EL0) +IDREG_FIELD_START(CTR_EL0, IMINLINE, 0, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL_ANY +IDREG_FIELD_END(CTR_EL0, IMINLINE) + +IDREG_FIELD_START(CTR_EL0, RES0_4, 4, 10, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0, NULL) +IDREG_FIELD_END(CTR_EL0, RES0_4) + +IDREG_FIELD_START(CTR_EL0, L1IP, 14, 2, EXACT, 0b10) +IDREG_FIELD_ARCH_VAL(0b00, "reserved_vpipt") +IDREG_FIELD_ARCH_VAL(0b01, "reserved_aivivt") +IDREG_FIELD_ARCH_VAL(0b10, "vipt") +IDREG_FIELD_ARCH_VAL(0b11, "pipt") +IDREG_FIELD_END(CTR_EL0, L1IP) + +IDREG_FIELD_START(CTR_EL0, DMINLINE, 16, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL_ANY +IDREG_FIELD_END(CTR_EL0, DMINLINE) + +IDREG_FIELD_START(CTR_EL0, ERG, 20, 4, HIGHER_OR_ZERO, 0) +IDREG_FIELD_ARCH_VAL_ANY +IDREG_FIELD_END(CTR_EL0, ERG) + +IDREG_FIELD_START(CTR_EL0, CWG, 24, 4, HIGHER_OR_ZERO, 0) +IDREG_FIELD_ARCH_VAL_ANY +IDREG_FIELD_END(CTR_EL0, CWG) + +IDREG_FIELD_START(CTR_EL0, IDC, 28, 1, LOWER, 0b1) +IDREG_FIELD_ARCH_VAL_ANY +IDREG_FIELD_END(CTR_EL0, IDC) + +IDREG_FIELD_START(CTR_EL0, DIC, 29, 1, LOWER, 0b1) +IDREG_FIELD_ARCH_VAL_ANY +IDREG_FIELD_END(CTR_EL0, DIC) + +IDREG_FIELD_START(CTR_EL0, RES0_30, 30, 1, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0, NULL) +IDREG_FIELD_END(CTR_EL0, RES0_30) + +IDREG_FIELD_START(CTR_EL0, RES1_31, 31, 1, EXACT, 1) +IDREG_FIELD_ARCH_VAL(1, NULL) +IDREG_FIELD_END(CTR_EL0, RES1_31) + +IDREG_FIELD_START(CTR_EL0, TMINLINE, 32, 6, EXACT, 0) +IDREG_FIELD_ARCH_VAL_ANY +IDREG_FIELD_END(CTR_EL0, TMINLINE) + +IDREG_FIELD_START(CTR_EL0, RES0_38, 38, 26, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0, NULL) +IDREG_FIELD_END(CTR_EL0, RES0_38) + +IDREG_END(CTR_EL0) + +/* ID_AA64ISAR3_EL1 */ +IDREG_START(ID_AA64ISAR3_EL1) +IDREG_FIELD_START(ID_AA64ISAR3, CPA, 0, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_ARCH_VAL(0b0010, "cpa2") +IDREG_FIELD_END(ID_AA64ISAR3, CPA) + +IDREG_FIELD_START(ID_AA64ISAR3, FAMINMAX, 4, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64ISAR3, FAMINMAX) + +IDREG_FIELD_START(ID_AA64ISAR3, TLBIW, 8, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64ISAR3, TLBIW) + +IDREG_FIELD_START(ID_AA64ISAR3, PACM, 12, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "trivial_imp") +IDREG_FIELD_ARCH_VAL(0b0010, "full_imp") +IDREG_FIELD_END(ID_AA64ISAR3, PACM) + +IDREG_FIELD_START(ID_AA64ISAR3, LSFE, 16, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64ISAR3, LSFE) + +IDREG_FIELD_START(ID_AA64ISAR3, OCCMO, 20, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64ISAR3, OCCMO) + +IDREG_FIELD_START(ID_AA64ISAR3, LSUI, 24, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64ISAR3, LSUI) + +IDREG_FIELD_START(ID_AA64ISAR3, FPRCVT, 28, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64ISAR3, FPRCVT) + +IDREG_FIELD_START(ID_AA64ISAR3, RES0_32, 32, 32, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0, NULL) +IDREG_FIELD_END(ID_AA64ISAR3, RES0_32) + +IDREG_END(ID_AA64ISAR3_EL1) + +/* ID_AA64PFR2_EL1 */ +IDREG_START(ID_AA64PFR2_EL1) +IDREG_FIELD_START(ID_AA64PFR2, MTEPERM, 0, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64PFR2, MTEPERM) + +IDREG_FIELD_START(ID_AA64PFR2, MTESTOREONLY, 4, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64PFR2, MTESTOREONLY) + +IDREG_FIELD_START(ID_AA64PFR2, MTEFAR, 8, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64PFR2, MTEFAR) + +IDREG_FIELD_START(ID_AA64PFR2, GCIE, 12, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64PFR2, GCIE) + +IDREG_FIELD_START(ID_AA64PFR2, UINJ, 16, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64PFR2, UINJ) + +IDREG_FIELD_START(ID_AA64PFR2, RES0_20, 20, 12, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0, NULL) +IDREG_FIELD_END(ID_AA64PFR2, RES0_20) + +IDREG_FIELD_START(ID_AA64PFR2, FPMR, 32, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64PFR2, FPMR) + +IDREG_FIELD_START(ID_AA64PFR2, RES0_36, 36, 28, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0, NULL) +IDREG_FIELD_END(ID_AA64PFR2, RES0_36) + +IDREG_END(ID_AA64PFR2_EL1) + +/* ID_AA64FPFR0_EL1 */ +IDREG_START(ID_AA64FPFR0_EL1) +IDREG_FIELD_START(ID_AA64FPFR0, F8E5M2, 0, 1, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0, "off") +IDREG_FIELD_ARCH_VAL(0b1, "on") +IDREG_FIELD_END(ID_AA64FPFR0, F8E5M2) + +IDREG_FIELD_START(ID_AA64FPFR0, F8E4M3, 1, 1, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0, "off") +IDREG_FIELD_ARCH_VAL(0b1, "on") +IDREG_FIELD_END(ID_AA64FPFR0, F8E4M3) + +IDREG_FIELD_START(ID_AA64FPFR0, RES0_2, 2, 24, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0, NULL) +IDREG_FIELD_END(ID_AA64FPFR0, RES0_2) + +IDREG_FIELD_START(ID_AA64FPFR0, F8MM4, 26, 1, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0, "off") +IDREG_FIELD_ARCH_VAL(0b1, "on") +IDREG_FIELD_END(ID_AA64FPFR0, F8MM4) + +IDREG_FIELD_START(ID_AA64FPFR0, F8MM8, 27, 1, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0, "off") +IDREG_FIELD_ARCH_VAL(0b1, "on") +IDREG_FIELD_END(ID_AA64FPFR0, F8MM8) + +IDREG_FIELD_START(ID_AA64FPFR0, F8DP2, 28, 1, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0, "off") +IDREG_FIELD_ARCH_VAL(0b1, "on") +IDREG_FIELD_END(ID_AA64FPFR0, F8DP2) + +IDREG_FIELD_START(ID_AA64FPFR0, F8DP4, 29, 1, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0, "off") +IDREG_FIELD_ARCH_VAL(0b1, "on") +IDREG_FIELD_END(ID_AA64FPFR0, F8DP4) + +IDREG_FIELD_START(ID_AA64FPFR0, F8FMA, 30, 1, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0, "off") +IDREG_FIELD_ARCH_VAL(0b1, "on") +IDREG_FIELD_END(ID_AA64FPFR0, F8FMA) + +IDREG_FIELD_START(ID_AA64FPFR0, F8CVT, 31, 1, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0, "off") +IDREG_FIELD_ARCH_VAL(0b1, "on") +IDREG_FIELD_END(ID_AA64FPFR0, F8CVT) + +IDREG_FIELD_START(ID_AA64FPFR0, RES0_32, 32, 32, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0, NULL) +IDREG_FIELD_END(ID_AA64FPFR0, RES0_32) + +IDREG_END(ID_AA64FPFR0_EL1) + + +/* ID_AA64MMFR4_EL1 */ +IDREG_START(ID_AA64MMFR4_EL1) +IDREG_FIELD_START(ID_AA64MMFR4, POPS, 0, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64MMFR4, POPS) + +IDREG_FIELD_START(ID_AA64MMFR4, EIESB, 4, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "toel3") +IDREG_FIELD_ARCH_VAL(0b0010, "toelx") +IDREG_FIELD_ARCH_VAL(0b1111, "any") +IDREG_FIELD_END(ID_AA64MMFR4, EIESB) + +IDREG_FIELD_START(ID_AA64MMFR4, ASID2, 8, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64MMFR4, ASID2) + +IDREG_FIELD_START(ID_AA64MMFR4, HACDBS, 12, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64MMFR4, HACDBS) + +IDREG_FIELD_START(ID_AA64MMFR4, FGWTE3, 16, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64MMFR4, FGWTE3) + +IDREG_FIELD_START(ID_AA64MMFR4, NV_FRAC, 20, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "nv_nv2") +IDREG_FIELD_ARCH_VAL(0b0001, "nv2_only") +IDREG_FIELD_ARCH_VAL(0b0010, "nv2p1") +IDREG_FIELD_END(ID_AA64MMFR4, NV_FRAC) + +IDREG_FIELD_START(ID_AA64MMFR4, E2H0, 24, 4, SIGNED_LOWER, 0b1111) +IDREG_FIELD_ARCH_VAL(0b0000, "on") +IDREG_FIELD_ARCH_VAL(0b1110, "ni_nv1") +IDREG_FIELD_ARCH_VAL(0b1111, "off") +IDREG_FIELD_END(ID_AA64MMFR4, E2H0) + +IDREG_FIELD_START(ID_AA64MMFR4, RMEGDI, 28, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64MMFR4, RMEGDI) + +IDREG_FIELD_START(ID_AA64MMFR4, RES0_32, 32, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0, NULL) +IDREG_FIELD_END(ID_AA64MMFR4, RES0_32) + +IDREG_FIELD_START(ID_AA64MMFR4, E3DSE, 36, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64MMFR4, E3DSE) + +IDREG_FIELD_START(ID_AA64MMFR4, RES0_40, 40, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0, NULL) +IDREG_FIELD_END(ID_AA64MMFR4, RES0_40) + +IDREG_FIELD_START(ID_AA64MMFR4, SRMASK, 44, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64MMFR4, SRMASK) + +IDREG_FIELD_START(ID_AA64MMFR4, RES0_48, 48, 16, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0, NULL) +IDREG_FIELD_END(ID_AA64MMFR4, RES0_48) + +IDREG_END(ID_AA64MMFR4_EL1) + +/* ID_AA64DFR1_EL1 */ +IDREG_START(ID_AA64DFR1_EL1) +IDREG_FIELD_START(ID_AA64DFR1, SYSPMUID, 0, 8, EXACT, 0) +IDREG_FIELD_ARCH_VAL_ANY +IDREG_FIELD_END(ID_AA64DFR1, SYSPMUID) + +IDREG_FIELD_START(ID_AA64DFR1, BRPS, 8, 8, EXACT, 0) +IDREG_FIELD_ARCH_VAL_ANY +IDREG_FIELD_END(ID_AA64DFR1, BRPS) + +IDREG_FIELD_START(ID_AA64DFR1, WRPS, 16, 8, EXACT, 0) +IDREG_FIELD_ARCH_VAL_ANY +IDREG_FIELD_END(ID_AA64DFR1, WRPS) + +IDREG_FIELD_START(ID_AA64DFR1, CTX_CMPS, 24, 8, EXACT, 0) +IDREG_FIELD_ARCH_VAL_ANY +IDREG_FIELD_END(ID_AA64DFR1, CTX_CMPS) + +IDREG_FIELD_START(ID_AA64DFR1, SPMU, 32, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_ARCH_VAL(0b0010, "imp_spmzr") +IDREG_FIELD_END(ID_AA64DFR1, SPMU) + +IDREG_FIELD_START(ID_AA64DFR1, PMICNTR, 36, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64DFR1, PMICNTR) + +IDREG_FIELD_START(ID_AA64DFR1, ABLE, 40, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64DFR1, ABLE) + +IDREG_FIELD_START(ID_AA64DFR1, ITE, 44, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64DFR1, ITE) + +IDREG_FIELD_START(ID_AA64DFR1, EBEP, 48, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "on") +IDREG_FIELD_END(ID_AA64DFR1, EBEP) + +IDREG_FIELD_START(ID_AA64DFR1, DPFZS, 52, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "ignr") +IDREG_FIELD_ARCH_VAL(0b0001, "frzn") +IDREG_FIELD_END(ID_AA64DFR1, DPFZS) + +IDREG_FIELD_START(ID_AA64DFR1, ABL_CMPS, 56, 8, EXACT, 0) +IDREG_FIELD_ARCH_VAL_ANY +IDREG_FIELD_END(ID_AA64DFR1, ABL_CMPS) + +IDREG_END(ID_AA64DFR1_EL1) + +/* MIDR_EL1 */ +IDREG_START(MIDR_EL1) +IDREG_FIELD_START(MIDR, REVISION, 0, 4, ANY, 0) +IDREG_FIELD_END(MIDR, REVISION) + +IDREG_FIELD_START(MIDR, PARTNUM, 4, 12, ANY, 0) +IDREG_FIELD_END(MIDR, PARTNUM) + +IDREG_FIELD_START(MIDR, ARCHITECTURE, 16, 4, ANY, 0) +IDREG_FIELD_END(MIDR, ARCHITECTURE) + +IDREG_FIELD_START(MIDR, VARIANT, 20, 4, ANY, 0) +IDREG_FIELD_END(MIDR, VARIANT) + +IDREG_FIELD_START(MIDR, IMPLEMENTER, 24, 8, ANY, 0) +IDREG_FIELD_END(MIDR, IMPLEMENTER) + +IDREG_FIELD_START(MIDR, RES0_32, 32, 32, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0, NULL) +IDREG_FIELD_END(MIDR, RES0_32) + +IDREG_END(MIDR_EL1) + +/* REVIDR_EL1 */ +IDREG_START(REVIDR_EL1) +IDREG_FIELD_START(REVIDR, VAL, 0, 64, ANY, 0) +IDREG_FIELD_END(REVIDR, VAL) + +IDREG_END(REVIDR_EL1) + +/* AIDR_EL1 */ +IDREG_START(AIDR_EL1) +IDREG_FIELD_START(AIDR, VAL, 0, 64, ANY, 0) +IDREG_FIELD_END(AIDR, VAL) + +IDREG_END(AIDR_EL1) + +/* DCZID_EL0 */ +IDREG_START(DCZID_EL0) +IDREG_FIELD_START(DCZID_EL0, BS, 0, 4, EXACT, 0) +IDREG_FIELD_ARCH_VAL_ANY +IDREG_FIELD_END(DCZID_EL0, BS) + +IDREG_FIELD_START(DCZID_EL0, DZP, 4, 1, EXACT, 0) +IDREG_FIELD_ARCH_VAL_ANY +IDREG_FIELD_END(DCZID_EL0, DZP) + +IDREG_FIELD_START(DCZID_EL0, RES0_5, 5, 59, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0, NULL) +IDREG_FIELD_END(DCZID_EL0, RES0_5) + +IDREG_END(DCZID_EL0) + + +/* ID_AA64AFR0_EL1 */ +IDREG_START(ID_AA64AFR0_EL1) +IDREG_FIELD_START(ID_AA64AFR0, VAL, 0, 64, EXACT, 0) +IDREG_FIELD_END(ID_AA64AFR0, VAL) + +IDREG_END(ID_AA64AFR0_EL1) + +/* ID_AA64AFR1_EL1 */ +IDREG_START(ID_AA64AFR1_EL1) +IDREG_FIELD_START(ID_AA64AFR1, VAL, 0, 64, EXACT, 0) +IDREG_FIELD_END(ID_AA64AFR1, VAL) + +IDREG_END(ID_AA64AFR1_EL1) + + /* AArch32 ID registers */ + +/* ID_PFR0_EL1 */ +IDREG_START(ID_PFR0_EL1) +IDREG_FIELD_START(ID_PFR0, VAL, 0, 64, EXACT, 0) +IDREG_FIELD_END(ID_PFR0, VAL) + +IDREG_END(ID_PFR0_EL1) + +/* ID_PFR1_EL1 */ +IDREG_START(ID_PFR1_EL1) +IDREG_FIELD_START(ID_PFR1, VAL_LO, 0, 28, EXACT, 0) +IDREG_FIELD_END(ID_PFR1, VAL_LO) + +IDREG_FIELD_START(ID_PFR1, GIC, 28, 4, LOWER, 0) +IDREG_FIELD_ARCH_VAL(0b0000, "off") +IDREG_FIELD_ARCH_VAL(0b0001, "gicv3") +IDREG_FIELD_ARCH_VAL(0b0011, "gicv4p1") +IDREG_FIELD_END(ID_PFR1, GIC) + +IDREG_FIELD_START(ID_PFR1, RES0_HI, 32, 32, EXACT, 0) +IDREG_FIELD_ARCH_VAL(0, NULL) +IDREG_FIELD_END(ID_PFR1, RES0_HI) + +IDREG_END(ID_PFR1_EL1) + +/* ID_DFR0_EL1 */ +IDREG_START(ID_DFR0_EL1) +IDREG_FIELD_START(ID_DFR0, VAL_LO, 0, 24, EXACT, 0 ) +IDREG_FIELD_END(ID_DFR0, VAL_LO) + +IDREG_FIELD_START(ID_DFR0, PMU, 24, 4, LOWER, 0 ) +IDREG_FIELD_END(ID_DFR0, PMU) + +IDREG_FIELD_START(ID_DFR0, VAL_HI, 28, 4, EXACT, 0 ) +IDREG_FIELD_END(ID_DFR0, VAL_HI) + +IDREG_FIELD_START(ID_DFR0, RES0_HI, 32, 32, EXACT, 0 ) +IDREG_FIELD_ARCH_VAL(0, NULL) +IDREG_FIELD_END(ID_DFR0, RES0_HI) + +IDREG_END(ID_DFR0_EL1) + +/* ID_AFR0_EL1 */ +IDREG_START(ID_AFR0_EL1) +IDREG_FIELD_START(ID_AFR0, VAL, 0, 64, EXACT, 0 ) +IDREG_FIELD_END(ID_AFR0, VAL) + +IDREG_END(ID_AFR0_EL1) + +/* ID_MMFR0_EL1 */ +IDREG_START(ID_MMFR0_EL1) +IDREG_FIELD_START(ID_MMFR0, VAL, 0, 64, EXACT, 0 ) +IDREG_FIELD_END(ID_MMFR0, VAL) + +IDREG_END(ID_MMFR0_EL1) + +/* ID_MMFR1_EL1 */ +IDREG_START(ID_MMFR1_EL1) +IDREG_FIELD_START(ID_MMFR1, VAL, 0, 64, EXACT, 0 ) +IDREG_FIELD_END(ID_MMFR1, VAL) + +IDREG_END(ID_MMFR1_EL1) + +/* ID_MMFR2_EL1 */ +IDREG_START(ID_MMFR2_EL1) +IDREG_FIELD_START(ID_MMFR2, VAL, 0, 64, EXACT, 0 ) +IDREG_FIELD_END(ID_MMFR2, VAL) + +IDREG_END(ID_MMFR2_EL1) + +/* ID_MMFR3_EL1 */ +IDREG_START(ID_MMFR3_EL1) +IDREG_FIELD_START(ID_MMFR3, VAL, 0, 64, EXACT, 0 ) +IDREG_FIELD_END(ID_MMFR3, VAL) + +IDREG_END(ID_MMFR3_EL1) + +/* ID_MMFR4_EL1 */ +IDREG_START(ID_MMFR4_EL1) +IDREG_FIELD_START(ID_MMFR4, VAL, 0, 64, EXACT, 0 ) +IDREG_FIELD_END(ID_MMFR4, VAL) + +IDREG_END(ID_MMFR4_EL1) + +/* ID_MMFR5_EL1 */ +IDREG_START(ID_MMFR5_EL1) +IDREG_FIELD_START(ID_MMFR5, VAL, 0, 64, EXACT, 0 ) +IDREG_FIELD_END(ID_MMFR5, VAL) + +IDREG_END(ID_MMFR5_EL1) + +/* ID_ISAR0_EL1 */ +IDREG_START(ID_ISAR0_EL1) +IDREG_FIELD_START(ID_ISAR0, VAL, 0, 64, EXACT, 0 ) +IDREG_FIELD_END(ID_ISAR0, VAL) + +IDREG_END(ID_ISAR0_EL1) + +/* ID_ISAR1_EL1 */ +IDREG_START(ID_ISAR1_EL1) +IDREG_FIELD_START(ID_ISAR1, VAL, 0, 64, EXACT, 0 ) +IDREG_FIELD_END(ID_ISAR1, VAL) + +IDREG_END(ID_ISAR1_EL1) + +/* ID_ISAR2_EL1 */ +IDREG_START(ID_ISAR2_EL1) +IDREG_FIELD_START(ID_ISAR2, VAL, 0, 64, EXACT, 0 ) +IDREG_FIELD_END(ID_ISAR2, VAL) + +IDREG_END(ID_ISAR2_EL1) + +/* ID_ISAR3_EL1 */ +IDREG_START(ID_ISAR3_EL1) +IDREG_FIELD_START(ID_ISAR3, VAL, 0, 64, EXACT, 0 ) +IDREG_FIELD_END(ID_ISAR3, VAL) + +IDREG_END(ID_ISAR3_EL1) + +/* ID_ISAR4_EL1 */ +IDREG_START(ID_ISAR4_EL1) +IDREG_FIELD_START(ID_ISAR4, VAL, 0, 64, EXACT, 0 ) +IDREG_FIELD_END(ID_ISAR4, VAL) + +IDREG_END(ID_ISAR4_EL1) + +/* ID_ISAR5_EL1 */ +IDREG_START(ID_ISAR5_EL1) +IDREG_FIELD_START(ID_ISAR5, VAL, 0, 64, EXACT, 0 ) +IDREG_FIELD_END(ID_ISAR5, VAL) + +IDREG_END(ID_ISAR5_EL1) + +/* ID_ISAR6_EL1 */ +IDREG_START(ID_ISAR6_EL1) +IDREG_FIELD_START(ID_ISAR6, VAL, 0, 64, EXACT, 0 ) +IDREG_FIELD_END(ID_ISAR6, VAL) + +IDREG_END(ID_ISAR6_EL1) + +/* ID_PFR2_EL1 */ +IDREG_START(ID_PFR2_EL1) +IDREG_FIELD_START(ID_PFR2, VAL, 0, 64, EXACT, 0 ) +IDREG_FIELD_END(ID_PFR2, VAL) + +IDREG_END(ID_PFR2_EL1) + +/* ID_DFR1_EL1 */ +IDREG_START(ID_DFR1_EL1) +IDREG_FIELD_START(ID_DFR1, VAL, 0, 64, EXACT, 0 ) +IDREG_FIELD_END(ID_DFR1, VAL) + +IDREG_END(ID_DFR1_EL1) + +/* MVFR0_EL1 */ +IDREG_START(MVFR0_EL1) +IDREG_FIELD_START(MVFR0, VAL, 0, 64, EXACT, 0) +IDREG_FIELD_END(MVFR0, VAL) + +IDREG_END(MVFR0_EL1) + +/* MVFR1_EL1 */ +IDREG_START(MVFR1_EL1) +IDREG_FIELD_START(MVFR1, VAL, 0, 64, EXACT, 0 ) +IDREG_FIELD_END(MVFR1, VAL) + +IDREG_END(MVFR1_EL1) + +/* MVFR2_EL1 */ +IDREG_START(MVFR2_EL1) +IDREG_FIELD_START(MVFR2, VAL, 0, 64, EXACT, 0) +IDREG_FIELD_END(MVFR2, VAL) + +IDREG_END(MVFR2_EL1) --=20 2.52.0 From nobody Sat May 30 18:35:08 2026 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; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass(p=none dis=none) header.from=nutanix.com ARC-Seal: i=2; a=rsa-sha256; t=1778690125; cv=pass; d=zohomail.com; s=zohoarc; b=CAD3GSibIwQmSiK+UiH0I1+90YkynmLY2bcFIA1mo6x77dEu7g1L3clngvf5rkTS8y1/dy2w58lAHws0joa+k/AFkbNgjRh1KOW1Dv110Wgy+K+/+xNuMXMNdOpgcLoEOOfHAK1nLUKOLJxB0qBhjIjGngCFby/HT1MrPvHcDgo= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778690125; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=toKZkTdlFKzUeQhHNwineIKgENlXHE5kh7nsj1m1dso=; b=P6BGYAotbacCzlkNZWNJj0zfu9pVeJZnmB4Y6FwJo+HC2mK1Wa7RQf8xwJMp+JgdpQJ58xeLq3wMn1Hk5/Esd2ribqQavlZQvVLUdgdKbvWBb3mkE+RYUydCC8+RasAJtIAjS3cknTiUhH98e55gM3DdKA1N94ID8GSb3M5dtd8= ARC-Authentication-Results: i=2; 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; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 177869012510576.50855064839311; Wed, 13 May 2026 09:35:25 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wNCYC-0003Pk-Ad; Wed, 13 May 2026 12:35:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wNCXk-0003KX-Hr; Wed, 13 May 2026 12:34:44 -0400 Received: from mx0b-002c1b01.pphosted.com ([148.163.155.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wNCXh-0000j6-Hq; Wed, 13 May 2026 12:34:44 -0400 Received: from pps.filterd (m0127842.ppops.net [127.0.0.1]) by mx0b-002c1b01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64DGKven2443069; Wed, 13 May 2026 09:34:13 -0700 Received: from ch1pr05cu001.outbound.protection.outlook.com (mail-northcentralusazon11020114.outbound.protection.outlook.com [52.101.193.114]) by mx0b-002c1b01.pphosted.com (PPS) with ESMTPS id 4e3nv6x8ys-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Wed, 13 May 2026 09:34:13 -0700 (PDT) Received: from PH7PR02MB10160.namprd02.prod.outlook.com (2603:10b6:510:2e7::19) by CH3PR02MB9564.namprd02.prod.outlook.com (2603:10b6:610:120::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Wed, 13 May 2026 16:34:11 +0000 Received: from PH7PR02MB10160.namprd02.prod.outlook.com ([fe80::4ed7:5c74:48e0:ff23]) by PH7PR02MB10160.namprd02.prod.outlook.com ([fe80::4ed7:5c74:48e0:ff23%7]) with mapi id 15.20.9891.021; Wed, 13 May 2026 16:34:11 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= proofpoint20171006; bh=toKZkTdlFKzUeQhHNwineIKgENlXHE5kh7nsj1m1d so=; b=v7f7slzqqFaQVRtp9yh2XIN5nq5TXqJ41LURXCLYp893lPuupoG07oWsh EFTaHuXDoDNdmixWVpmm6Fb2z6zWs1Gk8RWWWheqcjEasn1Zo2VFLKKIVDxFZYDU yn26uly/vrikjMGuYfQ+QO0qSBlYdVJu1j2JetCzZ5Y57XRHXUIqehtrD/K17XCd iw22j4r3QD84CUB4YfZS+sYMxfxW0AtFp5mcUcNxwxUGBfC3DuF8W4EQiiqyF3NJ PZAl5BhEFWQpousXNpj33oCOGrV8ZPK/3JzjvCA/Wt2dXbN61DQIVFCEaUYzU/3S wy99cmlRNJ7fHyI5S7i4gXPL9t4ow== ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=zU/rtaKuW51iAepWR8ka9WrsoSk3A0uKIae9AlGS8itZjXGOuehl9NL1tLJi5KZAmzUitK9VY0SvL21r8AQoUO6zxH8K/96c97hVg2KbmP7gV3x29HtKzqJRTGj+/YEgVnh7QSqhT/NlayaD1CXR8IlY+YOzwU2U+hak/Yh7asmaLNKqE4Rkqt8sUnHQhj8qhi1QS82ykNn6Tl6ldpM4GYoJ4jDRDkV+EKLFc0PfY6TyKs6UymOhqT3DNc55cOJyIp8SBrDKFaR2pqIMfzkLB8YzOFzxOT+hXvx5GcaHRkWQRTim0VzT4ZvyJv7G6Y478b7E4cZ5gpqm7xtq3CoHlA== 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=toKZkTdlFKzUeQhHNwineIKgENlXHE5kh7nsj1m1dso=; b=FNSN5049B6HOlNFWpcl7SrQ2x6MTUYl1Y0YJFNxsa6nAQsssw7uDoyuv0zuFCtPOESHD36FqcYBNOBg/2O/jS32YsCc1ZrJ02JrckHR+kA3cQUob7Yo6W7vv5iAKBScUIOg1ikEoA9ecmIR+bhy0DAYuPT8QVADeLcVQkOTGAxAN1lIcMDbBoKisf1b/irTpMUqNEqnvs2pTR4h131CzlG6BMgbCAR3KBgkMdPi/wvR3A2hdKlhkaCQsJbZSZkqt9bBZxwBKP4ztcPnEM6baWmDYKf/lsDq2RAf1VFCUfEeCF8B/cx+y4/0QZC5L7b1N2LOKQ0kL7wQJjnfaov0ATQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=toKZkTdlFKzUeQhHNwineIKgENlXHE5kh7nsj1m1dso=; b=aEKATPYAzWfcB+I3Ov3lxhPZojal7eU0xpYkQib8xv3e87z0JTA/xmFcww8R7F1fXdEcxM4gp0GvV0p7k6CuJqq50UWR3ycfyS3+SUkGAdF2i0rKW1F2msSYk9NDU8A6FDLqooCfX/BpRIgmMoxmPSXGJnWrVXv7WC6kNjl5YpheRb1omlEohiqwK+nb1/Xi6AsDmBoff5zbzCkK52IAzoq4CfTvMdD4TlAArm+G9E/ytvJq7Hbw7TP0KSNEx7XhpkLyAouI2FlO8WIYhG5rzMWAlhS0avqo7wanyecR/MewPa3fXyU34UsYd1V5tr80HCw3iddYraWk2QAN4bIDrA== From: Shaju Abraham To: eric.auger@redhat.com, qemu-devel@nongnu.org, qemu-arm@nongnu.org, kvmarm@lists.linux.dev, peter.maydell@linaro.org, richard.henderson@linaro.org, cohuck@redhat.com, sebott@redhat.com, skolothumtho@nvidia.com, philmd@linaro.org Cc: maz@kernel.org, oliver.upton@linux.dev, pbonzini@redhat.com, prerna.saxena@nutanix.com, jon@nutanix.com, jond@nutanix.com, Shaju Abraham , Khushit Shah Subject: [RFC PATCH v1 03/13] target/arm: named_cpu_model: initialise additional sysregs Date: Wed, 13 May 2026 16:33:46 +0000 Message-ID: <20260513163356.3033159-4-shaju.abraham@nutanix.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260513163356.3033159-1-shaju.abraham@nutanix.com> References: <20260513163356.3033159-1-shaju.abraham@nutanix.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: CY5PR10CA0003.namprd10.prod.outlook.com (2603:10b6:930:1c::30) To PH7PR02MB10160.namprd02.prod.outlook.com (2603:10b6:510:2e7::19) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH7PR02MB10160:EE_|CH3PR02MB9564:EE_ X-MS-Office365-Filtering-Correlation-Id: c23177e9-e40e-46db-bed2-08deb10d7698 x-proofpoint-crosstenant: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|7416014|376014|366016|1800799024|18002099003|22082099003|921020|56012099003; X-Microsoft-Antispam-Message-Info: 5kiD2AeboJLTPl/w2UhLxETbQCpfWXXo32qI25GrY6JW62toozpjxD9bleIdT9DcHHy7zEtX7fuRS8iholPshUuJEXfV9X22i6jhG2Bo5Z8S3606ZZCLia/l/e989OJOcFf90ZwyZzqSG/XXYZpRNPu/eIT60xH3Awsc6F5YdGCPAhfWhlAr7RKSmSuXT2/N4+eAoAty++5GTpmNaH12bCJSpp5HSAbWWeIEP5WVrB3WX9r7wLW2Q6DXhvLH67X3w9Xs26WY8nab42phI0ct0yt5isq0+a9ttwadUmqJ74e+zFpaGX28+jMHdII945m5z2FNx641BX13bWOqowYaGApXLwIEVb7uXYmmMz5qDd4P1jd99s7UdGSZ5ZyZ3gwtXJ+NS54uLuOsQK0kQpb86ac9el+LpZT2ORGYoDaeH2yq084c7cMvUhREcctRaeIweapv6IIccI225mAKL3MNPwHeBqBDaL6rQs5g7KU0Q85xnC38J4mVguDgrg30BeRDX+PEGhh5dEH2oUJWnpVgjZZ39Bkf5OTFX1H5A4kaaeUeUWPuw1Jx640TKI3Er7G4cnpP4kH0OhMDWl03UHvCZtRKMBLPlc0ogBVgu99kucV4htFhi2BxO+zy66nhTIeB+7EIDj0KkAGChJXzJ6gZo8ZvFhc6fSgNN93oa4k1hJ3EaBoqCEVoVSGimqmdsMd7Nsx2kgUNqVHf0SuEAuE5tpu9mccRWvZkRgJW90CWCdQ= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH7PR02MB10160.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(7416014)(376014)(366016)(1800799024)(18002099003)(22082099003)(921020)(56012099003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?TajNwYgezD+g8cR6QcAZ/n5SEFXWFc3M+B4DOrfjSPbnjbuwmMOa9DrchF51?= =?us-ascii?Q?3V0Xd9d2zAH5mFa6f9ZbiSkLe2bTZvukoepGfDRebRko3CcI5AnQQh6t0pZM?= =?us-ascii?Q?hJ4sEjcVUATwHc3+LjTgrRkXAasqrpvZjj4tXkQLZdX+VeD38HoUr2VcHiq3?= =?us-ascii?Q?GlguBxZETlz0yw8V/gWLcPRZcTv4pqkluioDQqEFiytTBQy0HJetCPEtRv4M?= =?us-ascii?Q?GpkkNrSl6g5qjzfU8g+TNjwZhmwEAbk7i6sb5f12zgmBUQgQiyhlWUgJ3CWK?= =?us-ascii?Q?zApH2iqwb9wBpR80TZi8AsisNrsVZq9B924n3BxjTDTauDaajk6R0i9aGX96?= =?us-ascii?Q?D6Im0XkAIBKTRxtqJLoVud8abBswfC92McyyoJ+lSQZrpLVjiwVEuhXB0Dez?= =?us-ascii?Q?Q0MCBH5KlTXoHPiz4GIHVq66kQWwJ5jyeyC+t9T0ZcbE0bZ+XrlzmwCCe0E3?= =?us-ascii?Q?6LtO/0wzxh5OcN1v+rtWZdW+VbZyDjG/KrDCe+OqVBES+GKba0Gn0ChaylYI?= =?us-ascii?Q?eX9o+yn4taSRku7d1HaznUpffHT1ESIHgtfNQImqC0a3lgqxGmAiM1BTpsZH?= =?us-ascii?Q?iw0zTfZR+MMGuhCC5rqHCFZGA8lW9C1ni7rQm1oQATmkfpsRzAOZbUuKJCM5?= =?us-ascii?Q?Tm4nvPBK10Jh3pSTU3/fsiX1+Y8audqexjrZoT/kvEuIld4uzoxH3bPEqNwf?= =?us-ascii?Q?FNd9pAfj0q+sVvpxLs8C2Z1OZHhqHwj8a9ilnsld46BBpajIezP8+uk8L2Al?= =?us-ascii?Q?WJJwH/k3jXHmufb26kDMRdMTL7j04hMn+L+piY0MAmCQCdxibpcJ12uVrB2g?= =?us-ascii?Q?cL1KyoSsdwBahhOTEV3541Dwwf7vvl064CXICv/1b2R7TETK3+8VVWCyffC9?= =?us-ascii?Q?M++3f4v1YFaNOF5EPq5zxEjR9UGQqnZgytjP3xNwegMfhJd18x9ZzFHtVHyx?= =?us-ascii?Q?qOwdI8rlTZIrS5EGNvEEnxOeMKK0RT9Ov7QrQ6lW2ung82WGw/77xLSRMUpY?= =?us-ascii?Q?m9cIwnsWl+nTdzUkaSAIpmHQhaFzrRMbNm+F0i/2H17RHiZhHXkIoiqfmg9l?= =?us-ascii?Q?nkqFi81o82V9QSYxGV2M5kAH4iBdgDmtuIDs68Suw7WHOEM088vgfYLqq5rK?= =?us-ascii?Q?IlWdJsWTTScFaleNOYzzKZG/Qp3JkYSgiKZvElsW8IaYa2O16tor7ydHqTMh?= =?us-ascii?Q?Kf2zium8uNPdBiMbvL9kRtl2GdL68FxQy/beNbo+88yplnauR9aeRjgJmaMY?= =?us-ascii?Q?IaBXQS2bGmfYaszSt5kZ/ttAPAjwaGN9bxagaQj2nzyew2WZB5hQf6ww18g3?= =?us-ascii?Q?BlI7J/3arNZt/jBhc0Pk2Y38PYTZR4YvW9RdhWfCi/cShRDfiCtPWWNn+PVA?= =?us-ascii?Q?6FgJyUcDP7xJ+S+AaXAu1XmMfr1POLiErLIPN4ogW29401AGHqEbOpmVJW+I?= =?us-ascii?Q?mJ7rwY8gR9rnnzK3cY6u4Pu/UNg3YmCuNSR0bnxQHN+VTgokgpjT0Q4HZmd3?= =?us-ascii?Q?1Y9xyFB/iofqxkhTzQ7IQUpjoRmWk+AlL5S5e/oLuc496572V6DMOHXDLAJI?= =?us-ascii?Q?9hFuAGplCJN0SNL8AQtNHEgxwjnPIhZmWTmGHnejIwFQ9IZ4L05kqv1U2Kgv?= =?us-ascii?Q?87GMuPRB32YKHAiZwD1+GED9tTFyUDrlaCrN6WJnBnnAYSAQ/vU0hWyBigUB?= =?us-ascii?Q?e4DXPXydwwSoip/GMXm7R1q8w0c2ifd4d9wiawdZQxaMNyL3M/uFXMZjc8+J?= =?us-ascii?Q?PLMbC2Psu786sRdRJAdlmqks/w6Nmlc=3D?= X-Exchange-RoutingPolicyChecked: DTY0sTo4PSzjGy5ZNmXHI2BOWOnl6FfxRrCzzt4TYLPCR9CbSn9PP9IJ7RgkiBs/gxAuQRNkAMLZTAYaax44IPYDGdOMhx2Zmw7mXo5KV8/BSqnOMRtZ3az/8nmBXRftvVhakTC7S2wU5hWz+2nicnDX0ba/dLoxGUrkXqXXOaGXjlTHlkHZx1KuV+w2RmTQ4E8dkG3lx+FpL6abHPTFiu8bp8Iur46YEuR/6H7WYz8Lu0iLaHSZ04Qn8M2rbZwDkMfSRv2q/PAeahYS2ZmDsjEvbuQSPZc2fzutTiHfCSPflDquJhsyq40gaQyYA05ry0EUSEjOwHIZVMLxLIG9xw== X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: c23177e9-e40e-46db-bed2-08deb10d7698 X-MS-Exchange-CrossTenant-AuthSource: PH7PR02MB10160.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 16:34:11.8124 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 74c1TANgQ3BiW4CIsuytBGPMK5qOclWCSaFPpc37Qs05YpU/27x1sbO5qDKdFEursTAyMBa4NvdUYjKyWOs3vH66A1tqopgEMzkjRaRUBkg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR02MB9564 X-Proofpoint-ORIG-GUID: dq9LCJXwTm5UeeOxirtv_P3mmOdVOCcI X-Authority-Analysis: v=2.4 cv=P7QKQCAu c=1 sm=1 tr=0 ts=6a04a805 cx=c_pps a=rbgWxcc9iAUYZcdwGxTk+A==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=NGcC8JguVDcA:10 a=0kUYKlekyDsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VofLwUrZ8Iiv6rRUPXIb:22 a=VUi8bpU7OL1Oj2-RSIOF:22 a=64Cc0HZtAAAA:8 a=RqjlFkL8uL1O1Lsoah8A:9 X-Proofpoint-GUID: dq9LCJXwTm5UeeOxirtv_P3mmOdVOCcI X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDE2OCBTYWx0ZWRfX4zCtDG/OLCqN sDiv3EL3We7R1tQILvQwq9jV2fsMkpXlNQ9EvlTuJo+Nur6073VgA/fmMAg8EiVjCAbIT2CF7x/ L8rurRAiDFcTInkbiPMy4GQEW0WIIC7sldfurbTWyszh7gnu0EPMi7fWSIgbcJoo6InDSOSELha Uu1dAXbsPh2tKBLjeUdCcC6HtJlZkSrfHwSe6Tv8uOJ44cMEI2KksuwJ+cpfLfLxwf0HwWc7iu/ AK+FRLlCxoC0ozNRRH8rluPX9vvZPg7KH0dt5aFbYZXuRoKGD0MhP/GcTNjznbz1sBtaTNZrSV8 D8UrARZzCBK1oh0wm4MwtkUrmtn6aaiU/lQaFQceRFWzSPidcUHIX1/nixK89W/kv3/D8h5t2g/ dDYrAcU4HpD/kirCnN6el7d402Nveg/ebh9WntJb062sKrjZdSJuM5XQeX3WR5+uRko8FcEZMFq Qqf3cHALyH4EDYHZC3w== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-13_01,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Reason: safe 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=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.155.12; envelope-from=shaju.abraham@nutanix.com; helo=mx0b-002c1b01.pphosted.com X-Spam_score_int: -31 X-Spam_score: -3.2 X-Spam_bar: --- X-Spam_report: (-3.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.445, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, 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: qemu development 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 @nutanix.com) X-ZM-MESSAGEID: 1778690127275158500 Content-Type: text/plain; charset="utf-8" Add entries for sysregs MIDR_EL1, REVIDR_EL1, AIDR_EL1, ID_AA64PFR0_EL1, and ID_AA64ISAR3_EL1 to cpu-sysregs.h.inc. Co-authored-by: Khushit Shah Signed-off-by: Shaju Abraham --- target/arm/cpu-sysregs.h.inc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/target/arm/cpu-sysregs.h.inc b/target/arm/cpu-sysregs.h.inc index 3d1ed40f04..82a83d9d5c 100644 --- a/target/arm/cpu-sysregs.h.inc +++ b/target/arm/cpu-sysregs.h.inc @@ -41,3 +41,8 @@ DEF(CLIDR_EL1, 3, 1, 0, 0, 1) DEF(ID_AA64ZFR0_EL1, 3, 0, 0, 4, 4) DEF(CTR_EL0, 3, 3, 0, 0, 1) DEF(DCZID_EL0, 3, 3, 0, 0, 7) +DEF(MIDR_EL1, 3, 0, 0, 0, 0) +DEF(REVIDR_EL1, 3, 0, 0, 0, 6) +DEF(AIDR_EL1, 3, 1, 0, 0, 7) +DEF(ID_AA64FPFR0_EL1, 3, 0, 0, 4, 7) +DEF(ID_AA64ISAR3_EL1, 3, 0, 0, 6, 3) --=20 2.52.0 From nobody Sat May 30 18:35:08 2026 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; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass(p=none dis=none) header.from=nutanix.com ARC-Seal: i=2; a=rsa-sha256; t=1778690165; cv=pass; d=zohomail.com; s=zohoarc; b=bRuWXrm9NGAcOk0Tlp5ISttpGPx9lXD+D5ev0t8Fej4TrrEMqT2tzJbFuRzfSwUGaQdP/1UmQq3ChaFGS/s5n4KsN9Cqve9YnNVhMelaVY/m9WWu2s6XasEyUiZG0lXOnSWD289/Qve6ZCScVzgWfGrtSIwoGHkeCK5D3HwrJa0= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778690165; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=MNinJibHwoWXGXhfMhUkYF30JTL8RYpn8K2IodxM6/Y=; b=aLDOXWNNKkVhB+glN24K9lM5eOLPcvz5BmYHY90otYmP3EtOHnVfLimQ18lX9yQYJKwMlH4IrXRCiu2ER6lrgodiaKxOHSsP+j7GCoKl5IkVpmvWPj28gjzw7mIIWunWp0jtKtk0jQX3l4zYXha5hb6Rc3eTlHwNJV+HbGgXAws= ARC-Authentication-Results: i=2; 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; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1778690165844281.32662907590213; Wed, 13 May 2026 09:36:05 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wNCXn-0003Kw-6A; Wed, 13 May 2026 12:34:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wNCXe-0003JV-Av; Wed, 13 May 2026 12:34:39 -0400 Received: from mx0b-002c1b01.pphosted.com ([148.163.155.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wNCXc-0000go-8G; Wed, 13 May 2026 12:34:38 -0400 Received: from pps.filterd (m0127843.ppops.net [127.0.0.1]) by mx0b-002c1b01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64DGKfem738992; Wed, 13 May 2026 09:34:15 -0700 Received: from ch1pr05cu001.outbound.protection.outlook.com (mail-northcentralusazon11020086.outbound.protection.outlook.com [52.101.193.86]) by mx0b-002c1b01.pphosted.com (PPS) with ESMTPS id 4e3nvap78e-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Wed, 13 May 2026 09:34:15 -0700 (PDT) Received: from PH7PR02MB10160.namprd02.prod.outlook.com (2603:10b6:510:2e7::19) by CH3PR02MB9564.namprd02.prod.outlook.com (2603:10b6:610:120::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Wed, 13 May 2026 16:34:13 +0000 Received: from PH7PR02MB10160.namprd02.prod.outlook.com ([fe80::4ed7:5c74:48e0:ff23]) by PH7PR02MB10160.namprd02.prod.outlook.com ([fe80::4ed7:5c74:48e0:ff23%7]) with mapi id 15.20.9891.021; Wed, 13 May 2026 16:34:13 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= proofpoint20171006; bh=MNinJibHwoWXGXhfMhUkYF30JTL8RYpn8K2IodxM6 /Y=; b=YsiK1ruwfSpXNEoo5M0uKcNVZI7+UeAhhFEc1K1JWql2ZGPfQy2jKk1ZN YhlHj6g1hfCuBY2X/dOqRFaDjcCUlr2xVx0op5KGSTRBr6Nb6/0wEg3Hw6yypw/P SkgnILZ8Q1EjPNYpHsBnyF32wj2Xu2tiZsSwRngXt7ApQBDEbKpemH8wO9z20Ji3 eD9OxLZOUzJhF2Z89qoiJ2Fj3uAAqu03eGyodfUTN0QQOObtx+VFERIumLS3flcd 32cijh0AWOucEqHJyFWwZc9paoJpr5zs2qsDXdpNjfy7r9BpbhO8mdmdat2eKPCL +SHdQFoxMaD8256iQKWDyN7ghwK+A== ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=g8+xhwOQe+ToKw+T1c9IPkL3sJemGRpYXsAoSzTu4ghUe8nlEOJzx6Pmqx96+WYPxVvtrodWbYck+xlbBYqz53zF7O+V4sK2cdZrfNcyzQvPtNRLAq9ZXlhQO5rfiUc3+HzSN1JQbX2cXjkDqYqVePDh75HzuvJATNQO123R4FB4ynqKQD1U2MogeCyShDigcSm0F5SeXsdovsa3QNRA7YwId0Nt+I/M/FGDuFUH9BnQCuU9uKFvhfiQiiHOHMZnbp5hnojS/L3ZwwrX2+D4HF+odRQF2rizjYYWbgZjco2CAP3k6GNha5caOzGauL0ZAo+4fWOZ+V4bzDK3Hu9gJQ== 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=MNinJibHwoWXGXhfMhUkYF30JTL8RYpn8K2IodxM6/Y=; b=XydovDjkgMxOcKhfQYGCWl/n1eEd6X+CChLHa0rwvJVz4c0BgzhHrzndI5flG2FkNNOLWRyvQUkjgixpz4gRZPqJ6eiAhCzqnMy7k1LnwT3W+7zpSwgZM2YHqJWnvQoqcsRC1mec4acyKmlWW9eWOLCUqyl2/1APLm0AO1lSiOStnr5fOXCmneC6aQqdyjhg6BWxLdksRhRPcev0BkT0IP/DfLYdNiN1X20kK7gKZEWgBU04NAkRlTB2SGSIw+e+zvU710T71Pi0ZtlVI2w7emMI8Y9qlo0+i3aEh+Ychg46OIwOh3nNqKC+wX+vQvMihbfRUYF/fOEUsRg4orqQNA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MNinJibHwoWXGXhfMhUkYF30JTL8RYpn8K2IodxM6/Y=; b=HEWS1fhMMy5ZUIeUSheSh+z66rA7qSEXtVpinn/soru5ba7gEx6O/pyPeMCtcYgnb7UifP4YGQj8rrKP84lsUYDgosQqyUdaCv/ybj3iTczV0Mj7h1qtPhlmNLVXpW6toqrjGEZA8lKrBd2E6j+7T3J306Jg9YfZC56Vrf+GYrruI8+fFomWIJt0YTOQpc0AZiwF8ykgE39cr3avlDfFlYDCf3cqoR2n13FN71u715PyfxWFBarCFsozGu6tVwHARJrvaElbkTpSIVEvsEhlmzJTkZ5GAp9Xb29nJ23oJBmf1Uw4s90Rg5Z5CPE24YuLsndWiycTLqhA6zh4o4Kf9g== From: Shaju Abraham To: eric.auger@redhat.com, qemu-devel@nongnu.org, qemu-arm@nongnu.org, kvmarm@lists.linux.dev, peter.maydell@linaro.org, richard.henderson@linaro.org, cohuck@redhat.com, sebott@redhat.com, skolothumtho@nvidia.com, philmd@linaro.org Cc: maz@kernel.org, oliver.upton@linux.dev, pbonzini@redhat.com, prerna.saxena@nutanix.com, jon@nutanix.com, jond@nutanix.com, Shaju Abraham , Khushit Shah Subject: [RFC PATCH v1 04/13] target/arm: named_cpu_model: generate tables for Arm64 ID registers and fields Date: Wed, 13 May 2026 16:33:47 +0000 Message-ID: <20260513163356.3033159-5-shaju.abraham@nutanix.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260513163356.3033159-1-shaju.abraham@nutanix.com> References: <20260513163356.3033159-1-shaju.abraham@nutanix.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: CY5PR10CA0003.namprd10.prod.outlook.com (2603:10b6:930:1c::30) To PH7PR02MB10160.namprd02.prod.outlook.com (2603:10b6:510:2e7::19) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH7PR02MB10160:EE_|CH3PR02MB9564:EE_ X-MS-Office365-Filtering-Correlation-Id: 824193c0-f4fa-4bb4-c23a-08deb10d77be x-proofpoint-crosstenant: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|7416014|376014|366016|1800799024|18002099003|22082099003|921020|56012099003; X-Microsoft-Antispam-Message-Info: 0Cz5yeqIey/hBlFuQiwZeBmHgRuzOfMEvYTsvaQJYPnjR4S6Ya44+pOCNsxFkM23kH0Gx/k0Oq+R8jo1fsQehY9S8XSpdZMzlWYD9dvfkZ0Ng8RZauhwxlQEed+bZ7tGLHKXht+KczQIgyXUmNgQOjzSVInREYgsSLpuBRU6ey7nYbh5Kvx075NjWalNGlyCwTRqv0bcJAX1WOzHb1mqgIkmVFAf+eLGRRqk92PtJjUWJClks8b+eoVHGNqfkeaRxfDvTnlxU73wjRzeHPvnGwLWhewMJTDt7fcWybKgaAkGZtDFlXyPcBgMfEVQY4YJe1qQn4eBySYulbcZjSaMQq907TXc9wMfUgg+6WxDywTXelz1jtvCHC/ro3mvJHKoP8iUvna3+MkZAHwPELKyYX87knEX2kSPVlry8JtPwvSH20Zz/UC385Tx0LmS82+LO1tRS7EGH3HmxkiehAmWmWNwssJlmSPtf2y+cYe0HYO5ty2DJoxHO9kPS4tVInM1AFKpS/QRYE0pYVXxw70dddwoeN17TCkkZI3LRS+h1yfwOyXdumS5KBl0GRP53pXR4uaqCKyUSMpV47oF5AXQ8BhJGAiw2cnyYqtolzCoHeZztJ0TSy5OAMf/pVvMLRWMYWGAqZveEWRf98W67sMc+7lCnUcoAx4vH4/uy2aJLcvgS3YX2feWAkxeVKXuj4KNLGjw22U5xH7pTbQRpCoMv1hdQgFuNLjBKC9oHT1R5Ko= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH7PR02MB10160.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(7416014)(376014)(366016)(1800799024)(18002099003)(22082099003)(921020)(56012099003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?7stOUQ1bTMcu+8GA4KD/ii0Nx5GLUiii+xIOHyrFNItNDSbuKuHk/qPlcv3G?= =?us-ascii?Q?1ypWx9acuWkOXR34aDOPTG0fTvkl4CWwFsrdTBku+U6wcOt+q6ruGDqGf+La?= =?us-ascii?Q?zsJ9VzTNKLZGcSIqAB/FSEVQrUACVVIzQrz3f3HkZnvn5IXHNBVwLDqpgMeM?= =?us-ascii?Q?ayygMtWPyWVAliOw2xb1tKO65mfODbHDRg7/ZO3v9Ich/4hdUG5mJyPx12GA?= =?us-ascii?Q?1yDoFWdDl8K78+klIygDQAq6j47WUC1PqHmQAYuiSBOiMn/82qrOkk0gOg+v?= =?us-ascii?Q?D/P8qMZcGE7eN2jgKAmdfTEXHRNfZYZ39dBYHDAnlrIQ7SgJIcflIt58+NMK?= =?us-ascii?Q?O2wl2ZUCd6kOE/vKPe1gZdlFfpm0tjjtcYJJsx8LPuvcx7fyZSOJBEqo2K8j?= =?us-ascii?Q?lHx03RUWbLwL6LJpGdqoPsbvgwaj73eAUCweJ3rGs1FZBOEjk0zCn6P7S+5m?= =?us-ascii?Q?b/OXUHIzK6leykGiiChKf95D6T4V+Dpek8s/lAehkr8IhQ9CiOStJfPKDti3?= =?us-ascii?Q?ISM5Fg0ZwBtTyVk8+VFmuOBQfpn99QeD3aKtRGGcwB0eotVs281/nCCm4wqy?= =?us-ascii?Q?+P9jPsOGznkg3DVHYjB3r4WJyB8PlClzAUlwpMV6pfuY3XKWY5z8bGbovZP/?= =?us-ascii?Q?zmwL5jUWjiP8quyjpanhSYPqfgTVJN0qVxzOR1ZYMu7m/KqRUzri2cKX1/XI?= =?us-ascii?Q?n6h1596gSDtiXiVouBVv2YTvIr2JMnNNyirjoymZleXCXBNdK2P6A+JViHiX?= =?us-ascii?Q?rCnOCBNOI2gjoJERVBkDwfvUMVKL81CcIPjxWDjiO7vPBVRNHy4ZXA7G3FY9?= =?us-ascii?Q?LxusOsziEIC8GA9CtB+7dNzZy1dq0vw48oYt6fiG9UkmIbDK0/S9shuXY5Dl?= =?us-ascii?Q?kX6lpaYOwMaLJJVHavQ/g+X/nnBJv37RjGQuarmY7Cewza6ZGd9aVJyWHAwb?= =?us-ascii?Q?8clVGW1f0+ELf6MNokPPMIKTfem3nEE2QSljHxLAwf8qRnZXGTe7qQLJxbaB?= =?us-ascii?Q?fX+IRBDkqFVL6MLDrvFNxstHauIBMFblJ5GFj4pnc0xCF1SLM5c9InemYYbU?= =?us-ascii?Q?lL0mvJnCJLaCPzDEmMJ+1wHZ0+G/0sFS3O6Pco3trzMln1Ll0k6B/n4wGSPT?= =?us-ascii?Q?ZxwzvOTfPla9NpU9qQhULszoULgn9xRU2oa2/q1BjKhT8BMAjVQQ+iX6xT34?= =?us-ascii?Q?Hwrdt1BlAWWAc0t+ZSWxMEx7kMyYR+K+ydzAbcXwLuZwoSjMWXJbrsbxGhvC?= =?us-ascii?Q?dEN+YCd9SZRbDdx53ZERtaAf4RfX73f+YaczSbyZqD7RshB48a6l304Rnh7d?= =?us-ascii?Q?mc3T0U4HoQgfERkpS5GduX8xBBtSG4dG3v+9Y4zXGEgigDRar45IKngd1sQt?= =?us-ascii?Q?NmNnXPuIGlrVTRSdAL8m5mK7XOuRAnTlyLfQwAadgJH7bQPJYR70FHJkWQha?= =?us-ascii?Q?8HzafBRP2PhESU1QkNeG945iE8QKcWVXUunzjsdo9vE8xXaAAJovWfkFxcgO?= =?us-ascii?Q?wrDbm4rrRGz5f/oeBozo82KIJl8OV4RsxgWi5yKu3s5GmpLUWB5FHp1+I44L?= =?us-ascii?Q?PeJSEmvhvHDdE3Em2UgLq3tmu7U3Lk5HnzhNjLG+bTgjBxMWXecQvRdOPXpN?= =?us-ascii?Q?cgmWknVxIf5O8LNHIWZ0isVRNtFMCFbMQY5yXJULqCznh53BZKNMZi5nlXwg?= =?us-ascii?Q?6JKHERNut8m9dqIjIcgKntT0xRARtWsZjJQ8Qhda8Nget6+JhBxKyNxmbIFN?= =?us-ascii?Q?0AmlA/7jGosqEcCnM7UNKcFHqAc0WdE=3D?= X-Exchange-RoutingPolicyChecked: DHO3kEKaU7tbs9mtx2F6K0XYJPi8ewHxxUqWCGhxYs8OPrQmQbOh6I2qdOGTRANbVp7pF/F7XqqrGE2aqL8WjbvnxCdKAB8akEATAKzoA7UC9i4t6pnfvWMnSOPmx/sA/S8PiT4cVI3Niui78PU6MTAcreaN+TfxbXnPHffcO59jIvtTmDi5vYTv2dcrnWgTwc/OYKE5v5OSCqxujGjz1owdM938TknqCf3HayWxzEeMaUqSz1AXwOmsWccNS7iYDQ63kxZAWAVZ4/tKyoNSK+pcxbK4YNTqdw92pjIPgDtBUbEZNfFfCqXmgOuUnQQGNZgz5MH8k0XtJoafjms5Eg== X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: 824193c0-f4fa-4bb4-c23a-08deb10d77be X-MS-Exchange-CrossTenant-AuthSource: PH7PR02MB10160.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 16:34:13.6572 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: LPXEZWtZ/lseOWXsJY9O1x+Ife5F2dqswdbwicgBVzz1RkKCAD7jRzK4InDBZ4WRCWuBLCtQ+Dede8XDoQgE0SCZXZa+mwsO/mp9ggnIHSA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR02MB9564 X-Proofpoint-GUID: WcYQlPoPtYk2FBTq5u6Kvj31mw5Tn9QL X-Proofpoint-ORIG-GUID: WcYQlPoPtYk2FBTq5u6Kvj31mw5Tn9QL X-Authority-Analysis: v=2.4 cv=apaCzyZV c=1 sm=1 tr=0 ts=6a04a807 cx=c_pps a=Ju9Zey7g8YyQpP5MZaDBLg==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=NGcC8JguVDcA:10 a=0kUYKlekyDsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VofLwUrZ8Iiv6rRUPXIb:22 a=dEe9Ve2bX-KnNSUMM2s9:22 a=64Cc0HZtAAAA:8 a=PaGUs5NhgPxOKxUa52MA:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDE2OCBTYWx0ZWRfX3em7pHyv0TDu xkpRGfWT4Bmo8HOV2hVKiO5x+9Oa40JB1M94DAPyVuWO9CeTy2Rn7L8IRZ48a5lBMmFYHDcQ8Tv DYuYlNoGY14qdgn92cz7Vc5NBUvqxECn+8flGBeUpqm+TGMQHm6dMTeX9q4lbG5nbRFSFSkaUI8 pYXRF6FQ6V3o+SBpISnmzokg//+zAbdvSzGZaL6vlhP3RaMo+QQdofE3QBA8qOfPrOOuo77vCqD g2DYVGwHwUAK4066kTvVM+nVrQrTLVdh77rBjWFVyvT4jui39wLVQC3Rm2ptHg15M3cLMCk5zbs DNuEeZwaQMOrklhThpbW69diO9kUaEOpw/e8+VgNrgvPQOTR3V9wZJIFYLBq5H8+A27BLKnrIpj Fz0LqdFT85BfsUA5Lv2XMuN1+d8377zONqtsLOseEbTLwtNR4cPJTjkCInnxmrbMbKme7pqGhxt 9euaR1SCz/UN3E05BJg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-13_01,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Reason: safe 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=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.155.12; envelope-from=shaju.abraham@nutanix.com; helo=mx0b-002c1b01.pphosted.com X-Spam_score_int: -31 X-Spam_score: -3.2 X-Spam_bar: --- X-Spam_report: (-3.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.445, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, 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: qemu development 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 @nutanix.com) X-ZM-MESSAGEID: 1778690167597158500 Content-Type: text/plain; charset="utf-8" Include cpu-idregs.h.inc multiple times with different definitions for the X-macros. This will generate tables for all Arm64 ID registers and their fields. Additionally, initialize the tables with all architecturally defined values. These tables will be consumed by the property layer in future patches. Co-authored-by: Khushit Shah Signed-off-by: Shaju Abraham --- target/arm/cpu-idregs.c | 124 ++++++++++++++++++++++++++++++++++++++++ target/arm/cpu-idregs.h | 81 ++++++++++++++++++++++++++ target/arm/meson.build | 1 + 3 files changed, 206 insertions(+) create mode 100644 target/arm/cpu-idregs.c diff --git a/target/arm/cpu-idregs.c b/target/arm/cpu-idregs.c new file mode 100644 index 0000000000..8fced7d8d7 --- /dev/null +++ b/target/arm/cpu-idregs.c @@ -0,0 +1,124 @@ +/* + * ARM ID register field table. + * + * Builds the per-id-register field descriptor arrays and the global + * arm_idregs[] table. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ +#include "qemu/osdep.h" +#include "qemu/error-report.h" +#include "qapi/error.h" +#include "cpu.h" +#include "cpu-idregs.h" + +/* generate an array of architecturely defined values for bitfields + * in arch-value format*/ +#define IDREG_START(reg) +#define IDREG_END(reg) +#define IDREG_FIELD_START(reg, field, shift, length, safe, defval) \ + static const ArmIdRegArchVal reg##_##field##_arch_vals[] =3D { +#define IDREG_FIELD_ARCH_VAL(v, n) { (v), (n) }, +#define IDREG_FIELD_ARCH_VAL_ANY { 0xffffffffUL, NULL }, +#define IDREG_FIELD_END(reg, field) \ + }; +#include "cpu-idregs.h.inc" +#undef IDREG_START +#undef IDREG_END +#undef IDREG_FIELD_START +#undef IDREG_FIELD_ARCH_VAL +#undef IDREG_FIELD_ARCH_VAL_ANY +#undef IDREG_FIELD_END +/* generate an array of per-register ArmIdRegField[] descriptors */ +#define IDREG_FIELD_ARCH_VAL(v, n) +#define IDREG_FIELD_ARCH_VAL_ANY +#define IDREG_FIELD_END(reg, field) +#define IDREG_START(reg) \ + static ArmIdRegField reg##_fields[] =3D { + +#define IDREG_END(reg) \ + }; + +#define IDREG_FIELD_START(reg, field, _shift, _length, safe, defval) \ + { \ + .name =3D #field, \ + .shift =3D (_shift), \ + .length =3D (_length), \ + .safe_rule =3D IDREG_SAFE_##safe, \ + .default_val =3D (defval), \ + .arch_vals =3D (ArmIdRegArchVal *)reg##_##field##_arch_vals, \ + .arch_vals_count =3D ARRAY_SIZE(reg##_##field##_arch_vals), \ + }, +#include "cpu-idregs.h.inc" +#undef IDREG_START +#undef IDREG_END +#undef IDREG_FIELD_START +#undef IDREG_FIELD_ARCH_VAL +#undef IDREG_FIELD_END + +/* generate an array of top level ID registers */ +#define IDREG_END(reg) +#define IDREG_FIELD_START(reg, field, shift, length, safe, defval) +#define IDREG_FIELD_ARCH_VAL(v, n) +#define IDREG_FIELD_ARCH_VAL_ANY +#define IDREG_FIELD_END(reg, field) + +#define IDREG_START(reg) \ + [reg##_IDX] =3D { \ + .name =3D #reg, \ + .fields =3D reg##_fields, \ + .fields_count =3D ARRAY_SIZE(reg##_fields), \ + }, + +ArmIdReg arm_idregs[NUM_ID_IDX] =3D { +#include "cpu-idregs.h.inc" +}; +#undef IDREG_START +#undef IDREG_END +#undef IDREG_FIELD_START +#undef IDREG_FIELD_ARCH_VAL +#undef IDREG_FIELD_END + + +/* Per-register field position enums (0..N-1 inside each register). */ +#define IDREG_START(reg) enum { +#define IDREG_END(reg) reg##_FIELD_POS__MAX }; +#define IDREG_FIELD_START(reg, field, shift, length, safe, defval) \ + reg##_FIELD_POS_##field, +#define IDREG_FIELD_ARCH_VAL(v, n) +#define IDREG_FIELD_ARCH_VAL_ANY +#define IDREG_FIELD_END(reg, field) + +#include "cpu-idregs.h.inc" + +#undef IDREG_FIELD_END +#undef IDREG_FIELD_ARCH_VAL_ANY +#undef IDREG_FIELD_ARCH_VAL +#undef IDREG_FIELD_START +#undef IDREG_END +#undef IDREG_START + +/* Flat ArmFieldIdx -> {reg, field slot, shift, length}. */ +#define IDREG_START(reg) +#define IDREG_END(reg) +#define IDREG_FIELD_START(reg, field, _shift, _length, safe, defval) \ + [ARM_FIELD_##reg##_##field] =3D { \ + .reg_idx =3D reg##_IDX, \ + .field_idx =3D reg##_FIELD_POS_##field, \ + .shift =3D (_shift), \ + .length =3D (_length), \ + }, +#define IDREG_FIELD_ARCH_VAL(v, n) +#define IDREG_FIELD_ARCH_VAL_ANY +#define IDREG_FIELD_END(reg, field) + +const ArmIdRegFieldLoc arm_field_locs[ARM_FIELD__MAX] =3D { +#include "cpu-idregs.h.inc" +}; + +#undef IDREG_FIELD_END +#undef IDREG_FIELD_ARCH_VAL_ANY +#undef IDREG_FIELD_ARCH_VAL +#undef IDREG_FIELD_START +#undef IDREG_END +#undef IDREG_START diff --git a/target/arm/cpu-idregs.h b/target/arm/cpu-idregs.h index 403190cbd7..4e568e877d 100644 --- a/target/arm/cpu-idregs.h +++ b/target/arm/cpu-idregs.h @@ -7,6 +7,8 @@ #ifndef CPU_IDREGS_H #define CPU_IDREGS_H =20 +#include "cpu-sysregs.h" + typedef enum ArmIdRegSafeRule { IDREG_SAFE_LOWER, IDREG_SAFE_HIGHER, @@ -37,5 +39,84 @@ typedef struct ArmIdReg { uint32_t fields_count; } ArmIdReg; =20 +/* Map short register names to canonical _EL1/_EL0 IDX values */ +#define ID_AA64ISAR0_IDX ID_AA64ISAR0_EL1_IDX +#define ID_AA64ISAR1_IDX ID_AA64ISAR1_EL1_IDX +#define ID_AA64ISAR2_IDX ID_AA64ISAR2_EL1_IDX +#define ID_AA64ISAR3_IDX ID_AA64ISAR3_EL1_IDX +#define ID_AA64PFR0_IDX ID_AA64PFR0_EL1_IDX +#define ID_AA64PFR1_IDX ID_AA64PFR1_EL1_IDX +#define ID_AA64PFR2_IDX ID_AA64PFR2_EL1_IDX +#define ID_AA64MMFR0_IDX ID_AA64MMFR0_EL1_IDX +#define ID_AA64MMFR1_IDX ID_AA64MMFR1_EL1_IDX +#define ID_AA64MMFR2_IDX ID_AA64MMFR2_EL1_IDX +#define ID_AA64MMFR3_IDX ID_AA64MMFR3_EL1_IDX +#define ID_AA64MMFR4_IDX ID_AA64MMFR4_EL1_IDX +#define ID_AA64DFR0_IDX ID_AA64DFR0_EL1_IDX +#define ID_AA64DFR1_IDX ID_AA64DFR1_EL1_IDX +#define ID_AA64ZFR0_IDX ID_AA64ZFR0_EL1_IDX +#define ID_AA64SMFR0_IDX ID_AA64SMFR0_EL1_IDX +#define ID_AA64AFR0_IDX ID_AA64AFR0_EL1_IDX +#define ID_AA64AFR1_IDX ID_AA64AFR1_EL1_IDX +#define ID_AA64FPFR0_IDX ID_AA64FPFR0_EL1_IDX +#define ID_PFR0_IDX ID_PFR0_EL1_IDX +#define ID_PFR1_IDX ID_PFR1_EL1_IDX +#define ID_PFR2_IDX ID_PFR2_EL1_IDX +#define ID_DFR0_IDX ID_DFR0_EL1_IDX +#define ID_DFR1_IDX ID_DFR1_EL1_IDX +#define ID_AFR0_IDX ID_AFR0_EL1_IDX +#define ID_MMFR0_IDX ID_MMFR0_EL1_IDX +#define ID_MMFR1_IDX ID_MMFR1_EL1_IDX +#define ID_MMFR2_IDX ID_MMFR2_EL1_IDX +#define ID_MMFR3_IDX ID_MMFR3_EL1_IDX +#define ID_MMFR4_IDX ID_MMFR4_EL1_IDX +#define ID_MMFR5_IDX ID_MMFR5_EL1_IDX +#define ID_ISAR0_IDX ID_ISAR0_EL1_IDX +#define ID_ISAR1_IDX ID_ISAR1_EL1_IDX +#define ID_ISAR2_IDX ID_ISAR2_EL1_IDX +#define ID_ISAR3_IDX ID_ISAR3_EL1_IDX +#define ID_ISAR4_IDX ID_ISAR4_EL1_IDX +#define ID_ISAR5_IDX ID_ISAR5_EL1_IDX +#define ID_ISAR6_IDX ID_ISAR6_EL1_IDX +#define MVFR0_IDX MVFR0_EL1_IDX +#define MVFR1_IDX MVFR1_EL1_IDX +#define MVFR2_IDX MVFR2_EL1_IDX +#define MIDR_IDX MIDR_EL1_IDX +#define REVIDR_IDX REVIDR_EL1_IDX +#define AIDR_IDX AIDR_EL1_IDX +#define DCZID_IDX DCZID_EL0_IDX + +/* ArmFieldIdx: per-field enum generated from cpu-idregs.h.inc */ +#define IDREG_START(reg) +#define IDREG_END(reg) +#define IDREG_FIELD_START(reg, field, shift, length, safe, defval) \ + ARM_FIELD_##reg##_##field, +#define IDREG_FIELD_ARCH_VAL(v, n) +#define IDREG_FIELD_ARCH_VAL_ANY +#define IDREG_FIELD_END(reg, field) +typedef enum ArmFieldIdx { +#include "cpu-idregs.h.inc" + ARM_FIELD__MAX, +} ArmFieldIdx; +#undef IDREG_FIELD_END +#undef IDREG_FIELD_ARCH_VAL_ANY +#undef IDREG_FIELD_ARCH_VAL +#undef IDREG_FIELD_START +#undef IDREG_END +#undef IDREG_START + +typedef struct ArmIdRegFieldLoc { + ARMIDRegisterIdx reg_idx; + uint16_t field_idx; + uint8_t shift; + uint8_t length; +} ArmIdRegFieldLoc; +extern const ArmIdRegFieldLoc arm_field_locs[ARM_FIELD__MAX]; +#define ARM_FIELD_REG(idx) (arm_field_locs[(idx)].reg_idx) +#define ARM_FIELD_REG_FIELD(idx) (arm_field_locs[(idx)].field_idx) +#define ARM_FIELD_SHIFT(idx) (arm_field_locs[(idx)].shift) +#define ARM_FIELD_LENGTH(idx) (arm_field_locs[(idx)].length) +#define ARM_FIELD_IDX(reg, field) ARM_FIELD_##reg##_##field =20 +extern ArmIdReg arm_idregs[NUM_ID_IDX]; #endif /* CPU_IDREGS_H */ diff --git a/target/arm/meson.build b/target/arm/meson.build index 4723f9f170..64d1ec63ab 100644 --- a/target/arm/meson.build +++ b/target/arm/meson.build @@ -19,6 +19,7 @@ arm_common_ss.add(files( =20 arm_common_system_ss.add(files( 'arm-qmp-cmds.c', + 'cpu-idregs.c', )) arm_system_ss.add(when: 'CONFIG_KVM', if_true: files('hyp_gdbstub.c', 'kvm= .c')) arm_system_ss.add(when: 'CONFIG_HVF', if_true: files('hyp_gdbstub.c')) --=20 2.52.0 From nobody Sat May 30 18:35:08 2026 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; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass(p=none dis=none) header.from=nutanix.com ARC-Seal: i=2; a=rsa-sha256; t=1778690115; cv=pass; d=zohomail.com; s=zohoarc; b=OzJDt76710BVVX38DL89w0Jv7BjgGDXe/gW5OhxUL5yXWbx1nGsaHAEli4WJFtwUBsKNnrK4jWSMeDHvVcmsSZBNPGc0C/6B3QZQTF9UcQRDgbICKLPdxK2rZrWUrxrSqCysJitocad5nMdmdQo7eMJZRHfuPWVVg+R29EeZanc= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778690115; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=2xtzwM/gRiSPkKPySRKL3ywLvvQP3T0S77jRRNPLYNQ=; b=lG45oHrFNxE7WiV3FgTU2HSiu65E35vHBe8c7CQuCscbtYkRfThv49d6/YGFvUSEpZvuApI8mmaPVYRP0Z9GP93wM83qTOy+Tn/Zfb/HDSAj/ijwpXeguW0vjqR+YSAM56UPGpt/UjD+aYYunddTeJ01wXYR2SUNIrKKBZKuKI8= ARC-Authentication-Results: i=2; 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; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1778690115060537.8472449043442; Wed, 13 May 2026 09:35:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wNCXf-0003JQ-As; Wed, 13 May 2026 12:34:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wNCXb-0003JE-M6; Wed, 13 May 2026 12:34:36 -0400 Received: from mx0b-002c1b01.pphosted.com ([148.163.155.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wNCXX-0000fx-Js; Wed, 13 May 2026 12:34:33 -0400 Received: from pps.filterd (m0127844.ppops.net [127.0.0.1]) by mx0b-002c1b01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64DGLHq84149088; Wed, 13 May 2026 09:34:17 -0700 Received: from bl2pr02cu003.outbound.protection.outlook.com (mail-eastusazon11021098.outbound.protection.outlook.com [52.101.52.98]) by mx0b-002c1b01.pphosted.com (PPS) with ESMTPS id 4e3nva6757-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Wed, 13 May 2026 09:34:17 -0700 (PDT) Received: from PH7PR02MB10160.namprd02.prod.outlook.com (2603:10b6:510:2e7::19) by CH3PR02MB9564.namprd02.prod.outlook.com (2603:10b6:610:120::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Wed, 13 May 2026 16:34:15 +0000 Received: from PH7PR02MB10160.namprd02.prod.outlook.com ([fe80::4ed7:5c74:48e0:ff23]) by PH7PR02MB10160.namprd02.prod.outlook.com ([fe80::4ed7:5c74:48e0:ff23%7]) with mapi id 15.20.9891.021; Wed, 13 May 2026 16:34:15 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= proofpoint20171006; bh=2xtzwM/gRiSPkKPySRKL3ywLvvQP3T0S77jRRNPLY NQ=; b=ZStV4jxTNq4nqQKPYXRnnjXHV1wJ3Bjl/kcYDMNBkMi87Vgz9mtYXqJlA SW+5aPPoRggZ+6Z4resCyH8KWQkcbM7a0Dg4usAWmyYD3s4QwukwP4o3ZGrfLbLd w1fPmGdpkMncuR9RDFA5XZwRkOQyGVKRQnduQl16PUpODxFcEYmsTSqJKghqlJCs Ptf5WPXTcibmv4d/kDo9qSohZlmuR5GymNdQ9t4q0CYOkpZT5H4RuQqPP1vyKvic YHXdBhd+mDjhRk7Ah/g4QUX3PxdFFbZz9LIS7PAhf9FoApl7gOa3XHXIt0pe6Dne 3l3bCUpkYuruI9dY5dvpM/syVRytg== ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=pT8M+qQ63ozM1TxKfLMFJGWecw6z3zYcEw7mhw70tSERG/SeM7BUD+0aRcxgFrBEiJUF5W6en3Lpl7ePXzsveQ9gg7rJEXDfB1V3DuvDIeN0ft06JV9aIMJEennfq+GicAq6/CZEz5OY1V+D9PGBucyAVGaJxf1XFhlbdAfD7slR2thEVUUFuRrVCOebnM7tm5IH393LA5YsasRnSJNeQtVdujUQ9OVKXCK5eV2R2NFjtaoUEv7hTat55V3aGouRVIkb7DDX3DDyPqhPICmxyP3q3CBTXPacWnx3A3Jh98am0WeEzfDuAo4WpPV5CHMfnevUvHLksjK2s0gsp1TSpg== 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=2xtzwM/gRiSPkKPySRKL3ywLvvQP3T0S77jRRNPLYNQ=; b=hKTytzSyYAiacTkuNAsZVTuEtHeazc/EEMnzu8+D3urLgZggliymeCmFWkCjwrj52F4LYPSF0IUILq0rdLAvbpmWMAMiF4sAK8+joK2FjSOeqQ+PmfM7O8RLYJuMa/4oEzpBtigcdF2noCHmt6yYtH1HXlfdQ2h8YIX6I0Pa87NwqUfrjMwVkEHl95oEieJy5bsXo3tiqye8zIhx0jI+kok5KvK/i1DOEYxxBOKxT4BrUs5R2Bj/PxxKSdn+QTJhh//6YEYlfKbeQaOQIYEMvEUxDJ1AEPUOD+swW+jIBFcrCnhARxRr/5Ha6HlT9NVHgyvV6IyQGgt1ZerA5dHAcQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2xtzwM/gRiSPkKPySRKL3ywLvvQP3T0S77jRRNPLYNQ=; b=l6YWOb2S3Z/L0GtqmMDZ9Vx+fXwPGcvsFXDtwiiUdQdBbxvo8tW0NIS4puTb+Ms7lW9lgX3M7m7CkVwJMbbIFOU1W60hnUXRgBgeenInDkUoH460UlQze+4cm16079ygrn3UAWXmAR7+1HuDLKptG65sMdz6qj1rF8khZ0E9/vfQtaJ8270Weci7RD4McF4nmzOYFj/MkJ1iP4T3j60ugjnMFj3nvWYE4Seh1uFaFje5SHRMLliRKKae/OtocvgurF4px9C999eZcqVfx6uk8vHQ9CByaDY1cyI+EEd4g9ysiPscT9HPa+7YTpIXegMBRe86ft1SfZ8c1EibmJoIQQ== From: Shaju Abraham To: eric.auger@redhat.com, qemu-devel@nongnu.org, qemu-arm@nongnu.org, kvmarm@lists.linux.dev, peter.maydell@linaro.org, richard.henderson@linaro.org, cohuck@redhat.com, sebott@redhat.com, skolothumtho@nvidia.com, philmd@linaro.org Cc: maz@kernel.org, oliver.upton@linux.dev, pbonzini@redhat.com, prerna.saxena@nutanix.com, jon@nutanix.com, jond@nutanix.com, Shaju Abraham , Khushit Shah Subject: [RFC PATCH v1 05/13] target/arm: named_cpu_model: replace FIELD macro with IDREG_FIELD Date: Wed, 13 May 2026 16:33:48 +0000 Message-ID: <20260513163356.3033159-6-shaju.abraham@nutanix.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260513163356.3033159-1-shaju.abraham@nutanix.com> References: <20260513163356.3033159-1-shaju.abraham@nutanix.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: CY5PR10CA0003.namprd10.prod.outlook.com (2603:10b6:930:1c::30) To PH7PR02MB10160.namprd02.prod.outlook.com (2603:10b6:510:2e7::19) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH7PR02MB10160:EE_|CH3PR02MB9564:EE_ X-MS-Office365-Filtering-Correlation-Id: 00293c69-2ac9-41da-d2db-08deb10d78d7 x-proofpoint-crosstenant: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|7416014|376014|366016|1800799024|18002099003|22082099003|921020|56012099003; X-Microsoft-Antispam-Message-Info: y/4iP6HwN6RzIkz62arKXPM42MQbWSJb5RQF6TWnjuCeNbs5rwgoseX/kH71em36oDd9+vDwSJxqaRaXFzRXyzSkXl+2IiJcYNngdSk1igSAZYwzmK6Zcw30XEUu91e/HfvOZbguft83XrxVFl9kOIi05I3ZyJXiRc6fy3ljbMxkR6RHYb2Nan10hqRzbAiyxYgYt8+UwhKEMT4qTfXzJ6XeBXkus8IEgICecLdvLnOa36IUYvv2E18ldik3WakuKQrEcgltUIbIbkigk87iJti7/685xfNRPb37WtSQvjZImmOS8KptnV1bSGXzlYIzkvUxVBQnpnyP/fmIsMJhQkcvBrYSJjfUWaiMs2phaLzF+CZNZqMsHLlmNi2n/eVLzZE6VRWsAdHnkYLJ9vmSu+1UDZo8wT2PCUHCGvfPqRNS0kuUZgRLHZCigLioKNC51ql9ZeTcG+ay9UCAA/Iva8yvZzTVbianubftWIjYLux8WZbPycMzRbKcqtsWPPeMVg9JQkrYKNMkam37Ij3Q/8Ry6JLFUgt+xuJja2zqnz1zL9sNiy95rtWL42Um1IspSgczLo3a/od0tSd1rNw/mZ0LqRcyFEx/hH0cHN/WPuNqEgpKhMsGolM9g8DciKkXEgZJ4l4ccPQa0k+0PK0sF1Qje2Rm7HMIddoGzXSlGfZDr68mAX2X9wLg6smfcq5DnqHeyxbUqfMtPpA7QEu75bRHoGdYmhnlS710I6NOUiM= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH7PR02MB10160.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(7416014)(376014)(366016)(1800799024)(18002099003)(22082099003)(921020)(56012099003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?YuGXMEkeGXGFskCTPncYnOieONs0hrZDoOChiNeauIyP8VpMyt2TvVKgi8/8?= =?us-ascii?Q?OIkh68haiizVGotuVfJqPSG/HvJ9jlJfsCScT28LFLzsh4/1q+85QVdCnaWH?= =?us-ascii?Q?HzzgxinjTHnQO3STFPS6zZahs4aKNk/067+78EpIhgoHOjQu6BYyaa02DdZ2?= =?us-ascii?Q?b1g2cAxs0KQ5iX0+sr2iXNKKe2A6e5kSvw7E59gVZGYWrq2UJJrAcTE78xX8?= =?us-ascii?Q?jj77SFsi+X5Ok3Mkk6Ybxh/QUdXQNlWZI3j4P3d3B90Vc16pJ840zNdib3uD?= =?us-ascii?Q?iZsb+7Ia9xdhcW6gz6ZJha9ZOYBeMHRhzCjHgxwe04tM5ESKixCSKWYzuJes?= =?us-ascii?Q?qbcG1U+Pz1GfXe7okdarpTAlynIV4v4gINk5/vRwzcEqpXM3xHY6X8hNm6NR?= =?us-ascii?Q?br7YoNoPYZOpSOD7wcjhP29ATKM/sWUmHvAZ4VPMeTjFPU3XJIX+XiYcFSqO?= =?us-ascii?Q?jOzXWQthvHR4Eg/xZNQHtjLBoVVfORTRNmZ/rCuRDp4Y1hPMqIQTDCMQpEJI?= =?us-ascii?Q?sf0JlVnGPaMOwUUgr6DLIFr5AbmQpA+xcTAvC3GSgDffAGGTdw/CgUfxGfGF?= =?us-ascii?Q?Sn2v6O9OMjcEFgsg2bgoklFtQM7Hk9Cs87JQ1gqFM1G3OeNxj/Ye92d0ijPS?= =?us-ascii?Q?7HBPQK+n3d9B56u6se92YPQgpgjiVs8wH9xUvWMUBqsPyY3vUCGRirpEf8wN?= =?us-ascii?Q?mH2RrwNQBodXAtpVmovm6c5rTUm6tE1D0obaUlF0gRxhbRXk7L7wVJewfAAz?= =?us-ascii?Q?6uIGqlRckRrVhPh6H6RKE0dD8ErlP+rVu21MNukPDD6PQakcboMwVSpaaev/?= =?us-ascii?Q?HxgjKET8Jc82jpVC7LQPWslTTnjF1SAhL6LpI1Yg1UtH3lP5q6R5ekl0KWjo?= =?us-ascii?Q?9ETaEmDihJvKaYdSzaMam0LA0Bd/uqpkyaaxxM0ji/EPGEKXF2hTYTLZzUY1?= =?us-ascii?Q?s3f9GSuagBqdRiphAqA+7Fm6Tk5LOxIrvWQ+80DAUFD5+r4oCT0KPAj/gbk6?= =?us-ascii?Q?ygex48kUFcbSA0IZ3OihGv0T2bafES68Ac2VKMUhQggK85qaYyzQ+Fz82MNd?= =?us-ascii?Q?7S2fDlX7ckmlFbohEOUM/bITC06hW5/aM1Qj0sl9R9UFdlCRonx7S1eeU1JN?= =?us-ascii?Q?yv1nlK2iWF2YpcGYWIQnG3zkgmgeHdDDNpSjflM99aP/kDGrwCpDPoUNzDlU?= =?us-ascii?Q?zRvJDSarKPlHNa9Dh5xg1uMwxO7z6jAODvoJMFVe3Y1XcDEvdwE1UwvZmN20?= =?us-ascii?Q?JDUbKY+8jzhRJthdzbeoKa8gCnql8bmSG90usbVT+HZbx17cFFMMmfY54K1a?= =?us-ascii?Q?2hyl2CtIbdbZ6hyYELLDTKKsYd0pJ4xdkV1U/5pdnbf95OWWVO3jpQoUGAOj?= =?us-ascii?Q?zpYnKLXi5tAz2ECOjG8qr08fvGU15iiXbunF75e9NR+c2WdZASLYh9vIjdcp?= =?us-ascii?Q?1nFfezYwNbgeywrD3z/kKZMICFErVDDeh4JV78lkpVxSgI9Zj58UoFIqubJu?= =?us-ascii?Q?vCl5FPFKUmVCml6E0gtId4MyfJKLhUYhi4srwol4ZDqlRfKRG8csJFt0G8+c?= =?us-ascii?Q?Omx9xbjrxhAVuWQI6YbkcGWWMgYFu+TD4icaJWsr2ek6hsja/mddiNH2OyNL?= =?us-ascii?Q?nQ7RcLZSK50FGTf4MvyKogPFsOLYnowagBrfuZps7RpJwCRy9Qe0/jztiJga?= =?us-ascii?Q?n2RgbIeEBGROMJAwSJr6sBBLImmpfelb3AHh/9Jl7uW82GrwLy620KhNvc4V?= =?us-ascii?Q?EtE6F+K4ijxdabnWCnX9ivu6gLOiNAE=3D?= X-Exchange-RoutingPolicyChecked: GjgP9ywUguEihonC7JrfqPDQJZjNl5+36QqkurAHUzmNdXUp2YJPPq7Uh1vVJawyGRS/hPBCCBrWA3mOofqHLFaM29EyLHCkFpoPPmaSoc8QpRbuXuStBq5mFU6M+R5gFSp1q+rC2KYoadQVZl2uyyoaLlOku9RQewRUQRWBH0ZU5yOgx7ByH6o9x6yXXpDoadfmDe1/ug9TUCk0EqxOjK+ziC1YgyyiPKGy7nQHerI+f9jIsoWrGbp5MxFyOJ5BfJ9W3uTDUBlGwwDnyCE6ttYZ9jjo/hsjqxlcDsqiWrOpJpMiWaHQmho6l1TmxpPdUUpPiHdkxJvKcDENklFTpQ== X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: 00293c69-2ac9-41da-d2db-08deb10d78d7 X-MS-Exchange-CrossTenant-AuthSource: PH7PR02MB10160.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 16:34:15.6638 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: zz1qMtdVo3YAwP+guBLDjumXopEBBMon7nBgPUlV20MzZiAf5EEutpHfpQNW9r2oeqnyh03JCXL1bofUBObip0DggmcZRrL3gp1DxUXvytw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR02MB9564 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDE2OCBTYWx0ZWRfXw6rky+499oGk TtW8V7I0KEEZsAz8bmchwsYZCJeZv/GhS59aH8hGZG1JhZeIlEZkNucicRdCU+I0Jdf0U/0LSI7 tfUkEZZuajWKsMLH0Cw75zcZoLSaQRT6B8tVAL96rSMWQkQwb8y6VvvqwbfI6qhXLvy+b7Cceoo Snt1ASSsG5187LZBwvBGVkX3Tg8fe5+2JN3WWcVlSBr+dDb6qGc1qIdHElqUEf4VelVGLY5wjvK lE65iPvXS3mjARbJfBl6mluMQe2XDffiDnXba2bB2pYRjQ1OFLoMdQAJ3NuevVYdk7qq5i1ncqb 0ltKnABRXitmSPBIpKqWYR8s0zSI/JztKGA/O2WTP8kZHGbklZSFBwmfkQapiLEYU4jbt3+R+ES kf9zsLtx9xti23WytGZnyHgByGu8/QMA9hCTIJ0Upwz6JoxJlvpj94f11Pfu5zMzkrHn+HB9nps P76/Dg85HUKtKy4Ff5A== X-Authority-Analysis: v=2.4 cv=evLvCIpX c=1 sm=1 tr=0 ts=6a04a809 cx=c_pps a=1GsU8nEb0rXVac2zXnn+jQ==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=NGcC8JguVDcA:10 a=0kUYKlekyDsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VofLwUrZ8Iiv6rRUPXIb:22 a=0LlEyIVc8U2lsR7dKhuH:22 a=64Cc0HZtAAAA:8 a=qagGDh9ZKt14fccB-tAA:9 X-Proofpoint-ORIG-GUID: FjtCFhkx0ORZRYFOrFQ9DBhQXR4sq06G X-Proofpoint-GUID: FjtCFhkx0ORZRYFOrFQ9DBhQXR4sq06G X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-13_01,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Reason: safe 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=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.155.12; envelope-from=shaju.abraham@nutanix.com; helo=mx0b-002c1b01.pphosted.com X-Spam_score_int: -31 X-Spam_score: -3.2 X-Spam_bar: --- X-Spam_report: (-3.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.445, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UPPERCASE_50_75=0.008 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: qemu development 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 @nutanix.com) X-ZM-MESSAGEID: 1778690117812158500 Content-Type: text/plain; charset="utf-8" Replace the existing FIELD() macro with the newly introduced IDREG_FIELD() macro to remove deduplication. All definitions for TCG remains the same. Co-authored-by: Khushit Shah Signed-off-by: Shaju Abraham --- target/arm/cpu-features.h | 232 +++----------------------------------- 1 file changed, 18 insertions(+), 214 deletions(-) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index 4e44245a8b..782850ccec 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -50,14 +50,6 @@ FIELD(CCSIDR_EL1, LINESIZE, 0, 3) FIELD(CCSIDR_EL1, ASSOCIATIVITY, 3, 10) FIELD(CCSIDR_EL1, NUMSETS, 13, 15) =20 -FIELD(CTR_EL0, IMINLINE, 0, 4) -FIELD(CTR_EL0, L1IP, 14, 2) -FIELD(CTR_EL0, DMINLINE, 16, 4) -FIELD(CTR_EL0, ERG, 20, 4) -FIELD(CTR_EL0, CWG, 24, 4) -FIELD(CTR_EL0, IDC, 28, 1) -FIELD(CTR_EL0, DIC, 29, 1) -FIELD(CTR_EL0, TMINLINE, 32, 6) =20 FIELD(MIDR_EL1, REVISION, 0, 4) FIELD(MIDR_EL1, PARTNUM, 4, 12) @@ -189,217 +181,29 @@ FIELD(ID_PFR1, VIRTUALIZATION, 12, 4) FIELD(ID_PFR1, GENTIMER, 16, 4) FIELD(ID_PFR1, SEC_FRAC, 20, 4) FIELD(ID_PFR1, VIRT_FRAC, 24, 4) -FIELD(ID_PFR1, GIC, 28, 4) =20 FIELD(ID_PFR2, CSV3, 0, 4) FIELD(ID_PFR2, SSBS, 4, 4) FIELD(ID_PFR2, RAS_FRAC, 8, 4) =20 -FIELD(ID_AA64ISAR0, AES, 4, 4) -FIELD(ID_AA64ISAR0, SHA1, 8, 4) -FIELD(ID_AA64ISAR0, SHA2, 12, 4) -FIELD(ID_AA64ISAR0, CRC32, 16, 4) -FIELD(ID_AA64ISAR0, ATOMIC, 20, 4) -FIELD(ID_AA64ISAR0, TME, 24, 4) -FIELD(ID_AA64ISAR0, RDM, 28, 4) -FIELD(ID_AA64ISAR0, SHA3, 32, 4) -FIELD(ID_AA64ISAR0, SM3, 36, 4) -FIELD(ID_AA64ISAR0, SM4, 40, 4) -FIELD(ID_AA64ISAR0, DP, 44, 4) -FIELD(ID_AA64ISAR0, FHM, 48, 4) -FIELD(ID_AA64ISAR0, TS, 52, 4) -FIELD(ID_AA64ISAR0, TLB, 56, 4) -FIELD(ID_AA64ISAR0, RNDR, 60, 4) - -FIELD(ID_AA64ISAR1, DPB, 0, 4) -FIELD(ID_AA64ISAR1, APA, 4, 4) -FIELD(ID_AA64ISAR1, API, 8, 4) -FIELD(ID_AA64ISAR1, JSCVT, 12, 4) -FIELD(ID_AA64ISAR1, FCMA, 16, 4) -FIELD(ID_AA64ISAR1, LRCPC, 20, 4) -FIELD(ID_AA64ISAR1, GPA, 24, 4) -FIELD(ID_AA64ISAR1, GPI, 28, 4) -FIELD(ID_AA64ISAR1, FRINTTS, 32, 4) -FIELD(ID_AA64ISAR1, SB, 36, 4) -FIELD(ID_AA64ISAR1, SPECRES, 40, 4) -FIELD(ID_AA64ISAR1, BF16, 44, 4) -FIELD(ID_AA64ISAR1, DGH, 48, 4) -FIELD(ID_AA64ISAR1, I8MM, 52, 4) -FIELD(ID_AA64ISAR1, XS, 56, 4) -FIELD(ID_AA64ISAR1, LS64, 60, 4) - -FIELD(ID_AA64ISAR2, WFXT, 0, 4) -FIELD(ID_AA64ISAR2, RPRES, 4, 4) -FIELD(ID_AA64ISAR2, GPA3, 8, 4) -FIELD(ID_AA64ISAR2, APA3, 12, 4) -FIELD(ID_AA64ISAR2, MOPS, 16, 4) -FIELD(ID_AA64ISAR2, BC, 20, 4) -FIELD(ID_AA64ISAR2, PAC_FRAC, 24, 4) -FIELD(ID_AA64ISAR2, CLRBHB, 28, 4) -FIELD(ID_AA64ISAR2, SYSREG_128, 32, 4) -FIELD(ID_AA64ISAR2, SYSINSTR_128, 36, 4) -FIELD(ID_AA64ISAR2, PRFMSLC, 40, 4) -FIELD(ID_AA64ISAR2, RPRFM, 48, 4) -FIELD(ID_AA64ISAR2, CSSC, 52, 4) -FIELD(ID_AA64ISAR2, LUT, 56, 4) -FIELD(ID_AA64ISAR2, ATS1A, 60, 4) - -FIELD(ID_AA64PFR0, EL0, 0, 4) -FIELD(ID_AA64PFR0, EL1, 4, 4) -FIELD(ID_AA64PFR0, EL2, 8, 4) -FIELD(ID_AA64PFR0, EL3, 12, 4) -FIELD(ID_AA64PFR0, FP, 16, 4) -FIELD(ID_AA64PFR0, ADVSIMD, 20, 4) -FIELD(ID_AA64PFR0, GIC, 24, 4) -FIELD(ID_AA64PFR0, RAS, 28, 4) -FIELD(ID_AA64PFR0, SVE, 32, 4) -FIELD(ID_AA64PFR0, SEL2, 36, 4) -FIELD(ID_AA64PFR0, MPAM, 40, 4) -FIELD(ID_AA64PFR0, AMU, 44, 4) -FIELD(ID_AA64PFR0, DIT, 48, 4) -FIELD(ID_AA64PFR0, RME, 52, 4) -FIELD(ID_AA64PFR0, CSV2, 56, 4) -FIELD(ID_AA64PFR0, CSV3, 60, 4) - -FIELD(ID_AA64PFR1, BT, 0, 4) -FIELD(ID_AA64PFR1, SSBS, 4, 4) -FIELD(ID_AA64PFR1, MTE, 8, 4) -FIELD(ID_AA64PFR1, RAS_FRAC, 12, 4) -FIELD(ID_AA64PFR1, MPAM_FRAC, 16, 4) -FIELD(ID_AA64PFR1, SME, 24, 4) -FIELD(ID_AA64PFR1, RNDR_TRAP, 28, 4) -FIELD(ID_AA64PFR1, CSV2_FRAC, 32, 4) -FIELD(ID_AA64PFR1, NMI, 36, 4) -FIELD(ID_AA64PFR1, MTE_FRAC, 40, 4) -FIELD(ID_AA64PFR1, GCS, 44, 4) -FIELD(ID_AA64PFR1, THE, 48, 4) -FIELD(ID_AA64PFR1, MTEX, 52, 4) -FIELD(ID_AA64PFR1, DF2, 56, 4) -FIELD(ID_AA64PFR1, PFAR, 60, 4) - -FIELD(ID_AA64PFR2, MTEPERM, 0, 4) -FIELD(ID_AA64PFR2, MTESTOREONLY, 4, 4) -FIELD(ID_AA64PFR2, MTEFAR, 8, 4) -FIELD(ID_AA64PFR2, GCIE, 12, 4) -FIELD(ID_AA64PFR2, FPMR, 32, 4) - -FIELD(ID_AA64MMFR0, PARANGE, 0, 4) -FIELD(ID_AA64MMFR0, ASIDBITS, 4, 4) -FIELD(ID_AA64MMFR0, BIGEND, 8, 4) -FIELD(ID_AA64MMFR0, SNSMEM, 12, 4) -FIELD(ID_AA64MMFR0, BIGENDEL0, 16, 4) -FIELD(ID_AA64MMFR0, TGRAN16, 20, 4) -FIELD(ID_AA64MMFR0, TGRAN64, 24, 4) -FIELD(ID_AA64MMFR0, TGRAN4, 28, 4) -FIELD(ID_AA64MMFR0, TGRAN16_2, 32, 4) -FIELD(ID_AA64MMFR0, TGRAN64_2, 36, 4) -FIELD(ID_AA64MMFR0, TGRAN4_2, 40, 4) -FIELD(ID_AA64MMFR0, EXS, 44, 4) -FIELD(ID_AA64MMFR0, FGT, 56, 4) -FIELD(ID_AA64MMFR0, ECV, 60, 4) - -FIELD(ID_AA64MMFR1, HAFDBS, 0, 4) -FIELD(ID_AA64MMFR1, VMIDBITS, 4, 4) -FIELD(ID_AA64MMFR1, VH, 8, 4) -FIELD(ID_AA64MMFR1, HPDS, 12, 4) -FIELD(ID_AA64MMFR1, LO, 16, 4) -FIELD(ID_AA64MMFR1, PAN, 20, 4) -FIELD(ID_AA64MMFR1, SPECSEI, 24, 4) -FIELD(ID_AA64MMFR1, XNX, 28, 4) -FIELD(ID_AA64MMFR1, TWED, 32, 4) -FIELD(ID_AA64MMFR1, ETS, 36, 4) -FIELD(ID_AA64MMFR1, HCX, 40, 4) -FIELD(ID_AA64MMFR1, AFP, 44, 4) -FIELD(ID_AA64MMFR1, NTLBPA, 48, 4) -FIELD(ID_AA64MMFR1, TIDCP1, 52, 4) -FIELD(ID_AA64MMFR1, CMOW, 56, 4) -FIELD(ID_AA64MMFR1, ECBHB, 60, 4) - -FIELD(ID_AA64MMFR2, CNP, 0, 4) -FIELD(ID_AA64MMFR2, UAO, 4, 4) -FIELD(ID_AA64MMFR2, LSM, 8, 4) -FIELD(ID_AA64MMFR2, IESB, 12, 4) -FIELD(ID_AA64MMFR2, VARANGE, 16, 4) -FIELD(ID_AA64MMFR2, CCIDX, 20, 4) -FIELD(ID_AA64MMFR2, NV, 24, 4) -FIELD(ID_AA64MMFR2, ST, 28, 4) -FIELD(ID_AA64MMFR2, AT, 32, 4) -FIELD(ID_AA64MMFR2, IDS, 36, 4) -FIELD(ID_AA64MMFR2, FWB, 40, 4) -FIELD(ID_AA64MMFR2, TTL, 48, 4) -FIELD(ID_AA64MMFR2, BBM, 52, 4) -FIELD(ID_AA64MMFR2, EVT, 56, 4) -FIELD(ID_AA64MMFR2, E0PD, 60, 4) - -FIELD(ID_AA64MMFR3, TCRX, 0, 4) -FIELD(ID_AA64MMFR3, SCTLRX, 4, 4) -FIELD(ID_AA64MMFR3, S1PIE, 8, 4) -FIELD(ID_AA64MMFR3, S2PIE, 12, 4) -FIELD(ID_AA64MMFR3, S1POE, 16, 4) -FIELD(ID_AA64MMFR3, S2POE, 20, 4) -FIELD(ID_AA64MMFR3, AIE, 24, 4) -FIELD(ID_AA64MMFR3, MEC, 28, 4) -FIELD(ID_AA64MMFR3, D128, 32, 4) -FIELD(ID_AA64MMFR3, D128_2, 36, 4) -FIELD(ID_AA64MMFR3, SNERR, 40, 4) -FIELD(ID_AA64MMFR3, ANERR, 44, 4) -FIELD(ID_AA64MMFR3, SDERR, 52, 4) -FIELD(ID_AA64MMFR3, ADERR, 56, 4) -FIELD(ID_AA64MMFR3, SPEC_FPACC, 60, 4) - -FIELD(ID_AA64MMFR4, POPS, 0, 4) -FIELD(ID_AA64MMFR4, EIESB, 4, 4) -FIELD(ID_AA64MMFR4, ASID2, 8, 4) -FIELD(ID_AA64MMFR4, HACDBS, 12, 4) -FIELD(ID_AA64MMFR4, FGWTE3, 16, 4) -FIELD(ID_AA64MMFR4, NV_FRAC, 20, 4) -FIELD(ID_AA64MMFR4, E2H0, 24, 4) -FIELD(ID_AA64MMFR4, RMEGDI, 28, 4) -FIELD(ID_AA64MMFR4, E3DSE, 36, 4) -FIELD(ID_AA64MMFR4, SRMASK, 44, 4) - -FIELD(ID_AA64DFR0, DEBUGVER, 0, 4) -FIELD(ID_AA64DFR0, TRACEVER, 4, 4) -FIELD(ID_AA64DFR0, PMUVER, 8, 4) -FIELD(ID_AA64DFR0, BRPS, 12, 4) -FIELD(ID_AA64DFR0, PMSS, 16, 4) -FIELD(ID_AA64DFR0, WRPS, 20, 4) -FIELD(ID_AA64DFR0, SEBEP, 24, 4) -FIELD(ID_AA64DFR0, CTX_CMPS, 28, 4) -FIELD(ID_AA64DFR0, PMSVER, 32, 4) -FIELD(ID_AA64DFR0, DOUBLELOCK, 36, 4) -FIELD(ID_AA64DFR0, TRACEFILT, 40, 4) -FIELD(ID_AA64DFR0, TRACEBUFFER, 44, 4) -FIELD(ID_AA64DFR0, MTPMU, 48, 4) -FIELD(ID_AA64DFR0, BRBE, 52, 4) -FIELD(ID_AA64DFR0, EXTTRCBUFF, 56, 4) -FIELD(ID_AA64DFR0, HPMN0, 60, 4) - -FIELD(ID_AA64ZFR0, SVEVER, 0, 4) -FIELD(ID_AA64ZFR0, AES, 4, 4) -FIELD(ID_AA64ZFR0, ELTPERM, 12, 4) -FIELD(ID_AA64ZFR0, BITPERM, 16, 4) -FIELD(ID_AA64ZFR0, BFLOAT16, 20, 4) -FIELD(ID_AA64ZFR0, B16B16, 24, 4) -FIELD(ID_AA64ZFR0, SHA3, 32, 4) -FIELD(ID_AA64ZFR0, SM4, 40, 4) -FIELD(ID_AA64ZFR0, I8MM, 44, 4) -FIELD(ID_AA64ZFR0, F16MM, 48, 4) -FIELD(ID_AA64ZFR0, F32MM, 52, 4) -FIELD(ID_AA64ZFR0, F64MM, 56, 4) - -FIELD(ID_AA64SMFR0, F32F32, 32, 1) -FIELD(ID_AA64SMFR0, BI32I32, 33, 1) -FIELD(ID_AA64SMFR0, B16F32, 34, 1) -FIELD(ID_AA64SMFR0, F16F32, 35, 1) -FIELD(ID_AA64SMFR0, I8I32, 36, 4) -FIELD(ID_AA64SMFR0, F16F16, 42, 1) -FIELD(ID_AA64SMFR0, B16B16, 43, 1) -FIELD(ID_AA64SMFR0, I16I32, 44, 4) -FIELD(ID_AA64SMFR0, F64F64, 48, 1) -FIELD(ID_AA64SMFR0, I16I64, 52, 4) -FIELD(ID_AA64SMFR0, SMEVER, 56, 4) -FIELD(ID_AA64SMFR0, FA64, 63, 1) +/* + * Expand FIELD() declarations for every ID register field listed in + * cpu-idregs.h.inc . + */ +#define IDREG_START(reg) +#define IDREG_END(reg) +#define IDREG_FIELD_ARCH_VAL(v, n) +#define IDREG_FIELD_ARCH_VAL_ANY +#define IDREG_FIELD_END(reg, field) +#define IDREG_FIELD_START(reg, field, _shift, _length, safe, defval) \ + FIELD(reg, field, _shift, _length) +#include "cpu-idregs.h.inc" +#undef IDREG_FIELD_START +#undef IDREG_FIELD_END +#undef IDREG_FIELD_ARCH_VAL_ANY +#undef IDREG_FIELD_ARCH_VAL +#undef IDREG_END +#undef IDREG_START =20 FIELD(ID_DFR0, COPDBG, 0, 4) FIELD(ID_DFR0, COPSDBG, 4, 4) --=20 2.52.0 From nobody Sat May 30 18:35:08 2026 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; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass(p=none dis=none) header.from=nutanix.com ARC-Seal: i=2; a=rsa-sha256; t=1778690151; cv=pass; d=zohomail.com; s=zohoarc; b=XCLhYOki9PS7ZXMC9WSvoYrjuqy07woszBlADKThzMIQGIDFUSVKrR5IntdU1KsUO5Xs6CI8I8ejlWiNGUHptsWmtPkcIujYO6lyweW/qUYSeQtiWaAG55mdWo0Swzr4WWd1Eq1HH31ODS4k/65hBnyx83ZSzTLrf7YnkDn2+JU= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778690151; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=dF59FAlr1ZmMIsYI0C6QG7ApZM0nriDlrpEv0CoNOd0=; b=XG9Wa8nsMK9An6udnD/nTDnBIJayxT1aCVw4eHdd0+5YzC1ZdcYc7UjYS99BdnckT6toNMbeXT8kRfQ1VZVMoCscIRyue8BWEW/oV+Geswa6F13njHbdbIKmvrNI+Z515zpkhH1vJags2Z6lonWcKRiKxEC3P7L+f4p7tFCobxQ= ARC-Authentication-Results: i=2; 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; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1778690151891642.2385137953061; Wed, 13 May 2026 09:35:51 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wNCYI-0003TR-N4; Wed, 13 May 2026 12:35:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wNCXh-0003K1-ES; Wed, 13 May 2026 12:34:43 -0400 Received: from mx0a-002c1b01.pphosted.com ([148.163.151.68]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wNCXe-0000hY-W9; Wed, 13 May 2026 12:34:41 -0400 Received: from pps.filterd (m0127837.ppops.net [127.0.0.1]) by mx0a-002c1b01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64DGLBwm1800865; Wed, 13 May 2026 09:34:20 -0700 Received: from ch5pr02cu005.outbound.protection.outlook.com (mail-northcentralusazon11022077.outbound.protection.outlook.com [40.107.200.77]) by mx0a-002c1b01.pphosted.com (PPS) with ESMTPS id 4e3nvpx9xr-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Wed, 13 May 2026 09:34:20 -0700 (PDT) Received: from PH7PR02MB10160.namprd02.prod.outlook.com (2603:10b6:510:2e7::19) by SJ0PR02MB8813.namprd02.prod.outlook.com (2603:10b6:a03:3d6::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Wed, 13 May 2026 16:34:17 +0000 Received: from PH7PR02MB10160.namprd02.prod.outlook.com ([fe80::4ed7:5c74:48e0:ff23]) by PH7PR02MB10160.namprd02.prod.outlook.com ([fe80::4ed7:5c74:48e0:ff23%7]) with mapi id 15.20.9891.021; Wed, 13 May 2026 16:34:17 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= proofpoint20171006; bh=dF59FAlr1ZmMIsYI0C6QG7ApZM0nriDlrpEv0CoNO d0=; b=m4vd/ABrFeK+inlVP8yoDDMS2r8k6FYnD6Z+8Ht0vIOumloVwDtDiiEVC Xc1peGBCndGZJw69vNpFrUqYAyauXv3+3sAR86eACOW287iCafYceqNrs3UhRFaD z2cEdjhRqPa+jDU5v1W56bRMAS3N0hJZfWIYdGZrsdjXginu5MYTi1AziNXzZNEt SHsl6+0osGyrPscQOtvVHwhyb/rmeZxD9RbjMm2QcMgqZ8RTak5PH2/dbWwxznbb NoePbhk90mdOjqIjYtblkFuO2BATfhfH4rxfrNG3nH+MuqGVEzzUH6MeV7GG3D0h 5OkgUxo79JNBzZb2s/xJfhxJGXYDQ== ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=IE33j+PGQw8qny8rvq0aNSFN2Bs9S4HTUn56NiJH04W4RUZdJSJTlXIif6IDaWW/KRPWTHt1pvw22y6sLqSf53iLQA58Hn+XTFS3TB1a75Q+HBk+tPpqV6HGNnrrqNnDMdunSEGRMPXxy5wjlOGitKlN5tTJj58JUgc5JOCWoympaBZkcx53TO2N6HevDaBC4IYz4jV0yh/lLxdjbf4we4R7FADYCP6Oa94OFuRhbP+0z5OCl5VVZuICraHAdRt+E4r9h7I1jPCf9/OGNu9S1/kXswOYRIY8IBU3Hw+cY+ZxaYUdbIcRZ0S+gEm3Fbr8wzlElmsfax74Y/ljIphGYA== 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=dF59FAlr1ZmMIsYI0C6QG7ApZM0nriDlrpEv0CoNOd0=; b=ZM0o3J51IFFN6SVx31KJWECYVUTMIqqWgektkZ3ISOoSZZ8x66zrf9ONi1lFEF4Nh6rXR9+OH0Leti42g03Mq+1hlQtXL0Sn30PBCqsuolC7CZsvfzzGt73xuhoRk89gGCbSWj5czbBHQuBYZeY6I4KIOdoHcn8a1tnCvXQh1hzmq64rvW17VYoYOFEKsMNLmZIKWNZZokDKWLnRjxAXUGThWrgEC8mdmFwPy3h8ABXS+Z17KzT2pb3um+5/ZMLU1igt2zUwJxUwdBUuzmD3vHhemyOVx2pjRKUUJ6Ia73O2NfoKY/qUhJhPdpUSxyC8YRBwv4SlsOl57R8BsSVlLQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dF59FAlr1ZmMIsYI0C6QG7ApZM0nriDlrpEv0CoNOd0=; b=uBrjZDFqI0EI5cm/wAm4+KmBXVOfIMy9AAnyaE6WP5JHPb8IYUJhzRXRZ1iM7aOV3oN/5Cq+YjWC2QQhcPy/CpY9uLQ5qBPPbLRf/mm+zrutnj1sUSRFQkRwNV5hneC+uLnyiF+Z9OJbSoRYSQH5Zql8/rDUYMNLut4X+yZWlrONySnG8jaYcFifOm3Np6hs/KObZ70bxdU7sSvX9I7K7+u9DbpWlG61n2jfRX0wXI0Ij0eAoCQepLRiRaNXLxJy1Ii4NUekoGRPd9lU7UfQ0Aj0Th4wMf6nwLWzLzC6f23P3oPffSMXQ+tZ6Gwx+IxYQXwGpgQHliou3RZYFr87iQ== From: Shaju Abraham To: eric.auger@redhat.com, qemu-devel@nongnu.org, qemu-arm@nongnu.org, kvmarm@lists.linux.dev, peter.maydell@linaro.org, richard.henderson@linaro.org, cohuck@redhat.com, sebott@redhat.com, skolothumtho@nvidia.com, philmd@linaro.org Cc: maz@kernel.org, oliver.upton@linux.dev, pbonzini@redhat.com, prerna.saxena@nutanix.com, jon@nutanix.com, jond@nutanix.com, Shaju Abraham , Khushit Shah Subject: [RFC PATCH v1 06/13] target/arm: named_cpu_model: data-structures required for the ARM property layer. Date: Wed, 13 May 2026 16:33:49 +0000 Message-ID: <20260513163356.3033159-7-shaju.abraham@nutanix.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260513163356.3033159-1-shaju.abraham@nutanix.com> References: <20260513163356.3033159-1-shaju.abraham@nutanix.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: CY5PR10CA0003.namprd10.prod.outlook.com (2603:10b6:930:1c::30) To PH7PR02MB10160.namprd02.prod.outlook.com (2603:10b6:510:2e7::19) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH7PR02MB10160:EE_|SJ0PR02MB8813:EE_ X-MS-Office365-Filtering-Correlation-Id: ee8604c9-1817-4b3a-3ff4-08deb10d7a07 x-proofpoint-crosstenant: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|7416014|376014|366016|1800799024|921020|18002099003|22082099003|56012099003; X-Microsoft-Antispam-Message-Info: yPKS0TM5sl3khS+21i8LXjx2S2pDtJKN32zxSZw87xDxefxIwu0Wmy9h2m+UUw+odjNyN9TwTZrqh8KbXTLtsyc+GCvi0Bl3my6R39fDxgaFRRkY0cHWo7ing2/QnzVSbhy69ZRO9kH84j18IZ5VpRuiWZC99FQLxBIuIRH24yNcwsGp1mrs0fJVVuazc/+UaQ+9+Ie7bsyiNTcLuacRElDeuXAh1KJU2ucSOWKKDnSgDog/ViN95qwybXoHE66/RuzXofSAGmr4s/6GxbHMtn2F0HfKe45zykmDNpxNMAWIgb7Zhp9q0luimNKZuST7xQGUlgdjoJ/kRp3wUy/DTOGAbBHSZoMNsA/QfDTB3oiLHgEMGxWBoYtxtj/KAGRYLrcBMxsOyXVV18lSBM9wuHirqjSub5Fuq0NTGAfeAGVrdlQnO9yvo85ylYBX3N6ZC0o11DBt4ROy6ljzoNmImOHt0321B7dewrH7BMKO7SdHjhpCC+v76/MTClODOeOcIWmenWeuRZ4ekKypYwDYKe0nTkUfXFdx7/G6+jPrCIwijTaxa7FYuz77DVxYwW7ocxpkYiPNusNIoiA2ArdGnUz6NUQKkLysZauEJpKRVri3f8dpPq8st2fMw8DI6nYQgMoHkXKVKt1skEroW+/OuR4Qhf76NrtRcQGGKGwfQDFhmsPsn2MNLkaoYRpwK7cEweT7ilT0fNJU9O8vojhq8iKbbm/a89WdV3zR/2dnpk8= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH7PR02MB10160.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(7416014)(376014)(366016)(1800799024)(921020)(18002099003)(22082099003)(56012099003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?2FucXer86mEgeRYT907XbBpKmfNFdPaWAyDCR9cCMoyR3ZX7g058drB5fUGM?= =?us-ascii?Q?Hj4NNdWwWeAhQFU/ku7g3acYAP5ZeR1rVP9jJCyGpv5Fap2MM73QhuOZApDt?= =?us-ascii?Q?fpWT9DDJWVW5ZaD/eptJWac/bx7sQgBJVdbanJFte3ocA1Wc7QJCZjwV2xKY?= =?us-ascii?Q?NaN8qVDAqflOyOZp6vMTrJmH/NA5nH7h6XA9DR/E8DH9bx1URRZ1EGvBU38I?= =?us-ascii?Q?hxa0hM9H8dxdZPmUmUXquSPkMfBg3bcatcDonB4PTEA42/EUqCz9WbmqRVHI?= =?us-ascii?Q?TdTah8YcCz0846Z+7fJXt3DdNPCYmk4Ytu2a9740KZMPaw7HxGiwyLh5ANj+?= =?us-ascii?Q?V4+9ihk6+lEWR3HXvvpnrwaLguiwMoTS3cytYGVAeHJRxXy24EjuND4wC6ik?= =?us-ascii?Q?Rm3qSleH4HUwkpdxz8HTVI40xQDjm5Htfit4mz31dYk1M0rK9xXPMZWiavuk?= =?us-ascii?Q?aKhR+HybmtDW3E1mJbWps7EmcHjPki/Yzb4OEFcWKNYrkPDlMoriC9GgA3g3?= =?us-ascii?Q?gWTPn+pwz3IVQqKwAohLSU6YpKc/85HebEzJbmaAcCn9JCa0MTPunektEWS1?= =?us-ascii?Q?uZhox1qsRiko6laNiVPcCyGhZReWz0MkyBAQECyNhmMn3yPQUYK2JakQ3xYK?= =?us-ascii?Q?tnvdDDX1/9/zrKcls3bQk2ui5YUdu2D3C5ZkEwJ9fAjKb2JTiLkWcArQp0H6?= =?us-ascii?Q?t7odwsqDXHO1m4Z1UihqB2yHcFJoN3edwi2IbLOpp/jdftBBp7vTDYpOWwd5?= =?us-ascii?Q?eiHsxNiiw2Uv00b7tHZOwqiosgkVTWBnpdum1yJXrwHkpgDl/aV0O8YxsN5+?= =?us-ascii?Q?1TelxGTgw/hgYxkwwU7WV21G/uHGw2kwJmlYBafzfZlrDQ76gjHMvkaUuP3g?= =?us-ascii?Q?YYRGGRRMCQMeg1hoaj85M9ETfQydN6ffd9UbNMP6moArA+J7n1lx1l9F9Ffk?= =?us-ascii?Q?3J2FQAsI0x4raxM284miHaN/mcF/oNBQG8flp5nIgThYZYNlwt0y2wluS3Ox?= =?us-ascii?Q?B6k7G3xvInDard4QUd18R47k1oMZqGjuiuu7KqhKwdgfAibKCwRRAVgKHHOR?= =?us-ascii?Q?CS/2cxXK4xbzzS42gSjjzM+pPSTrorZbnu2G/uoPOmEFBqGix1HxxppwkFfE?= =?us-ascii?Q?cGGml0MOFLeaoqlC71TACwefU4MUXuP5D0daOKS+BXTtpN07hrd8QD+KN2kG?= =?us-ascii?Q?U6MeKHe4H/ZN+BLrObNChFG90XKCxnH4RvmEZNnEFTU6lrAwkFm8YRr6kf6Z?= =?us-ascii?Q?IlIcDNoPEr0YEx0RjMrA2YBIiHRzinmLVaJIg7y94IFUXM5aHkM+6EpljOCP?= =?us-ascii?Q?/Uj1yZk92rAsYlu35ZPXavbtH+n6qVUIGbehzi2rbF6z3pPzGE1N468cfvwq?= =?us-ascii?Q?SaRgY09pJM4yM4dzFrvEshtG6AF1BR6EVvDsAekpSSqWRWV11O1ezqEtf679?= =?us-ascii?Q?2GUoJ83/Dlwq8aQR3wmXkh6Cuo1PTPUqxh97Tft5vuBDsquuB23LP4nttbjB?= =?us-ascii?Q?ANgD8d9AWpAO54UAWaXceQ8GIGRKHq+qXD2xSUeYPPZs60obuwhm+V1xoUiB?= =?us-ascii?Q?j5rYHwwI4FH8y6kR11cx/QweHk1b9peqxSkne58yRZI02FLJsP3qIyR7m5UX?= =?us-ascii?Q?gHzHrCUFeDARBXax+qYKoUlA1mHYt/tqzaVBvnFxpx47vhruKKxAI10JTvJm?= =?us-ascii?Q?JgG6YHtbj1ua2SKy66FcPcgLuj9DMwNAuqFskZ2WglivXrSVM6TVLDU+yP8x?= =?us-ascii?Q?SFE2bzFSmb96+9Sn7hhWNcfBa4RGQtM=3D?= X-Exchange-RoutingPolicyChecked: ZN992BByGWDSMtuo3A378He6doEgfQQXwXNtmkJrrmg/OjRcmh0OHkh9VeTuOYOUBir0awBPUb7+4bLYgV+3Elxrw9wEj2WSfvLUh5jy3HWkorEVHUW/qcLJPEhjUtuqMRojyUTeHtY5qnJfA9maHELvQCGr9NzkHqu1GK9vxOlwJdakjJW4piOB/9xU0nEPopUYdwY73AaPtPGkfX8hpGASbnrBY7g1pC16W8yIIHpBefTS9mltlnvO6KN+vb2sInFCk3RaJt8KohmQ9qG1CRnhDmEWFcwNa5fzmRIKDqdGNee4Lle8y/GL9hRW2igt/R0Zp8fXRG121htndX5ZLA== X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: ee8604c9-1817-4b3a-3ff4-08deb10d7a07 X-MS-Exchange-CrossTenant-AuthSource: PH7PR02MB10160.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 16:34:17.5260 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: XIQJkxgxLTVICFBf34u2ew6M2M133Q6ih8X7zZ536cRUUmKyGR2McL6pLi8nPvPgy/3IrIXPjZ7Uy6+YK+bd69AV5UhQ+3693X9lQiJpjqM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR02MB8813 X-Proofpoint-ORIG-GUID: fMwOIIcFc2x2MTvLM-vldG7WI9PoCV7e X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDE2OCBTYWx0ZWRfX9/RlT2W671Fb 4GVBm90OKG5WLwJmWKFaXM3N22d6fUDIZQ8SUZlQ8SXGAwxkVXve5llFyGr+N347+iGLC6n8KeT z7XX/lH9iaXtrUCTvUKgJZxZzhNJJMfvHPZ8uqEObok/UhbEfVTc71huLo34hARW41OsW9kFpxh Iu3xn6VCT5pcU0FaN7mMJV8d4ZCiHrbtL6rHtaYrKV0L4K2D3d7Rzu+z/uOahbUUCHgJ+Ek/pyb 9xeMJ0bcgDvcEd3CRvZc6SpAP/cucIjw3ihMDlcQXBoNKN1tsGUIzItyy7KxhHhwYyiT5/sZ9CU tgn45+0Wvo8fKA5WvAVI26W6Zq1utI4aLJM7iu+BA1kvcroMHtX8dvB56aFs7YWlWJ/EYLsFNnd VqxNnIvIJ+SIcfc4mDCKeEjMapqUihChIcsKMnmdm9cbBXJVF/lfRskTSeXNL1E999uzsLmGh4+ QQv8ebi3w332ckINpBQ== X-Authority-Analysis: v=2.4 cv=TuXWQjXh c=1 sm=1 tr=0 ts=6a04a80c cx=c_pps a=zTBNYDxB24c+L2bFQgZTuw==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=NGcC8JguVDcA:10 a=0kUYKlekyDsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VofLwUrZ8Iiv6rRUPXIb:22 a=Ap8k9tRZuQ82DLYWQqG7:22 a=64Cc0HZtAAAA:8 a=Vihx4mBza3j37xkBvAUA:9 X-Proofpoint-GUID: fMwOIIcFc2x2MTvLM-vldG7WI9PoCV7e X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-13_01,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Reason: safe 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=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.151.68; envelope-from=shaju.abraham@nutanix.com; helo=mx0a-002c1b01.pphosted.com X-Spam_score_int: -31 X-Spam_score: -3.2 X-Spam_bar: --- X-Spam_report: (-3.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.445, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, 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: qemu development 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 @nutanix.com) X-ZM-MESSAGEID: 1778690153622158500 Content-Type: text/plain; charset="utf-8" Introduce data-structures required for the ARM property layer. There are four classes of properties: STRING: Multi-bit fields with arch-defined named values, such as ("off", "aes", "pmull", ...). BOOLEAN: 1-bit fields. NUMERIC: Numeric values like cache geometry, debug counter widths, etc. FRACTIONAL: Paired (base, frac) fields exposed as a single "M.F" string (e.g., CSV2/CSV2_FRAC, MPAM/MPAM_FRAC, RAS/RAS_FRAC, NV/NV_FRAC). Co-authored-by: Khushit Shah Signed-off-by: Shaju Abraham --- target/arm/arm-cpu-props.h | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 target/arm/arm-cpu-props.h diff --git a/target/arm/arm-cpu-props.h b/target/arm/arm-cpu-props.h new file mode 100644 index 0000000000..1dc3786ea9 --- /dev/null +++ b/target/arm/arm-cpu-props.h @@ -0,0 +1,36 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later + * + * ARM CPU feature properties. + * + * User-facing QOM properties that map to fields of the AArch64 ID + * registers described in cpu-idregs.inc.h. + * + */ + +#ifndef ARM_CPU_PROPS_H +#define ARM_CPU_PROPS_H + +#include "cpu-idregs.h" + +typedef enum ArmCpuPropType { + ARM_PROP_STRING, + ARM_PROP_BOOLEAN, + ARM_PROP_NUMERIC, + ARM_PROP_FRACTIONAL, +} ArmCpuPropType; + +typedef struct ArmFracVal { + const char *name; + uint64_t base_val; + uint64_t frac_val; +} ArmFracVal; + +typedef struct ArmCpuPropDesc { + const char *name; + ArmCpuPropType type; + ArmFieldIdx base_field; + ArmFieldIdx frac_field; + const ArmFracVal *vals; +} ArmCpuPropDesc; + +#endif --=20 2.52.0 From nobody Sat May 30 18:35:08 2026 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; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass(p=none dis=none) header.from=nutanix.com ARC-Seal: i=2; a=rsa-sha256; t=1778690155; cv=pass; d=zohomail.com; s=zohoarc; b=UhW969Dj6d09JkWDUZHONS9SgjoFezCXO5fxkRgshlKFb6FnFFEPJFheA1TBe07hJASB9BlxXvaQy4ioGDxVxTUE5jL1z+jHsASDxu8Lf63ewEN3Zi6uPPY6sxFNRmQCQPKTsisk/NviEHKaqV6VRr5SftRwjnXUgmWO90qfBtM= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778690155; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=qQia2sTu14gaaSj1X2ihN36jAvHDyr7AuM5sfCilu5U=; b=IXLZVkwPGBnfANHClcgRsXN4GYxRCqgWhbvQogsAq4ErrRmlbiaEZFRQ1RNmRsAGbDIBtAH8WMvarSN6LLlKpxKQybBG2SmRn2u9wNAM5UzgKNSysZ/Gk1FbMIApDzlxj0mNo1pr92Sni6Z4QfvTOVGUkFXa9YVTUYo2SsYengI= ARC-Authentication-Results: i=2; 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; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1778690155864272.5248402869199; Wed, 13 May 2026 09:35:55 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wNCYm-0004A6-3T; Wed, 13 May 2026 12:35:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wNCXt-0003Mk-4M; Wed, 13 May 2026 12:34:53 -0400 Received: from mx0a-002c1b01.pphosted.com ([148.163.151.68]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wNCXp-0000mp-0n; Wed, 13 May 2026 12:34:52 -0400 Received: from pps.filterd (m0127838.ppops.net [127.0.0.1]) by mx0a-002c1b01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64DGKdnV1855322; Wed, 13 May 2026 09:34:22 -0700 Received: from ch5pr02cu005.outbound.protection.outlook.com (mail-northcentralusazon11022087.outbound.protection.outlook.com [40.107.200.87]) by mx0a-002c1b01.pphosted.com (PPS) with ESMTPS id 4e3nvke988-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Wed, 13 May 2026 09:34:22 -0700 (PDT) Received: from PH7PR02MB10160.namprd02.prod.outlook.com (2603:10b6:510:2e7::19) by SJ0PR02MB8813.namprd02.prod.outlook.com (2603:10b6:a03:3d6::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Wed, 13 May 2026 16:34:19 +0000 Received: from PH7PR02MB10160.namprd02.prod.outlook.com ([fe80::4ed7:5c74:48e0:ff23]) by PH7PR02MB10160.namprd02.prod.outlook.com ([fe80::4ed7:5c74:48e0:ff23%7]) with mapi id 15.20.9891.021; Wed, 13 May 2026 16:34:19 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= proofpoint20171006; bh=qQia2sTu14gaaSj1X2ihN36jAvHDyr7AuM5sfCilu 5U=; b=nrKUfEnFzk36WL4V2EglYekR2uvS0tg3uHaBWd9HfAsIpYPXlWGzOYeWf OL98gIPB0ADRFYwyfF1KBrAqsgk3VfW3ipDFgYh0P9jyLd9oadqw7oM6mVxIeOCK IXayeIX9LKo2sOOkp5tb2GBayZMK4AxDtqUdzRVo4uqFvTvz4ivYlz7DYar8R3D7 i+G5T63BgpTJYHt/SBKD6i9aCIUe65LusmTfBH9vaXwK80lysK15TnA6VHPPBDg3 JKJTMbqpkbwxtm5HwnJ829X6TD9HzjzecTgSUSmh6mAiNR6UL+e3Eh9EKOcs2ZhJ 1nIcUXIKDmQN+TJqbOhj5YIpG9LwQ== ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ycJ2i14kNxlRZVQlBWsLvWta7FZPDasorXLNJipoPCDv78VLGaQEIUWQz10tTu1+EH8O1DE6ntiGE0sX6HZgj696Isi8gY00yzAuTitGsLaalHGombgKHJE1sOr4i+X1+QNdvI/XHwbqIfTOh85laDptXTbwvO/NEjx5+q/xfJzmP6GfF4zp3Z2NeU6j85RsLP3AHASz/JqOaRkdclsdH77woe+JRh7L6kas9DOiH9FUgqJnKrC7MVJ7ybqKfuPF1TNIKqoUw7MBC16Ugc/Zn8zsf2ocsyW9ss6hmjx3QQhiNzyPSiwPNdUCpiiLqnxtsFCnfBC1KdFlJQLW1fjUwg== 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=qQia2sTu14gaaSj1X2ihN36jAvHDyr7AuM5sfCilu5U=; b=PN1m7MIVTsy2VfrU4aQWaix548tnFkYZuy5T09nwQXFXWXBugpTHgOoZsVohr2A3Dk8u8OXz5pxcGHH85uq2mqwFjgyr7Rs0NMPfhYmGdURHVoLtb1/1actKJhAzij9O8hBKo1hQi0WFhhbI8pZa+onCG13+k1X9/bDPPFcKpbDT+jApCKBmxwi6Q4YR9cI1CHKwdjJKaEv2n+iV7Dzganay/dpywSAdzTLNetzi76f751Es21kJBI/BpwbEGUQ2ehQgWn/4ldLZxCmeWriQM44y6i8XCwFF5YDCYYldIiR07Yc+nm21G5bma4EFur2IY1eIsvj2+ewwsYveXAf/WA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qQia2sTu14gaaSj1X2ihN36jAvHDyr7AuM5sfCilu5U=; b=v4Wo/Ed6oqGmbSxSm3nkLcu6LMnKvXFyszYnkgn5F134xk9XfEf6q5dH4I0cbXRw+8toMmOdXrTjbbHKch/pvAiwO9e8dQh6sHhn/Vtltyvb/H1N1G3dpcTL3caeO/hcTmoRuaxPHg2MCV4TfZ0x/Aatd05/mu717NHMwrhUUWhCnLaSiGtJmM30W4d2UyW2AqQAvapwGGbrQe/1Qf8Vm17MrwVi7TsuHIccJpN9VR0gSm3JLy40w7somqgAVwuPrVoAVl1TAUT78d8+RkpCL1t8W0LBseYbWiBpEQkpTr5qdjQtFnHZjxTQZD9WeARnPmzDhXGAPeIGQv7PvgT0WA== From: Shaju Abraham To: eric.auger@redhat.com, qemu-devel@nongnu.org, qemu-arm@nongnu.org, kvmarm@lists.linux.dev, peter.maydell@linaro.org, richard.henderson@linaro.org, cohuck@redhat.com, sebott@redhat.com, skolothumtho@nvidia.com, philmd@linaro.org Cc: maz@kernel.org, oliver.upton@linux.dev, pbonzini@redhat.com, prerna.saxena@nutanix.com, jon@nutanix.com, jond@nutanix.com, Shaju Abraham , Khushit Shah Subject: [RFC PATCH v1 07/13] target/arm: named_cpu_model: define ARM properties Date: Wed, 13 May 2026 16:33:50 +0000 Message-ID: <20260513163356.3033159-8-shaju.abraham@nutanix.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260513163356.3033159-1-shaju.abraham@nutanix.com> References: <20260513163356.3033159-1-shaju.abraham@nutanix.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: CY5PR10CA0003.namprd10.prod.outlook.com (2603:10b6:930:1c::30) To PH7PR02MB10160.namprd02.prod.outlook.com (2603:10b6:510:2e7::19) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH7PR02MB10160:EE_|SJ0PR02MB8813:EE_ X-MS-Office365-Filtering-Correlation-Id: 1cf236d0-0094-4b12-b8d8-08deb10d7b2f x-proofpoint-crosstenant: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|7416014|376014|366016|1800799024|921020|18002099003|22082099003|56012099003; X-Microsoft-Antispam-Message-Info: FwDxsfcLl3UucvSleC7s77OFQEvZC/tJTv1c7xI20tzztSUXVknkU7jSyjdcvnnnS3fCwkdi6loE+w4TagaGMort3biSmWa8zchZl48a9YZAgOuZmHWfp5iBr6GRkKtbsP+YXSAiQzpdMr/5AEY1Iy6eBLcZ9mBvK1yHKxqd4JJfaPpG/RoAsjwxEwBoAPMGrgI7Levf5F9M9xxEc/8bL/WY3baTZCUk4+930OxlchomDexp9faIHPs6dqNFHIz8OMxxW2VkrlNKopzIfFNNH6C25okBQs5sKt9y7h0QHzB/kO0k46uP9B7stN8GjXfrWN6I0OX3WK0Gcth9hiIh0qa4lTpnShH8LSjEHanP7F9XLAubzTTajIflsTWm4aiZDNvpJamRE9CbZd0zwzCCKX3bpNFvQfulJT6NC+Sd7VIK88DoRBxX4ZH78ELm9qw+cgqvP/8FhEMR9gWQ1Z/QJq9nPbwTwp0Sxg8SNJE4fqMmyjp/Qv4Eea6xesBRW7wog/pJvom8DLfMd0eWMInTz8iAymtpX9p7yplMepdPDiF1z/owgqmQJW94Zi3NkMvlInyAosecpoImfbLBlBj8Xgj3Ngo1tb3WIXCQpJwU/mLeFIw/Dx1vWnoV/C4nSgS1pfsnqYxrVcxO3l07WUKJ1eiwpHsHb0uf5QHWSKa1FF7eNmyCQvTO/LA0SnZXAEX4mpLy7c/qFnGEffJy23Qb5WKfdNg+g/8zP3MuY0cPG/U= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH7PR02MB10160.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(7416014)(376014)(366016)(1800799024)(921020)(18002099003)(22082099003)(56012099003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?pjCteXg8ZUdSdVqHvymdf5zIR/OGGvYHYiOs6T6uSNR4Vi15wx89+exde+Ow?= =?us-ascii?Q?fRgaxmOJxkK3moQGAD2F0kSJjTgMqc0uN4OATpqyurnB7E17kk+l1CCmvqTT?= =?us-ascii?Q?QCrllHRIGlvwc2aITzRIf3Tww/vfviC5IYsz8vX0FSlokiQgr4ZMWHgV8gxA?= =?us-ascii?Q?SLSa7XHus22TaDSy5t2+03uto3zCaGktkmWDVVNIvW1ANO9X20eqMoPvOtCf?= =?us-ascii?Q?EWAXwmYPeXyN+4INbmfSI/lz3ASaJO4WPcHxjntFBV2TQOf46g4KnZyQt6bV?= =?us-ascii?Q?uwywOmOfDLCAH2+IuVX6tbS70UvlQKkl8apf01h442YaeNwwGIDvuxNMt7QS?= =?us-ascii?Q?dqEzGnPgQcifxN1cO4+wuOrlGJuof6gtOgCIyOyWN/kYNFj+m3tobT9lXDrn?= =?us-ascii?Q?iHCJBveBIbpWhqcpZu+gnnO3l6phN1Mjfuxn82gAeTuKTPGh76ueGUtw3ahq?= =?us-ascii?Q?HPAYJbG/2I3k3lAvBMceYeSZpDShqs4ydOR1CBWC+xT0QmMA8E6KVHAUZqD0?= =?us-ascii?Q?0o+zyuKQ2TzF63PgoywMJFXmB6utvWsxbFSnScsxxBvgYBtt5jlr+k+HhTHn?= =?us-ascii?Q?W4vPosuo59k2jdHb53M86itHi0Z3o3rHNpa9OTb3e50pJPPaXlOxChk20W33?= =?us-ascii?Q?NZnxjqe3NQITrEBZ0U5uIb04rqegfEheek48OxMYNryTN1Melxbh11b+HszL?= =?us-ascii?Q?quaPi0ZiyqRYUVHRJFOOHoKa+swWCp8hM6U9FQMFgWi7KflhSfs6iE6kzuWp?= =?us-ascii?Q?kk3elC6+IkYDaItgeDkO/2j33+x744JKrbnpp8kb0KAcR8fllraIGN8SFJJq?= =?us-ascii?Q?3SFe0czI+YrmzeiBc4QiWRBlBhNlwhn5Ka+xufN1iQFbwuRGB9WDmvZgZPZD?= =?us-ascii?Q?W6kOUsEt1PPhoq2C8CX58p/9n6eb2YpwU3fLgF1b4hCcU52Jc9lw5820SRGj?= =?us-ascii?Q?t9P8mPU2xMZR3bvSxSngLSnQRrXESgDSDRcHWVYouTTaGJz587FBoaXPLAbY?= =?us-ascii?Q?lo2j/Esm12XWwjvO+We4StYMeQvrVp/Uv9kiiYYoR2RrsmCJSfrUiNnkloNh?= =?us-ascii?Q?IjOsnlwcJ5wY1IpPq69woLGZQTd9QC+qxuXXQBM5QaBt+FiAfViU3EDypNxe?= =?us-ascii?Q?hZR4cb1qj5oAcyMlGqg//FO9trhfgLRULyxW02TFROjOnWrPWrfqiTlQVzYe?= =?us-ascii?Q?ymT3Z+gMi4h4s48x/IIyHsFCwHfdKM/3uSFh4mI9FUBV9dBuQPsXjgAIlhps?= =?us-ascii?Q?HD4PO3sAKFCT3ZmRe4EPY2806vo0E7sz8EhVImVPKDJSvooplkWIEdg8Ze++?= =?us-ascii?Q?msBitya1Hke1ltvX/1EGHR0XhEk4qFv04Vi3B/T4rj5iBdlL1Ie+muvPzWue?= =?us-ascii?Q?CQJNaRwS0YEVjD8VHlt+Y08q5g09TZ5phTE96N6rTI2PMUTg/MFJdoqzMAMC?= =?us-ascii?Q?M805h8Z6Ben2T8X6kXVVveeHo0r/YsxGX2cmOsmTz99OmiyBkRiIA8MEVh1W?= =?us-ascii?Q?aFqy3FCK8kTYwN1hMFrteUdyQD3E3P3lI6kLQCrDaOHMiba/sCrBRqxVyrh6?= =?us-ascii?Q?ltYH1zZzqH10e1MLaq7Ua3I7QAdrYDMa8SDKkzhSYO9j/58dfQZjs8ElUu3Z?= =?us-ascii?Q?zGVucHTsAbzbn8Sz6bXRpk47MyGJDinYm3bbddXE4CyAMZbgyicijQrnHroS?= =?us-ascii?Q?qDfqmZ9736/acE7yDSpx7yOaTQzoRYTBk6ROl8jg5LTru8Es9MuyXEeeyW2O?= =?us-ascii?Q?IeCR/5rsoqVzOdVe7AsdB3xzp2AS5qA=3D?= X-Exchange-RoutingPolicyChecked: WRMuTbgDEV9kWXgmKabePPO7JUUHcwFlIDhwYygzzuYs06Wf2krj6P3qdEj/+C0hpT3sVADeM/SzPUQpyf9yJzCLACCkVnP8BF9CkAcYURvwrPDJaMisy8WsBHLOZecCYXerSxjp8hcX1X2+PuQlhO+hrdv534dDndxn6dNBenHbWaa8YAKMSS2Xti1DAY004gbfYbjpSmbiIoR8J77d1qbaWiwsH51QfC7IjaR0aC/r9AmE3x3jshCXqnxM4Eb05fo5Up5xAHrlD9tPQH4Jj5pdi+xGZxiR0OxR5K+SiHWsXpC66cDKcpSeRdy5x/8B5rC51l2O1lRifAC4a+Uc+Q== X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1cf236d0-0094-4b12-b8d8-08deb10d7b2f X-MS-Exchange-CrossTenant-AuthSource: PH7PR02MB10160.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 16:34:19.6141 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 71VLqTltxZCDMIDHQCekjRMkb7Pi9bwAorxkvtixsCgamxQC2kTbNppqULYEpDhAlFXz9j+LVMumjY5nLPgtkrssQQZuIBzbFo1HWQFna00= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR02MB8813 X-Proofpoint-GUID: 6Q3erpIlI5hwl3Y89pM1FQneuNuJKgTZ X-Authority-Analysis: v=2.4 cv=WcU8rUhX c=1 sm=1 tr=0 ts=6a04a80e cx=c_pps a=sjA+6HJZU54iCSkNkQ7fig==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=NGcC8JguVDcA:10 a=0kUYKlekyDsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VofLwUrZ8Iiv6rRUPXIb:22 a=1L6crL_YRTbalZ11mEUO:22 a=64Cc0HZtAAAA:8 a=lbUGho734beyiQ__YtEA:9 X-Proofpoint-ORIG-GUID: 6Q3erpIlI5hwl3Y89pM1FQneuNuJKgTZ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDE2OCBTYWx0ZWRfX1la9rHU7UPiR UmdBdP+MQY27SMnoxrbTK9fF2DJbttQxhGfAszS4a93ghRydY9bDYjM3oUJb33VrcVsFbtd2/dB bG8bcuriDMS0B8vBr1mV8SlbFZfkBQwIXkhVU+Rtq4KBHGqGY3rFuAyNxQH94+RkIArGkwNx/oJ Vzzk9aAji7myqVG1jxqupPw0ssvICohL+C7aHa5EGvPiNV8Mp86sKsjE/xxNRCxvdW4pt6Wj3Xl OY2VVg2fCcg/bY87abHrHbYlJ8MoBI+hs+WIhrESWeHHv2h/lPryxAx5t+UHYFxbTtfiST4brb4 ggISkS5MfsXvCqPHzZ8dmHFXoF0+ajqCa/Kuj7Uo/Yaom+4jIj+kPHkM65BxR6c0jfcwQy2wDoY 26nnmf01FUmcdlB+wW/D6dqyZ8ydsuH4zKEegr+Xlo5C28iW6mK+L5JGUG3WALtEoI9xTp2Ya9h NoUHB0LxlG9d51VYlWw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-13_01,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Reason: safe 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=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.151.68; envelope-from=shaju.abraham@nutanix.com; helo=mx0a-002c1b01.pphosted.com X-Spam_score_int: -31 X-Spam_score: -3.2 X-Spam_bar: --- X-Spam_report: (-3.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.445, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UPPERCASE_50_75=0.008 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: qemu development 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 @nutanix.com) X-ZM-MESSAGEID: 1778690157658158500 Content-Type: text/plain; charset="utf-8" Define X-macros to generate tables for all user-facing CPU properties, including fractional properties. Properties that map to fields that are not supported by the linux kernel (i.e. not in the ftr_bits array) are not included. Co-authored-by: Khushit Shah Signed-off-by: Shaju Abraham --- target/arm/arm-cpu-frac.inc.h | 34 +++++++ target/arm/arm-cpu-props.inc.h | 180 +++++++++++++++++++++++++++++++++ 2 files changed, 214 insertions(+) create mode 100644 target/arm/arm-cpu-frac.inc.h create mode 100644 target/arm/arm-cpu-props.inc.h diff --git a/target/arm/arm-cpu-frac.inc.h b/target/arm/arm-cpu-frac.inc.h new file mode 100644 index 0000000000..6c194daf7c --- /dev/null +++ b/target/arm/arm-cpu-frac.inc.h @@ -0,0 +1,34 @@ + +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +FRAC_TABLE_START(CSV2) +FRAC_VAL("0.0", 0, 0) +FRAC_VAL("1.0", 1, 0) +FRAC_VAL("1.1", 1, 1) +FRAC_VAL("1.2", 1, 2) +FRAC_VAL("2.0", 2, 0) +FRAC_VAL("3.0", 3, 0) +FRAC_TABLE_END(CSV2) + +FRAC_TABLE_START(MPAM) +FRAC_VAL("0.0", 0, 0) +FRAC_VAL("0.1", 0, 1) +FRAC_VAL("1.0", 1, 0) +FRAC_VAL("1.1", 1, 1) +FRAC_TABLE_END(MPAM) + +FRAC_TABLE_START(RAS) +FRAC_VAL("0.0", 0, 0) +FRAC_VAL("1.0", 1, 0) +FRAC_VAL("1.1", 1, 1) +FRAC_VAL("1.1_base", 2, 0) +FRAC_VAL("2.0", 3, 0) +FRAC_TABLE_END(RAS) + +FRAC_TABLE_START(NV) +FRAC_VAL("0.0", 0, 0) +FRAC_VAL("1.0", 1, 0) +FRAC_VAL("2.0", 2, 0) +FRAC_VAL("2.0_only", 2, 1) +FRAC_VAL("2.1", 2, 2) +FRAC_TABLE_END(NV) diff --git a/target/arm/arm-cpu-props.inc.h b/target/arm/arm-cpu-props.inc.h new file mode 100644 index 0000000000..13a82e5b22 --- /dev/null +++ b/target/arm/arm-cpu-props.inc.h @@ -0,0 +1,180 @@ + +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +ARM_PROP("feat_AES", STRING, ID_AA64ISAR0, AES) +ARM_PROP("feat_SHA1", STRING, ID_AA64ISAR0, SHA1) +ARM_PROP("feat_SHA2", STRING, ID_AA64ISAR0, SHA2) +ARM_PROP("feat_CRC32", STRING, ID_AA64ISAR0, CRC32) +ARM_PROP("feat_ATOMIC", STRING, ID_AA64ISAR0, ATOMIC) +ARM_PROP("feat_RDM", STRING, ID_AA64ISAR0, RDM) +ARM_PROP("feat_SHA3", STRING, ID_AA64ISAR0, SHA3) +ARM_PROP("feat_SM3", STRING, ID_AA64ISAR0, SM3) +ARM_PROP("feat_SM4", STRING, ID_AA64ISAR0, SM4) +ARM_PROP("feat_DP", STRING, ID_AA64ISAR0, DP) +ARM_PROP("feat_FHM", STRING, ID_AA64ISAR0, FHM) +ARM_PROP("feat_TS", STRING, ID_AA64ISAR0, TS) +ARM_PROP("feat_TLB", STRING, ID_AA64ISAR0, TLB) +ARM_PROP("feat_RNDR", STRING, ID_AA64ISAR0, RNDR) + +ARM_PROP("feat_DPB", STRING, ID_AA64ISAR1, DPB) +ARM_PROP("hw_prop_APA", STRING, ID_AA64ISAR1, APA) +ARM_PROP("hw_prop_API", STRING, ID_AA64ISAR1, API) +ARM_PROP("feat_JSCVT", STRING, ID_AA64ISAR1, JSCVT) +ARM_PROP("feat_FCMA", STRING, ID_AA64ISAR1, FCMA) +ARM_PROP("feat_LRCPC", STRING, ID_AA64ISAR1, LRCPC) +ARM_PROP("hw_prop_GPA", STRING, ID_AA64ISAR1, GPA) +ARM_PROP("hw_prop_GPI", STRING, ID_AA64ISAR1, GPI) +ARM_PROP("feat_FRINTTS", STRING, ID_AA64ISAR1, FRINTTS) +ARM_PROP("feat_SB", STRING, ID_AA64ISAR1, SB) +ARM_PROP("feat_SPECRES", STRING, ID_AA64ISAR1, SPECRES) +ARM_PROP("feat_BF16", STRING, ID_AA64ISAR1, BF16) +ARM_PROP("feat_DGH", STRING, ID_AA64ISAR1, DGH) +ARM_PROP("feat_I8MM", STRING, ID_AA64ISAR1, I8MM) +ARM_PROP("feat_XS", STRING, ID_AA64ISAR1, XS) +ARM_PROP("feat_LS64", STRING, ID_AA64ISAR1, LS64) + +ARM_PROP("feat_WFXT", STRING, ID_AA64ISAR2, WFXT) +ARM_PROP("feat_RPRES", STRING, ID_AA64ISAR2, RPRES) +ARM_PROP("hw_prop_GPA3", STRING, ID_AA64ISAR2, GPA3) +ARM_PROP("hw_prop_APA3", STRING, ID_AA64ISAR2, APA3) +ARM_PROP("feat_MOPS", STRING, ID_AA64ISAR2, MOPS) +ARM_PROP("feat_BC", STRING, ID_AA64ISAR2, BC) +ARM_PROP("feat_CLRBHB", STRING, ID_AA64ISAR2, CLRBHB) +ARM_PROP("feat_RPRFM", STRING, ID_AA64ISAR2, RPRFM) +ARM_PROP("feat_CSSC", STRING, ID_AA64ISAR2, CSSC) +ARM_PROP("feat_LUT", STRING, ID_AA64ISAR2, LUT) + +ARM_PROP("feat_FAMINMAX", STRING, ID_AA64ISAR3, FAMINMAX) +ARM_PROP("feat_LSFE", STRING, ID_AA64ISAR3, LSFE) +ARM_PROP("feat_FPRCVT", STRING, ID_AA64ISAR3, FPRCVT) + +ARM_PROP("el0_mode", STRING, ID_AA64PFR0, EL0) +ARM_PROP("el1_mode", STRING, ID_AA64PFR0, EL1) +ARM_PROP("el2_mode", STRING, ID_AA64PFR0, EL2) +ARM_PROP("el3_mode", STRING, ID_AA64PFR0, EL3) +ARM_PROP("feat_FP", STRING, ID_AA64PFR0, FP) +ARM_PROP("feat_AdvSIMD", STRING, ID_AA64PFR0, ADVSIMD) +ARM_PROP("feat_GIC", STRING, ID_AA64PFR0, GIC) +ARM_PROP("feat_SVE", STRING, ID_AA64PFR0, SVE) +ARM_PROP("feat_SEL2", STRING, ID_AA64PFR0, SEL2) +ARM_PROP("feat_AMU", STRING, ID_AA64PFR0, AMU) +ARM_PROP("feat_DIT", STRING, ID_AA64PFR0, DIT) +ARM_PROP("feat_CSV3", STRING, ID_AA64PFR0, CSV3) + +ARM_PROP("feat_BT", STRING, ID_AA64PFR1, BT) +ARM_PROP("feat_SSBS", STRING, ID_AA64PFR1, SSBS) +ARM_PROP("feat_MTE", STRING, ID_AA64PFR1, MTE) +ARM_PROP("feat_NMI", STRING, ID_AA64PFR1, NMI) +ARM_PROP("feat_MTE_FRAC", STRING, ID_AA64PFR1, MTE_FRAC) +ARM_PROP("feat_GCS", STRING, ID_AA64PFR1, GCS) +ARM_PROP("feat_DF2", STRING, ID_AA64PFR1, DF2) + +ARM_PROP("feat_MTESTOREONLY", STRING, ID_AA64PFR2, MTESTOREONLY) +ARM_PROP("feat_MTEFAR", STRING, ID_AA64PFR2, MTEFAR) +ARM_PROP("feat_FPMR", STRING, ID_AA64PFR2, FPMR) + +ARM_PROP("hw_prop_PARANGE", STRING, ID_AA64MMFR0, PARANGE) +ARM_PROP("hw_prop_ASIDBITS", STRING, ID_AA64MMFR0, ASIDBITS) +ARM_PROP("feat_BIGEND", STRING, ID_AA64MMFR0, BIGEND) +ARM_PROP("feat_SNSMEM", STRING, ID_AA64MMFR0, SNSMEM) +ARM_PROP("feat_BIGENDEL0", STRING, ID_AA64MMFR0, BIGENDEL0) +ARM_PROP("hw_prop_TGRAN16", STRING, ID_AA64MMFR0, TGRAN16) +ARM_PROP("hw_prop_TGRAN64", STRING, ID_AA64MMFR0, TGRAN64) +ARM_PROP("hw_prop_TGRAN4", STRING, ID_AA64MMFR0, TGRAN4) +ARM_PROP("hw_prop_TGRAN16_2", STRING, ID_AA64MMFR0, TGRAN16_2) +ARM_PROP("hw_prop_TGRAN64_2", STRING, ID_AA64MMFR0, TGRAN64_2) +ARM_PROP("hw_prop_TGRAN4_2", STRING, ID_AA64MMFR0, TGRAN4_2) +ARM_PROP("feat_EXS", STRING, ID_AA64MMFR0, EXS) +ARM_PROP("feat_FGT", STRING, ID_AA64MMFR0, FGT) +ARM_PROP("feat_ECV", STRING, ID_AA64MMFR0, ECV) + +ARM_PROP("feat_HAFDBS", STRING, ID_AA64MMFR1, HAFDBS) +ARM_PROP("hw_prop_VMIDBITS", STRING, ID_AA64MMFR1, VMIDBITS) +ARM_PROP("feat_VH", STRING, ID_AA64MMFR1, VH) +ARM_PROP("feat_HPDS", STRING, ID_AA64MMFR1, HPDS) +ARM_PROP("feat_LO", STRING, ID_AA64MMFR1, LO) +ARM_PROP("feat_PAN", STRING, ID_AA64MMFR1, PAN) +ARM_PROP("feat_SpecSEI", STRING, ID_AA64MMFR1, SPECSEI) +ARM_PROP("feat_XNX", STRING, ID_AA64MMFR1, XNX) +ARM_PROP("feat_TWED", STRING, ID_AA64MMFR1, TWED) +ARM_PROP("feat_ETS", STRING, ID_AA64MMFR1, ETS) +ARM_PROP("feat_HCX", STRING, ID_AA64MMFR1, HCX) +ARM_PROP("feat_AFP", STRING, ID_AA64MMFR1, AFP) +ARM_PROP("feat_TIDCP1", STRING, ID_AA64MMFR1, TIDCP1) +ARM_PROP("feat_ECBHB", STRING, ID_AA64MMFR1, ECBHB) + +ARM_PROP("feat_CNP", STRING, ID_AA64MMFR2, CNP) +ARM_PROP("feat_UAO", STRING, ID_AA64MMFR2, UAO) +ARM_PROP("feat_LSM", STRING, ID_AA64MMFR2, LSM) +ARM_PROP("feat_IESB", STRING, ID_AA64MMFR2, IESB) +ARM_PROP("hw_prop_VARANGE", STRING, ID_AA64MMFR2, VARANGE) +ARM_PROP("hw_prop_CCIDX", STRING, ID_AA64MMFR2, CCIDX) +ARM_PROP("hw_prop_ST", STRING, ID_AA64MMFR2, ST) +ARM_PROP("feat_AT", STRING, ID_AA64MMFR2, AT) +ARM_PROP("hw_prop_IDS", STRING, ID_AA64MMFR2, IDS) +ARM_PROP("hw_prop_FWB", STRING, ID_AA64MMFR2, FWB) +ARM_PROP("feat_TTL", STRING, ID_AA64MMFR2, TTL) +ARM_PROP("feat_BBM", STRING, ID_AA64MMFR2, BBM) +ARM_PROP("feat_EVT", STRING, ID_AA64MMFR2, EVT) +ARM_PROP("feat_E0PD", STRING, ID_AA64MMFR2, E0PD) + +ARM_PROP("feat_TCRX", STRING, ID_AA64MMFR3, TCRX) +ARM_PROP("feat_SCTLRX", STRING, ID_AA64MMFR3, SCTLRX) +ARM_PROP("feat_S1PIE", STRING, ID_AA64MMFR3, S1PIE) +ARM_PROP("feat_S1POE", STRING, ID_AA64MMFR3, S1POE) + +ARM_PROP("feat_E2H0", STRING, ID_AA64MMFR4, E2H0) + +ARM_PROP("feat_DBG", STRING, ID_AA64DFR0, DEBUGVER) +ARM_PROP("feat_PMU", STRING, ID_AA64DFR0, PMUVER) +ARM_PROP("hw_prop_BRPS", NUMERIC, ID_AA64DFR0, BRPS) +ARM_PROP("hw_prop_WRPs", NUMERIC, ID_AA64DFR0, WRPS) +ARM_PROP("hw_prop_CTX_CMPs", NUMERIC, ID_AA64DFR0, CTX_CMPS) +ARM_PROP("hw_prop_PMSVer", STRING, ID_AA64DFR0, PMSVER) +ARM_PROP("feat_DoubleLock", STRING, ID_AA64DFR0, DOUBLELOCK) + +ARM_PROP("hw_prop_SVEVer", STRING, ID_AA64ZFR0, SVEVER) +ARM_PROP("feat_SVE_AES", STRING, ID_AA64ZFR0, AES) +ARM_PROP("feat_SVE_ELTPERM", STRING, ID_AA64ZFR0, ELTPERM) +ARM_PROP("feat_SVE_BITPERM", STRING, ID_AA64ZFR0, BITPERM) +ARM_PROP("feat_SVE_BFLOAT16", STRING, ID_AA64ZFR0, BFLOAT16) +ARM_PROP("feat_SVE_B16B16", STRING, ID_AA64ZFR0, B16B16) +ARM_PROP("feat_SVE_SHA3", STRING, ID_AA64ZFR0, SHA3) +ARM_PROP("feat_SVE_SM4", STRING, ID_AA64ZFR0, SM4) +ARM_PROP("feat_SVE_I8MM", STRING, ID_AA64ZFR0, I8MM) +ARM_PROP("feat_SVE_F16MM", STRING, ID_AA64ZFR0, F16MM) +ARM_PROP("feat_SVE_F32MM", STRING, ID_AA64ZFR0, F32MM) +ARM_PROP("feat_SVE_F64MM", STRING, ID_AA64ZFR0, F64MM) + +ARM_PROP("feat_F8E5M2", BOOLEAN, ID_AA64FPFR0, F8E5M2) +ARM_PROP("feat_F8E4M3", BOOLEAN, ID_AA64FPFR0, F8E4M3) +ARM_PROP("feat_F8MM4", BOOLEAN, ID_AA64FPFR0, F8MM4) +ARM_PROP("feat_F8MM8", BOOLEAN, ID_AA64FPFR0, F8MM8) +ARM_PROP("feat_F8DP2", BOOLEAN, ID_AA64FPFR0, F8DP2) +ARM_PROP("feat_F8DP4", BOOLEAN, ID_AA64FPFR0, F8DP4) +ARM_PROP("feat_F8FMA", BOOLEAN, ID_AA64FPFR0, F8FMA) +ARM_PROP("feat_F8CVT", BOOLEAN, ID_AA64FPFR0, F8CVT) + +ARM_PROP("hw_prop_IMInline", NUMERIC, CTR_EL0, IMINLINE) +ARM_PROP("hw_prop_L1IP", STRING, CTR_EL0, L1IP) +ARM_PROP("hw_prop_DMInline", NUMERIC, CTR_EL0, DMINLINE) +ARM_PROP("hw_prop_ERG", NUMERIC, CTR_EL0, ERG) +ARM_PROP("hw_prop_CWG", NUMERIC, CTR_EL0, CWG) +ARM_PROP("hw_prop_IDC", BOOLEAN, CTR_EL0, IDC) +ARM_PROP("hw_prop_DIC", BOOLEAN, CTR_EL0, DIC) +ARM_PROP("hw_prop_BS", NUMERIC, DCZID_EL0, BS) +ARM_PROP("hw_prop_DZP", BOOLEAN, DCZID_EL0, DZP) + +ARM_PROP("cpu_revision", NUMERIC, MIDR, REVISION) +ARM_PROP("cpu_partnum", NUMERIC, MIDR, PARTNUM) +ARM_PROP("cpu_architecture", NUMERIC, MIDR, ARCHITECTURE) +ARM_PROP("cpu_variant", NUMERIC, MIDR, VARIANT) +ARM_PROP("cpu_implementer", NUMERIC, MIDR, IMPLEMENTER) +ARM_PROP("cpu_revidr", NUMERIC, REVIDR, VAL) +ARM_PROP("cpu_aidr", NUMERIC, AIDR, VAL) + +/* Fractional properties */ +ARM_FRACTIONAL_PROP("feat_CSV2", ID_AA64PFR0, CSV2, ID_AA64PFR1, CSV2_FRAC) +ARM_FRACTIONAL_PROP("feat_MPAM", ID_AA64PFR0, MPAM, ID_AA64PFR1, MPAM_FRAC) +ARM_FRACTIONAL_PROP("feat_RAS", ID_AA64PFR0, RAS, ID_AA64PFR1, RAS_FRAC) +ARM_FRACTIONAL_PROP("feat_NV", ID_AA64MMFR2, NV, ID_AA64MMFR4, NV_FRAC) --=20 2.52.0 From nobody Sat May 30 18:35:08 2026 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; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass(p=none dis=none) header.from=nutanix.com ARC-Seal: i=2; a=rsa-sha256; t=1778690147; cv=pass; d=zohomail.com; s=zohoarc; b=ZqOtUBu6SIZEiiarbAj3l7ciK2Fe39jCPtpUH5y+BGnfxizQoFPqxUg/kf1Bl90dZTsa6oGgo5psUZVqE04CcW9cxOcFOKPzJjRNofBGtkB7LMcReiIo3umaZ441WEhtzb1XrPZEkwOQf9be1YbtcnD/ZtIKjosFtXjfqVmUkzI= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778690147; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=pX83whw34rYEWw8o2vrW5ivFlfflMvDudQK5SUiYsfE=; b=CzCf8LbyqiLIorhzLz9mKxtenllKKvA6RE3YMG2L737PrP9AMK7LTBfSGSLtSVv8fA39MO//lmTbzCxWmkBLONlvbfvGDtl/1a+oOKoSI+72ORl71sCn9t0/1Z2MYrMRAJ0f/4Q+1qyl0Ueqkuq2Zkq6Kqlb8ShbPHDIQe28zMU= ARC-Authentication-Results: i=2; 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; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1778690147242878.4709614302124; Wed, 13 May 2026 09:35:47 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wNCYg-0003yR-7Y; Wed, 13 May 2026 12:35:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wNCYA-0003QA-O0; Wed, 13 May 2026 12:35:11 -0400 Received: from mx0b-002c1b01.pphosted.com ([148.163.155.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wNCY8-00017o-0w; Wed, 13 May 2026 12:35:10 -0400 Received: from pps.filterd (m0127843.ppops.net [127.0.0.1]) by mx0b-002c1b01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64DGKYGX737957; Wed, 13 May 2026 09:34:24 -0700 Received: from sn4pr0501cu005.outbound.protection.outlook.com (mail-southcentralusazon11021126.outbound.protection.outlook.com [40.93.194.126]) by mx0b-002c1b01.pphosted.com (PPS) with ESMTPS id 4e3nvap78u-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Wed, 13 May 2026 09:34:23 -0700 (PDT) Received: from PH7PR02MB10160.namprd02.prod.outlook.com (2603:10b6:510:2e7::19) by SJ0PR02MB8813.namprd02.prod.outlook.com (2603:10b6:a03:3d6::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Wed, 13 May 2026 16:34:22 +0000 Received: from PH7PR02MB10160.namprd02.prod.outlook.com ([fe80::4ed7:5c74:48e0:ff23]) by PH7PR02MB10160.namprd02.prod.outlook.com ([fe80::4ed7:5c74:48e0:ff23%7]) with mapi id 15.20.9891.021; Wed, 13 May 2026 16:34:22 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= proofpoint20171006; bh=pX83whw34rYEWw8o2vrW5ivFlfflMvDudQK5SUiYs fE=; b=nV4if1plzZStgiDuysQtIaNhOwMKrtm3zNV8IWxFWSFZI2PoiTDThwNf2 HwKBbjkNDaFJ8+zPrAf+KDC7MtQcS0xUTadzZUj02tklafIfhkDvTXvALrWjjBdx ZpQwqWzYvY7C4g4VxoJRNDLYoQ94qPtz7T0HiC/gJldOk+rxbrNx/jhqOD+lSTzC ZBbgB+b6L8jdEvw0YaG/z26SLzr3E10ZYrXG4wr5njK/23uU4rJI1tWGc3Eqqac1 7UrZ5yfrmAcXMbwwo7Qduy9Y6KvyDCypfIslJF/gm3mdJbG3Fax7j+/tuRDHBgh3 xPy/C/3Cm87CwB0QkXHMaJiP3+Pjw== ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=N7dDtlXn9slWSDQbBVPuhJd5wmYEs54SoO5yfgLaMkOW1tBVoDqaip1PyDmE24uI1M3eKt055+EBXi8Rj4MoiGRHnNxoBAlMrSRkWanO9FhwunO/OUoAQr6fXqtwTyE85jMPNFNoApngfA6eDzd6H7FyO8okomyhhV38aLOSDO71EHqh3CucePvN/qLpLnFixTBcX5u9hRgmHC6axhkbH6P5AILEOLhoj4Xy3O93sVmjzsz2NL2BnVjIioVohdI83tADUTWPFwNGU/rdEfcBJ197Jl1rw0bU1Xq2s8EUcIwqgFZyJVSnqX8woGoQZw2jPX8HVri4mWvShjilBxio2w== 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=pX83whw34rYEWw8o2vrW5ivFlfflMvDudQK5SUiYsfE=; b=YkVSRGWZ9FrzFHfiX9wCdgNG8SMV118e/JwFzsQdjfSD1gRLIq8vKdh2rQH8o212p5YKX3g9kMlh+AC3DKel+K4+LcQT/p1H21IZHjcVRxMV4KSghppN9KlcQDr4PBbTAF+4LhTwOUC6uGaM14hp+511puYASa9kR/1GGp81pjkYU4dMlzGkbxl0uAw76DXsG0qMD7bt7CZDYd+CSFQh2UQd5ltM587TxygkKRrgAmsk5G4a8jrD5qz/7dXlOE4yoOOsMZFQwF6h4AdRfxN+mOU6D3kPPOqdKUMczo1ClF3vhL+FAurRgsSMJusS+iQwIN5FJjPxPvlA20dmWXdtXw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pX83whw34rYEWw8o2vrW5ivFlfflMvDudQK5SUiYsfE=; b=nepeHrgD3l95LfIc2VPufZGv4/iYsiCXs0LXgVy87/tdOHqPMo2QZETgVMuQyyEJTUDawYhI5RF1wVpPQB8dw32/jEj+WaGhKkiWvu50vfSqgN98mfA2+s5hj/Vy26e2cLb4R7Vji9+uOMlWWEWBSCiRlCy1b3USXrBTeHAWlsaNjl49OtYSLAL13nVIQzSJRbYRrqyx0inY07uv3YHlgcyC7/cpL+UkQZ51jSauK/j6ivugbkvpZWXuM+AxVSUqJQ12208zrZmp2BwxSfCvqHgZv5LrEIxmMG+MUJESeAbmCrNMAkmk3B7XJykUdP12mfAvbwEUhum7OZo9Ixvh5Q== From: Shaju Abraham To: eric.auger@redhat.com, qemu-devel@nongnu.org, qemu-arm@nongnu.org, kvmarm@lists.linux.dev, peter.maydell@linaro.org, richard.henderson@linaro.org, cohuck@redhat.com, sebott@redhat.com, skolothumtho@nvidia.com, philmd@linaro.org Cc: maz@kernel.org, oliver.upton@linux.dev, pbonzini@redhat.com, prerna.saxena@nutanix.com, jon@nutanix.com, jond@nutanix.com, Shaju Abraham , Khushit Shah Subject: [RFC PATCH v1 08/13] target/arm: named_cpu_model: generate arm_cpu_props[] table Date: Wed, 13 May 2026 16:33:51 +0000 Message-ID: <20260513163356.3033159-9-shaju.abraham@nutanix.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260513163356.3033159-1-shaju.abraham@nutanix.com> References: <20260513163356.3033159-1-shaju.abraham@nutanix.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: CY5PR10CA0003.namprd10.prod.outlook.com (2603:10b6:930:1c::30) To PH7PR02MB10160.namprd02.prod.outlook.com (2603:10b6:510:2e7::19) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH7PR02MB10160:EE_|SJ0PR02MB8813:EE_ X-MS-Office365-Filtering-Correlation-Id: cef2a602-5938-492a-6e3a-08deb10d7c88 x-proofpoint-crosstenant: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|7416014|376014|366016|1800799024|921020|18002099003|22082099003|56012099003; X-Microsoft-Antispam-Message-Info: KOKmMIWx3SMIfVqDbQH1dkIpqzLXD5eLes9uyhDT7KpAW3iysWGJDHxcY2kXXwYJ3Xi0nMDv8ZEB1bDkjSWV2+rk7Oxyx58gUN29C/qLQ7cK+UWXKE6pDOPdr9OwbEDeP+osAyK9XqO1CzHdtRVnNB6lRLhtgtFBUrDjaK3JkKk3lK4WhN9+6ovhrlbIIhwvcAJPJDkutaAAWsnRekRegSUCTE+9uvJSFB2anZtQyugdWvbg8M1kLpRRZfeJ1QW4FA254201pHbqr5VJvjXxvhQdm5ickiTgfH4EHTy5g+Ql/xKa52oWd/dBQbDAmJXyCg0qkIiYwwP1ebomde2bCwCSsl5ljnYO6O9PRyFUzRbyWbSedOpFvKGp8wQBYL4SeMGVRF17gZn8dGvrzW8m2GEDKjgLvV8g3T1CMAaVGJz25f0zGxXqJK9AoerzkokghshnmlG9N54WzBEIX0XAT9GOmXfoUI7TN+g/LZ9PHjcQ94bTAcAtBJsBxD+vC4/eJkfMXE0N4XxK8JzmtpZ3q7M1wuA+HlGtbuoJegRI9JkxFzKdog6F3y4Iuodv8dC0a1wO4dLPsYxJs0jucvBaXHKpeUZ0EeWiKqBXD1Izn+sRJRpg+TI0N1oH6MHVBVbnLNUuDJsiFI4BSdRrAqPexuJUKI2AL2v7gGwpbsHfyUE9HW9fcKKCS9B42k4EOemfxR/XYKwkKsqa9iVT5fgGWblnXOJ26XFTcETSTr4ZXLs= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH7PR02MB10160.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(7416014)(376014)(366016)(1800799024)(921020)(18002099003)(22082099003)(56012099003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?1+bjyXzxIeU+8+QHAGqbeDlR8AJ8/Bhy9JBoztehKBnUpRYkCzXFa/ChjAOt?= =?us-ascii?Q?5LAK9sdeQo02yh0k0sOWUxjpFBV3XSOrPPMNtA5I60sXXYqjQm1afELEpX1b?= =?us-ascii?Q?QO37KzTgVgc6pX+cwDH9D3wzEtmPeG9rZlRMoYGn7YQQQlL33nxi4zuk6Gp7?= =?us-ascii?Q?TLT/XiZH0XDYD3QiiDrMYkliDJBhweZ5eWx84bdiLNN9TDddgeHToK/Pced4?= =?us-ascii?Q?QC3tZR3U5T+wqbtJLXu4FgBJPS5kDkcxaokyO4bHsfxPl1kXT0JTtnyulVbD?= =?us-ascii?Q?ScS8B9zXuPomtNP4Gvs6sIiMBQf2syta73YpC9kkukcB/8UToCDZ/hdUJyx0?= =?us-ascii?Q?v0ZohL5wG/KvMCPbr5WMRqwUYJNNR3JvXsd1zp/TlK5XJdvuYiW593wK3bCP?= =?us-ascii?Q?tz6rbtvmBZbJ2+Ex+Px0AEbeW754cK5oKk4RoLiwNQMBSclyvZxsI38gGeOa?= =?us-ascii?Q?CwtfRC5rtT2pZnbwm4JkHmCjXNIzuJHHg8+a1qzuUUsWMVEDeq3gkfhXBEKc?= =?us-ascii?Q?OC50sBm7UR/XREWFp1ypL/o86glgnucwcJ/8L958o30G6Gfi4Z2rYvT9VxNX?= =?us-ascii?Q?enu1NJl621pUeClvsZST/qdsMG75SR1q86t8KkRljNUJ2NBbMmTLvMZwuX81?= =?us-ascii?Q?kQM6vXd7Mr+C9Jwz1gmE1xTk+PM+J109uYEEG7wWaapvTskv/KwffJg5eTqd?= =?us-ascii?Q?y4O2Hvlk9QV1jXNzDpTxkYv7hyhryF7LYN9t4VUddpTbEH50yJHy6pdDdtCl?= =?us-ascii?Q?GiaV9qglM1FCOl+hjKxyfzE3RQ3qWqjaFof4wHqXyYmbDX3OGDPRnwbifWH/?= =?us-ascii?Q?WnR9tdsBICZIG8OW3Ybn03IT+MM21sgSuC6X7JdfNaWFAhDvolo1s1Yea98T?= =?us-ascii?Q?G4xJwVAgJGdF/tFQOs7p9KszxG4XsE6MtpivSpee2y1Tt66erCK1dKzKjTsC?= =?us-ascii?Q?Vlj7k2KM+tqQi+0gtM36zt6nWGUBsd2HzXONBg2LoVxBNBpDawFXbbFd91Jc?= =?us-ascii?Q?cLT3dWKTaEdpHApITQBNcTp4ZX9w9kblelBzMxOZIo/1pT4zVnCylHiP1zzB?= =?us-ascii?Q?qW0Z1nB71OPivKhsZuuHY6xmF1mr1OkwybHQxeFkaszMPmRv/ZKyOHQVzXkA?= =?us-ascii?Q?b5bivVE43icG8WlrI/vZW7jgjucpP7qb88AcuO6a5ty2cZpRL3dbd0EWIo5i?= =?us-ascii?Q?JCprT470MYb+jq3T5LsPc/d2vh/vhfDA8tPBE4kiBp8eVxFTLFYwG4X8UtIg?= =?us-ascii?Q?NWYiL99WAbozzQpaYXJY5Szvy+B4KYxETMmCZyubJ5hDNEa8T7uFe0FWluvT?= =?us-ascii?Q?S5QkUu1QTebi+KhMvsTRqjmOCZv8cYQtXBNDh5UQYmMqPOwS9CFrOUlTJCJz?= =?us-ascii?Q?gyK9J9eO91MqKauONnZu5Zf9Hvt/lY0jKPTzINuTUBwGtKAFmF7SP1ubR+dU?= =?us-ascii?Q?AzhOxoDcYVm1LoHjT0XhRfJgF00logprfdiXOI+Nn8c53/GGe9+n2XPzb585?= =?us-ascii?Q?BNVF9AF0uG8eZ6iR4dRcn4Jdcp+49p0/qtPhSYpH6/L5pxyCx1l+ZRCpzWBP?= =?us-ascii?Q?A3HlvQL+e1sYvxei+DZyXQe15huP6JYXtqrni1Kd0tvg9iQ3bG/wZndgtGEs?= =?us-ascii?Q?vMHjD+MsMtyZnLqkMvlBpjc2t+ni73GQZtWjUM9I2gjW3R1DYngxyqB6Lgo1?= =?us-ascii?Q?12ufmVmQhhtt38P1AHnAOQjcDbLAjssunjZHMkigSxg12h+f5SlL88HaoVnW?= =?us-ascii?Q?NIOULI4naE6LYlVNe1AP7vLGY/06YKQ=3D?= X-Exchange-RoutingPolicyChecked: UITeoE2QAIXNh6cpEHkGjiMTdfD5FAH7hIcDliZaBwgCan720TQTHCgUaBfZhQbYuzc93zsshaP3jykxLu7xzZsbmoRXVq+fzUUwRAL1qK0apYBGClLP3ERmf2nee++G+lVNrDGyihwUZNRwyB6EMm33sWlaGIey+3n1pfAEZiTJwRUEMj0gfmhYBWRl0CQqAD2cTpuhdWukHl3kSrhqvOzr3d/QJtR8CQSPdQv5FoiV4JZGdBqBRSm4Es5OWYPBw2Km04ynBgA1CPTwHcx0bI1Pf/7Ai9Wyvjj7Lvpnj32ix3KWbkiFzkIWFit2waP1f4OjSlUsJTMLCichIfXw4Q== X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: cef2a602-5938-492a-6e3a-08deb10d7c88 X-MS-Exchange-CrossTenant-AuthSource: PH7PR02MB10160.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 16:34:21.7681 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: +R5ZWydeUgt7VEUSej7SzL3f0cm29Dv8jQO8P4lxnhGavokaL549l/ed4VjRlxOW5v7Xcjj9KG7Y2KWyyNfbuOaAS53wesECpWrKkzNop2w= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR02MB8813 X-Proofpoint-GUID: zMwbGLhS3N5jxz7ca8NUsll_lZnDVoCD X-Proofpoint-ORIG-GUID: zMwbGLhS3N5jxz7ca8NUsll_lZnDVoCD X-Authority-Analysis: v=2.4 cv=apaCzyZV c=1 sm=1 tr=0 ts=6a04a810 cx=c_pps a=JUKW06bhoGHkwkYQWyoyLA==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=NGcC8JguVDcA:10 a=0kUYKlekyDsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VofLwUrZ8Iiv6rRUPXIb:22 a=dEe9Ve2bX-KnNSUMM2s9:22 a=64Cc0HZtAAAA:8 a=0VltMdkb-i5vEMuiUwIA:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDE2OCBTYWx0ZWRfX5U1ELiugjnRt NWawuGY2qL9NJNh9BDH9mTu2DauCYQdBJ7epuU+ByXkIqYPUaDd9vERI9dZRVjH74l47YjNvrqI E0x0ZrEhD76XCwyb2PNoL1ATpO2g3z5LvWynlmOVmhuabieaS+0ONWhpOjIZcQK+yVY6HkgKe7w sbjFfeXGMjU//bkXyI2olOPXS5KNdW5Ynqcc+rBIQST0GMCV3xcpa+9q7Di1hU8cvmnfQNnFJjx 2XKOw28McowXO8ArT6qWu4JuxcaM/ITkVGI4uZc3nmfzcBGq81sIEw5ZLTvlSBzE+p93D38ftkh 7GBEXK8LHO7wse7rPqvACjUilTJgD9LidyqrAh1WeBxD0y5qk7iY7ffhFUKo4YBHwiCQ408PLDN g7pY9eIc9w3YiMOzToy2DvWgJYzC2dwuGtLqGB7VmCfQi252d9dInQ1juJ7vs9BXOuuTjLznycB dF0mpqwom1J+yDUA4nA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-13_01,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Reason: safe 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=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.155.12; envelope-from=shaju.abraham@nutanix.com; helo=mx0b-002c1b01.pphosted.com X-Spam_score_int: -31 X-Spam_score: -3.2 X-Spam_bar: --- X-Spam_report: (-3.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.445, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, 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: qemu development 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 @nutanix.com) X-ZM-MESSAGEID: 1778690147495158500 Content-Type: text/plain; charset="utf-8" Expand the previously defined X-macros to generate arm_cpu_props[]. These properties will be added to CPU object in future patch. Co-authored-by: Khushit Shah Signed-off-by: Shaju Abraham --- target/arm/arm-cpu-props.c | 43 ++++++++++++++++++++++++++++++++++++++ target/arm/meson.build | 1 + 2 files changed, 44 insertions(+) create mode 100644 target/arm/arm-cpu-props.c diff --git a/target/arm/arm-cpu-props.c b/target/arm/arm-cpu-props.c new file mode 100644 index 0000000000..f22fe7f08b --- /dev/null +++ b/target/arm/arm-cpu-props.c @@ -0,0 +1,43 @@ +/* + * ARM CPU feature property definitions. + * + * Maps ID-register fields described in cpu-idregs.inc.h to user-facing + * QOM properties. + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "qapi/error.h" +#include "qapi/visitor.h" +#include "qom/object.h" +#include "cpu.h" +#include "arm-cpu-props.h" + +/* + * Generate all ArmFracVal tables for each fractional fields. + */ +#define FRAC_TABLE_START(base_fld) \ + static const ArmFracVal base_fld##_frac_vals[] =3D { +#define FRAC_VAL(name, base, frac) \ + { (name), (base), (frac) }, +#define FRAC_TABLE_END(base_fld) \ + { NULL }, \ + }; +#include "arm-cpu-frac.inc.h" +#undef FRAC_TABLE_END +#undef FRAC_VAL +#undef FRAC_TABLE_START +#define ARM_PROP(prop_name, _type, reg, fld) \ + { .name =3D (prop_name), .type =3D ARM_PROP_##_type, = \ + .base_field =3D ARM_FIELD_IDX(reg, fld) }, + +#define ARM_FRACTIONAL_PROP(prop_name, base_reg, base_fld, frac_reg, frac_= fld) \ + { .name =3D (prop_name), .type =3D ARM_PROP_FRACTIONAL, = \ + .base_field =3D ARM_FIELD_IDX(base_reg, base_fld), = \ + .frac_field =3D ARM_FIELD_IDX(frac_reg, frac_fld), = \ + .vals =3D base_fld##_frac_vals }, + +const ArmCpuPropDesc arm_cpu_props[] =3D { +#include "arm-cpu-props.inc.h" + { .name =3D NULL }, +}; diff --git a/target/arm/meson.build b/target/arm/meson.build index 64d1ec63ab..01b1e91a1c 100644 --- a/target/arm/meson.build +++ b/target/arm/meson.build @@ -18,6 +18,7 @@ arm_common_ss.add(files( )) =20 arm_common_system_ss.add(files( + 'arm-cpu-props.c', 'arm-qmp-cmds.c', 'cpu-idregs.c', )) --=20 2.52.0 From nobody Sat May 30 18:35:08 2026 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; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass(p=none dis=none) header.from=nutanix.com ARC-Seal: i=2; a=rsa-sha256; t=1778690117; cv=pass; d=zohomail.com; s=zohoarc; b=SOV1xVrpIpeZsqo5xtkzyrnbuazI1IQSUmP+Bdsl8kiVL/F/awR76RJkSadb0aqzgOvGU4B/g0+ZSbvD+0N75pECiEp2t60wQDib+axlVkXin5ha16TPHuzVoJCI5toOKiG/lxMYui/ZZJ4kmOYo/Vj0L7ge+K2nEYJ6WM0vo0c= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778690117; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=L73Uw9Um5kU3p7Uv0nNRjoWBNgOAHdnlFRQeQAV21B8=; b=Ud7a9/ySDbr1tiVB/ByuOuSFDy/qRwcEbzRNir60UWS2UM2equtx9HGBSvQFtOCDU184PxK6lEKf+HTtbTiYSutyg8aohiKk+AD8OygbxIPjRqt4N3ai4x205an1kKHAKqqOEKo39UZYOdBn3vNAYcZUkSseXRQMSkhnELeBE5c= ARC-Authentication-Results: i=2; 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; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1778690117489939.1776087262228; Wed, 13 May 2026 09:35:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wNCXs-0003M1-FR; Wed, 13 May 2026 12:34:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wNCXh-0003K0-DB; Wed, 13 May 2026 12:34:42 -0400 Received: from mx0b-002c1b01.pphosted.com ([148.163.155.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wNCXe-0000hf-KG; Wed, 13 May 2026 12:34:40 -0400 Received: from pps.filterd (m0127844.ppops.net [127.0.0.1]) by mx0b-002c1b01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64DGLKTm4149398; Wed, 13 May 2026 09:34:28 -0700 Received: from sn4pr0501cu005.outbound.protection.outlook.com (mail-southcentralusazon11021113.outbound.protection.outlook.com [40.93.194.113]) by mx0b-002c1b01.pphosted.com (PPS) with ESMTPS id 4e3nva675w-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Wed, 13 May 2026 09:34:28 -0700 (PDT) Received: from PH7PR02MB10160.namprd02.prod.outlook.com (2603:10b6:510:2e7::19) by SJ0PR02MB8813.namprd02.prod.outlook.com (2603:10b6:a03:3d6::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Wed, 13 May 2026 16:34:24 +0000 Received: from PH7PR02MB10160.namprd02.prod.outlook.com ([fe80::4ed7:5c74:48e0:ff23]) by PH7PR02MB10160.namprd02.prod.outlook.com ([fe80::4ed7:5c74:48e0:ff23%7]) with mapi id 15.20.9891.021; Wed, 13 May 2026 16:34:24 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= proofpoint20171006; bh=L73Uw9Um5kU3p7Uv0nNRjoWBNgOAHdnlFRQeQAV21 B8=; b=nsgOF7ijr7lYXrjTj52bgmbNWIGu61LqUHR08avOuLQHw36O4ITB2phbb wAkfIUmqwsnWIy/qR8SQBnI3mQO860wlXW3abVk37BMPegpw3/shT5cSFiJJjKkR DCaWTKGUqCk/cijBbHBCjAys09gvL3ohA6l6RSBUFbo9Gh6I39mD0r2FIz5N+X6p vDF7xj1ewjUqLWHavgqMNZsp5ZOY3Fymcx2j+9rROfyYxiyMvtdu0Z2yK5qPyHX2 6O29lRi9yVnafEh4t1Dxn5CXu/JoAtD2TlbcvdIftliRH+Q+/OQSAEy/HYXm0Xog 8Xv/oJXL/wMDFRkaQ7bFrv26suvFQ== ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=YtgCZCscsNN1wkx2deQBOJ7ptykn+COeXJC9FLZmDq5rdvZdSV52a18gBeajofGwv2f8J6TFFHBmE4t0vWNJcHCi1aWMFfqe+YhmMZGBn5GZOOGHR9E2kAArCYVvBvKMDBU6DJlX3a+/anZaaCF1cM6xpebQT0DsABg2rbtxKmkFT1oIt2c3QpbyjZ8sY1QB0ykcjOaC1mrZTCiIwHk6w6BXiZhRXAkWAyVxYlohOqtg7hW1JvPFy2KHPahyi8lWhBkSuaK2IiZv8yB31T9UcxPrlVBfTfFeTlcT8ZEqbfUREaN8MiEllsX8twaqp9sO+zYck77unuBf1G56bQNujQ== 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=L73Uw9Um5kU3p7Uv0nNRjoWBNgOAHdnlFRQeQAV21B8=; b=kuX1Vqzt/NaxIk8LqTUu9wGvZ7gdbx8QIA8AgDCpEMTDzD9jVs42lbvkQS62GiTO/zHe7txWsQZvDXCC4SHIh1Ztv6/aF9a0d2hnf5Gt/VUQ3idlm2DkMdfJX2rPo1+nhwCwEFdOhGS7xvKHw6MUV/95w5IGmRaxkP7AKTRejzAXZisiHknREOvfv2akB3/RPONoIz4zgvO/Sut5QEYZcEoU/1QVHMynB9EzyMeBHZpSfCfBwXbGEfRgsirj21q4qBMHvv/rr7b2RdJ4hY0KXNs0Osnrn3Fvlb7Ou3eQpjAjZlzUumV0bssRhr3+vqDIjfr5OJOGLorvbG80YgyusQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=L73Uw9Um5kU3p7Uv0nNRjoWBNgOAHdnlFRQeQAV21B8=; b=JPnnpnFpc05um9raApXpVUP45tVdF88ExSrwa3kwk8Mzf88PUY1Rmmv8HyDLtX8NBN0V+vZnYrkslKyvKLRgrGJdwQgusFdlri8EVPb293WvWHuhwJ2OKZCIpm6EzXnkmaYik4hr5xJfoNm3+8WaBapXKd+FkjY9kAXFCzRmSnOfLnC54Hp5eLQN9uNr2nWG4tlGaasi9xcQWNhehvAPwz5aMIZXNZClFro9XRRUmGIw960Qso9e8NRilgUzS20oMYeH7Spfyij1s9XmxNAxUlSlMwqPSoDqCvGMNbmqWe/pJBmxVfttQV3FocnZHcXAdFCNbSS0V9ypmOp8xikOcA== From: Shaju Abraham To: eric.auger@redhat.com, qemu-devel@nongnu.org, qemu-arm@nongnu.org, kvmarm@lists.linux.dev, peter.maydell@linaro.org, richard.henderson@linaro.org, cohuck@redhat.com, sebott@redhat.com, skolothumtho@nvidia.com, philmd@linaro.org Cc: maz@kernel.org, oliver.upton@linux.dev, pbonzini@redhat.com, prerna.saxena@nutanix.com, jon@nutanix.com, jond@nutanix.com, Shaju Abraham , Khushit Shah Subject: [RFC PATCH v1 09/13] target/arm: named_cpu_model: Add ID register field helper functions Date: Wed, 13 May 2026 16:33:52 +0000 Message-ID: <20260513163356.3033159-10-shaju.abraham@nutanix.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260513163356.3033159-1-shaju.abraham@nutanix.com> References: <20260513163356.3033159-1-shaju.abraham@nutanix.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: CY5PR10CA0003.namprd10.prod.outlook.com (2603:10b6:930:1c::30) To PH7PR02MB10160.namprd02.prod.outlook.com (2603:10b6:510:2e7::19) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH7PR02MB10160:EE_|SJ0PR02MB8813:EE_ X-MS-Office365-Filtering-Correlation-Id: e8b3a214-b750-4f5b-c34d-08deb10d7dda x-proofpoint-crosstenant: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|7416014|376014|366016|1800799024|921020|18002099003|22082099003|56012099003; X-Microsoft-Antispam-Message-Info: PMsBqrIQAby9Unbg3zUH0NcAC3QNoYFWSRL7kYpaA6K0B7/tT9O2rBxCow09ORDkURYIjqh/FZ5kUcdaz6HBFG8tXnFm5isxHbo7ph1RDK7hh5Hl2tATfRdTikrR7uWRz2rEz2XqP8XOQwJzXJ2A10DZot5Kj3IJMEImZsqppdxLf4VKcLCGh1e9cmekDRzH2Xy+H190LMVhhYvOB0hOGfrR523u+fVlnShI9ag61nYpqboNho99FRGCQD12q42WQcGZkBY4BdD3YIxFrVtyMK0OS137uNebt3osQHzIoHt3iHmK2Gt/U8wXmuJRFa12nsEfv6xdxnEscaVVu95TML74uJ5Z1zQuquW1JIeCLycvYEQp5TKJHyiRTFfCkn48qv0Z0kZYgCLgcnpNaxrmvwU1y3l/MOJ9pmkXX+Zm4cZLo8pnl5+gwqSzww0tDQGKX2A9NAs9wJTl2Bfuviw+jDGmBbOwc1YuUYn7G6ARpFdT6FaAwI4dw0hfaLEjitD6gsNpLXurZXv9fwPU7Xz51doEQLdFe3Z/wGBxW0vFGDvJ/ESdkiJTYptkUH0R4eWkpakLhsNA070FiLig4uDxKRl/KydM6ueRg/KnrKfI9DsOPE18CMQzSAu5S7NUgPkxAW0aKhu833ncT7eZl9qnE8wgWpobyi8N47Ib7I4VhTfBgAUqGbadCWFkB55G41IIH3+hRGcZjbaYMrsA0lWq0e2G5sE7Jz/koW63X+g/YCo= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH7PR02MB10160.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(7416014)(376014)(366016)(1800799024)(921020)(18002099003)(22082099003)(56012099003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?+XG3eIn/eJvBpXE0Lk5eCPLyEhTN6/l5ySH5Buboc4SfG04rsXoxUPGZhpeK?= =?us-ascii?Q?FnuhIqqJrEp/+21udFGD3HC62hsExmYfFeIpoYpp5CJOIU8RUte4N1ZWFGLd?= =?us-ascii?Q?xnaRmxyGlE7czn/NmJrgsEFFObOJ9rsnk87Ij2ifLftRyLgDzv1M4xiAzxge?= =?us-ascii?Q?ei1dfRHu7AbPPZ8O5Ra1WiE1N28tACOXyk6AxlA01n/7s96ssra7P8LDZ5Tn?= =?us-ascii?Q?i17scm0OpQx/fdJ68f1jGYmIoIXv1Vb1T7a6tlONHpB4AZmBVNlSQdul0t7B?= =?us-ascii?Q?9mayyk4R42XtaevBb2NfFNlq09Bx9xtX8oJTQ5mGKzpW0orhd79bTFnbyCW+?= =?us-ascii?Q?n8cQmvPSKiJ9VOW/GT+V+Jmq5/3Yd8xWeBGLJYQwA6Lxp/XndjOn7F2zBdGu?= =?us-ascii?Q?v0IFZE1tUXVC1zHETCRmcjTTH/rM0+wk6RAl1W4Syoqv6MkweJb676ke0Hs2?= =?us-ascii?Q?74vNa/B4yYRWg30FtTu0msyfyvQ7tCfy8Lg/sztbTwUJpiDtjvXpC5dPhudM?= =?us-ascii?Q?QuZvGJWpoKgV4VC+YjF4ro+sMO5ZHnbozsUv7kFBDAFqX5J2h1hVGiI1SVpR?= =?us-ascii?Q?TbeEpKAe1XWt8d9ApMHYof7iKIhKZM43tfMW163UDhvRlKKO5ymL+U1pcUoy?= =?us-ascii?Q?o5eRwpNx4G2sULnQ8/HVZfVTS5RykrX2up6xKSEiH2+cXjXBaDis7CdUz4rH?= =?us-ascii?Q?7YOolLAFCTPzwvY2UxG9CC3DWC36/reABXhTdtnkuvrXKVrD0p/RloAccRzy?= =?us-ascii?Q?ccj+NxZbSRWEF0as1bDsrPNv9Vo50qkj7YhtvpvGUja/7Fd8XTvHP26IZ+4S?= =?us-ascii?Q?W7dd35RcdZxdewVjc7p8yVonNpMfPJoF8hZ/4QDsu+7mGQJGCzSNqHBtifDk?= =?us-ascii?Q?ZkvEVwImtcWB/UszMDgfSLFSr1LjgWki422B6PKo8GDGbqH1Dt56P952KDZZ?= =?us-ascii?Q?XsOF1EMH68B7nzf5yyyaB0raxpK3cPqEKJDzDkO2VBKmO6FBAtA0SgUBWDeO?= =?us-ascii?Q?jNecYEJCvm9gAYR8kSrbVi3hzse1l/2stuxHxCKs2huxRSRWhaHXOH2tg8b3?= =?us-ascii?Q?DOJJqbC/ZBMRxjUyyZFGfvprtwZwobmM193vA8C2g1VNWjjmuylsdVjbqm6b?= =?us-ascii?Q?4/mv7dD8IRSpmx9qHhWzllbZ4SPYV0YMlXSVnZxQi9/yJkUgoUqFMLUJaKTc?= =?us-ascii?Q?mp/agOANXO36bTAMJrBYRYlp9ayPvKR+nRiE7K7AQk75vkoxyy6+yeSWvdbI?= =?us-ascii?Q?HnDubC5FmUvVXgM3HUxJydRSe9mELbUOb3UwciZTRF0Jl75jvhxXPExasX2N?= =?us-ascii?Q?0exgBeDG+sQ7Xr1EcubjBEvc8b/WN181DbB7M4FagMX2V1Zaa2bbwmWziXib?= =?us-ascii?Q?nLPPKOPu8XTrybV5c43S2YzOiY9RKnM9jegVOBnYDyu1se9lZQ74XBHt4Vnp?= =?us-ascii?Q?eJZmoYLrA/VAE7yBR36QlAVL36LrRIi8uXSEdGhp+F5sGbwFi0VBOAIGS7hJ?= =?us-ascii?Q?ObcEZV400NtdzCM38YeakjTnFunG97f4j939eiMkGVQ09yZ4trqU+MYbXhZ9?= =?us-ascii?Q?MMWCe9QubtFVBupJNmfREZFYXhUfO13cHwNcBjd5Gaf8xR291OmAXvCnMJoY?= =?us-ascii?Q?6YuWGFEN/5esi4lfkDLMfFdufkCay79jgr3ngT4nm9ClZnfCIN9koPbOSMFI?= =?us-ascii?Q?gVsv6JrOgc8ojO5oc8UxlG30ZxMorFjt0TJlcWxKcqCL/saoAF1U7dU/m5/N?= =?us-ascii?Q?6/IsXmspHYU7BeBMjp3iolB0oqp6xd8=3D?= X-Exchange-RoutingPolicyChecked: Qx+Xu6h/qVLeIgnHQu3U7/urxLi1fSGVbn93t7Hsng3JxY0qjtSEoV2YnqIe6seKed7wKsD2MCGuoEgoini7QRfePjiHrbXx+BrmlRECOtas/YpR0lYUOZzowtLJHsULRCyHyvnzICqOXRfXUDIX02urLk0LMbfQiurk4AZkyYcYdn6sY+IZNpV2mx3t628Hzuxlu7ArzfxkZd5IPBKuy9BrQ7w5wQkGuqWo/U4HjuA+x6ZRbUzSy9vTpUvJQCdYWGOgpZ7gAA2gp/SavROufgFSwC4NCMQf6dVAFc2RWl+UsKEa4oADY5CBfqx/h6EFCy4iKgm5aTdTzu+ZGsavvQ== X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: e8b3a214-b750-4f5b-c34d-08deb10d7dda X-MS-Exchange-CrossTenant-AuthSource: PH7PR02MB10160.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 16:34:23.9724 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: r3YqoGc0aElk85kWGYAqLDjrcWoVtXTdnbEznXQVuIjdXK5q8EkoZSTi39O+6pLxU2QS16/Gewtypmd3KR04HKgghaQVb6OQtAZpESWxfpg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR02MB8813 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDE2OCBTYWx0ZWRfXwKofUIeW5V24 9AVNbEe0sJJ30vwzKfoa5dJuLbaXp6NqI8VkE2QwflTQSB3tIEZ/rYJBMvALO3mdFMRL3VGBKLz E4r04kmTvzukv6NYPw9UIjKvUaw0hRqAh2qYruEp+h3jWJUq687H27/Pp6aNjpnynFs/dGEAgXD 9HhoTIBf5PdUBqdKpMoJ19fHW3U4c5wgmpsffYZWvilZvzqw/HrUzrYLrUZnjszdgFt3fPZ5fqR FBVN3rbweJbOpzq05x1s9QQ26D3X1/BgWguuvmebc+f/RKELLgp72mmjuiA/pp9kXMGNjPSlSD5 9RrYzUen1Fe/rMqFuFxA08ChiKZ9j4mZAKcDbcAOt270BM59H4nUnSQ7m5izA4KVcDJzkhvP5rK tFVZczjdcBNXmLDBp+PcRJMtUupwUJULHi1sy+sM42AyE3F8ZpzR1rZGbawUGbylF4oPxHiEuS+ qabsfzs9jZ5e7US2SsA== X-Authority-Analysis: v=2.4 cv=evLvCIpX c=1 sm=1 tr=0 ts=6a04a814 cx=c_pps a=+jjOclGHkOGhuepu6R0Llw==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=NGcC8JguVDcA:10 a=0kUYKlekyDsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VofLwUrZ8Iiv6rRUPXIb:22 a=0LlEyIVc8U2lsR7dKhuH:22 a=64Cc0HZtAAAA:8 a=2magLiQhmqer7YsuebIA:9 X-Proofpoint-ORIG-GUID: 1Bnqj1_J7JTUo6V-_3O9Ucp3V47LeyKw X-Proofpoint-GUID: 1Bnqj1_J7JTUo6V-_3O9Ucp3V47LeyKw X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-13_01,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Reason: safe 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=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.155.12; envelope-from=shaju.abraham@nutanix.com; helo=mx0b-002c1b01.pphosted.com X-Spam_score_int: -31 X-Spam_score: -3.2 X-Spam_bar: --- X-Spam_report: (-3.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.445, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, 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: qemu development 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 @nutanix.com) X-ZM-MESSAGEID: 1778690119237158500 Content-Type: text/plain; charset="utf-8" Add helper functions to extract and set fields from the ID registers. These include reading/writing individual fields, looking up architectural value names, and resetting ID registers to their default values. Co-authored-by: Khushit Shah Signed-off-by: Shaju Abraham --- target/arm/cpu-idregs.c | 107 ++++++++++++++++++++++++++++++++++++++++ target/arm/cpu-idregs.h | 9 ++++ 2 files changed, 116 insertions(+) diff --git a/target/arm/cpu-idregs.c b/target/arm/cpu-idregs.c index 8fced7d8d7..5ffdeb5f21 100644 --- a/target/arm/cpu-idregs.c +++ b/target/arm/cpu-idregs.c @@ -122,3 +122,110 @@ const ArmIdRegFieldLoc arm_field_locs[ARM_FIELD__MAX]= =3D { #undef IDREG_FIELD_START #undef IDREG_END #undef IDREG_START + +void arm_idreg_field_read(ARMCPU *cpu, ArmFieldIdx field, uint64_t *value) +{ + ARMIDRegisterIdx reg_idx =3D ARM_FIELD_REG(field); + uint64_t reg_value =3D cpu->isar.idregs[reg_idx]; + uint32_t shift =3D ARM_FIELD_SHIFT(field); + uint32_t length =3D ARM_FIELD_LENGTH(field); + + *value =3D extract64(reg_value, shift, length); +} + +bool arm_idreg_field_write(ARMCPU *cpu, ArmFieldIdx field, uint64_t value, + Error **errp) +{ + ARMIDRegisterIdx reg_idx =3D ARM_FIELD_REG(field); + uint64_t reg_value =3D cpu->isar.idregs[reg_idx]; + uint32_t shift =3D ARM_FIELD_SHIFT(field); + uint32_t length =3D ARM_FIELD_LENGTH(field); + ArmIdReg *reg; + ArmIdRegField *fdesc; + + if (length < 64 && value > ((1ULL << length) - 1)) { + reg =3D &arm_idregs[reg_idx]; + fdesc =3D ®->fields[ARM_FIELD_REG_FIELD(field)]; + + error_setg(errp, "value %" PRIu64 " is too large for field %s.%s", + value, reg->name, fdesc->name); + return false; + } + + cpu->isar.idregs[reg_idx] =3D deposit64(reg_value, shift, length, valu= e); + return true; +} + +static const ArmIdRegField *arm_get_field_desc(ArmFieldIdx field) +{ + ARMIDRegisterIdx reg_idx =3D ARM_FIELD_REG(field); + uint16_t field_idx =3D ARM_FIELD_REG_FIELD(field); + return &arm_idregs[reg_idx].fields[field_idx]; +} + +const char *arm_arch_val_name(ArmFieldIdx field, uint64_t val) +{ + uint32_t i; + const ArmIdRegField *f =3D arm_get_field_desc(field); + + for (i =3D 0; i < f->arch_vals_count; i++) { + if (f->arch_vals[i].value =3D=3D val && f->arch_vals[i].name) { + return f->arch_vals[i].name; + } + } + return NULL; +} + +bool arm_arch_val_from_name(ArmFieldIdx field, const char *name, + uint64_t *val) +{ + uint32_t i; + ArmIdRegArchVal *av; + const ArmIdRegField *f =3D arm_get_field_desc(field); + + for (i =3D 0; i < f->arch_vals_count; i++) { + av =3D &f->arch_vals[i]; + + if (av->name && g_ascii_strcasecmp(av->name, name) =3D=3D 0) { + *val =3D av->value; + return true; + } + } + return false; +} + +bool arm_field_is_idreg_any(ArmFieldIdx field) +{ + const ArmIdRegField *f =3D arm_get_field_desc(field); + + return f->arch_vals_count =3D=3D 1 && + f->arch_vals[0].value =3D=3D 0xffffffffUL && + f->arch_vals[0].name =3D=3D NULL; +} + +void arm_idregs_reset_to_defaults(ARMCPU *cpu) +{ + int i; + uint32_t j; + ArmIdReg *reg; + ArmIdRegField *f; + uint64_t val =3D 0; + + for (i =3D 0; i < NUM_ID_IDX; i++) { + reg =3D &arm_idregs[i]; + + if (!reg->name) { + warn_report("target/arm: no field table for ID register slot " + "%d; cpu->isar.idregs[%d] left at 0x%016" + PRIx64, i, + i, cpu->isar.idregs[i]); + continue; + } + + for (j =3D 0; j < reg->fields_count; j++) { + f =3D ®->fields[j]; + val =3D deposit64(val, f->shift, f->length, f->default_val); + } + cpu->isar.idregs[i] =3D val; + } +} diff --git a/target/arm/cpu-idregs.h b/target/arm/cpu-idregs.h index 4e568e877d..0127bc0a95 100644 --- a/target/arm/cpu-idregs.h +++ b/target/arm/cpu-idregs.h @@ -119,4 +119,13 @@ extern const ArmIdRegFieldLoc arm_field_locs[ARM_FIELD= __MAX]; #define ARM_FIELD_IDX(reg, field) ARM_FIELD_##reg##_##field =20 extern ArmIdReg arm_idregs[NUM_ID_IDX]; + +void arm_idreg_field_read(ARMCPU *cpu, ArmFieldIdx field, uint64_t *value); +bool arm_idreg_field_write(ARMCPU *cpu, ArmFieldIdx field, + uint64_t value, Error **errp); +const char *arm_arch_val_name(ArmFieldIdx field, uint64_t val); +bool arm_arch_val_from_name(ArmFieldIdx field, const char *name, + uint64_t *val); +bool arm_field_is_idreg_any(ArmFieldIdx field); +void arm_idregs_reset_to_defaults(ARMCPU *cpu); #endif /* CPU_IDREGS_H */ --=20 2.52.0 From nobody Sat May 30 18:35:08 2026 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; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass(p=none dis=none) header.from=nutanix.com ARC-Seal: i=2; a=rsa-sha256; t=1778690204; cv=pass; d=zohomail.com; s=zohoarc; b=edtbMmuQI6cZlmqKc7JHZNDTmcpVRukmH4jUX2Kq3V2whL0byFEYwW7KRaz4xyYtJK+jbe+W7EllnW6QJFnE1qkBWQ6kAyR7QVKLTF+jEadDyzMG/WR5MtwDEu76N+RxlQg311QGE4QRqibeuPXOGOYnzf5FoS8Vk4Lpht2qayw= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778690204; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=cvUzVq5os+U/Y3Wb81SC3XIp5miUUCaIolEld9owmQE=; b=gbB8B0sXfmrO8TSh9FWG6RahDNLgMVEG2fD0Sz/QbzrHZNvthSmH9VnIlAW7HLaCTuzVArUy5g+fROyGwgiUQlPtfUUYxjRrv+7WvCRbIf7tfgJdIlwnQGUsGuzH13sZnHGDLm2mF7GKgrEDqF+QBDnE5p1byYT4hxHxtnTa9dM= ARC-Authentication-Results: i=2; 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; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1778690204183333.75213859730036; Wed, 13 May 2026 09:36:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wNCYs-0004nF-Bh; Wed, 13 May 2026 12:35:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wNCXj-0003KR-7m; Wed, 13 May 2026 12:34:44 -0400 Received: from mx0b-002c1b01.pphosted.com ([148.163.155.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wNCXg-0000if-2X; Wed, 13 May 2026 12:34:42 -0400 Received: from pps.filterd (m0127844.ppops.net [127.0.0.1]) by mx0b-002c1b01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64DGLKTn4149398; Wed, 13 May 2026 09:34:29 -0700 Received: from sn4pr0501cu005.outbound.protection.outlook.com (mail-southcentralusazon11021113.outbound.protection.outlook.com [40.93.194.113]) by mx0b-002c1b01.pphosted.com (PPS) with ESMTPS id 4e3nva675w-2 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Wed, 13 May 2026 09:34:28 -0700 (PDT) Received: from PH7PR02MB10160.namprd02.prod.outlook.com (2603:10b6:510:2e7::19) by SJ0PR02MB8813.namprd02.prod.outlook.com (2603:10b6:a03:3d6::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Wed, 13 May 2026 16:34:26 +0000 Received: from PH7PR02MB10160.namprd02.prod.outlook.com ([fe80::4ed7:5c74:48e0:ff23]) by PH7PR02MB10160.namprd02.prod.outlook.com ([fe80::4ed7:5c74:48e0:ff23%7]) with mapi id 15.20.9891.021; Wed, 13 May 2026 16:34:26 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= proofpoint20171006; bh=cvUzVq5os+U/Y3Wb81SC3XIp5miUUCaIolEld9owm QE=; b=p0G8URFXmHMosWYzvGEid99RYCQ0dwsRG/K0IuVARyupUONSYRVtc+W4a WDopOIpbP9ii6HwqansdSMEeuje7kSOmUF1eP1Jr26wEjYTmmPgQY6uC0xlOgAUu FdbId7bkmuN+dWCp+/6V741tzM+z0CV+QlDDlU1e3hxsOy56H4QI6dFwj4tQlrDg bFFzfb8byQXZVfaLFYOEuG7hZ1CQr5d7lIYSZJpSkNj7n6YIamlPCJ/BNm//vX6u rNq4460AEVmhicnKut1Eb/+0hQguw9sEtDE+EqoUwRXtAz3Nqt/27eTcsgoYraNo DyueUILKWrLG0nOIYngXVIir8eqfA== ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=EbroLbfzmgkfUQgp7QQxJOXR1z1pDEgS0jXc9MfshsT/H0/Rkj7cVJKQCPygtdPzbVEbU1Cblr7Zx3kDi3N97qvFBxxa+CdjNDvsdCMw2P+4QWfIDEY5TMKMSzEbIxiS9hB8p3OTfG9T4jV0R8YOjpPaLjJtXsQiX6mIjK4TK2yBvhVdZGkWvNlJWvFGcwr9dR49xh1g2OTjYv5qg4HB+uPpyClxkz3FeRZO3Rx+gMPSGHpikwBBwDH5wfcLWmMNfIwckOHCNc1h+yzrqy1HbJ4nQOwnAyyRYTdA1ta55ReDXQgG1ggzldGANJ4E7wz0zrWAAXMEzKxORkRFAZfNiw== 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=cvUzVq5os+U/Y3Wb81SC3XIp5miUUCaIolEld9owmQE=; b=IfhBJN5tHnxVZe13vIBPpNesIj431wxIdjqEaEj/I9NbQHQpMRlKmqeA0Q+2kuTdBDry5rk8IOb+KRPyDEwpuDd51S1MPgGRyRkX8yrUvkoNktxmumGWmZGW0MKdmVVdykqTctqIZmT0Mjpa+ivvj1xu4EXiZGA5AmUBabzbB+gymoARE6yxWtpdj2bUSjLVSejAPkdqlIdWpB1nEl+1k0yk7npVpOPWm1ACpX9zh0LFsEPSBRfvZNLwg1SR4Y4sUuHbntXas9BaiVDTwUqcuFb6yE+DFLBczljNxhNkDWIJvNYGU/kRpP18jy8G6qgP8vZCwbeY5OIMY0h4MZkIUQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=cvUzVq5os+U/Y3Wb81SC3XIp5miUUCaIolEld9owmQE=; b=PIdsxRkd5drikAoIj1ldENujRggAxWM8Z5jsZjDZ+NsM1zYFdLVrpawWUMG+xfcoRpP4hgw45sKRiRT5VXgXGwGV1+5LntCWcLYtPv4uPgDA0Sa3eKpwPgXmiJ3LFVV2EdEgLFEdwXNmbzwDplQ+fE1g9MBiipa4eYzQ6laJjYF4RzdyLulPpMMzcHdqnXxz6ry/kcoiHwQYFMY+PgFByW5B/n4Vs8R9xJdcZ/swx4HwUxl3ieKlSexMGirg3dF51I2whdxFrJyVuNW/xoeQoJh6eZoVY/h3RuBJRgZ+MNDGM+BRrVlpQmwAet7DXY6YGii54BqJ8HSpHTsXtS3Vbg== From: Shaju Abraham To: eric.auger@redhat.com, qemu-devel@nongnu.org, qemu-arm@nongnu.org, kvmarm@lists.linux.dev, peter.maydell@linaro.org, richard.henderson@linaro.org, cohuck@redhat.com, sebott@redhat.com, skolothumtho@nvidia.com, philmd@linaro.org Cc: maz@kernel.org, oliver.upton@linux.dev, pbonzini@redhat.com, prerna.saxena@nutanix.com, jon@nutanix.com, jond@nutanix.com, Shaju Abraham , Khushit Shah Subject: [RFC PATCH v1 10/13] target/arm: named_cpu_model: Register Arm64 properties for host model Date: Wed, 13 May 2026 16:33:53 +0000 Message-ID: <20260513163356.3033159-11-shaju.abraham@nutanix.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260513163356.3033159-1-shaju.abraham@nutanix.com> References: <20260513163356.3033159-1-shaju.abraham@nutanix.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: CY5PR10CA0003.namprd10.prod.outlook.com (2603:10b6:930:1c::30) To PH7PR02MB10160.namprd02.prod.outlook.com (2603:10b6:510:2e7::19) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH7PR02MB10160:EE_|SJ0PR02MB8813:EE_ X-MS-Office365-Filtering-Correlation-Id: 6e168396-f713-455a-61b5-08deb10d7f1d x-proofpoint-crosstenant: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|7416014|376014|366016|1800799024|921020|18002099003|22082099003|56012099003; X-Microsoft-Antispam-Message-Info: fPxdIwAsDijviSm6lRhqY2MhKbjlaYSKpwz7FIXSe78lClbdouiou36iUz6fr8Rncy1qr88x8SL9ewDvwzsSRS+lrY57peqsUjm9cURWBSysiXHebVe/rp8VGDm605LG+M89t52qBi5z4FwGiYU2zQ72acLtLY56Dbo6MKkwWYRwV2cJ5FSViR6DCVUUJQj0Gdx8bjZERV7M5qU1rJDoeHC6tEjyRX1Q0G72L2iV5AdmKbInzhpBnSRiPRJ1FDiMXdLGFh7iUGJzkzXsvV/mFfXkqiUxrASKFAbiXVZxtpV8eEesBxMlQTNTnJefyMTksdPZo8+JTEfa4F77wrlxxCKk4fLmnsiMMP+Ag/Mby9fGH9bGzjxECeFDtiCtimlt0dLe2F2Sr0FxQG9oXiwyxzuFg2BcUXcdjqFEqL77E5YKt0lT5b/ICKdzVsID7je9lskqN1XKx3+es1vX6vOQ0VhWFg1ZsGyqwpGjp1GKD9HePzYgR9CJ0XUHANI8N1FZKMuionnf3Bgr2wVtX5A8RGQDDfaINPU2UcfzXUS9OmdujYAFMHGEYxIRoB+MkTDX9xYMoSSmEl9a31GpPJCauC7Iyw4S8sJ6xhclLjws2dSPT/U/XRTc6IoklfEEuQ6+FTPJrsYCpW+ix0fa3gnxFJ8SpYG4E3+9fKz04Q/1IEsFQ/Cf+BRWbKy+ysUvPG8xxuH70aQLIk/zc5FlpDQUcuJWnQJV3Hxee6t9svWVog0= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH7PR02MB10160.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(7416014)(376014)(366016)(1800799024)(921020)(18002099003)(22082099003)(56012099003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?k6MxTUjH+HhqWiREWsVTdjxADZV0v4SNZGZrN4d3OfCneMiUoe8rl+9a6ySb?= =?us-ascii?Q?g/U4kAZHetgtyjL/z396cjTCRle1TXwwWGiQdaeIFWUYbbarDkcnBTqaDln/?= =?us-ascii?Q?VucOs3pQ5fmZCqgo6Mqoc41fWjOmbXmLp3F7SYyEFr/IFZ11UBJihRdW+p44?= =?us-ascii?Q?1JBE8cpwiyFEPEGRzry33ZiRoqaYjDgFvfL2aTindNeZBujgroS423g0qfPZ?= =?us-ascii?Q?Qm72T1gHgCRA/5srLu4bkt70Uc8J89pUwCFaJwMPE8zrzE2+HyMIYV5eGbVt?= =?us-ascii?Q?VUPvj5qsyFAwF6BIgztagZIj7/UkwecdmpQTRDb++gDqgGwqf5Dnj1upEYoq?= =?us-ascii?Q?HwaAb395gr+M80dB4HYKgK4c1YdNbty4wxx8ThzVjpfr0djSyuIa7t9uYh65?= =?us-ascii?Q?FMMeHoRJT+imee+gPeQRPCIN2VlAfYY7xbSpuc43bNgz8CXgPzZUbSYtjFgi?= =?us-ascii?Q?3b0DHiuHCP4nPJJ9kAMGzT+ETh3Q7zeUKrflzHWuHO87V7wIAyRYDtmC3Al5?= =?us-ascii?Q?6heo5HRtgjM9kG9QW5WMygXgxP5UzSDTx52nNPD5izKL+YOLP44WHrdiap6j?= =?us-ascii?Q?TtLdLM5hrj+lJXhozvAC5ppKynBTUxgkU0y8PGPVcoe+JW1CoD5ymizHYWUN?= =?us-ascii?Q?zCCCvkhnomBA+bagNPw451akmXwsp7OvndtD0/DvLMUNXUxzwHK0a1xgRsH2?= =?us-ascii?Q?piOds/GV9DySEujgAFiOoaSfDIoiR1rYOQyZ7Y5oYW3zxeYRCbI2cZrohke/?= =?us-ascii?Q?aPgHm+K6H54D4zDwFXvyC6ZiGsfdYPIx3tqSXGEbpjmZDx5GSGivlyjyDZsY?= =?us-ascii?Q?JQJgIA1TKEjaz2dytps62Y6FM9W6Laigwt536t4/bvXI/Ee49P+wP39dizYF?= =?us-ascii?Q?Ok92434XBIokpzMyr7FrQLPmu2WHCvS8jp0+c5Kr8226t8Sm6im5l5vDMDXB?= =?us-ascii?Q?sDYY0+zhh51Bypo4dICA6MLfr5jbjH4em1np/82g9l8P5Ht0yUzex9RZP8wO?= =?us-ascii?Q?ZtzfqlawunaTpjRrshRDw4Y4wWCQLSZQXg5xhPfMU/Sta9S3kQo1HQRoAFY6?= =?us-ascii?Q?DhYm8W8aGF1DZHsLcwVMEITB9GvcoKAfYh470M/9efdvwmc6pnswRmZmo9D6?= =?us-ascii?Q?KjN98QMPtieIDNQD5/x4+Ha/d3fMglExxO5kdH55UBGxSgOQsm3UwaVIOOwz?= =?us-ascii?Q?djsH4y8A3svw7nLjDO5VJJb4NwDFVb+sg2uRzgK6/xrpD8GmDLxRIrKm4PM0?= =?us-ascii?Q?BPZHqzTYChRYYvxPmI6skGe1PvQ9ep2mf1olF7nqQW/YGd41Z7qXFz8T6gAk?= =?us-ascii?Q?mGeUI4C8MR6drxdcKDwkVFBN0ilIiLdF8pm4BUxhBT0vuprPjyNWCBH6Y26a?= =?us-ascii?Q?S4wKGq6d9+f7EJzD2cb5toAFStO9Y+kVsRSzQ2nzBwgUcqTCuXbp/lTFNK9P?= =?us-ascii?Q?kDo+KvWIYzYb7q2+MLTlUrW0tu4uxXRYdhDamle6eErBi1ykXl1TjjJdNvIK?= =?us-ascii?Q?mzA4YLhehklQxeHj7Ol6oP9YV2MASVs+vEovqeMk2u1iyw3GO4VpGx7RACi2?= =?us-ascii?Q?Nr609LhNgcZDbH/iZf8hpyBWHcc2XrFU60CiX/Y41ChIoT8JHqOiJdrrjcBp?= =?us-ascii?Q?Lsr2QHDf/pmR/407iYtByl7Hm8XYxU31w5oc/gUpSNgEgyXmFn3kgUoCPK1S?= =?us-ascii?Q?DnBzfTyLldy0UN1YLPlZhzcW0ca523/cm5M1PhJNCvF/nhtbW14JbBeONgOY?= =?us-ascii?Q?t5q7VFfPZs3DpOse6HQNdrNBV5PL1K8=3D?= X-Exchange-RoutingPolicyChecked: GUqnHGh8tigGMR3KL3XF+8thBzeRrYnFJ4PQIf8KTahgo3acsAXizA/J/BWegFuVisTHOFVWJi84llkVY0laaKiYzK4tbu+QtiqoT+Qr7ctIPad6CVUBCpqKb1y9BGsz6BH/IRwGXqsy/D5JPnbzFafLl4V60uPVgR6uReFfxMUucbLH4qH6kPLSRnUc4L4oZf9DSOThIdVxHr81ChzVtG1pnySd5zZevMpYcq0I81fdrUEGe3tIUXIa9zGKg8Gulrzf7MCNVc1ap7IuGL3Af1o5G9MBXhShQAlIdfmDZ5/4ETGjha49Y3XLsVEUrCEslcXw6s+d/jIpdHc9Uf6oGA== X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6e168396-f713-455a-61b5-08deb10d7f1d X-MS-Exchange-CrossTenant-AuthSource: PH7PR02MB10160.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 16:34:26.0746 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: LBDZQ1LfRRLc0LlZJO9ERNyW30k3VssJQCtqPr1pYLCJXw98eeyBIIbly9ZsUZ276R7LV08dUQUrDK2KK/8U6BeWnPepipcB1UxTIIIR2e4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR02MB8813 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDE2OCBTYWx0ZWRfXzCGICApIilXE SuJ3bnip2GDfaA1X8zjurBtqAiC28HMc0bIOy38TdP4sT0afgVxTexRIGZUkXivnC9oL0jgG/1l kPmg4kNMRA/yBxLpp5N8YTJRIeoyTmJ2tROP420biv7i2BTV7XwWeZZQWSrplfeolCblx6f/FD6 5HqWjjsWBoSZd6mqwvbj+G/XT7D5Q4c7fRlxDcTrYuyngkwEe1dh5s9h0CTe9BeLToyyhMI/c9v JvXtIt8UDjCX4alZVqimgvecFtJzJrDibbFLlUMqFKh9YxQoRuUVKQoa5hzCgkBVmAo+0G7E5DB vOby3W4nzl24f6trndpBvtqxf9Bt6oLTXa22Ox7trNuA/JLJCansQW7iKv8Eem8tvUOt+/Hoop5 vBVBQ68Jk9cV5s8xzqPYsachmpFkd6qmV55jMYD9TGYQBrf5quaABqZBe/jllrVtOBT2w2RcnX0 n+9nAvjgJIhTq1i+auQ== X-Authority-Analysis: v=2.4 cv=evLvCIpX c=1 sm=1 tr=0 ts=6a04a815 cx=c_pps a=+jjOclGHkOGhuepu6R0Llw==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=NGcC8JguVDcA:10 a=0kUYKlekyDsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VofLwUrZ8Iiv6rRUPXIb:22 a=0LlEyIVc8U2lsR7dKhuH:22 a=64Cc0HZtAAAA:8 a=wZ7dmE2_5clyT-bJU3wA:9 X-Proofpoint-ORIG-GUID: m2j_JzDUZkGZFhLRUFiJiPf6kM7rWV5y X-Proofpoint-GUID: m2j_JzDUZkGZFhLRUFiJiPf6kM7rWV5y X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-13_01,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Reason: safe 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=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.155.12; envelope-from=shaju.abraham@nutanix.com; helo=mx0b-002c1b01.pphosted.com X-Spam_score_int: -31 X-Spam_score: -3.2 X-Spam_bar: --- X-Spam_report: (-3.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.445, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, 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: qemu development 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 @nutanix.com) X-ZM-MESSAGEID: 1778690206370158500 Content-Type: text/plain; charset="utf-8" Register all the defined Arm properties to the host model if CONFIG_KVM is enabled. Add property finder, getter/setter functions, and wire up the property registration in the CPU initialization path. Co-authored-by: Khushit Shah Signed-off-by: Shaju Abraham --- target/arm/arm-cpu-props.c | 216 +++++++++++++++++++++++++++++++++++++ target/arm/arm-cpu-props.h | 2 +- target/arm/cpu64.c | 3 +- 3 files changed, 219 insertions(+), 2 deletions(-) diff --git a/target/arm/arm-cpu-props.c b/target/arm/arm-cpu-props.c index f22fe7f08b..1a34428c00 100644 --- a/target/arm/arm-cpu-props.c +++ b/target/arm/arm-cpu-props.c @@ -41,3 +41,219 @@ const ArmCpuPropDesc arm_cpu_props[] =3D { #include "arm-cpu-props.inc.h" { .name =3D NULL }, }; + +static const ArmCpuPropDesc *arm_find_prop(const char *name) +{ + const ArmCpuPropDesc *p; + for (p =3D arm_cpu_props; p->name; p++) { + if (g_str_equal(p->name, name)) { + return p; + } + } + return NULL; +} + +static void arm_single_field_get(ARMCPU *cpu, const ArmCpuPropDesc *p, + Visitor *v, const char *name, Error **err= p) +{ + uint64_t value; + char *s; + bool b; + + arm_idreg_field_read(cpu, p->base_field, &value); + + switch (p->type) { + case ARM_PROP_STRING: { + s =3D g_strdup(arm_arch_val_name(p->base_field, value)); + + if (!s) { + error_setg(errp, "Property '%s': unknown value %" PRIu64, + name, value); + return; + } + visit_type_str(v, name, &s, errp); + g_free(s); + break; + } + case ARM_PROP_BOOLEAN: { + b =3D value !=3D 0; + visit_type_bool(v, name, &b, errp); + break; + } + case ARM_PROP_NUMERIC: + visit_type_uint64(v, name, &value, errp); + break; + default: + g_assert_not_reached(); + } +} + +static void arm_fractional_get(ARMCPU *cpu, const ArmCpuPropDesc *p, + Visitor *v, const char *name, Error **errp) +{ + uint64_t base_val, frac_val; + const ArmFracVal *val; + char *s; + + arm_idreg_field_read(cpu, p->base_field, &base_val); + arm_idreg_field_read(cpu, p->frac_field, &frac_val); + + for (val =3D p->vals; val->name; val++) { + if (val->base_val =3D=3D base_val && val->frac_val =3D=3D frac_val= ) { + s =3D g_strdup(val->name); + visit_type_str(v, name, &s, errp); + g_free(s); + return; + } + } + + error_setg(errp, + "Property '%s': unknown fractional value %" PRIu64 + ".%" PRIu64, name, base_val, frac_val); +} + +static void arm_cpu_prop_get(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) +{ + ARMCPU *cpu =3D ARM_CPU(obj); + const ArmCpuPropDesc *p =3D arm_find_prop(name); + + if (!p) { + error_setg(errp, "Property %s not found", name); + return; + } + + switch (p->type) { + case ARM_PROP_STRING: + case ARM_PROP_BOOLEAN: + case ARM_PROP_NUMERIC: + arm_single_field_get(cpu, p, v, name, errp); + break; + case ARM_PROP_FRACTIONAL: + arm_fractional_get(cpu, p, v, name, errp); + break; + } +} + +static void arm_single_field_set(ARMCPU *cpu, const ArmCpuPropDesc *p, + Visitor *v, const char *name, Error **err= p) +{ + uint64_t value; + char *str =3D NULL; + bool b; + + switch (p->type) { + case ARM_PROP_STRING: { + + if (!visit_type_str(v, name, &str, errp)) { + return; + } + if (!arm_arch_val_from_name(p->base_field, str, &value)) { + error_setg(errp, "Property '%s': invalid value '%s'", name, st= r); + g_free(str); + return; + } + g_free(str); + break; + } + case ARM_PROP_BOOLEAN: { + + if (!visit_type_bool(v, name, &b, errp)) { + return; + } + value =3D b ? 1 : 0; + break; + } + case ARM_PROP_NUMERIC: + if (!visit_type_uint64(v, name, &value, errp)) { + return; + } + break; + default: + g_assert_not_reached(); + } + + if (!arm_idreg_field_write(cpu, p->base_field, value, errp)) { + error_prepend(errp, "Property '%s': ", name); + } +} + +static void arm_fractional_set(ARMCPU *cpu, const ArmCpuPropDesc *p, + Visitor *v, const char *name, Error **errp) +{ + char *str =3D NULL; + const ArmFracVal *val; + + if (!visit_type_str(v, name, &str, errp)) { + return; + } + + for (val =3D p->vals; val->name; val++) { + if (g_str_equal(val->name, str)) { + if (!arm_idreg_field_write(cpu, p->base_field, + val->base_val, errp)) { + error_prepend(errp, "Property '%s': ", name); + g_free(str); + return; + } + if (!arm_idreg_field_write(cpu, p->frac_field, + val->frac_val, errp)) { + error_prepend(errp, "Property '%s': ", name); + } + g_free(str); + return; + } + } + + error_setg(errp, "Property '%s': invalid fractional value '%s'", + name, str); + g_free(str); +} + +static void arm_cpu_prop_set(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) +{ + ARMCPU *cpu =3D ARM_CPU(obj); + const ArmCpuPropDesc *p =3D arm_find_prop(name); + + if (!p) { + error_setg(errp, "Property %s not found", name); + return; + } + + switch (p->type) { + case ARM_PROP_STRING: + case ARM_PROP_BOOLEAN: + case ARM_PROP_NUMERIC: + arm_single_field_set(cpu, p, v, name, errp); + break; + case ARM_PROP_FRACTIONAL: + arm_fractional_set(cpu, p, v, name, errp); + break; + } +} + +void arm_add_cpu_props(Object *obj) +{ + const char *type; + const ArmCpuPropDesc *p; + + for (p =3D arm_cpu_props; p->name; p++) { + switch (p->type) { + case ARM_PROP_STRING: + case ARM_PROP_FRACTIONAL: + type =3D "string"; + break; + case ARM_PROP_BOOLEAN: + type =3D "bool"; + break; + case ARM_PROP_NUMERIC: + type =3D "number"; + break; + default: + g_assert_not_reached(); + } + object_property_add(obj, p->name, type, + arm_cpu_prop_get, arm_cpu_prop_set, NULL, NULL= ); + } +} diff --git a/target/arm/arm-cpu-props.h b/target/arm/arm-cpu-props.h index 1dc3786ea9..48f9c46ccb 100644 --- a/target/arm/arm-cpu-props.h +++ b/target/arm/arm-cpu-props.h @@ -32,5 +32,5 @@ typedef struct ArmCpuPropDesc { ArmFieldIdx frac_field; const ArmFracVal *vals; } ArmCpuPropDesc; - +void arm_add_cpu_props(Object *obj); #endif diff --git a/target/arm/cpu64.c b/target/arm/cpu64.c index a93ad2da5a..0300f8677f 100644 --- a/target/arm/cpu64.c +++ b/target/arm/cpu64.c @@ -37,7 +37,7 @@ #include "hw/core/qdev-properties.h" #include "internals.h" #include "cpu-features.h" - +#include "arm-cpu-props.h" /* convert between _IDX and SYS_ */ #define DEF(NAME, OP0, OP1, CRN, CRM, OP2) \ [NAME##_IDX] =3D SYS_##NAME, @@ -863,6 +863,7 @@ static void aarch64_host_initfn(Object *obj) kvm_arm_set_cpreg_mig_tolerances(cpu); kvm_arm_set_cpu_features_from_host(cpu); aarch64_add_sve_properties(obj); + arm_add_cpu_props(obj); #elif defined(CONFIG_HVF) hvf_arm_set_cpu_features_from_host(cpu); #elif defined(CONFIG_WHPX) --=20 2.52.0 From nobody Sat May 30 18:35:08 2026 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; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass(p=none dis=none) header.from=nutanix.com ARC-Seal: i=2; a=rsa-sha256; t=1778690173; cv=pass; d=zohomail.com; s=zohoarc; b=Os1Rct2WlemsrYuR5URPm06mM3KXcXgDv74lG82x9PD+h+y4ufXwusp8ottofq/5+FRDDaxJJTVhLfckm5Pr+x7eBH8iuWUYh2gSHC0fPKUZSqP5V+v3+Cu3EJOjzhtxyimRLCqUKqCwkkSccb3Wss7nIwlD0MlI9KaACFMab3g= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778690173; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=90/K6T/F6An7yz81jap0t445Ld1IqL33IR5l1tThAfY=; b=aNtdVOP7IyCiKl5BgAuVURLpDmB1cTRKaHtZi3cJkeRz7FzKeLE698J/s/e15qGDJczTOGVjFwJJsTbclfp5hlKvb3ql7uJh7th2w8g+t6+RMRvFyhRjeXMoXB+iBV7TPNQ1MHfYhvIvEPFJc/yI58JWmh6pjUbLewSAWSYQ+fE= ARC-Authentication-Results: i=2; 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; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1778690173000332.49280263739684; Wed, 13 May 2026 09:36:13 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wNCYo-0004Nf-8P; Wed, 13 May 2026 12:35:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wNCXt-0003Mj-3r; Wed, 13 May 2026 12:34:53 -0400 Received: from mx0a-002c1b01.pphosted.com ([148.163.151.68]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wNCXo-0000mn-WB; Wed, 13 May 2026 12:34:52 -0400 Received: from pps.filterd (m0127838.ppops.net [127.0.0.1]) by mx0a-002c1b01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64DGKXdo1855187; Wed, 13 May 2026 09:34:30 -0700 Received: from sn4pr0501cu005.outbound.protection.outlook.com (mail-southcentralusazon11021116.outbound.protection.outlook.com [40.93.194.116]) by mx0a-002c1b01.pphosted.com (PPS) with ESMTPS id 4e3nvke98r-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Wed, 13 May 2026 09:34:30 -0700 (PDT) Received: from PH7PR02MB10160.namprd02.prod.outlook.com (2603:10b6:510:2e7::19) by SJ0PR02MB8813.namprd02.prod.outlook.com (2603:10b6:a03:3d6::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Wed, 13 May 2026 16:34:28 +0000 Received: from PH7PR02MB10160.namprd02.prod.outlook.com ([fe80::4ed7:5c74:48e0:ff23]) by PH7PR02MB10160.namprd02.prod.outlook.com ([fe80::4ed7:5c74:48e0:ff23%7]) with mapi id 15.20.9891.021; Wed, 13 May 2026 16:34:28 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= proofpoint20171006; bh=90/K6T/F6An7yz81jap0t445Ld1IqL33IR5l1tThA fY=; b=OARFURDkgFUq8MAGIBDLp2wqnh6wwKacbnJDDTw0UR+GgTV+bJ0pYbgqA peW4DQZ02R0Y5OwbBnP68To85zD4bgqWZTtH/tc3aCPS9dIENT+FkTkDGWpEML8X w+gjVdmDjL0aZMdolW0fYFdg5wOhqAnz5HzM2BYwD8/69gQFzrZVJoICpHKo/Z2A 0+xDP6NGMNdLXZGNLtcLiinOV5zfBqHKrWnbjbcXT0IFzfhYhT2ic9gxd4Ryluel KcV0hgxvOd0Ud09NlzOhQk8+2VN7mp3IvJz+B+oaMWljFQXGUbBJFl0mmzcjB328 mxfFSwbY+KnsY42hUto1k9Io2hEBg== ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=NSm5RQDdLECsJiKQ/zBt45QWwsFWvlJueCfug/prdrh2DGKIlDkXwon34YynbP4MP+mo5eG4sR47OAyjt9B75DCCqIXd4R5aC/V10KhlnQe/6wWqQaG2NVzWQlCIADD769P/UJ0rJMk18leCqEuiBTaiOrmupcCsmHf9YTbj9U+FJRcwDRx3k3xBdl3GCakUPCVM3Ya0REeM8GLa+BvcLIiJcNWd6bWyJ0yf+qctQtKviBfWDIIJRtylrBLGvU+C+oqdxx4lr+KNaoYQlk1enoBPmPxILW1VVR+Pc8ShzKSCQU7NUTPwEeWYIUBxuN59Gesln25/s37qQWKZT2xN1w== 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=90/K6T/F6An7yz81jap0t445Ld1IqL33IR5l1tThAfY=; b=aIwQDX+NxW56geQp3O88ikmljGYwM8M3VCERjvIzAvCY03NiIFcBllRk8Dp5LxX8XBdr89scxAV46pQPyDKvXlF8YVp8sZlp6vk9kg5/JlmAYhUF1ig1K/VrUFKUcXoPY4qn2CvJ+Sx6Yaid8ru2uQ6kQksJ7JKDdGtwsiWTPHXqAwHzhBsp3GGSCKJ129uS/UOaY1yLp0r/cfioRwmjEoEj4GaOVn0w/zNWmeKzeSL5ajxhShV/OQWDPr9r9AvMctjo0mgU9uS/1exj0Phh7WuO/1A9WhcwDww/cR/77Kqh90gaMJojbPlEoyp/WKyBoXW4QrPsmaI4m1bOAsHAug== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=90/K6T/F6An7yz81jap0t445Ld1IqL33IR5l1tThAfY=; b=y98vnMZjepndOw/y+cqjWYmqMnBGlTkhmdy+qpmsPLwS8CoiF+HTQGTVQvEi+r56ODgm5b/kO16ORAjcpgqllbSOFjUwffQDo4Z7YdwEqX3kHb6seyLebT1pVNxYteBFaNCk8EnVQhp8G5JHOPnwolImzHI4tBi+yNMXqqd1qqwHQJc9nAjanC5/CvxSaQ+29WVN+4cogwI3hL5o2l5jop0O0FIBl6YfBI/TOoHOX67K5iQCDAxoFV/pIf9l5nVH5I6ZLLcyeRYK24KpKyewYSMF8r5SKkKu7U/K7voJh28VzJOGijW1lAfooFvqXCzJMojPsKf+TmogFlXVnA4bnQ== From: Shaju Abraham To: eric.auger@redhat.com, qemu-devel@nongnu.org, qemu-arm@nongnu.org, kvmarm@lists.linux.dev, peter.maydell@linaro.org, richard.henderson@linaro.org, cohuck@redhat.com, sebott@redhat.com, skolothumtho@nvidia.com, philmd@linaro.org Cc: maz@kernel.org, oliver.upton@linux.dev, pbonzini@redhat.com, prerna.saxena@nutanix.com, jon@nutanix.com, jond@nutanix.com, Shaju Abraham , Khushit Shah Subject: [RFC PATCH v1 11/13] target/arm: named_cpu_model: introduce named CPU models for selected CPUs Date: Wed, 13 May 2026 16:33:54 +0000 Message-ID: <20260513163356.3033159-12-shaju.abraham@nutanix.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260513163356.3033159-1-shaju.abraham@nutanix.com> References: <20260513163356.3033159-1-shaju.abraham@nutanix.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: CY5PR10CA0003.namprd10.prod.outlook.com (2603:10b6:930:1c::30) To PH7PR02MB10160.namprd02.prod.outlook.com (2603:10b6:510:2e7::19) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH7PR02MB10160:EE_|SJ0PR02MB8813:EE_ X-MS-Office365-Filtering-Correlation-Id: 094a4113-2449-4b99-2729-08deb10d804b x-proofpoint-crosstenant: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|7416014|376014|366016|1800799024|921020|18002099003|22082099003|56012099003|3023799003; X-Microsoft-Antispam-Message-Info: 1L1xxN1VLvPgu31wQ11sIcf5ikRmwxidwrCAhig7x3BxnLufBYZmz/OpIYkpjCkQPtYbctpVLP8QAL/LOYOUdPpWg4VsLAKdBeKuYrHWfLn5amE+KNfCbV3+Z+GtoBCFzuOYVJOPM6HLJdxV5v9heFC5YWQbRp53p0/+auHXaPGU4rElV/pwFO5bVI4b6mtnaP1x52j3J94XB4hW69/tmE3Eg00gLkWRYlTteu7FGDK56eLJzQO1Z3QrH7s6U6e9/uEAoUtQswvEY/p+JMGl8g3mfjOWTcTe7gLAgU72+6P8R9XorIEdrKFkn1D0abXQE9DfFvI5KYmJ2ctAVRO3JgtUGI22wKMepFs+zXjsJzF/yBNMwKvkXm+YLO5agkEWrlzJ5/CRsQrDaNtoNzRKxK9yalv/2Ku7LaPsVVsvms3Wzb49zjdXnls+yvENAkjvp/j46yBKGTYyR/pj3IXI3JfDdvMIexvBvVPcl/ULsUzRxCaxBcJ1zTROzk2+34U1dHYvjHgGILN1q7YQPDzXaDIy7HqioF4MFwPHXzW1cKkj5w7qGvgwMM8PvgT96OSYgCggfrMcNCPl6LstIQj0K4D7cPAaxrPwIkLouq+n1LAq98OgDCnhwA0CQiQmIQBK5vLhqnhJ2GY12VjmP5vyvRVTJVS4W+5hQPSUzDfgimJzYVgdIdq30/05ptLqvBbqUhf0M5qhmzP6J1oXt8enFJ7XqL+mfHVffKjg/i3U57k= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH7PR02MB10160.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(7416014)(376014)(366016)(1800799024)(921020)(18002099003)(22082099003)(56012099003)(3023799003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?AOs/nMMldNW7FzO506vbrPT+nP/TN9dYMlQoy/B5aVzVlQeXsabDl1bDEGiS?= =?us-ascii?Q?GZ4bkyMHJmOnrlVtKtE1u/GU55XTgo1DcPnAKBsGJgjNexhTMesDYRF6CTvW?= =?us-ascii?Q?sKM+Lu25gb3/8mK4BolGUXLPQZXcHN6dLJ1xbjFMo/0p8Bp1un6k/+QqGemw?= =?us-ascii?Q?W221zGidwjs2+YHkAdJwdlEhz1vutFnLxkahdmZT2axvJFGY4CTle5OGl7bE?= =?us-ascii?Q?NYFKMj3pzPcmEbhb+EWOZ+Fy4DztYeY/190zjc07c3ErcrTBDJzusRt6p9bl?= =?us-ascii?Q?9wNiwQzbSrdZumZXzhscO+HswyWMMhQovJn6OQn8tgwBTU9XWuIGvVl0yIkv?= =?us-ascii?Q?t4/2A/FqJJJJumXJRYjXG5yrI1KPslNts+4TOfO22vedWMwSCf5W/krBqHbd?= =?us-ascii?Q?12PZMHdGaRo87OijQncfYOiI1WEI/iFmHfIurIGQ78rre4DvIwGBjBnOhx9F?= =?us-ascii?Q?OYQ4A7hr/PF31vqfVKBWDn3DWMtfv/4W8fHkg0isnd824TAa+sIDPtUc577I?= =?us-ascii?Q?kllkG4T+cs9T7F0RPQmaN9EpbEqpz//M5ENw+jSxfUUESti0Run9pOmBeJ17?= =?us-ascii?Q?MvkVGkMan7jJw8N2TtgtNV+A2bpuHTouGW9akcpVxP9oWVrDmJweoP/7eRVo?= =?us-ascii?Q?dX7xdlm/Kkduca3Vm2k1cTQ6MdFPk9A41PZddsodDBFZENsBr2oPg9WD1oNJ?= =?us-ascii?Q?XR5toDegLdVS/m2dP0uDpz0uGwsHx9a09sd9Yjuo5O5+p1ilvQIeFKyqpaE/?= =?us-ascii?Q?kGpYGDnN463tWe9rnoZLQ43aOzJ4xIiNCO3/VvmejJXD9XaEa1ckOh25Vja0?= =?us-ascii?Q?D99gj4nSKlZ2hVVTlY/lwy6LXFUnoEC3tkVX/tTeB6U7v+yLDTwyv7g8JjE6?= =?us-ascii?Q?JSfB6Jbej6kMVDHrk8EPFyA5kzqjpJomwdadhJ/xS4ib+4mwML1LyN9PeWAr?= =?us-ascii?Q?NqO9tWBz8hzVQHQqPtX26pDh2cmBuX4/avYYfAT24C728ZUxmKUDCSaDq3jb?= =?us-ascii?Q?2We6EayObA96UP3XVeZtjxUraN6gO6Ow51Zjlx1ggqzRjKMRGoefVOKO3+sO?= =?us-ascii?Q?zzf85GyeDb7LYK4Ejqg2jyzE/dOHt3uE/lMOro3ypmOAQCJonau1X8dJbHib?= =?us-ascii?Q?Lc99Lmw0EbzvZepuCoCuYADB1p7BoRhVuTzA7luVSH7FiZAI4P6YG2UAYeJU?= =?us-ascii?Q?hevAy/l2myNY1njwU/YBwBH1m6Ut6O+91N4bKrJJzR3Ny0RFHqGXCsVD/6h2?= =?us-ascii?Q?w+L2LL43pdO8xYog26ynTgFz9j8KsELI7iHENqsiYXKN9vqgx4hmW2V+F9//?= =?us-ascii?Q?3fRP0hFtytewK1ylH1bdMdinXrPJDf4I4irxjXlqsByG4IoN65yzy2KxRvYF?= =?us-ascii?Q?WiL0n2o1mReGb6DWpV+ivaHnxof1gquz3cF0Ys2h2wXRC/0Hx1Os6larPfIp?= =?us-ascii?Q?14UDRn9GObgIZ5PS4QgRN6XghrhrLVPY/fR08mAhGJ9lsYCA6bx84XDHsvAU?= =?us-ascii?Q?dgZW+BJDc5G+CXVMv6Nk5soAfJJ4+9SoqXGx8SZE8p7NmJEucDw5kVf4aG/p?= =?us-ascii?Q?F0qIt9GOT1fOJC+YjxARxbdZ/tnE15IpxeYRYUTG1lMRG6qhoBbZQrl3GXgJ?= =?us-ascii?Q?JKIJacLW1oiCmZtQoaKTTF/AVRN4OXT+4+jyszlmukB6Oz3QNrcEsUdShp2g?= =?us-ascii?Q?pUec0CpIYguQdno4vPXNKsClcKU44vDheaDmFKkKCVsiTg8rMXmBa/EDmT86?= =?us-ascii?Q?mEmq4lIyK65RTmByz2uT0efhpOBX6bg=3D?= X-Exchange-RoutingPolicyChecked: o3U8IvQNyIyI9NPZ84y36WMplj/vYO75EAJk1pqRrNbDgjNCGTAeQBvf1OEVO16SuhWTtebCNP026G3TtfZwNRZjKqBP0oThJmn8YgFma82GeoFfCgQID8TY3fgxkclz+ePD3cKTXp8aTNPa1HNOHvkounbYkiySvaRJHT8wg+dLlOIH6/XwajAHnw9E/UJy2ObfLnWJExRFzGWUverDbrBjplZM2/LRFvlSuOZHlCiRDeIEKCxfBEwxJZginCebfRJDFbnFVYZqb8L7UrmWWF+2Nd99nlQtetVTSrY7SrKcgJELe8CcGnbnHvfEXDN7r519YklNgjpe92Ql/Q9Q1w== X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: 094a4113-2449-4b99-2729-08deb10d804b X-MS-Exchange-CrossTenant-AuthSource: PH7PR02MB10160.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 16:34:28.0550 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: gr4MenAUqbXIQRnovQeENqttviHJbNSWg2hniFprf4qO76jwQTBVRMd/9ylIGfXGilK+RN7VuM3rKssJL4umt4dl2IGRZNo/EYumMvLpJZE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR02MB8813 X-Proofpoint-GUID: HZ35R1swqmrLdcPCv5gfFH70FizbdPvV X-Authority-Analysis: v=2.4 cv=WcU8rUhX c=1 sm=1 tr=0 ts=6a04a816 cx=c_pps a=U/cWNT7cGANcmDM7K3LxiQ==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=NGcC8JguVDcA:10 a=0kUYKlekyDsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VofLwUrZ8Iiv6rRUPXIb:22 a=1L6crL_YRTbalZ11mEUO:22 a=64Cc0HZtAAAA:8 a=JU90o9GPsxMSsgw1v4MA:9 X-Proofpoint-ORIG-GUID: HZ35R1swqmrLdcPCv5gfFH70FizbdPvV X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDE2OCBTYWx0ZWRfX5efM/KQKlJWl AfxSSdiZetx8lhBghPuTVf8sdFuXlrZAQkmooTmHMeju9tONX8bH1LkKmf23CKSmR/awkdntepY aYn//Okz1cBohiywxhNSAZEQ28Dg7mVav1iQlXsUfhEyR86on91E0Mad6gl0nT0Q/Xr4xxG9suY GA2AUIxuODZ1WKjAe2OY3psMyJUKQsD9ER5RW+T20+dAJAQU+oKpDAbueigaznJ/z74aptDtKfY ekm6zbetcf2K1aHaRCV4BpLlrwNRg2RcTpIeOwJF5N1cDdU6Kb5/sYO4a/ekyAjprGgL3MYDwfu i0+odlNbZ8bkNt6/WLcwtd1jUV0xEOCCI3vzvDE3qG3fJEJOkNIZ23d6q9yXQMURw2/Db4GYk3f /J/Q+BdbhDViL0/kDado3eGDFSNIKmruLlKQRiwU8B1HSVHiHPox/tBqkmrGuTF6aACgEFK+6uz vJTFE8U8rFpYDedd9CA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-13_01,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Reason: safe 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=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.151.68; envelope-from=shaju.abraham@nutanix.com; helo=mx0a-002c1b01.pphosted.com X-Spam_score_int: -31 X-Spam_score: -3.2 X-Spam_bar: --- X-Spam_report: (-3.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.445, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, 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: qemu development 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 @nutanix.com) X-ZM-MESSAGEID: 1778690173779158501 Content-Type: text/plain; charset="utf-8" Introduce a small named-CPU-model layer on top of the field-backed property infrastructure. Each model is a flat table of (name, value) overrides and a parent pointer. At instance-init, the parent chain is walked root-first and every level's properties are applied via QOM, so a child entry overrides its ancestors for the same name. For example, the grace-v1 named model hierarchy is: kvm-base-v1 KVM-imposed quirks (chain root) arm-v8_4-a-v1 ARMv8.4-A architectural mandate arm-v9_0-a-v1 ARMv9.0-A architectural deltas neoverse-v2-v1 Neoverse V2 grace-v1 NVIDIA Grace arm-v8_4-a-v1, arm-v9_0-a-v1: Only features mandated by the corresponding ARM ARM revision. No optional features. neoverse-v[12]-v1: Referrence manual derived feature values for the reference core. Values differ from reference core values based on what was exposed to the guest with -cpu host. grace-v1: SoC integration choices (crypto pin, cache hints, PAuth alg). model realization logic: 1. arm_idregs_reset_to_defaults(cpu): Reset cpu->isar.idregs[] to the default values. 2. Add all properties to the CPU Object 3. arm_realize_model_chain(obj, model, &error_abort): Walk the parent chain from root first and apply all the properties. Co-authored-by: Khushit Shah Signed-off-by: Shaju Abraham --- hw/arm/virt.c | 8 ++ target/arm/arm-cpu-models.c | 214 ++++++++++++++++++++++++++++++++ target/arm/arm-cpu-models.h | 43 +++++++ target/arm/arm-v8_4-a-v1.inc.h | 22 ++++ target/arm/arm-v9_0-a-v1.inc.h | 28 +++++ target/arm/grace-v1.inc.h | 17 +++ target/arm/graviton3-v1.inc.h | 16 +++ target/arm/kvm-base-v1.inc.h | 13 ++ target/arm/meson.build | 5 +- target/arm/neoverse-v1-v1.inc.h | 64 ++++++++++ target/arm/neoverse-v2-v1.inc.h | 64 ++++++++++ 11 files changed, 493 insertions(+), 1 deletion(-) create mode 100644 target/arm/arm-cpu-models.c create mode 100644 target/arm/arm-cpu-models.h create mode 100644 target/arm/arm-v8_4-a-v1.inc.h create mode 100644 target/arm/arm-v9_0-a-v1.inc.h create mode 100644 target/arm/grace-v1.inc.h create mode 100644 target/arm/graviton3-v1.inc.h create mode 100644 target/arm/kvm-base-v1.inc.h create mode 100644 target/arm/neoverse-v1-v1.inc.h create mode 100644 target/arm/neoverse-v2-v1.inc.h diff --git a/hw/arm/virt.c b/hw/arm/virt.c index 10b1954382..bbb5f0a241 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -4069,6 +4069,14 @@ static GPtrArray *virt_get_valid_cpu_types(const Mac= hineState *ms) g_ptr_array_add(vct, g_strdup(ARM_CPU_TYPE_NAME("host"))); } } + if (kvm_enabled() && target_aarch64()) { + g_ptr_array_add(vct, g_strdup(ARM_CPU_TYPE_NAME("arm-v8_4-a-v1"))); + g_ptr_array_add(vct, g_strdup(ARM_CPU_TYPE_NAME("arm-v9_0-a-v1"))); + g_ptr_array_add(vct, g_strdup(ARM_CPU_TYPE_NAME("neoverse-v1-v1"))= ); + g_ptr_array_add(vct, g_strdup(ARM_CPU_TYPE_NAME("neoverse-v2-v1"))= ); + g_ptr_array_add(vct, g_strdup(ARM_CPU_TYPE_NAME("grace-v1"))); + g_ptr_array_add(vct, g_strdup(ARM_CPU_TYPE_NAME("graviton3-v1"))); + } g_ptr_array_add(vct, g_strdup(ARM_CPU_TYPE_NAME("max"))); =20 return vct; diff --git a/target/arm/arm-cpu-models.c b/target/arm/arm-cpu-models.c new file mode 100644 index 0000000000..fff7522a64 --- /dev/null +++ b/target/arm/arm-cpu-models.c @@ -0,0 +1,214 @@ +/* + * ARM named CPU model definitions. + * + * Each model is defined in its own .inc.h file using the ARM_PROP() + * macro, listing only the properties that DIFFER from the parent + * model. At realisation the parent chain is walked root-first and + * every level's props are applied via QOM, so the leaf's values + * naturally override its ancestors. + * + * Hierarchy (single-parent inheritance): + * + * kvm-base-v1 KVM-imposed quirks (chain root) + * arm-v8_4-a-v1 ARMv8.4-A architectural mandate + * arm-v9_0-a-v1 ARMv9.0-A architectural deltas + * neoverse-v2-v1 Neoverse V2 (TRM 102375) + * grace-v1 NVIDIA Grace + * neoverse-v1-v1 Neoverse V1 (TRM 102649) + * graviton3-v1 AWS Graviton3 + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "qapi/error.h" +#include "qemu/error-report.h" +#include "system/kvm.h" +#include "cpu.h" +#include "internals.h" +#include "kvm_arm.h" +#include "arm-cpu-models.h" +#include "arm-cpu-props.h" +#include "cpu-idregs.h" + +static const ArmModelPropValue kvm_base_v1_props[] =3D { +#include "kvm-base-v1.inc.h" +}; + +static const ArmModelPropValue armv8_4_a_v1_props[] =3D { +#include "arm-v8_4-a-v1.inc.h" +}; + +static const ArmModelPropValue armv9_0_a_v1_props[] =3D { +#include "arm-v9_0-a-v1.inc.h" +}; + +static const ArmModelPropValue neoverse_v1_v1_props[] =3D { +#include "neoverse-v1-v1.inc.h" +}; + +static const ArmModelPropValue neoverse_v2_v1_props[] =3D { +#include "neoverse-v2-v1.inc.h" +}; + +static const ArmModelPropValue grace_v1_props[] =3D { +#include "grace-v1.inc.h" +}; + +static const ArmModelPropValue graviton3_v1_props[] =3D { +#include "graviton3-v1.inc.h" +}; + +static const ArmNamedCpuModel arm_cpu_models[] =3D { + { + .name =3D "kvm-base-v1", + .parent =3D NULL, + .props =3D kvm_base_v1_props, + }, + { + .name =3D "arm-v8_4-a-v1", + .parent =3D "kvm-base-v1", + .props =3D armv8_4_a_v1_props, + }, + { + .name =3D "neoverse-v1-v1", + .parent =3D "arm-v8_4-a-v1", + .props =3D neoverse_v1_v1_props, + }, + { + .name =3D "graviton3-v1", + .parent =3D "neoverse-v1-v1", + .props =3D graviton3_v1_props, + }, + { + .name =3D "arm-v9_0-a-v1", + .parent =3D "arm-v8_4-a-v1", + .props =3D armv9_0_a_v1_props, + }, + { + .name =3D "neoverse-v2-v1", + .parent =3D "arm-v9_0-a-v1", + .props =3D neoverse_v2_v1_props, + }, + { + .name =3D "grace-v1", + .parent =3D "neoverse-v2-v1", + .props =3D grace_v1_props, + }, +}; + +static ARMCPUInfo arm_named_cpu_infos[ARRAY_SIZE(arm_cpu_models)]; +static const ArmNamedCpuModel *arm_find_model(const char *name) +{ + size_t i; + for (i =3D 0; i < ARRAY_SIZE(arm_cpu_models); i++) { + if (g_str_equal(arm_cpu_models[i].name, name)) { + return &arm_cpu_models[i]; + } + } + return NULL; +} + +static void arm_apply_model_props(Object *obj, const ArmModelPropValue *pr= ops, + Error **errp) +{ + const ArmModelPropValue *pv; + ERRP_GUARD(); + + for (pv =3D props; pv->name; pv++) { + switch (pv->type) { + case ARM_MODEL_PROP_STR: + object_property_set_str(obj, pv->name, pv->str, errp); + break; + case ARM_MODEL_PROP_BOOL: + object_property_set_bool(obj, pv->name, pv->b, errp); + break; + case ARM_MODEL_PROP_NUM: + object_property_set_uint(obj, pv->name, pv->num, errp); + break; + default: + g_assert_not_reached(); + } + if (*errp) { + error_prepend(errp, "property '%s': ", pv->name); + return; + } + } +} + +static void arm_realize_model_chain(Object *obj, const ArmNamedCpuModel *m= odel, + Error **errp) +{ + const ArmNamedCpuModel *cur, *parent; + const ArmNamedCpuModel *chain[ARRAY_SIZE(arm_cpu_models)]; + size_t depth =3D 0; + for (cur =3D model; cur; ) { + if (depth >=3D ARRAY_SIZE(chain)) { + error_setg(errp, "model '%s': parent chain too deep " + "(possible cycle)", model->name); + return; + } + chain[depth++] =3D cur; + + if (!cur->parent) { + break; + } + parent =3D arm_find_model(cur->parent); + if (!parent) { + error_setg(errp, "model '%s': unknown parent '%s'", + cur->name, cur->parent); + return; + } + cur =3D parent; + } + + while (depth--) { + arm_apply_model_props(obj, chain[depth]->props, errp); + if (*errp) { + return; + } + } +} + +static void arm_named_cpu_initfn(Object *obj) +{ + ARMCPU *cpu =3D ARM_CPU(obj); + ARMCPUClass *acc =3D ARM_CPU_GET_CLASS(obj); + const ArmNamedCpuModel *model =3D arm_find_model(acc->info->name); + if (!model) { + error_report("'%s' CPU model entry not found)", + acc->info->name); + return; + } + + if (!kvm_enabled()) { + error_report("'%s' CPU model requires KVM (-accel kvm)", + acc->info->name); + return; + } + + kvm_arm_set_cpu_features_from_host(cpu); + if (!arm_feature(&cpu->env, ARM_FEATURE_AARCH64)) { + return; + } + + arm_idregs_reset_to_defaults(cpu); + + aarch64_add_sve_properties(obj); + aarch64_add_pauth_properties(obj); + arm_add_cpu_props(obj); + + arm_realize_model_chain(obj, model, &error_abort); +} + +void arm_register_named_cpu_models(void) +{ + size_t i; + for (i =3D 0; i < ARRAY_SIZE(arm_cpu_models); i++) { + arm_named_cpu_infos[i].name =3D arm_cpu_models[i].name; + arm_named_cpu_infos[i].initfn =3D arm_named_cpu_initfn; + arm_cpu_register(&arm_named_cpu_infos[i]); + } +} + +type_init(arm_register_named_cpu_models) diff --git a/target/arm/arm-cpu-models.h b/target/arm/arm-cpu-models.h new file mode 100644 index 0000000000..830a9bdc4a --- /dev/null +++ b/target/arm/arm-cpu-models.h @@ -0,0 +1,43 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* + * ARM named CPU model definitions - public API. + */ +#ifndef ARM_CPU_MODELS_H +#define ARM_CPU_MODELS_H + +#include "qapi/error.h" +#include "qom/object.h" + +typedef enum ArmModelPropType { + ARM_MODEL_PROP_STR, + ARM_MODEL_PROP_BOOL, + ARM_MODEL_PROP_NUM, +} ArmModelPropType; + +typedef struct ArmModelPropValue { + const char *name; + ArmModelPropType type; + bool b; + uint64_t num; + const char *str; +} ArmModelPropValue; + +typedef struct ArmNamedCpuModel { + const char *name; + const char *parent; + const ArmModelPropValue *props; +} ArmNamedCpuModel; + +#define ARM_PROP_FIELD_STR str +#define ARM_PROP_FIELD_BOOL b +#define ARM_PROP_FIELD_NUM num + +#define ARM_PROP(_name, _type, _value) \ + { .name =3D (_name), .type =3D ARM_MODEL_PROP_##_type, \ + .ARM_PROP_FIELD_##_type =3D (_value) } + +#define ARM_PROP_END { .name =3D NULL } + +void arm_register_named_cpu_models(void); + +#endif /* ARM_CPU_MODELS_H */ diff --git a/target/arm/arm-v8_4-a-v1.inc.h b/target/arm/arm-v8_4-a-v1.inc.h new file mode 100644 index 0000000000..1bad59ba2d --- /dev/null +++ b/target/arm/arm-v8_4-a-v1.inc.h @@ -0,0 +1,22 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +ARM_PROP("feat_CRC32", STR, "on"), +ARM_PROP("feat_ATOMIC", STR, "on"), +ARM_PROP("feat_HPDS", STR, "on"), +ARM_PROP("feat_LO", STR, "on"), + +ARM_PROP("feat_DPB", STR, "on"), +ARM_PROP("feat_RAS", STR, "1.0"), +ARM_PROP("feat_PAN", STR, "pan2"), +ARM_PROP("feat_UAO", STR, "on"), +ARM_PROP("feat_CNP", STR, "on"), +ARM_PROP("feat_IESB", STR, "on"), + +ARM_PROP("feat_DIT", STR, "on"), +ARM_PROP("feat_DBG", STR, "v8p4"), +ARM_PROP("feat_PMU", STR, "v3p4"), +ARM_PROP("feat_TS", STR, "flagm"), +ARM_PROP("feat_LRCPC", STR, "lrcpc2"), +ARM_PROP("feat_AT", STR, "on"), +ARM_PROP("hw_prop_IDS", STR, "0x18"), + +ARM_PROP_END, diff --git a/target/arm/arm-v9_0-a-v1.inc.h b/target/arm/arm-v9_0-a-v1.inc.h new file mode 100644 index 0000000000..5ebe728133 --- /dev/null +++ b/target/arm/arm-v9_0-a-v1.inc.h @@ -0,0 +1,28 @@ + +/* SPDX-License-Identifier: GPL-2.0-or-later */ +ARM_PROP("feat_BT", STR, "on"), +ARM_PROP("feat_CSV2", STR, "1.0"), +ARM_PROP("feat_CSV3", STR, "on"), +ARM_PROP("feat_DPB", STR, "dpb2"), +ARM_PROP("feat_E0PD", STR, "on"), +ARM_PROP("feat_SB", STR, "on"), +ARM_PROP("feat_SPECRES", STR, "on"), +ARM_PROP("feat_SSBS", STR, "ssbs2"), + +ARM_PROP("feat_DoubleLock", STR, "off"), +ARM_PROP("feat_FP", STR, "on"), +ARM_PROP("feat_AdvSIMD", STR, "on"), +ARM_PROP("feat_TS", STR, "flagm2"), +ARM_PROP("feat_FRINTTS", STR, "on"), +ARM_PROP("feat_RDM", STR, "on"), +ARM_PROP("feat_DP", STR, "on"), +ARM_PROP("feat_FHM", STR, "on"), +ARM_PROP("feat_FCMA", STR, "on"), +ARM_PROP("feat_JSCVT", STR, "on"), + +ARM_PROP("feat_SVE", STR, "on"), +ARM_PROP("feat_SEL2", STR, "on"), +ARM_PROP("feat_VH", STR, "on"), +ARM_PROP("feat_XNX", STR, "on"), + +ARM_PROP_END, diff --git a/target/arm/grace-v1.inc.h b/target/arm/grace-v1.inc.h new file mode 100644 index 0000000000..048ebb993d --- /dev/null +++ b/target/arm/grace-v1.inc.h @@ -0,0 +1,17 @@ + +/* SPDX-License-Identifier: GPL-2.0-or-later */ +ARM_PROP("cpu_revision", NUM, 0x0), + +ARM_PROP("feat_AES", STR, "pmull"), +ARM_PROP("feat_SHA1", STR, "on"), +ARM_PROP("feat_SHA2", STR, "sha512"), +ARM_PROP("feat_SHA3", STR, "on"), +ARM_PROP("feat_SM3", STR, "on"), +ARM_PROP("feat_SM4", STR, "on"), + +ARM_PROP("hw_prop_IDC", BOOL, true), +ARM_PROP("hw_prop_DIC", BOOL, true), + +ARM_PROP("cpu_revidr", NUM, 1), + +ARM_PROP_END, diff --git a/target/arm/graviton3-v1.inc.h b/target/arm/graviton3-v1.inc.h new file mode 100644 index 0000000000..9538c3e539 --- /dev/null +++ b/target/arm/graviton3-v1.inc.h @@ -0,0 +1,16 @@ + +/* SPDX-License-Identifier: GPL-2.0-or-later */ +ARM_PROP("feat_AES", STR, "pmull"), +ARM_PROP("feat_SHA1", STR, "on"), +ARM_PROP("feat_SHA2", STR, "sha512"), +ARM_PROP("feat_SHA3", STR, "on"), +ARM_PROP("feat_SM3", STR, "on"), +ARM_PROP("feat_SM4", STR, "on"), +ARM_PROP("feat_RNDR", STR, "on"), + +ARM_PROP("hw_prop_IDC", BOOL, true), +ARM_PROP("hw_prop_DIC", BOOL, true), + +ARM_PROP("cpu_revidr", NUM, 1), + +ARM_PROP_END, diff --git a/target/arm/kvm-base-v1.inc.h b/target/arm/kvm-base-v1.inc.h new file mode 100644 index 0000000000..e0bae90629 --- /dev/null +++ b/target/arm/kvm-base-v1.inc.h @@ -0,0 +1,13 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +ARM_PROP("el0_mode", STR, "aarch64"), +ARM_PROP("el1_mode", STR, "aarch64"), +ARM_PROP("el2_mode", STR, "off"), +ARM_PROP("el3_mode", STR, "off"), +ARM_PROP("feat_GIC", STR, "on"), +ARM_PROP("feat_AMU", STR, "off"), +ARM_PROP("feat_MPAM", STR, "0.0"), +ARM_PROP("feat_NV", STR, "0.0"), +ARM_PROP("feat_MTE_FRAC", STR, "async"), +ARM_PROP("hw_prop_CCIDX", STR, "32"), + +ARM_PROP_END, diff --git a/target/arm/meson.build b/target/arm/meson.build index 01b1e91a1c..79a22eec3f 100644 --- a/target/arm/meson.build +++ b/target/arm/meson.build @@ -22,7 +22,10 @@ arm_common_system_ss.add(files( 'arm-qmp-cmds.c', 'cpu-idregs.c', )) -arm_system_ss.add(when: 'CONFIG_KVM', if_true: files('hyp_gdbstub.c', 'kvm= .c')) +arm_system_ss.add(when: 'CONFIG_KVM', + if_true: files('arm-cpu-models.c', + 'hyp_gdbstub.c', + 'kvm.c')) arm_system_ss.add(when: 'CONFIG_HVF', if_true: files('hyp_gdbstub.c')) =20 arm_user_ss.add(files('cpu.c')) diff --git a/target/arm/neoverse-v1-v1.inc.h b/target/arm/neoverse-v1-v1.in= c.h new file mode 100644 index 0000000000..5ded208a5e --- /dev/null +++ b/target/arm/neoverse-v1-v1.inc.h @@ -0,0 +1,64 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +ARM_PROP("cpu_implementer", NUM, 0x41), +ARM_PROP("cpu_variant", NUM, 0x1), +ARM_PROP("cpu_architecture", NUM, 0xF), +ARM_PROP("cpu_partnum", NUM, 0xD40), +ARM_PROP("cpu_revision", NUM, 0x1), + +ARM_PROP("hw_prop_BRPS", NUM, 0x5), +ARM_PROP("hw_prop_WRPs", NUM, 0x3), +ARM_PROP("hw_prop_CTX_CMPs", NUM, 0x1), +ARM_PROP("feat_DoubleLock", STR, "off"), + +ARM_PROP("feat_RDM", STR, "on"), +ARM_PROP("feat_DP", STR, "on"), +ARM_PROP("feat_FHM", STR, "on"), + +ARM_PROP("feat_DPB", STR, "dpb2"), +ARM_PROP("feat_JSCVT", STR, "on"), +ARM_PROP("feat_FCMA", STR, "on"), +ARM_PROP("feat_BF16", STR, "on"), +ARM_PROP("feat_DGH", STR, "on"), +ARM_PROP("feat_I8MM", STR, "on"), + +ARM_PROP("feat_FP", STR, "fp16"), +ARM_PROP("feat_AdvSIMD", STR, "fp16"), +ARM_PROP("feat_RAS", STR, "1.1_base"), +ARM_PROP("feat_CSV2", STR, "1.0"), +ARM_PROP("feat_CSV3", STR, "on"), + +ARM_PROP("feat_SSBS", STR, "ssbs2"), + +ARM_PROP("hw_prop_PARANGE", STR, "48"), +ARM_PROP("hw_prop_ASIDBITS", STR, "16"), +ARM_PROP("feat_BIGEND", STR, "on"), +ARM_PROP("feat_SNSMEM", STR, "on"), +ARM_PROP("hw_prop_TGRAN4", STR, "on"), +ARM_PROP("hw_prop_TGRAN16", STR, "on"), +ARM_PROP("hw_prop_TGRAN64", STR, "on"), +ARM_PROP("hw_prop_TGRAN4_2", STR, "tgran4"), +ARM_PROP("hw_prop_TGRAN16_2", STR, "tgran16"), +ARM_PROP("hw_prop_TGRAN64_2", STR, "tgran64"), + +ARM_PROP("feat_HAFDBS", STR, "dbm"), +ARM_PROP("hw_prop_VMIDBITS", STR, "16"), +ARM_PROP("feat_VH", STR, "on"), +ARM_PROP("feat_HPDS", STR, "hpds2"), +ARM_PROP("feat_XNX", STR, "on"), +ARM_PROP("feat_SpecSEI", STR, "off"), + +ARM_PROP("hw_prop_FWB", STR, "on"), +ARM_PROP("feat_BBM", STR, "2"), +ARM_PROP("feat_EVT", STR, "ttlbxs"), + +ARM_PROP("feat_E2H0", STR, "on"), + +ARM_PROP("hw_prop_IMInline", NUM, 4), +ARM_PROP("hw_prop_L1IP", STR, "pipt"), +ARM_PROP("hw_prop_DMInline", NUM, 4), +ARM_PROP("hw_prop_ERG", NUM, 4), +ARM_PROP("hw_prop_CWG", NUM, 4), + +ARM_PROP("hw_prop_BS", NUM, 0x4), + +ARM_PROP_END, diff --git a/target/arm/neoverse-v2-v1.inc.h b/target/arm/neoverse-v2-v1.in= c.h new file mode 100644 index 0000000000..a32f80cd55 --- /dev/null +++ b/target/arm/neoverse-v2-v1.inc.h @@ -0,0 +1,64 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +ARM_PROP("cpu_implementer", NUM, 0x41), +ARM_PROP("cpu_variant", NUM, 0x0), +ARM_PROP("cpu_architecture", NUM, 0xF), +ARM_PROP("cpu_partnum", NUM, 0xD4F), +ARM_PROP("cpu_revision", NUM, 0x2), + +ARM_PROP("hw_prop_BRPS", NUM, 0x5), +ARM_PROP("hw_prop_WRPs", NUM, 0x3), +ARM_PROP("hw_prop_CTX_CMPs", NUM, 0x1), +ARM_PROP("feat_PMU", STR, "v3p5"), + +ARM_PROP("feat_TLB", STR, "range"), + +ARM_PROP("feat_BF16", STR, "on"), +ARM_PROP("feat_DGH", STR, "on"), +ARM_PROP("feat_I8MM", STR, "on"), + +ARM_PROP("feat_FP", STR, "fp16"), +ARM_PROP("feat_AdvSIMD", STR, "fp16"), +ARM_PROP("feat_RAS", STR, "1.1_base"), + +/* + * V2 silicon may report CSV2=3D2 (FEAT_CSV2_2) per TRM page 392, but + * KVM clamps the guest-visible limit to 1. + */ +ARM_PROP("feat_CSV2", STR, "1.0"), + + +ARM_PROP("hw_prop_PARANGE", STR, "48"), +ARM_PROP("hw_prop_ASIDBITS", STR, "16"), +ARM_PROP("feat_BIGEND", STR, "on"), +ARM_PROP("feat_SNSMEM", STR, "on"), +ARM_PROP("hw_prop_TGRAN16", STR, "on"), +ARM_PROP("hw_prop_TGRAN64", STR, "on"), +ARM_PROP("hw_prop_TGRAN4", STR, "on"), +ARM_PROP("hw_prop_TGRAN16_2", STR, "on"), +ARM_PROP("hw_prop_TGRAN64_2", STR, "on"), +ARM_PROP("hw_prop_TGRAN4_2", STR, "on"), + +ARM_PROP("feat_HAFDBS", STR, "dbm"), +ARM_PROP("hw_prop_VMIDBITS", STR, "16"), +ARM_PROP("feat_HPDS", STR, "hpds2"), +ARM_PROP("feat_PAN", STR, "pan3"), +ARM_PROP("feat_ECBHB", STR, "off"), +ARM_PROP("feat_SpecSEI", STR, "off"), + +ARM_PROP("hw_prop_FWB", STR, "on"), +ARM_PROP("hw_prop_ST", STR, "48_47"), +ARM_PROP("feat_TTL", STR, "on"), +ARM_PROP("feat_BBM", STR, "2"), +ARM_PROP("feat_EVT", STR, "ttlbxs"), +ARM_PROP("feat_E2H0", STR, "on"), + + +ARM_PROP("hw_prop_IMInline", NUM, 4), +ARM_PROP("hw_prop_L1IP", STR, "pipt"), +ARM_PROP("hw_prop_DMInline", NUM, 4), +ARM_PROP("hw_prop_ERG", NUM, 4), +ARM_PROP("hw_prop_CWG", NUM, 4), + +ARM_PROP("hw_prop_BS", NUM, 0x4), + +ARM_PROP_END, --=20 2.52.0 From nobody Sat May 30 18:35:08 2026 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; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass(p=none dis=none) header.from=nutanix.com ARC-Seal: i=2; a=rsa-sha256; t=1778690151; cv=pass; d=zohomail.com; s=zohoarc; b=dCSFKt84oNizx3lTy2U2mTHH//DPd+xXg41nobuaruSRn4o90UyS0G6oILvXx2DXsZgkhM9MX0f6sEwTLED1aMhaTcnNYZuZiEE0UljuxFzVlX7GqM3x3s+debUpXlcMc4kZLYKGJ3bbGhjsB9LIVsMrwwXMB77m5DyNygqMunU= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778690151; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=eSWNtzO2D9cGJylkx4I3O/eG73/2+KCOKxV/h7JoRfo=; b=IHEZWioWJwYSDCFI7/Ip+cbaTv0ynPigzB47BGokYRKauYrv6YanNEsy5eaOs5bLtNvbnK6O6cVLQRwhd36CrtO1scmudsk7mumlFgG8E1NPAF5u+fRL6ByJQ11+XrCX9LxdwojqQbzIKwucMS0o9b+bKPPQ+QUw5lAO1mqE7/8= ARC-Authentication-Results: i=2; 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; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 177869015118610.193624487127522; Wed, 13 May 2026 09:35:51 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wNCY5-0003Oj-LI; Wed, 13 May 2026 12:35:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wNCXl-0003L6-HV; Wed, 13 May 2026 12:34:46 -0400 Received: from mx0b-002c1b01.pphosted.com ([148.163.155.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wNCXj-0000kL-Ba; Wed, 13 May 2026 12:34:45 -0400 Received: from pps.filterd (m0127842.ppops.net [127.0.0.1]) by mx0b-002c1b01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64DGKgAr2442897; Wed, 13 May 2026 09:34:32 -0700 Received: from sa9pr02cu001.outbound.protection.outlook.com (mail-southcentralusazon11023118.outbound.protection.outlook.com [40.93.196.118]) by mx0b-002c1b01.pphosted.com (PPS) with ESMTPS id 4e3nv6x90v-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Wed, 13 May 2026 09:34:31 -0700 (PDT) Received: from PH7PR02MB10160.namprd02.prod.outlook.com (2603:10b6:510:2e7::19) by SJ0PR02MB8813.namprd02.prod.outlook.com (2603:10b6:a03:3d6::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Wed, 13 May 2026 16:34:30 +0000 Received: from PH7PR02MB10160.namprd02.prod.outlook.com ([fe80::4ed7:5c74:48e0:ff23]) by PH7PR02MB10160.namprd02.prod.outlook.com ([fe80::4ed7:5c74:48e0:ff23%7]) with mapi id 15.20.9891.021; Wed, 13 May 2026 16:34:30 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= proofpoint20171006; bh=eSWNtzO2D9cGJylkx4I3O/eG73/2+KCOKxV/h7JoR fo=; b=Ea0M0NdiGUH4G2a/mXZ2nggYhpUfZPwVZ0Kl6JRZ+lF+HC3uWnXRZ7X6h 5Ud1vVCf/tLroAdiR/INnxEwdMZAoASvA6S+NOGkcES7i01XiqDrOIpUwAekuML5 Ba6tpuE7bKcRk344ZKFNhvQ57k1nTRTeR6LvtD6G2rrVfRp7nfKyAAoTviJeAaS0 yuVoPliosZIIA0GXvdCpv37bq0p+RwK+pfr+bgnvH3JKpNMU0Z3X4zpDU3Ab9h/U tm08K2QoWgetB+jw2AtCozlEjsPyE8tKGhZ1wOFKw/5jCYf0o+/sGvDLYtnS2YHZ FIPPgu9xkHr2qncqxjQlgvCOOw44w== ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=KY+bC0/KSH5EDvlF3U3d2IDJlzt0cb+Lgpri5rb7p3DxGRKgrRiNu4d5WE6OxCPLiLBQ/CvI9rcf8Ab61kxVjNp87Lour5wAXzamSKAzpfbRhIfGMFMcIQ3j+f7dfLh5BximKoTmhJg1sn5YxiA/vPuTjCxQUquphW1dY3soxkP5gFfOmccYJKQBhCHDeQQvoT7IT6BJFUj6OJU9OtKt4+NdLMnJQJCbKPpkdRp3Yn7DIzTxQZfYh6HnOYiX63cj1d87WmjMT0VBl5CDvq1neiNlT19kJidWqUJ4BUJIWYr3TtVUlgXVR5eqmQmAF+K9JX8rQkOEkCUnC3sogxRptw== 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=eSWNtzO2D9cGJylkx4I3O/eG73/2+KCOKxV/h7JoRfo=; b=SQKkjaTUJaCuD6T9yzmGyNoFldcOqnNNazR4bAtXkdZeKEF0JYeLQkhK5ai/EDhha6e26HCxqzolbtWRhAqlcZWvLkr7QjtzLwQfEyIPy6C4xTGS+o4qk4C8KvQ+GhSvauzGvVDJuv3JgiHrAXBkALgyB0+QtL6rPWtNDI108N/x/QMth91qTI/hI9G4FVQjcjWcAS7S+U5YzbJTSDST7e9H2utZhkeYW2STmyMXM9eEHHbRmxk6BFchpD5YY08ZEgY2tk5tGywrIYE4rbmoKT8EJ9IpacKjm6boskB26dIkiTO67V1FgOUDXAKV04sOMp2wnQOC6BJTk0QtmAzaFA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=eSWNtzO2D9cGJylkx4I3O/eG73/2+KCOKxV/h7JoRfo=; b=XdYqZlzTSEWDnUIugwCaOmmZJ2+jpYbgCxB8JHjQuNbvAW00dCMZHaA0eqpKOmjQwgzjfGTNapV01tAkZ2Nu12sjNmZIfIZUVQe/DfOlF+0q0sjxh43FaSNm1wEN69hxkVBK8iDn18WztkRmaZcnCdtZkJY3a2B9+hbtmVasrk/DZaMkrOySd5sQVqX1wndg26i29lpYGJnNkHMJjk5AAp0LPMSqqI+J/XNhTx4SL95dhlnVT1JSzjkZS7zWwHCDjxMkYuvC2zzUgcSPnjXTy7jx6SU4GzOETU6j6RX9ojYkyJbLjwBYA2GIf2jWukFw4kZjQEqiamHoobANdOLF7w== From: Shaju Abraham To: eric.auger@redhat.com, qemu-devel@nongnu.org, qemu-arm@nongnu.org, kvmarm@lists.linux.dev, peter.maydell@linaro.org, richard.henderson@linaro.org, cohuck@redhat.com, sebott@redhat.com, skolothumtho@nvidia.com, philmd@linaro.org Cc: maz@kernel.org, oliver.upton@linux.dev, pbonzini@redhat.com, prerna.saxena@nutanix.com, jon@nutanix.com, jond@nutanix.com, Shaju Abraham , Khushit Shah Subject: [RFC PATCH v1 12/13] target/arm: named_cpu_model: writeback modified ID registers to KVM Date: Wed, 13 May 2026 16:33:55 +0000 Message-ID: <20260513163356.3033159-13-shaju.abraham@nutanix.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260513163356.3033159-1-shaju.abraham@nutanix.com> References: <20260513163356.3033159-1-shaju.abraham@nutanix.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: CY5PR10CA0003.namprd10.prod.outlook.com (2603:10b6:930:1c::30) To PH7PR02MB10160.namprd02.prod.outlook.com (2603:10b6:510:2e7::19) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH7PR02MB10160:EE_|SJ0PR02MB8813:EE_ X-MS-Office365-Filtering-Correlation-Id: 6e6f80a3-60f4-4718-5b85-08deb10d8177 x-proofpoint-crosstenant: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|7416014|376014|366016|1800799024|921020|18002099003|22082099003|56012099003|3023799003; X-Microsoft-Antispam-Message-Info: jrongxhVcKjd96sOirH+zFeh+tiJyIr8I/iHM1XB3BzM8PmeltEqn6i1MzqgwL+pyIbBuf1ljcm4G5N4+xbxHUp4+i0j8BO5UE1+k1fgHL8Eg0lPm9cJ3JcsD17GbQ31ksCHf1pzJydySsOffm/BRqeoaK5qlyMxqUtiHFZ1PPsH0tBagUJx7VirDJTgK3/IaX2ES5cR3Ypv3rHHZxCwU9z/V0edRTHn4K5DjgXEzOmbwYrT+8V3Ln/NLPwvu6XsXl+fJKlCvX4ZjqUdUelBn/eqwiGwAGmSjlm6c9dJkJtUl2+M0X74ZARdhM7zwAZcPCIdBQ2BxzNcgYJmRdLzYJDUObre5Hia1NGx9yInEJqwAiWSGLPypSUFZjqLZiW8mld1pMzzCbBG7OkaGD120l2vE0HvOlNGdxNZvXkoF80AThNxjjSWlGh3zI7kRDTqO1QbLLPUZMU0+VgNOA1Txf1ku4NiQ3mL1O5Veo4PHlhueUvJPjRlrVGrq1zsqC3TqZ9WW8K3Dj+V3vgrIqzGnF2EuyIphOnnw9Wrlbf2x4IsIGQrLW+FcOXQZu7WIkmyh0LW6fZJsklqul/gQcCOnSTCFLrY0eHzoMgGGndCTeXPLmmWOXJoV0JVMekRb1/Yi0LkDwH0NECtJgi9/qUPrg1l1nlHWlDxqNz7FUtTn4zGA1k2cv8CSV7MBYvHA9IlhVyhBIEReLNKJUCsfp98y1BJ5+k+zX9PxOCH9BaoP0o= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH7PR02MB10160.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(7416014)(376014)(366016)(1800799024)(921020)(18002099003)(22082099003)(56012099003)(3023799003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?0cxTidyhwtXqliShdIrk2cY5AscdFXI2FhQlHmev1X1vOj1vBmbGUFjuYN8B?= =?us-ascii?Q?RnN5Jr8tTNoSgQbrn1/rUjIGS883/EOVgrffrRDTEjukdefUfTUJ6B9vwDPf?= =?us-ascii?Q?CRhlZGT5uyXa5yQFIGE/F0Mn0EcSBLAkOo0b3262fj3GWm56pkPdwEC6XjRT?= =?us-ascii?Q?3sGOVRYQB1gfsnPmVglyXlZxTCaHhF7RVG/f9/+QdycAmPmRJLRwYraPjUgL?= =?us-ascii?Q?xe+Qq/+6W5MfhFeaWUvWSEfgtph0d/Ia4bqxKUXUbTFIksg8mM5xFO0Go5W9?= =?us-ascii?Q?n2OIL4/+CPDWw84TdR3R+crAeQjuZ86b+Ze6wnsWTk4wPLHjepGyZVw24T+e?= =?us-ascii?Q?2zFNCFyaqCNvpwS3Q0sIPg2VgkT5iqr0O2/cIvltiDWoQXWfzvKTiTqaiNsF?= =?us-ascii?Q?UHRfAEwoCuLR2cw0fG19LC0Sz3pGfwc9bQ77lycOqLg04bRmkG0pJfnaKG6T?= =?us-ascii?Q?lHN1V71FUdgdZF6tkZf1RmznCIMEr3Q7e0GiiPMY+KEs7uxwkROrskhJwlit?= =?us-ascii?Q?hD8983+5egU3dsG2adyYbcmQ68KPoNUYEe7w91pZa3SZUD+nASbC/tTh4wed?= =?us-ascii?Q?uX9mnkAFMopEZ7Rpp+JPknxSiM6LB9ptSe2nGK4STWj9WzM7g6ac+wSCpjZE?= =?us-ascii?Q?yYHKdC8cFLlmN9QuTiZGBLHHBvtARa7rAM7MLIyDK6E/KWoluY92pRaMi5Q7?= =?us-ascii?Q?4G63n0tQvk1pJNU1fb2Y1cdeKQsezpzlOA954RnLTZ+8vhfER4OBIADsPS+V?= =?us-ascii?Q?arzjazBn6pTvmRX7P92eqA2TkpThzlESqwhhiwAvh+eywXqkGCaUxZ4iCxbs?= =?us-ascii?Q?GLWameVq0A5Fi/AcujKbZo1gtSC63NBSaCiZTe+/Sax0aZlLSKWvjNiY+Eah?= =?us-ascii?Q?Wo9eFY28Gh4vmjftaBNgMXwOWQRTWf8xJwz6FM4DrV5xHteyFikLsN/OvHYn?= =?us-ascii?Q?TTcnGX+epqEePWO92t+SJ2mTP8jnLARnhhYWEp7jx0OCB4RSfjqEmm5b8xxR?= =?us-ascii?Q?QHMW5ubhtRumjdzEWJ6dmbppDF7cx/Z+yAsJGHztrEXm/rVqRczFwpc/1RLT?= =?us-ascii?Q?b+uKtneHt+s+ylYawjLL2RejrgKmuLeBRkSZdqRGGYPxf6xA+4je2cIaYv4X?= =?us-ascii?Q?TgUGcvJI2RLEfLcVmnNzAddOJe9//BsW+QH3LyPtSNw1tIVgRPkkY2WFIEFk?= =?us-ascii?Q?nRpK/ge7qiUqWojlhGdjY1gXlF8sUmXCVt/LguCeR9SskWan4pQ5wchOKznS?= =?us-ascii?Q?HL2VuFiIZu+VsvPVO6xv0kf4ofkLRWsL7HjvRp7uHtD6/AtRlbKX+E+QDEGb?= =?us-ascii?Q?E7psFBzlX3cX5dEkg25H0mOZm8/Gmzb/Ghl82keMou9r28b2LcbOBasJT6Tl?= =?us-ascii?Q?+/+5TyMUViLuOM/3cZqR8MtAlip0Zr1SKFK6PzAYlnYNxSvJhjtKvwZo5PAF?= =?us-ascii?Q?FvMbDs4m58NzKvjGT0FL2G2NLed4245Z+i8N6AJ1KUYgXBYFVBv9jFy8+lSt?= =?us-ascii?Q?ag2kT21etBzdYTfIXIja46dQ/9vfNkqEf7VkcaR3lBUo/6ywNQJ1oKX5C2mN?= =?us-ascii?Q?wllCD2X4xVjeOIuzcJcxJOiIJnJOIP2tCDPj6ymQviU2WINt1EORY7u0+1ey?= =?us-ascii?Q?NrAUBRoHGCMf2ntWMn61RNGyb0PwBnXGROLbO/sfo75GR92hdv6WwRWG9Gis?= =?us-ascii?Q?jnz3FrLe2xKao/UEEZKPvcCIIpf1AFlK2daglaTlpErsSEbxi9Y1m4z9BeF2?= =?us-ascii?Q?5I8D8C0MBgyLlESj1vLJDnm3hhFbGNI=3D?= X-Exchange-RoutingPolicyChecked: pOnHTBAnFN/NIgj41oMAsuEIdDROtINsZhq5EuujmlsGf/Ir1gMgtvKbQ84HPMvVEjER91stLUDrcPYmUl0EoojiD+ztsP/j6hOwBr375xYCc05TwWFXkDfD4HQWARXp9PVlJ/KJTCqwSRYv9em7UaxhpTEVRybtUC+eXFBl8KpPhYwIZ51n68Ps7em4AcL/byhj0TLd99AWmNkextA41tAtH7duxS0XK1RehNR+mlB3swBSH09a+totpjlPKZZK2CrxQYAUeT4HF3l27VR/b7buxb7as/1yFP7m3anFeMkUS/VFCMu5VUXNkb4xWFxYAIiZohU8We9hy42vPaWWuw== X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6e6f80a3-60f4-4718-5b85-08deb10d8177 X-MS-Exchange-CrossTenant-AuthSource: PH7PR02MB10160.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 16:34:29.9664 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: t+tvee2HEnhfQfPfKQPMBCQQcpt+8g4CMPrGX84Kv4Vt9UT0IKnXMiG8hxrZKaJ/5XMfR9Y8WkjxB18B7lizcfIx4L0OCNdtP0SbLsozGGk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR02MB8813 X-Proofpoint-ORIG-GUID: yR7C-Ljm3IiRAysimQ9kY0Vcr8amwbE6 X-Authority-Analysis: v=2.4 cv=P7QKQCAu c=1 sm=1 tr=0 ts=6a04a817 cx=c_pps a=emGy3M2YSyErp0/4l4UmgA==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=NGcC8JguVDcA:10 a=0kUYKlekyDsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VofLwUrZ8Iiv6rRUPXIb:22 a=VUi8bpU7OL1Oj2-RSIOF:22 a=64Cc0HZtAAAA:8 a=0aVVV3pfCXYwIWacCPYA:9 X-Proofpoint-GUID: yR7C-Ljm3IiRAysimQ9kY0Vcr8amwbE6 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDE2OCBTYWx0ZWRfX4a+c+EvUwUuE gDQTE2Gu3zsS65qRnTvUKyz/HlkT6pHGCiwCnmlhP+/YIr8s8uA3dsjD6zfz9kmL6EUcsC0dG0s LERW8TMFAlUADBuMjZ/ZWqCcrMppQhtdlSIga5BZBBZKVjkmnlKFtzUyncE+NhGiPRZh7kwfRss wmr+lCVjkIXMAxtTpxT1uxbtlj99D+WGXsJ4A5Rm+pBAY8Ea0An2HOPBB5WuLwJT20JpXwivCKB MbDHel+iPtziUkw10so/lu2xB3wiwj14g/DO3CeHiynCJtLtbqdeAQzzWONkJVoUjvWyyb8GPeV PrJK4swrJ2sdU4T3xsGAFmPNYRLpX+zMMijellq3+rFk/upLnbBgfJGh6LqpcjdDOrq+XHWEMpU wDnacrVo0g0IETT1Hf6vv3E60RN6JUaATcapnhQ+g9SOmhgKCeYEIdayxr7YO6s/uooMPi0YTe5 lzNfTXTMPnVS4t/eRhw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-13_01,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Reason: safe 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=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.155.12; envelope-from=shaju.abraham@nutanix.com; helo=mx0b-002c1b01.pphosted.com X-Spam_score_int: -31 X-Spam_score: -3.2 X-Spam_bar: --- X-Spam_report: (-3.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.445, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, 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: qemu development 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 @nutanix.com) X-ZM-MESSAGEID: 1778690151720158500 Content-Type: text/plain; charset="utf-8" Writeback modified cpu->isar.idregs[] to KVM after the model is realized. Warn if modified bits are not writable by KVM. To facilitate this, add writable_mask to ArmIdReg struct and populate it from KVM_ARM_GET_REG_WRITABLE_MASKS during scratch VM creation. Co-authored-by: Khushit Shah Signed-off-by: Shaju Abraham --- target/arm/cpu-idregs.c | 1 + target/arm/cpu-idregs.h | 1 + target/arm/kvm.c | 160 +++++++++++++++++++++++++++++++++++++++- target/arm/trace-events | 1 + 4 files changed, 162 insertions(+), 1 deletion(-) diff --git a/target/arm/cpu-idregs.c b/target/arm/cpu-idregs.c index 5ffdeb5f21..e8988b7392 100644 --- a/target/arm/cpu-idregs.c +++ b/target/arm/cpu-idregs.c @@ -68,6 +68,7 @@ .name =3D #reg, \ .fields =3D reg##_fields, \ .fields_count =3D ARRAY_SIZE(reg##_fields), \ + .writable_mask =3D 0, \ }, =20 ArmIdReg arm_idregs[NUM_ID_IDX] =3D { diff --git a/target/arm/cpu-idregs.h b/target/arm/cpu-idregs.h index 0127bc0a95..eb0d8a1280 100644 --- a/target/arm/cpu-idregs.h +++ b/target/arm/cpu-idregs.h @@ -37,6 +37,7 @@ typedef struct ArmIdReg { const char *name; struct ArmIdRegField *fields; uint32_t fields_count; + uint64_t writable_mask; } ArmIdReg; =20 /* Map short register names to canonical _EL1/_EL0 IDX values */ diff --git a/target/arm/kvm.c b/target/arm/kvm.c index 7d194ea112..dc64cfbeb6 100644 --- a/target/arm/kvm.c +++ b/target/arm/kvm.c @@ -28,6 +28,7 @@ #include "kvm_arm.h" #include "cpu.h" #include "cpu-sysregs.h" +#include "cpu-idregs.h" #include "trace.h" #include "internals.h" #include "hw/pci/pci.h" @@ -66,6 +67,12 @@ typedef struct ARMHostCPUFeatures { =20 static ARMHostCPUFeatures arm_host_cpu_features; =20 +#define DEF(NAME, OP0, OP1, CRN, CRM, OP2) [NAME##_IDX] =3D #NAME, +const char * const sysreg_names[NUM_ID_IDX] =3D { +#include "cpu-sysregs.h.inc" +}; +#undef DEF + /** * kvm_arm_vcpu_init: * @cpu: ARMCPU @@ -244,6 +251,63 @@ static int get_host_cpu_reg(int fd, ARMHostCPUFeatures= *ahcf, return ret; } =20 +static int get_host_cpu_idregs_all(int fd, ARMHostCPUFeatures *ahcf) +{ + int err =3D 0, i; + for (i =3D 0; i < NUM_ID_IDX; i++) { + /* Skip registers whose plumbing is not yet added. */ + if (!arm_idregs[i].name) { + continue; + } + + err |=3D get_host_cpu_reg(fd, ahcf, i); + } + return err; +} + +static int idregs_idx_to_kvm_idx(ARMIDRegisterIdx idx) +{ + ARMSysRegs sysreg =3D id_register_sysreg[idx]; + + return KVM_ARM_FEATURE_ID_RANGE_IDX( + (sysreg >> CP_REG_ARM64_SYSREG_OP0_SHIFT) & 0x3, + (sysreg >> CP_REG_ARM64_SYSREG_OP1_SHIFT) & 0x7, + (sysreg >> CP_REG_ARM64_SYSREG_CRN_SHIFT) & 0xf, + (sysreg >> CP_REG_ARM64_SYSREG_CRM_SHIFT) & 0xf, + (sysreg >> CP_REG_ARM64_SYSREG_OP2_SHIFT) & 0x7); +} + +static int get_writable_id_regs(int vmfd) +{ + int cap, ret, i; + uint64_t regs[KVM_ARM_FEATURE_ID_RANGE_SIZE] =3D { 0 }; + struct reg_mask_range range =3D { + .addr =3D (uint64_t)(uintptr_t)regs, + .range =3D KVM_ARM_FEATURE_ID_RANGE, + }; + + cap =3D ioctl(vmfd, KVM_CHECK_EXTENSION, + KVM_CAP_ARM_SUPPORTED_REG_MASK_RANGES); + if (cap <=3D 0 || !(cap & (1 << KVM_ARM_FEATURE_ID_RANGE))) { + return -ENOSYS; + } + + ret =3D ioctl(vmfd, KVM_ARM_GET_REG_WRITABLE_MASKS, &range); + if (ret) { + return -errno; + } + + for (i =3D 0; i < NUM_ID_IDX; i++) { + int kidx =3D idregs_idx_to_kvm_idx(i); + + if (kidx < 0 || kidx >=3D KVM_ARM_FEATURE_ID_RANGE_SIZE) { + continue; + } + arm_idregs[i].writable_mask =3D regs[kidx]; + } + return 0; +} + static uint32_t kvm_arm_sve_get_vls(int fd) { uint64_t vls[KVM_ARM64_SVE_VLS_WORDS]; @@ -455,6 +519,22 @@ static void kvm_arm_get_host_cpu_features(ARMHostCPUFe= atures *ahcf) arm_host_cpu_features.sve_vq_supported =3D kvm_arm_sve_get_vls= (fd); } } + /* + * Try to read all the ID registers. KVM does not yet support it + * for all registers, hence ignore the errors. + */ + get_host_cpu_idregs_all(fd, ahcf); + + { + int wret =3D get_writable_id_regs(fdarray[1]); + if (wret) { + warn_report("KVM_ARM_GET_REG_WRITABLE_MASKS" + "%s: %s", + wret =3D=3D -ENOSYS ? " unsupported" + : " failed", + strerror(-wret)); + } + } =20 kvm_arm_destroy_scratch_host_vcpu(fdarray); =20 @@ -1080,6 +1160,71 @@ void kvm_arm_cpu_pre_save(ARMCPU *cpu) } } =20 +/* same as kvm_arm_get_cpreg_ptr() but can return NULL. */ +static uint64_t *kvm_arm_find_cpreg_ptr(ARMCPU *cpu, uint64_t regidx) +{ + uint64_t *res; + + res =3D bsearch(®idx, cpu->cpreg_indexes, cpu->cpreg_array_len, + sizeof(uint64_t), compare_u64); + if (!res) { + return NULL; + } + return &cpu->cpreg_values[res - cpu->cpreg_indexes]; +} + +static void kvm_arm_writeback_idregs(ARMCPU *cpu) +{ + for (int i =3D 0; i < NUM_ID_IDX; i++) { + uint64_t kvm_reg =3D idregs_sysreg_to_kvm_reg(id_register_sysreg[i= ]); + uint64_t *cpreg =3D kvm_arm_find_cpreg_ptr(cpu, kvm_reg); + const char *name =3D arm_idregs[i].name; + uint64_t writable_mask, previous, desired, diff; + + if (!cpreg) { + warn_report("KVM does not expose ID register slot %d " + "(kvm_reg=3D0x%" PRIx64 "), %s; skipping writeback= ", + i, kvm_reg, sysreg_names[i]); + continue; + } + + if (!name) { + /* No field table, don't push back. */ + warn_report("ID register slot %d " + "(kvm_reg=3D0x%" PRIx64 "), %s: " + "no field table in cpu-idregs.inc.h", + i, kvm_reg, sysreg_names[i]); + continue; + } + + writable_mask =3D arm_idregs[i].writable_mask; + previous =3D *cpreg; + desired =3D cpu->isar.idregs[i]; + diff =3D previous ^ desired; + + if (!diff) { + continue; + } + + if (diff & ~writable_mask) { + warn_report("%s: non-writable bits differ: " + "kvm=3D0x%016" PRIx64 + " desired=3D0x%016" PRIx64 + " diff=3D0x%016" PRIx64 + " writable=3D0x%016" PRIx64, + name, previous, desired, + diff & ~writable_mask, + writable_mask); + } + + if (diff & writable_mask) { + *cpreg =3D (previous & ~writable_mask) | + (desired & writable_mask); + trace_kvm_arm_writeback_idreg(name, previous, *cpreg); + } + } +} + bool kvm_arm_cpu_post_load(ARMCPU *cpu) { if (!write_list_to_kvmstate(cpu, KVM_PUT_FULL_STATE)) { @@ -1116,6 +1261,10 @@ void kvm_arm_reset_vcpu(ARMCPU *cpu) fprintf(stderr, "write_kvmstate_to_list failed\n"); abort(); } + + /* Re-apply named-model ID register overrides after KVM_ARM_VCPU_INIT.= */ + kvm_arm_writeback_idregs(cpu); + /* * Sync the reset values also into the CPUState. This is necessary * because the next thing we do will be a kvm_arch_put_registers() @@ -2051,7 +2200,16 @@ int kvm_arch_init_vcpu(CPUState *cs) } cpu->mp_affinity =3D mpidr & ARM64_AFFINITY_MASK; =20 - return kvm_arm_init_cpreg_list(cpu); + ret =3D kvm_arm_init_cpreg_list(cpu); + if (ret) { + return ret; + } + + /* Apply named-model ID register overrides on top of KVM's defaults. */ + kvm_arm_writeback_idregs(cpu); + write_list_to_kvmstate(cpu, KVM_PUT_FULL_STATE); + + return 0; } =20 int kvm_arch_destroy_vcpu(CPUState *cs) diff --git a/target/arm/trace-events b/target/arm/trace-events index 8502fb3265..975236b24f 100644 --- a/target/arm/trace-events +++ b/target/arm/trace-events @@ -13,6 +13,7 @@ arm_gt_update_irq(int timer, int irqstate) "gt_update_irq= : timer %d irqstate %d" =20 # kvm.c kvm_arm_fixup_msi_route(uint64_t iova, uint64_t gpa) "MSI iova =3D 0x%"PRI= x64" is translated into 0x%"PRIx64 +kvm_arm_writeback_idreg(const char *name, uint64_t previous, uint64_t desi= red) "%s overwrite 0x%"PRIx64" with 0x%"PRIx64 =20 # cpu.c arm_cpu_reset(uint64_t mp_aff) "cpu %" PRIu64 --=20 2.52.0 From nobody Sat May 30 18:35:08 2026 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; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass(p=none dis=none) header.from=nutanix.com ARC-Seal: i=2; a=rsa-sha256; t=1778690168; cv=pass; d=zohomail.com; s=zohoarc; b=Mj0S9vlXZoBRKMdFvyTWSGy/oku7XvAFeoQc0NB3okPWBPdkwpcSwEtkXx1lM8a+e56221DQvOuGNuv840WKUevP1vd6KDEfkQTixxSUPEWGsmFf8TZyHrgzYaBZ7XuIFllfxklPtl2Bc7lDr4QGeNNGLAIx1YPEqH70PP3xiz0= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778690168; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=A4OHX5bXpzeWyRKysDAO4klw4Wzyj/cMbBTWHsbXY88=; b=WSPxR5Lcin0IWST7DPXwDSl+D7djmvNdmku2ChIEGvodvmQCMd/sD7EpGf+IseZ5JG/LRaiKplAJPiJOHOq51fLnrzw7lz4hI+Hw8BvVaWc8VUjQN4n445Qv+hoyGyth3BINcx3R/Phji7PjEnzWDXKtLlUd5DQUYq2RWB6ZzG8= ARC-Authentication-Results: i=2; 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; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1778690168187788.1529613718948; Wed, 13 May 2026 09:36:08 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wNCYi-00040Q-3S; Wed, 13 May 2026 12:35:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wNCXl-0003L7-MF; Wed, 13 May 2026 12:34:46 -0400 Received: from mx0b-002c1b01.pphosted.com ([148.163.155.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wNCXk-0000ku-32; Wed, 13 May 2026 12:34:45 -0400 Received: from pps.filterd (m0127841.ppops.net [127.0.0.1]) by mx0b-002c1b01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64DGKYmV2540280; Wed, 13 May 2026 09:34:35 -0700 Received: from sn4pr0501cu005.outbound.protection.outlook.com (mail-southcentralusazon11021101.outbound.protection.outlook.com [40.93.194.101]) by mx0b-002c1b01.pphosted.com (PPS) with ESMTPS id 4e3nv8p7bg-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Wed, 13 May 2026 09:34:34 -0700 (PDT) Received: from PH7PR02MB10160.namprd02.prod.outlook.com (2603:10b6:510:2e7::19) by SJ0PR02MB8813.namprd02.prod.outlook.com (2603:10b6:a03:3d6::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Wed, 13 May 2026 16:34:31 +0000 Received: from PH7PR02MB10160.namprd02.prod.outlook.com ([fe80::4ed7:5c74:48e0:ff23]) by PH7PR02MB10160.namprd02.prod.outlook.com ([fe80::4ed7:5c74:48e0:ff23%7]) with mapi id 15.20.9891.021; Wed, 13 May 2026 16:34:31 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= proofpoint20171006; bh=A4OHX5bXpzeWyRKysDAO4klw4Wzyj/cMbBTWHsbXY 88=; b=ucDCNkAEkqHCLeAx7tFkEh1K5VTJF4lYWfoucRlK+uXMpps2+dG+KZBNk hv6P/M9X9JcKp0CdhN183R+ZYUlgwQgRlS+LmxNFiUfiES4DpI8LcZP60DcFDZ5j TQ3T9EJET5/gRXkteLXO86+h4Tmm54EjXVNBUlfxSK4h0wfzn6ux0hftRGZq4fWQ bfkYZvV5pe+s8DDS1LFOBTE3GYMXuCmAW54GCj957JZhRNu2+7Dnd1qDf9ltMgAb dDI7O40/XuLhl7UniUSIBhy3T++JBYaRzSj39fO6Yo/YPORPc/3XLk/WwMI2ofbp 4JDpARFIa6gg1yR3pmLdzb5aVL6ew== ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=t+nb3zicCVDZ25xoeI6r6yvo7QVODyu4JU5n4pWoggZt0ohKgASJV+84AvoWZJE68gtseT0lF/scEaUqCJ4jfwiO+5Z34S9pIqEm3CFzifyybgoqzgXVYScfI8AmUVE0crRMJ3i/aG0fHkjawp/DBW1TweCfOpJiRX+3iMQP36tXBD4/fX9hjq8jSOiJ7Y4R1pcTwjW81sG1ecG9w7B90C3fZwVnZnk/5desYWJFrshHAc5gupUKs7JIsJz3E0ebQvwbpd5F9k/V8yp8dAnP+PMfcPRy2e/V22E02jbFnwkUiEGd9NJKO2YA4IjU12aiq9+iGMoQ/7L4Gft2pPSVZg== 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=A4OHX5bXpzeWyRKysDAO4klw4Wzyj/cMbBTWHsbXY88=; b=oal4DPw7jnN3sUY9mLUAvKJC1kaMWVik50DdELW9eBJsZL0QqECNdpwRTj/SYQ3eZUVGDHhP14GdRl5USLXJxoXbePiwpiuCFsd1q1/Lh72hmgmzTRN6kCdRmTDUBCymGIoJZhl0OOC5/RR7VGCZ5gW6pKXQ2Gk2VMl24cmWdtNFOuEtdfncDHwxHGFUgcNjVAVvbmARi3CaUt1Djwhhm3JJWWVldPEBgDSkX3cE2iwQqVpIcTIFnCnd1Ba9dRajTeXI+OJvWwA1lh5L10HahDcu9mHXS7+n/YMa0W5tKXc76twq7XO/MeA47dDXVBDib8DEx071qgcdaUvozu9W1A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=A4OHX5bXpzeWyRKysDAO4klw4Wzyj/cMbBTWHsbXY88=; b=mQNBZfQr+lZaUfns2YEzrUG6oC12EtTHwVpteyMtl0EsqgqoorY1H0NZ/B1sDsdK76nosetD7WyRe62cVzKwgUB2TWBzhnjAC5tImgWu9+H+1L28FDm18U45ePIpmzh7DHJLbKS1bYfvv6jPXSiERsxyjzB6XhVUT0UzugWbAvE4/qxRkiJmaeQgszKEefDKvTOpudoNOegpymKc3Nj+PKbSdT4ZCwBmMisWmekCowDRwGVlk61L4KFFB0sb5cERERirSElisQHsLjfvyrWwMFUrdRNnTN+gluHdbbxsz0QHZpgUkMc317ygWfJ2jnBjdZaS1W8+8fKhGzhEOCd0Ag== From: Shaju Abraham To: eric.auger@redhat.com, qemu-devel@nongnu.org, qemu-arm@nongnu.org, kvmarm@lists.linux.dev, peter.maydell@linaro.org, richard.henderson@linaro.org, cohuck@redhat.com, sebott@redhat.com, skolothumtho@nvidia.com, philmd@linaro.org Cc: maz@kernel.org, oliver.upton@linux.dev, pbonzini@redhat.com, prerna.saxena@nutanix.com, jon@nutanix.com, jond@nutanix.com, Khushit Shah Subject: [RFC PATCH v1 13/13] target/arm/kvm: enable writable implementation ID registers Date: Wed, 13 May 2026 16:33:56 +0000 Message-ID: <20260513163356.3033159-14-shaju.abraham@nutanix.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260513163356.3033159-1-shaju.abraham@nutanix.com> References: <20260513163356.3033159-1-shaju.abraham@nutanix.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: CY5PR10CA0003.namprd10.prod.outlook.com (2603:10b6:930:1c::30) To PH7PR02MB10160.namprd02.prod.outlook.com (2603:10b6:510:2e7::19) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH7PR02MB10160:EE_|SJ0PR02MB8813:EE_ X-MS-Office365-Filtering-Correlation-Id: 76b5cb64-6a3f-4756-2b13-08deb10d8280 x-proofpoint-crosstenant: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|7416014|376014|366016|1800799024|921020|18002099003|22082099003|56012099003; X-Microsoft-Antispam-Message-Info: wZ64Vd6Blqb2/DTZAtCdjLLteS1V4tdwackDaGyPANotZcPQNCv90wDpDsZRZMpasmmEEokVZKnx/1UGhA9j+jHK/KMLpiXIjXsP2uk11vc+Q9nbv3I3jOMPNElEimL8Neo1AOFcZ5qrchDcTbUN7MABawsY+XkYGc/KtocmZhrGWMX6KZv0/TZAq6jJy1/vhL1SoIZp4BbGawf59jEEVqT3hnx4UVBm+/PsFwCLCyC70eMIEp7BsVUwPVBs9vUitcw8EpNHTSpQ1y/N7jVgh7MCMgVdRBxQc3PJ3+tumepLUXQrJlbCGlXXjwOVslBsm6OIdLHnbbwdQgFgE67QbkThnBDTzv+xHf0X/lKuucmKoMzQXbISfUtr00L02VegXv/SuFlSNksbI6+P/nb36NnwjBpJOE+U2fuSDkx+CLkS0mErekB0r21ImUaJ2GbomB1aEX4BWjs/TD492GrATlWpRr2SLLhMl4VLQM/lHzdVHhhWLAfx0TvRTC730VMTNqjlMEw8w3VqBuQlYV+iY2J5jAqqbX64LRV7PCRPizEkfrrh2pALGMxfjUIi1JtsI9pvTelSnUgdCnffLlWBopaTiMdKLFj0GS4FFnJi4cz9SSzNMe9GMgMUhYCnAmcZ8pCGSsfjEBWoo/n4wm+slf54B2xJBGczYNNMSEOC+VqPziZwJRorqnwcaHgtFf4mWvwO3RESnEOG/LNDN0sSgdgjvU80nCAanQqVigz2aXk= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH7PR02MB10160.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(7416014)(376014)(366016)(1800799024)(921020)(18002099003)(22082099003)(56012099003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?phVDmO5Sh46wc5DoMb/DXdYOkdwy93mSY5+z+EHEQfcUoQ3ycUgoHmE3h2s0?= =?us-ascii?Q?2tiLX4MJHJpvR7Wv/5VbQVRhAE69Lqsp0TdcMVPk0fUADYgHKU1fvLQ+QQi0?= =?us-ascii?Q?vjTcGVwxDO7IyPRRIPDUY5kEMF6w1Oo3ZJD52lA8idu1oYyyy93YyQ9MhCMh?= =?us-ascii?Q?LK5dnMJ7dMwZW3SJEZUMWx50mkvfuvsiou0k1g6KuCVm6tz0Ze5eYZrr7xx3?= =?us-ascii?Q?VMpZrpYeWI0a4qLj88FveVOnG/bzyAOl9ZOWnEj5t6ogjy/VJpA/t63H/Efx?= =?us-ascii?Q?9YQDn7wV/4My3NvkIB8V9QzGN7Z6NC+23G08C2K0gN94gTjTi0Z8Jfe4NTUq?= =?us-ascii?Q?QAMRAf80F4g/GU0pG9w5KCwnqMX9z6XLxScV8yJzKFpX2H25r54N/0NY6+a3?= =?us-ascii?Q?F3Kih95YOF6Il7MHexu+YRpjHG0jNwrYkZNCufxenYjeMUu06GTUX3dJfcys?= =?us-ascii?Q?Nkp9cm4777cHC70aA0NRTfJhWbTpZjcO2neX07PMZP/+J6HzfpKcJcMwJ8Vg?= =?us-ascii?Q?Sw9QqAMLWhfuu14kbsl4pgI45ALjDQ4bLHjmSk+q25bVonxV/z6ur2VYGg5U?= =?us-ascii?Q?biIv72Vk3+z8he1CUYP1xrFYgdlKqkyrW/np1SBkH9c34QqSjeJXIVUDLNQ1?= =?us-ascii?Q?qNvNv0ObyTPLYINPRpKqNtgvFZWs/PEfIw/RS5kKXYic4DNpLQVL08fSikIJ?= =?us-ascii?Q?L4O0pf8uuRkD1srQuTMCiwyOhLyyE+hKiQGyzPDNjKKhsSCopzOUdg7VeZDp?= =?us-ascii?Q?vOdySnyxRYLk0U68mFt6gxYONFrWdO+Nj+CV6RWMnOOa+F2b9+r77GLuK8ah?= =?us-ascii?Q?1MsWYK2xiRkSQciUF3Ed/91inewUvyoheXcE7ut+L2ISBSdqcCSAJZnzxibK?= =?us-ascii?Q?bdSvIHhcpj9k/M5nDMNeGVPj3fonYhZ7VEp8Q5CuXEiFeNmDvoZUvYCkgAub?= =?us-ascii?Q?S8M6bvFweVpVgG4rke+VCxWruwre+LNE6+gCFazo2Dl3OQzTECWNfjiwdXdo?= =?us-ascii?Q?fFatIv4kEB5OTgahcR3r2L2AIC/JUZstYsQ+oKzvL5PqMvpquZmDsBUvI4et?= =?us-ascii?Q?1GKAIPzFrwOe5zWwYWfWqNcDubA1RxQgo6kO86uvsEOwDwaVbbTUmH07z+a8?= =?us-ascii?Q?g/oHZmhFWQObbez9+Xgud8HH5VMQlrQz3O1JMMbLpZWZNCWfExbL7pwf6JUl?= =?us-ascii?Q?f9IYWAP/Ne4CVLhb2rX8wP3lW2A803+PBsasuRAeKpY9PaTrBy3BwMrBpnpS?= =?us-ascii?Q?TqjCEQ3LBmHN/NBaiSDXI0oj/nJ8TfL4X9DO6Gqpu7eJdoX8XbZxePRfmMED?= =?us-ascii?Q?ZgsHF4iD3Uhilr+uSIOVMObR40B/wA/hDL9q7NZZVxVZ048gyB+RaL2jAAGC?= =?us-ascii?Q?AsePGUWWXokCnDCFcmeRBItoqSaGgd5i/Oty41vSfMTLT3nK8U0y1bT3koIX?= =?us-ascii?Q?fsdQ+Vrn9BVdgL6zgJImCyXY7V8ZXVD63UqKevPMHqQ9RVTuBB/Jr0y4GqMm?= =?us-ascii?Q?BG+yvDDDbWleFvUsSmUkRDXgmYY6pqlgCNjDas1J0zavTxZMKze5luwrTsg2?= =?us-ascii?Q?4jat6p32tC9wST3z8FV5JT5FVyJFCpCkTscTdlikRKay9xwPQmelggTzhY1q?= =?us-ascii?Q?37sK5DVmF+e4D7QB4+SrRRwzB1xrexLe1m+roWRf+aewnhk/V33eLURPdks1?= =?us-ascii?Q?K42bQfjK0FokP+XNukTe0kiuF/A8CwRLlQ+Dob+Ky2jt8B6SbzLS913WJUze?= =?us-ascii?Q?QeFIRvrNgoR7+Xo5kKxn6kMXrxjwca0=3D?= X-Exchange-RoutingPolicyChecked: Jl1MrMJYIoCfbKk52C00vlxThJuGGwox4T8QAIPyx+fR27ksvRBocGcQajMB54Wv2S+O0DXg/pu8TUDz8VXwvOnC5mOU37pC72IIGNhFWpEsGINkb6GBA6TFtinm/XnZtcT02GJ51+WxZjSSPmc5jZjM1nDPhegIWenW0B7VOpA6HgZ9V9+JcILjEFV/+N+C3+JVy1mOZWap24/yXlq9vN9WpP9axEUjPGS2woLx4BbVMa+XiDfXxV+On/OD+yyaaWJ/o6ipg9zwCTa3+wjrXsnZSSa27XsJ3VknfTLI3lV27qjTO0m3nNzMtMZEfZyRKbwQFubyDa3nGJxl5AiN1g== X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: 76b5cb64-6a3f-4756-2b13-08deb10d8280 X-MS-Exchange-CrossTenant-AuthSource: PH7PR02MB10160.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 16:34:31.7429 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: DhXX9ZU46IHyc0R5eXBWjKvqlyeHS36aLGaN/WVWOPljE19l/J5mDDg4ub6dTHkD7j0YgTa2rEiEJTJh5r8Y7HNabtq93U0Q/Du5f6Mz95U= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR02MB8813 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDE2OCBTYWx0ZWRfX6taMs2rRzb8w YBow2eOAJzbv1drXi3YgMe0qZZ+qij9v1Mm/Yynha9jXLmE7sGI7NBXP7TfDGl4SjLUpAuNE6z1 /siVpyUHOhFso7YEGJ6BhOTfUC50OULmgSBV3WrnDENg1vcJcYz32ihP7Feu7SwHoA0vsuNKOK9 fgaAHz6Lf0WsYUwDIye2buWMcTgsoGZZGJpjLjeDd/dB7qWgTJ0zuCFKA48TqRfImwxrqH/jxEK dY8w6MYbDd74FWWUj4/lP91w9GqQvBhbVTafv5szHF7NVRhOXRNyKZzbwrjb12Y1riFtYCxfmed 8g0zJRGu3o4qH7F7ZUmCHPnnUC//dyyvWT+s5PZnYpfDumc37GtljbzDhG3mhcHqKqVYUbJxqVJ 1wOaexFQqVF75iEu0naeGug+V+6PRyoqDmGbJvZ5SCPowuvY2jS4FLsVmxJxI1Zd+hvsPUG9rTQ ahEoMa1DGacvYeJANwg== X-Proofpoint-ORIG-GUID: ATqqBg8fSzgWlSzGQEdfr7wyINzCACT5 X-Authority-Analysis: v=2.4 cv=PdjPQChd c=1 sm=1 tr=0 ts=6a04a81a cx=c_pps a=+kXwOJT9iXP9BgnuWAWdUA==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=NGcC8JguVDcA:10 a=0kUYKlekyDsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VofLwUrZ8Iiv6rRUPXIb:22 a=jxMXjlTPpCISP5mWtjnE:22 a=64Cc0HZtAAAA:8 a=i7znhvatu4o865_pIWsA:9 X-Proofpoint-GUID: ATqqBg8fSzgWlSzGQEdfr7wyINzCACT5 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-13_01,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Reason: safe 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=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.155.12; envelope-from=shaju.abraham@nutanix.com; helo=mx0b-002c1b01.pphosted.com X-Spam_score_int: -31 X-Spam_score: -3.2 X-Spam_bar: --- X-Spam_report: (-3.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.445, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, 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: qemu development 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 @nutanix.com) X-ZM-MESSAGEID: 1778690169601158500 Content-Type: text/plain; charset="utf-8" From: Khushit Shah Enable KVM_CAP_ARM_WRITABLE_IMP_ID_REGS if the host kernel supports it. This allows QEMU to write implementation-defined ID registers (MIDR, REVIDR) so that named CPU models can present the correct values to the guest instead of inheriting the host's identity. Signed-off-by: Khushit Shah --- target/arm/kvm.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/target/arm/kvm.c b/target/arm/kvm.c index dc64cfbeb6..288b5ebe85 100644 --- a/target/arm/kvm.c +++ b/target/arm/kvm.c @@ -711,6 +711,13 @@ int kvm_arch_init(MachineState *ms, KVMState *s) } } =20 + if (kvm_check_extension(s, KVM_CAP_ARM_WRITABLE_IMP_ID_REGS)) { + if (kvm_vm_enable_cap(s, KVM_CAP_ARM_WRITABLE_IMP_ID_REGS, 0)) { + error_report("Failed to enable " + "KVM_CAP_ARM_WRITABLE_IMP_ID_REGS cap"); + } + } + if (s->kvm_eager_split_size) { uint32_t sizes; =20 --=20 2.52.0