Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2237946/?format=api
{ "id": 2237946, "url": "http://patchwork.ozlabs.org/api/patches/2237946/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260513163356.3033159-3-shaju.abraham@nutanix.com/", "project": { "id": 14, "url": "http://patchwork.ozlabs.org/api/projects/14/?format=api", "name": "QEMU Development", "link_name": "qemu-devel", "list_id": "qemu-devel.nongnu.org", "list_email": "qemu-devel@nongnu.org", "web_url": "", "scm_url": "", "webscm_url": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20260513163356.3033159-3-shaju.abraham@nutanix.com>", "list_archive_url": null, "date": "2026-05-13T16:33:45", "name": "[RFC,v1,02/13] target/arm: named_cpu_model: Add ID Register Fields", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "14ab2d692bb0d01d1e4be99cf479a59e7aa395c3", "submitter": { "id": 77003, "url": "http://patchwork.ozlabs.org/api/people/77003/?format=api", "name": "Shaju Abraham", "email": "shaju.abraham@nutanix.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260513163356.3033159-3-shaju.abraham@nutanix.com/mbox/", "series": [ { "id": 504187, "url": "http://patchwork.ozlabs.org/api/series/504187/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=504187", "date": "2026-05-13T16:33:48", "name": "named CPU models for ARM64 on KVM", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/504187/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2237946/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2237946/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=nutanix.com header.i=@nutanix.com header.a=rsa-sha256\n header.s=proofpoint20171006 header.b=kwgT3WjU;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=nutanix.com header.i=@nutanix.com header.a=rsa-sha256\n header.s=selector1 header.b=oIJdQL1M;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists1p.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)" ], "Received": [ "from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4gFzcQ6cYMz1y5L\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 14 May 2026 02:36:22 +1000 (AEST)", "from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists1p.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1wNCYt-0004zg-Vm; Wed, 13 May 2026 12:35:56 -0400", "from eggs.gnu.org ([2001:470:142:3::10])\n by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <shaju.abraham@nutanix.com>)\n id 1wNCXo-0003Ls-SO; Wed, 13 May 2026 12:34:51 -0400", "from mx0b-002c1b01.pphosted.com ([148.163.155.12])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <shaju.abraham@nutanix.com>)\n id 1wNCXj-0000kQ-D8; Wed, 13 May 2026 12:34:48 -0400", "from pps.filterd (m0127844.ppops.net [127.0.0.1])\n by mx0b-002c1b01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 64DGLWup4150443; Wed, 13 May 2026 09:34:12 -0700", "from ch1pr05cu001.outbound.protection.outlook.com\n (mail-northcentralusazon11020111.outbound.protection.outlook.com\n [52.101.193.111])\n by mx0b-002c1b01.pphosted.com (PPS) with ESMTPS id 4e3nva674u-1\n (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT);\n Wed, 13 May 2026 09:34:12 -0700 (PDT)", "from PH7PR02MB10160.namprd02.prod.outlook.com\n (2603:10b6:510:2e7::19) by CH3PR02MB9564.namprd02.prod.outlook.com\n (2603:10b6:610:120::21) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Wed, 13 May\n 2026 16:34:10 +0000", "from PH7PR02MB10160.namprd02.prod.outlook.com\n ([fe80::4ed7:5c74:48e0:ff23]) by PH7PR02MB10160.namprd02.prod.outlook.com\n ([fe80::4ed7:5c74:48e0:ff23%7]) with mapi id 15.20.9891.021; Wed, 13 May 2026\n 16:34:09 +0000" ], "DKIM-Signature": [ "v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h=\n cc:content-transfer-encoding:content-type:date:from:in-reply-to\n :message-id:mime-version:references:subject:to; s=\n proofpoint20171006; bh=GXJ4TkC4GU3PilMmllwe61pRKZJq9E1JgZ0DWo8WI\n v4=; b=kwgT3WjUhbafrV0hNfsiPE1Sog5xkUgUjpmDIjQGYxDF+Gi4PTyp/R+6z\n i3vm0sCetD9aj9BiShoBpSEm5xX53o+iNd9hCjYGuZJqTZNn5UBPSs6I70O6FhQ1\n tyt8ML+6raGzdHEOL4b83XUtnKzVv+c2lNF0tVSY416z54E9HdXAMCv09JtXNuM8\n GXoFM8UqvnoL4LSzmP75W2mzvYxz97dlBVqREZZQh4ZpNP2rA0JBPeOgokVWp5EE\n Zc/K541EQLSfZcSj3raEXtF0GA3ps/VO8OIQ8WO4o1minD52Sk0ARJMjOOHGtvSA\n WTyTMu2HREFXSwXHIkUtBYrmo7Bhg==", "v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com;\n s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=GXJ4TkC4GU3PilMmllwe61pRKZJq9E1JgZ0DWo8WIv4=;\n b=oIJdQL1Mzep+eHRwVrrhMvtknY7c+9eY7llgPftHM/lJai3BPo98vqaIAdR0iKv1BF3tNj9ir8j72s5iG/vPo0koioVKATQaqh3lXs1YBORBY/3y6ExItxtqfBPRNIdIw9k0IhfYO72EWK/QpIuIi/dQRg4T5Pvqjyf3r5F8Bqx2tobX8Pii6NE+XPwtr1ZdVQnyU1zDt9Tsj2l2ctG4bKLvLbE0JtStLfEYsJnRHOdHH2rKIC0PNLEIiHWyGikHeBw13rpiIZ+hq56bJGVCwNA0OqmE4u3kJ5HlQ2rVznZihrAJ7jHCaha0yXLjiNFcm/tj1+THxw+2tjwoGq0zMw==" ], "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n 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;\n s=arcselector10001;\n 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;\n bh=GXJ4TkC4GU3PilMmllwe61pRKZJq9E1JgZ0DWo8WIv4=;\n 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\n smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com;\n dkim=pass header.d=nutanix.com; arc=none", "From": "Shaju Abraham <shaju.abraham@nutanix.com>", "To": "eric.auger@redhat.com, qemu-devel@nongnu.org, qemu-arm@nongnu.org,\n kvmarm@lists.linux.dev, peter.maydell@linaro.org,\n richard.henderson@linaro.org, cohuck@redhat.com, sebott@redhat.com,\n skolothumtho@nvidia.com, philmd@linaro.org", "Cc": "maz@kernel.org, oliver.upton@linux.dev, pbonzini@redhat.com,\n prerna.saxena@nutanix.com, jon@nutanix.com, jond@nutanix.com,\n Shaju Abraham <shaju.abraham@nutanix.com>,\n Khushit Shah <khushit.shah@nutanix.com>", "Subject": "[RFC PATCH v1 02/13] target/arm: named_cpu_model: Add ID Register\n 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": "8bit", "Content-Type": "text/plain", "X-ClientProxiedBy": "CY5PR10CA0003.namprd10.prod.outlook.com\n (2603:10b6:930:1c::30) To PH7PR02MB10160.namprd02.prod.outlook.com\n (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;\n ARA:13230040|7416014|376014|366016|1800799024|18002099003|22082099003|921020|56012099003;", "X-Microsoft-Antispam-Message-Info": "\n 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:;\n IPV:NLI; SFV:NSPM; H:PH7PR02MB10160.namprd02.prod.outlook.com; PTR:;\n CAT:NONE;\n SFS:(13230040)(7416014)(376014)(366016)(1800799024)(18002099003)(22082099003)(921020)(56012099003);\n DIR:OUT; SFP:1102;", "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1", "X-MS-Exchange-AntiSpam-MessageData-0": "\n pVdHhVTCMdlVWf4sphuZr6xs3rfTPfLbX8EXua6CyV9l0VTPZShBLAw6owoWSL3B34PaHL6lKUFCMt6vUPj0AZydcnnMoHSE0sSPotn450F89nqQp+uTDoLIGSOIqBQfx2hC/atnGLILi8dWmdibrnMKpFNI0Zs4Uwtxc8pHMKPz9XFzX4TTB+zTWF7bBm04QWP4MDa8Z5qBlaDaGv3qYnP4IDDLvgFXa/RsrSAgRn7EJebHE3jQpDCJllMdaJUnuiiok67nxLjLrWP6DZDNbU1JdsdvEkdxX+TstPfd5qEdPFF9fpNR+cCeCwDRm3CEaHlw+fLI30216Xm20Z5K2hqoWM5o3ok5ZTBXjroh4r+pU0C9EN28XC27HJVJfOo54Uqh4rAwzdMQ+rjXf5V+XgshY0j4PvXNUrzoYZWhEoRu5apRIFAsbdeo2PAnwyMCVZ6VeI8cvjHHokAJj6iBz7nuKxiA5Jbe/FbaJV4W5qlUlo2iB3NeTK6m9MNn2SqtgOtOJUYHZRf7ylPFGvrBT0LDlTsFaQ3SaU++IEE7/ZW6197/JuzwguWHPcdOD6NWUtEvxbkxS7BvLcIa6zzYm9kJ/fj0hmFbJeYh6LO4R5KTQZTyU+9xH6c7hm1HnFHTAeVBg063b9hC9ZRwkPGQwGDOqK/w1Xxz5lyDnevdjHEW9QOZ7IhoQ+I1nipKAFimGAAdHYmai5+HigPLI0csMr6p4yIbfmIsooFZXMKZPmH0c9/zYOxjuAMgAgRjl/+VelZTuXXfQdKUj8tKgCeHFj7T6ZzVY7Yqr2CPOv6Aa61AIArIYftogdIG5C2DKM9LDoOTf3oLXZqeioYlXFy2HCYpRigjy93lYlXiqKsQ6zBAZOfjzHHAKidxtTafXiPQoqjMf+OzgF861EEwXwdAIEJkZFftUlPd1/PA1N3E6nKnGbPH89pH+qSAiNK3yiFv78l6MyJ4zqbHXLJ1mJdMumavRziXOwIdwuogc77Nqu14xsUeMtXQMSxfjG+8E8dWI1zbKkQCAGqhvGWEo1jELsEheQ0TMEawLx/FASfIWsol76tH65lY7Ct1AWKPmtH3gK5LDWaPHmFW2U89fxS5go6yFw3Ccg44FRJCaBF5dFWYdvkuSR34L3IuzhV22XW19Hm7p641sLBdoinpezxkhZEVw450E1yU0ZkXgA0p6ptovB44odJloIdmi1NxRVfamE4vmHEvY3KUvqEZFgma7PNR0EAWgCrRu/zvef9WSDOIxZRbj8taIKNCfloO4uc+5zej3rCOcrbmyZbT4OFJy0H1+w00VS/s/oG6tM/u728/6RHrwHsbRG+bzTaiwOwYzIKZFIm7wLLzV8KycJpCJYfyu2DRJRX6YbnEQTKg0Gk6ZBekhgtrM3iZRe5vQRYLZnl1u5CsMJHjNZAS/fXCPldpowRGE+IEzbbeYlHPumN3eYfWq9HOA24VaXspPjqwEgdq7vDvBOYlFvTcWA6bPAj1LRAxW2A4r3LnKHDxlpQuUzKbenvU5fEBfP4K36UUinY5dz7tqagDkpxqm0WKqVofCH5tTVvDqpjqUoWjLLS7FJHJheNIKg5b3UQtjqCy6uy3WUUxlRzmyOezt1yxKGDpJyw912GRkcf9j07m0cL770xznOauNz5JZUvqGMVq0XLUgDr4J+Q5oFUZVwmF4RcyBfNnIeQfXxSPiU/MrRn8ZYUX7ql7F0idHHi1r19MlYSIR0Cu9mTspPAHUb6qjWeMss+bwG945KeoZMy89JI=", "X-Exchange-RoutingPolicyChecked": "\n 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": "\n 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": "\n AJY0LEo5dDyeE338lwPDCVKr7aMSCxjXlO/Om8U2AYA7a/0lUFQ9Eyq3X/YOptQggW+psW7JpuZANwKteqKtI2F3HajyNeCeMZ0r9rTIxLo=", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "CH3PR02MB9564", "X-Proofpoint-Spam-Details-Enc": "AW1haW4tMjYwNTEzMDE2OCBTYWx0ZWRfXy+gnJTyKHBPZ\n QzH03yj6o5M9qks9R/6s0QjuwImrLKAsGsuq9AwgVwJcn6gDn7mvfj74D0aiUNqRlhZ+UzUfhoi\n Sz7QUWOe81fl1ULf4Vcw2XECss/v3X33TYRGUFWpYlWtQMeG7yieft5mU/W6IWU3h+klkf6OjeY\n L2RZ8gONUKZd99RgcZwPnUzTgCLs1aQPN+bH/7/5nfX38BvFUIhldgqMQyieK6Na4AD0OzYNQuf\n EXz3BN9d8MS92X9FOozrRGyGTW+nJwZJu+rzDcQ18NUWhzAFm6rfJvHtlRWD6/HdYSSLmWumR6L\n UqCpNjvply+JV5EOTdkG2zK5I2qoGdTwVGeq0HCS3YME0y3ysUagVmpxCaCAUjL9hcnW8a6CTCG\n GomYT/Ka+DuO6rLpf2T+Peu62Pw5WBpZpTk7LtDnYCKEVzCmYi3rHlZ9seQDAfUqtPRdOBqzh/4\n L84bw/S6VMtoTMpt86Q==", "X-Authority-Analysis": "v=2.4 cv=evLvCIpX c=1 sm=1 tr=0 ts=6a04a804 cx=c_pps\n a=ZUDVJbHKkZYoAWA4fONUdg==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19\n a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19\n a=xqWC_Br6kY4A:10 a=NGcC8JguVDcA:10 a=0kUYKlekyDsA:10\n a=VkNPw1HP01LnGYTKEx00:22 a=VofLwUrZ8Iiv6rRUPXIb:22 a=0LlEyIVc8U2lsR7dKhuH:22\n a=64Cc0HZtAAAA:8 a=T-lFrMnA8onTQdNMNegA:9", "X-Proofpoint-ORIG-GUID": "2UGvCPndxxCSqnSZ_e6AGUT0X0DVDQA3", "X-Proofpoint-GUID": "2UGvCPndxxCSqnSZ_e6AGUT0X0DVDQA3", "X-Proofpoint-Virus-Version": "vendor=baseguard\n engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49\n definitions=2026-05-13_01,2026-05-13_01,2025-10-01_01", "X-Proofpoint-Spam-Reason": "safe", "Received-SPF": "pass client-ip=148.163.155.12;\n 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,\n DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001,\n 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 <qemu-devel.nongnu.org>", "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>", "List-Archive": "<https://lists.nongnu.org/archive/html/qemu-devel>", "List-Post": "<mailto:qemu-devel@nongnu.org>", "List-Help": "<mailto:qemu-devel-request@nongnu.org?subject=help>", "List-Subscribe": "<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>", "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org", "Sender": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org" }, "content": "Add a declarative description of every architecturally defined field in the\nArm64 ID registers in cpu-idregs.h.inc file. This file will be included\nmultiple times with different definitions to build the per-field arch values,\nper-register field descriptor arrays, arm-idregs table etc. The architecturely\ndefined values for each ID register field is extracted from kernel's\narch/arm64/tools/sysreg file. The safe-value tags and default values are\nderived from the kernel's ftr_bits array. Aarch32 ID registers are added\nwith dummy field so they can be defaulted to 0 by later commits.\n\nX-macro structure:\nIDREG_START(REG)\nIDREG_FIELD_START(REG, FIELD, SHIFT, LENGTH, SAFE_RULE, DEFAULT_VAL)\nIDREG_FIELD_ARCH_VAL(VALUE, NAME)\n...\nIDREG_FIELD_END(REG, FIELD)\n...\nIDREG_END(REG)\n\nCo-authored-by: Khushit Shah <khushit.shah@nutanix.com>\nSigned-off-by: Shaju Abraham <shaju.abraham@nutanix.com>\n---\n target/arm/cpu-idregs.h.inc | 1724 +++++++++++++++++++++++++++++++++++\n 1 file changed, 1724 insertions(+)\n create mode 100644 target/arm/cpu-idregs.h.inc", "diff": "diff --git a/target/arm/cpu-idregs.h.inc b/target/arm/cpu-idregs.h.inc\nnew file mode 100644\nindex 0000000000..5a627631c9\n--- /dev/null\n+++ b/target/arm/cpu-idregs.h.inc\n@@ -0,0 +1,1724 @@\n+/* SPDX-License-Identifier: GPL-2.0-or-later */\n+\n+/* ID_AA64ISAR0_EL1 */\n+IDREG_START(ID_AA64ISAR0_EL1)\n+IDREG_FIELD_START(ID_AA64ISAR0, RES0_0, 0, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64ISAR0, RES0_0)\n+\n+IDREG_FIELD_START(ID_AA64ISAR0, AES, 4, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"aes\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"pmull\")\n+IDREG_FIELD_END(ID_AA64ISAR0, AES)\n+\n+IDREG_FIELD_START(ID_AA64ISAR0, SHA1, 8, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR0, SHA1)\n+\n+IDREG_FIELD_START(ID_AA64ISAR0, SHA2, 12, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"sha256\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"sha512\")\n+IDREG_FIELD_END(ID_AA64ISAR0, SHA2)\n+\n+IDREG_FIELD_START(ID_AA64ISAR0, CRC32, 16, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR0, CRC32)\n+\n+IDREG_FIELD_START(ID_AA64ISAR0, ATOMIC, 20, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"LSE128\")\n+IDREG_FIELD_END(ID_AA64ISAR0, ATOMIC)\n+\n+IDREG_FIELD_START(ID_AA64ISAR0, RES0_24, 24, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64ISAR0, RES0_24)\n+\n+IDREG_FIELD_START(ID_AA64ISAR0, RDM, 28, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR0, RDM)\n+\n+IDREG_FIELD_START(ID_AA64ISAR0, SHA3, 32, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR0, SHA3)\n+\n+IDREG_FIELD_START(ID_AA64ISAR0, SM3, 36, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR0, SM3)\n+\n+IDREG_FIELD_START(ID_AA64ISAR0, SM4, 40, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR0, SM4)\n+\n+IDREG_FIELD_START(ID_AA64ISAR0, DP, 44, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR0, DP)\n+\n+IDREG_FIELD_START(ID_AA64ISAR0, FHM, 48, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR0, FHM)\n+\n+IDREG_FIELD_START(ID_AA64ISAR0, TS, 52, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"flagm\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"flagm2\")\n+IDREG_FIELD_END(ID_AA64ISAR0, TS)\n+\n+IDREG_FIELD_START(ID_AA64ISAR0, TLB, 56, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"os\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"range\")\n+IDREG_FIELD_END(ID_AA64ISAR0, TLB)\n+\n+IDREG_FIELD_START(ID_AA64ISAR0, RNDR, 60, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR0, RNDR)\n+\n+IDREG_END(ID_AA64ISAR0_EL1)\n+\n+/* ID_AA64ISAR1_EL1 */\n+IDREG_START(ID_AA64ISAR1_EL1)\n+IDREG_FIELD_START(ID_AA64ISAR1, DPB, 0, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"dpb2\")\n+IDREG_FIELD_END(ID_AA64ISAR1, DPB)\n+\n+IDREG_FIELD_START(ID_AA64ISAR1, APA, 4, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"pauth\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"epac\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"pauth2\")\n+IDREG_FIELD_ARCH_VAL(0b0100, \"fpac\")\n+IDREG_FIELD_ARCH_VAL(0b0101, \"fpaccombine\")\n+IDREG_FIELD_ARCH_VAL(0b0110, \"pauth_lr\")\n+IDREG_FIELD_END(ID_AA64ISAR1, APA)\n+\n+IDREG_FIELD_START(ID_AA64ISAR1, API, 8, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"pauth\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"epac\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"pauth2\")\n+IDREG_FIELD_ARCH_VAL(0b0100, \"fpac\")\n+IDREG_FIELD_ARCH_VAL(0b0101, \"fpaccombine\")\n+IDREG_FIELD_ARCH_VAL(0b0110, \"pauth_lr\")\n+IDREG_FIELD_END(ID_AA64ISAR1, API)\n+\n+IDREG_FIELD_START(ID_AA64ISAR1, JSCVT, 12, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR1, JSCVT)\n+\n+IDREG_FIELD_START(ID_AA64ISAR1, FCMA, 16, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR1, FCMA)\n+\n+IDREG_FIELD_START(ID_AA64ISAR1, LRCPC, 20, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"lrcpc2\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"lrcpc3\")\n+IDREG_FIELD_END(ID_AA64ISAR1, LRCPC)\n+\n+IDREG_FIELD_START(ID_AA64ISAR1, GPA, 24, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR1, GPA)\n+\n+IDREG_FIELD_START(ID_AA64ISAR1, GPI, 28, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR1, GPI)\n+\n+IDREG_FIELD_START(ID_AA64ISAR1, FRINTTS, 32, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR1, FRINTTS)\n+\n+IDREG_FIELD_START(ID_AA64ISAR1, SB, 36, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR1, SB)\n+\n+IDREG_FIELD_START(ID_AA64ISAR1, SPECRES, 40, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"cosp_rctx\")\n+IDREG_FIELD_END(ID_AA64ISAR1, SPECRES)\n+\n+IDREG_FIELD_START(ID_AA64ISAR1, BF16, 44, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"ebf16\")\n+IDREG_FIELD_END(ID_AA64ISAR1, BF16)\n+\n+IDREG_FIELD_START(ID_AA64ISAR1, DGH, 48, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR1, DGH)\n+\n+IDREG_FIELD_START(ID_AA64ISAR1, I8MM, 52, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR1, I8MM)\n+\n+IDREG_FIELD_START(ID_AA64ISAR1, XS, 56, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR1, XS)\n+\n+IDREG_FIELD_START(ID_AA64ISAR1, LS64, 60, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"ls64\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"ls64_v\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"ls64_accdata\")\n+IDREG_FIELD_ARCH_VAL(0b0100, \"ls64wb\")\n+IDREG_FIELD_END(ID_AA64ISAR1, LS64)\n+\n+IDREG_END(ID_AA64ISAR1_EL1)\n+\n+/* ID_AA64ISAR2_EL1 */\n+IDREG_START(ID_AA64ISAR2_EL1)\n+IDREG_FIELD_START(ID_AA64ISAR2, WFXT, 0, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR2, WFXT)\n+\n+IDREG_FIELD_START(ID_AA64ISAR2, RPRES, 4, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR2, RPRES)\n+\n+IDREG_FIELD_START(ID_AA64ISAR2, GPA3, 8, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR2, GPA3)\n+\n+IDREG_FIELD_START(ID_AA64ISAR2, APA3, 12, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"pauth\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"epac\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"pauth2\")\n+IDREG_FIELD_ARCH_VAL(0b0100, \"fpac\")\n+IDREG_FIELD_ARCH_VAL(0b0101, \"fpaccombine\")\n+IDREG_FIELD_ARCH_VAL(0b0110, \"pauth_lr\")\n+IDREG_FIELD_END(ID_AA64ISAR2, APA3)\n+\n+IDREG_FIELD_START(ID_AA64ISAR2, MOPS, 16, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR2, MOPS)\n+\n+IDREG_FIELD_START(ID_AA64ISAR2, BC, 20, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR2, BC)\n+\n+IDREG_FIELD_START(ID_AA64ISAR2, PAC_FRAC, 24, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR2, PAC_FRAC)\n+\n+IDREG_FIELD_START(ID_AA64ISAR2, CLRBHB, 28, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR2, CLRBHB)\n+\n+IDREG_FIELD_START(ID_AA64ISAR2, SYSREG_128, 32, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR2, SYSREG_128)\n+\n+IDREG_FIELD_START(ID_AA64ISAR2, SYSINSTR_128, 36, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR2, SYSINSTR_128)\n+\n+IDREG_FIELD_START(ID_AA64ISAR2, PRFMSLC, 40, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR2, PRFMSLC)\n+\n+IDREG_FIELD_START(ID_AA64ISAR2, PCDPHINT, 44, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR2, PCDPHINT)\n+\n+IDREG_FIELD_START(ID_AA64ISAR2, RPRFM, 48, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR2, RPRFM)\n+\n+IDREG_FIELD_START(ID_AA64ISAR2, CSSC, 52, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"cmpbr\")\n+IDREG_FIELD_END(ID_AA64ISAR2, CSSC)\n+\n+IDREG_FIELD_START(ID_AA64ISAR2, LUT, 56, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR2, LUT)\n+\n+IDREG_FIELD_START(ID_AA64ISAR2, ATS1A, 60, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR2, ATS1A)\n+\n+IDREG_END(ID_AA64ISAR2_EL1)\n+\n+/* ID_AA64PFR0_EL1 */\n+IDREG_START(ID_AA64PFR0_EL1)\n+IDREG_FIELD_START(ID_AA64PFR0, EL0, 0, 4, LOWER, 0b0001)\n+IDREG_FIELD_ARCH_VAL(0b0001, \"aarch64\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"aarch32\")\n+IDREG_FIELD_END(ID_AA64PFR0, EL0)\n+\n+IDREG_FIELD_START(ID_AA64PFR0, EL1, 4, 4, LOWER, 0b0001)\n+IDREG_FIELD_ARCH_VAL(0b0001, \"aarch64\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"aarch32\")\n+IDREG_FIELD_END(ID_AA64PFR0, EL1)\n+\n+IDREG_FIELD_START(ID_AA64PFR0, EL2, 8, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"aarch64\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"aarch32\")\n+IDREG_FIELD_END(ID_AA64PFR0, EL2)\n+\n+IDREG_FIELD_START(ID_AA64PFR0, EL3, 12, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"aarch64\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"aarch32\")\n+IDREG_FIELD_END(ID_AA64PFR0, EL3)\n+\n+IDREG_FIELD_START(ID_AA64PFR0, FP, 16, 4, SIGNED_LOWER, 0b1111)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"fp16\")\n+IDREG_FIELD_ARCH_VAL(0b1111, \"off\")\n+IDREG_FIELD_END(ID_AA64PFR0, FP)\n+\n+IDREG_FIELD_START(ID_AA64PFR0, ADVSIMD,20, 4, SIGNED_LOWER, 0b1111)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"fp16\")\n+IDREG_FIELD_ARCH_VAL(0b1111, \"off\")\n+IDREG_FIELD_END(ID_AA64PFR0, ADVSIMD)\n+\n+IDREG_FIELD_START(ID_AA64PFR0, GIC, 24, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"v4p1\")\n+IDREG_FIELD_END(ID_AA64PFR0, GIC)\n+\n+IDREG_FIELD_START(ID_AA64PFR0, RAS, 28, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"v1p1\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"v2\")\n+IDREG_FIELD_END(ID_AA64PFR0, RAS)\n+\n+IDREG_FIELD_START(ID_AA64PFR0, SVE, 32, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64PFR0, SVE)\n+\n+IDREG_FIELD_START(ID_AA64PFR0, SEL2, 36, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64PFR0, SEL2)\n+\n+IDREG_FIELD_START(ID_AA64PFR0, MPAM, 40, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"0\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"1\")\n+IDREG_FIELD_END(ID_AA64PFR0, MPAM)\n+\n+IDREG_FIELD_START(ID_AA64PFR0, AMU, 44, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"v1p1\")\n+IDREG_FIELD_END(ID_AA64PFR0, AMU)\n+\n+IDREG_FIELD_START(ID_AA64PFR0, DIT, 48, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64PFR0, DIT)\n+\n+IDREG_FIELD_START(ID_AA64PFR0, RME, 52, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64PFR0, RME)\n+\n+IDREG_FIELD_START(ID_AA64PFR0, CSV2, 56, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"csv2_2\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"csv2_3\")\n+IDREG_FIELD_END(ID_AA64PFR0, CSV2)\n+\n+IDREG_FIELD_START(ID_AA64PFR0, CSV3, 60, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64PFR0, CSV3)\n+\n+IDREG_END(ID_AA64PFR0_EL1)\n+\n+/* ID_AA64PFR1_EL1 */\n+IDREG_START(ID_AA64PFR1_EL1)\n+IDREG_FIELD_START(ID_AA64PFR1, BT, 0, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64PFR1, BT)\n+\n+IDREG_FIELD_START(ID_AA64PFR1, SSBS, 4, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"ssbs2\")\n+IDREG_FIELD_END(ID_AA64PFR1, SSBS)\n+\n+IDREG_FIELD_START(ID_AA64PFR1, MTE, 8, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"mte2\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"mte3\")\n+IDREG_FIELD_END(ID_AA64PFR1, MTE)\n+\n+IDREG_FIELD_START(ID_AA64PFR1, RAS_FRAC, 12, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"rasv1p1\")\n+IDREG_FIELD_END(ID_AA64PFR1, RAS_FRAC)\n+\n+IDREG_FIELD_START(ID_AA64PFR1, MPAM_FRAC,16, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"minor_0\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"minor_1\")\n+IDREG_FIELD_END(ID_AA64PFR1, MPAM_FRAC)\n+\n+IDREG_FIELD_START(ID_AA64PFR1, RES0_20, 20, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64PFR1, RES0_20)\n+\n+IDREG_FIELD_START(ID_AA64PFR1, SME, 24, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"sme2\")\n+IDREG_FIELD_END(ID_AA64PFR1, SME)\n+\n+IDREG_FIELD_START(ID_AA64PFR1, RNDR_TRAP,28, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64PFR1, RNDR_TRAP)\n+\n+IDREG_FIELD_START(ID_AA64PFR1, CSV2_FRAC,32, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"csv2_1p1\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"csv2_1p2\")\n+IDREG_FIELD_END(ID_AA64PFR1, CSV2_FRAC)\n+\n+IDREG_FIELD_START(ID_AA64PFR1, NMI, 36, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64PFR1, NMI)\n+\n+IDREG_FIELD_START(ID_AA64PFR1, MTE_FRAC, 40, 4, SIGNED_LOWER, 0b1111)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"async\")\n+IDREG_FIELD_ARCH_VAL(0b1111, \"off\")\n+IDREG_FIELD_END(ID_AA64PFR1, MTE_FRAC)\n+\n+IDREG_FIELD_START(ID_AA64PFR1, GCS, 44, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64PFR1, GCS)\n+\n+IDREG_FIELD_START(ID_AA64PFR1, THE, 48, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64PFR1, THE)\n+\n+IDREG_FIELD_START(ID_AA64PFR1, MTEX, 52, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"mte\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"mte4\")\n+IDREG_FIELD_END(ID_AA64PFR1, MTEX)\n+\n+IDREG_FIELD_START(ID_AA64PFR1, DF2, 56, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64PFR1, DF2)\n+\n+IDREG_FIELD_START(ID_AA64PFR1, PFAR, 60, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64PFR1, PFAR)\n+\n+IDREG_END(ID_AA64PFR1_EL1)\n+\n+/* ID_AA64MMFR0_EL1 */\n+IDREG_START(ID_AA64MMFR0_EL1)\n+IDREG_FIELD_START(ID_AA64MMFR0, PARANGE, 0, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"32\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"36\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"40\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"42\")\n+IDREG_FIELD_ARCH_VAL(0b0100, \"44\")\n+IDREG_FIELD_ARCH_VAL(0b0101, \"48\")\n+IDREG_FIELD_ARCH_VAL(0b0110, \"52\")\n+IDREG_FIELD_ARCH_VAL(0b0111, \"56\")\n+IDREG_FIELD_END(ID_AA64MMFR0, PARANGE)\n+\n+IDREG_FIELD_START(ID_AA64MMFR0, ASIDBITS, 4, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"8\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"16\")\n+IDREG_FIELD_END(ID_AA64MMFR0, ASIDBITS)\n+\n+IDREG_FIELD_START(ID_AA64MMFR0, BIGEND, 8, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR0, BIGEND)\n+\n+IDREG_FIELD_START(ID_AA64MMFR0, SNSMEM, 12, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR0, SNSMEM)\n+\n+IDREG_FIELD_START(ID_AA64MMFR0, BIGENDEL0, 16, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR0, BIGENDEL0)\n+\n+IDREG_FIELD_START(ID_AA64MMFR0, TGRAN16, 20, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"52_bit\")\n+IDREG_FIELD_END(ID_AA64MMFR0, TGRAN16)\n+\n+IDREG_FIELD_START(ID_AA64MMFR0, TGRAN64, 24, 4, SIGNED_LOWER, 0b1111)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b1111, \"off\")\n+IDREG_FIELD_END(ID_AA64MMFR0, TGRAN64)\n+\n+IDREG_FIELD_START(ID_AA64MMFR0, TGRAN4, 28, 4, SIGNED_LOWER, 0b1111)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"52_bit\")\n+IDREG_FIELD_ARCH_VAL(0b1111, \"off\")\n+IDREG_FIELD_END(ID_AA64MMFR0, TGRAN4)\n+\n+IDREG_FIELD_START(ID_AA64MMFR0, TGRAN16_2, 32, 4, EXACT, 0b0001)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"tgran16\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"52_bit\")\n+IDREG_FIELD_END(ID_AA64MMFR0, TGRAN16_2)\n+\n+IDREG_FIELD_START(ID_AA64MMFR0, TGRAN64_2, 36, 4, EXACT, 0b0001)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"tgran64\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR0, TGRAN64_2)\n+\n+IDREG_FIELD_START(ID_AA64MMFR0, TGRAN4_2, 40, 4, EXACT, 0b0001)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"tgran4\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"52_bit\")\n+IDREG_FIELD_END(ID_AA64MMFR0, TGRAN4_2)\n+\n+IDREG_FIELD_START(ID_AA64MMFR0, EXS, 44, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR0, EXS)\n+\n+IDREG_FIELD_START(ID_AA64MMFR0, RES0_48, 48, 8, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64MMFR0, RES0_48)\n+\n+IDREG_FIELD_START(ID_AA64MMFR0, FGT, 56, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"fgt2\")\n+IDREG_FIELD_END(ID_AA64MMFR0, FGT)\n+\n+IDREG_FIELD_START(ID_AA64MMFR0, ECV, 60, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"cntpoff\")\n+IDREG_FIELD_END(ID_AA64MMFR0, ECV)\n+\n+IDREG_END(ID_AA64MMFR0_EL1)\n+\n+/* ID_AA64MMFR1_EL1 */\n+IDREG_START(ID_AA64MMFR1_EL1)\n+IDREG_FIELD_START(ID_AA64MMFR1, HAFDBS, 0, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"af\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"dbm\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"haft\")\n+IDREG_FIELD_ARCH_VAL(0b0100, \"hdbss\")\n+IDREG_FIELD_END(ID_AA64MMFR1, HAFDBS)\n+\n+IDREG_FIELD_START(ID_AA64MMFR1, VMIDBITS, 4, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"8\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"16\")\n+IDREG_FIELD_END(ID_AA64MMFR1, VMIDBITS)\n+\n+IDREG_FIELD_START(ID_AA64MMFR1, VH, 8, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR1, VH)\n+\n+IDREG_FIELD_START(ID_AA64MMFR1, HPDS, 12, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"hpds2\")\n+IDREG_FIELD_END(ID_AA64MMFR1, HPDS)\n+\n+IDREG_FIELD_START(ID_AA64MMFR1, LO, 16, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR1, LO)\n+\n+IDREG_FIELD_START(ID_AA64MMFR1, PAN, 20, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"pan2\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"pan3\")\n+IDREG_FIELD_END(ID_AA64MMFR1, PAN)\n+\n+IDREG_FIELD_START(ID_AA64MMFR1, SPECSEI, 24, 4, HIGHER, 0b0001)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR1, SPECSEI)\n+\n+IDREG_FIELD_START(ID_AA64MMFR1, XNX, 28, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR1, XNX)\n+\n+IDREG_FIELD_START(ID_AA64MMFR1, TWED, 32, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR1, TWED)\n+\n+IDREG_FIELD_START(ID_AA64MMFR1, ETS, 36, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"ets2\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"ets3\")\n+IDREG_FIELD_END(ID_AA64MMFR1, ETS)\n+\n+IDREG_FIELD_START(ID_AA64MMFR1, HCX, 40, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR1, HCX)\n+\n+IDREG_FIELD_START(ID_AA64MMFR1, AFP, 44, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR1, AFP)\n+\n+IDREG_FIELD_START(ID_AA64MMFR1, NTLBPA, 48, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR1, NTLBPA)\n+\n+IDREG_FIELD_START(ID_AA64MMFR1, TIDCP1, 52, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR1, TIDCP1)\n+\n+IDREG_FIELD_START(ID_AA64MMFR1, CMOW, 56, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR1, CMOW)\n+\n+IDREG_FIELD_START(ID_AA64MMFR1, ECBHB, 60, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR1, ECBHB)\n+\n+IDREG_END(ID_AA64MMFR1_EL1)\n+\n+/* ID_AA64MMFR2_EL1 */\n+IDREG_START(ID_AA64MMFR2_EL1)\n+IDREG_FIELD_START(ID_AA64MMFR2, CNP, 0, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR2, CNP)\n+\n+IDREG_FIELD_START(ID_AA64MMFR2, UAO, 4, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR2, UAO)\n+\n+IDREG_FIELD_START(ID_AA64MMFR2, LSM, 8, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR2, LSM)\n+\n+IDREG_FIELD_START(ID_AA64MMFR2, IESB, 12, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR2, IESB)\n+\n+IDREG_FIELD_START(ID_AA64MMFR2, VARANGE, 16, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"48\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"52\")\n+IDREG_FIELD_END(ID_AA64MMFR2, VARANGE)\n+\n+IDREG_FIELD_START(ID_AA64MMFR2, CCIDX, 20, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"32\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"64\")\n+IDREG_FIELD_END(ID_AA64MMFR2, CCIDX)\n+\n+IDREG_FIELD_START(ID_AA64MMFR2, NV, 24, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"nv2\")\n+IDREG_FIELD_END(ID_AA64MMFR2, NV)\n+\n+IDREG_FIELD_START(ID_AA64MMFR2, ST, 28, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"39\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"48_47\")\n+IDREG_FIELD_END(ID_AA64MMFR2, ST)\n+\n+IDREG_FIELD_START(ID_AA64MMFR2, AT, 32, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR2, AT)\n+\n+IDREG_FIELD_START(ID_AA64MMFR2, IDS, 36, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"0x0\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"0x18\")\n+IDREG_FIELD_END(ID_AA64MMFR2, IDS)\n+\n+IDREG_FIELD_START(ID_AA64MMFR2, FWB, 40, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR2, FWB)\n+\n+IDREG_FIELD_START(ID_AA64MMFR2, RES0_44, 44, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64MMFR2, RES0_44)\n+\n+IDREG_FIELD_START(ID_AA64MMFR2, TTL, 48, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR2, TTL)\n+\n+IDREG_FIELD_START(ID_AA64MMFR2, BBM, 52, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"0\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"1\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"2\")\n+IDREG_FIELD_END(ID_AA64MMFR2, BBM)\n+\n+IDREG_FIELD_START(ID_AA64MMFR2, EVT, 56, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"ttlbxs\")\n+IDREG_FIELD_END(ID_AA64MMFR2, EVT)\n+\n+IDREG_FIELD_START(ID_AA64MMFR2, E0PD, 60, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR2, E0PD)\n+\n+IDREG_END(ID_AA64MMFR2_EL1)\n+\n+/* ID_AA64MMFR3_EL1 */\n+IDREG_START(ID_AA64MMFR3_EL1)\n+IDREG_FIELD_START(ID_AA64MMFR3, TCRX, 0, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR3, TCRX)\n+\n+IDREG_FIELD_START(ID_AA64MMFR3, SCTLRX, 4, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR3, SCTLRX)\n+\n+IDREG_FIELD_START(ID_AA64MMFR3, S1PIE, 8, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR3, S1PIE)\n+\n+IDREG_FIELD_START(ID_AA64MMFR3, S2PIE, 12, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR3, S2PIE)\n+\n+IDREG_FIELD_START(ID_AA64MMFR3, S1POE, 16, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR3, S1POE)\n+\n+IDREG_FIELD_START(ID_AA64MMFR3, S2POE, 20, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR3, S2POE)\n+\n+IDREG_FIELD_START(ID_AA64MMFR3, AIE, 24, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR3, AIE)\n+\n+IDREG_FIELD_START(ID_AA64MMFR3, MEC, 28, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR3, MEC)\n+\n+IDREG_FIELD_START(ID_AA64MMFR3, D128, 32, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR3, D128)\n+\n+IDREG_FIELD_START(ID_AA64MMFR3, D128_2, 36, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR3, D128_2)\n+\n+IDREG_FIELD_START(ID_AA64MMFR3, SNERR, 40, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"sync\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"ANERR\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"ANERR_IND\")\n+IDREG_FIELD_END(ID_AA64MMFR3, SNERR)\n+\n+IDREG_FIELD_START(ID_AA64MMFR3, ANERR, 44, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"async\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"ANERR\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"ANERR_IND\")\n+IDREG_FIELD_END(ID_AA64MMFR3, ANERR)\n+\n+IDREG_FIELD_START(ID_AA64MMFR3, RES0_48, 48, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64MMFR3, RES0_48)\n+\n+IDREG_FIELD_START(ID_AA64MMFR3, SDERR, 52, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"dev_sync\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"ADERR\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"ADERR_IND\")\n+IDREG_FIELD_END(ID_AA64MMFR3, SDERR)\n+\n+IDREG_FIELD_START(ID_AA64MMFR3, ADERR, 56, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"dev_async\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"ADERR\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"ADERR_IND\")\n+IDREG_FIELD_END(ID_AA64MMFR3, ADERR)\n+\n+IDREG_FIELD_START(ID_AA64MMFR3, SPEC_FPACC,60, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR3, SPEC_FPACC)\n+\n+IDREG_END(ID_AA64MMFR3_EL1)\n+\n+/* ID_AA64DFR0_EL1 */\n+IDREG_START(ID_AA64DFR0_EL1)\n+IDREG_FIELD_START(ID_AA64DFR0, DEBUGVER, 0, 4, LOWER, 0x6)\n+IDREG_FIELD_ARCH_VAL(0b0110, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0111, \"vhe\")\n+IDREG_FIELD_ARCH_VAL(0b1000, \"v8p2\")\n+IDREG_FIELD_ARCH_VAL(0b1001, \"v8p4\")\n+IDREG_FIELD_ARCH_VAL(0b1010, \"v8p8\")\n+IDREG_FIELD_ARCH_VAL(0b1011, \"v8p9\")\n+IDREG_FIELD_END(ID_AA64DFR0, DEBUGVER)\n+\n+IDREG_FIELD_START(ID_AA64DFR0, TRACEVER, 4, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64DFR0, TRACEVER)\n+\n+IDREG_FIELD_START(ID_AA64DFR0, PMUVER, 8, 4, SIGNED_LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0100, \"v3p1\")\n+IDREG_FIELD_ARCH_VAL(0b0101, \"v3p4\")\n+IDREG_FIELD_ARCH_VAL(0b0110, \"v3p5\")\n+IDREG_FIELD_ARCH_VAL(0b0111, \"v3p7\")\n+IDREG_FIELD_ARCH_VAL(0b1000, \"v3p8\")\n+IDREG_FIELD_ARCH_VAL(0b1001, \"v3p9\")\n+IDREG_FIELD_ARCH_VAL(0b1111, \"imp_def\")\n+IDREG_FIELD_END(ID_AA64DFR0, PMUVER)\n+\n+IDREG_FIELD_START(ID_AA64DFR0, BRPS, 12, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL_ANY\n+IDREG_FIELD_END(ID_AA64DFR0, BRPS)\n+\n+IDREG_FIELD_START(ID_AA64DFR0, PMSS, 16, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64DFR0, PMSS)\n+\n+IDREG_FIELD_START(ID_AA64DFR0, WRPS, 20, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL_ANY\n+IDREG_FIELD_END(ID_AA64DFR0, WRPS)\n+\n+IDREG_FIELD_START(ID_AA64DFR0, SEBEP, 24, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64DFR0, SEBEP)\n+\n+IDREG_FIELD_START(ID_AA64DFR0, CTX_CMPS, 28, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL_ANY\n+IDREG_FIELD_END(ID_AA64DFR0, CTX_CMPS)\n+\n+IDREG_FIELD_START(ID_AA64DFR0, PMSVER, 32, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"v1p1\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"v1p2\")\n+IDREG_FIELD_ARCH_VAL(0b0100, \"v1p3\")\n+IDREG_FIELD_ARCH_VAL(0b0101, \"v1p4\")\n+IDREG_FIELD_ARCH_VAL(0b0110, \"v1p5\")\n+IDREG_FIELD_END(ID_AA64DFR0, PMSVER)\n+\n+IDREG_FIELD_START(ID_AA64DFR0, DOUBLELOCK, 36, 4, SIGNED_LOWER, 0b1111)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b1111, \"off\")\n+IDREG_FIELD_END(ID_AA64DFR0, DOUBLELOCK)\n+\n+IDREG_FIELD_START(ID_AA64DFR0, TRACEFILT, 40, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64DFR0, TRACEFILT)\n+\n+IDREG_FIELD_START(ID_AA64DFR0, TRACEBUFFER,44, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"trbe_v1p1\")\n+IDREG_FIELD_END(ID_AA64DFR0, TRACEBUFFER)\n+\n+IDREG_FIELD_START(ID_AA64DFR0, MTPMU, 48, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"ni_impdef\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b1111, \"off\")\n+IDREG_FIELD_END(ID_AA64DFR0, MTPMU)\n+\n+IDREG_FIELD_START(ID_AA64DFR0, BRBE, 52, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"brbe_v1p1\")\n+IDREG_FIELD_END(ID_AA64DFR0, BRBE)\n+\n+IDREG_FIELD_START(ID_AA64DFR0, EXTTRCBUFF, 56, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64DFR0, EXTTRCBUFF)\n+\n+IDREG_FIELD_START(ID_AA64DFR0, HPMN0, 60, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"unpredictable\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"def\")\n+IDREG_FIELD_END(ID_AA64DFR0, HPMN0)\n+\n+IDREG_END(ID_AA64DFR0_EL1)\n+\n+/* ID_AA64ZFR0_EL1 */\n+IDREG_START(ID_AA64ZFR0_EL1)\n+IDREG_FIELD_START(ID_AA64ZFR0, SVEVER, 0, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"sve2\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"sve2p1\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"sve2p2\")\n+IDREG_FIELD_END(ID_AA64ZFR0, SVEVER)\n+\n+IDREG_FIELD_START(ID_AA64ZFR0, AES, 4, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"pmull128\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"aes2\")\n+IDREG_FIELD_END(ID_AA64ZFR0, AES)\n+\n+IDREG_FIELD_START(ID_AA64ZFR0, RES0_8, 8, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64ZFR0, RES0_8)\n+\n+IDREG_FIELD_START(ID_AA64ZFR0, ELTPERM, 12, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ZFR0, ELTPERM)\n+\n+IDREG_FIELD_START(ID_AA64ZFR0, BITPERM, 16, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ZFR0, BITPERM)\n+\n+IDREG_FIELD_START(ID_AA64ZFR0, BFLOAT16, 20, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"ebf16\")\n+IDREG_FIELD_END(ID_AA64ZFR0, BFLOAT16)\n+\n+IDREG_FIELD_START(ID_AA64ZFR0, B16B16, 24, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"bfscale\")\n+IDREG_FIELD_END(ID_AA64ZFR0, B16B16)\n+\n+IDREG_FIELD_START(ID_AA64ZFR0, RES0_28, 28, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64ZFR0, RES0_28)\n+\n+IDREG_FIELD_START(ID_AA64ZFR0, SHA3, 32, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ZFR0, SHA3)\n+\n+IDREG_FIELD_START(ID_AA64ZFR0, RES0_36, 36, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64ZFR0, RES0_36)\n+\n+IDREG_FIELD_START(ID_AA64ZFR0, SM4, 40, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ZFR0, SM4)\n+\n+IDREG_FIELD_START(ID_AA64ZFR0, I8MM, 44, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ZFR0, I8MM)\n+\n+IDREG_FIELD_START(ID_AA64ZFR0, F16MM, 48, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ZFR0, F16MM)\n+\n+IDREG_FIELD_START(ID_AA64ZFR0, F32MM, 52, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ZFR0, F32MM)\n+\n+IDREG_FIELD_START(ID_AA64ZFR0, F64MM, 56, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ZFR0, F64MM)\n+\n+IDREG_FIELD_START(ID_AA64ZFR0, RES0_60, 60, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64ZFR0, RES0_60)\n+\n+IDREG_END(ID_AA64ZFR0_EL1)\n+\n+/* ID_AA64SMFR0_EL1 */\n+IDREG_START(ID_AA64SMFR0_EL1)\n+IDREG_FIELD_START(ID_AA64SMFR0, SMOP4, 0, 1, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64SMFR0, SMOP4)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, RES0_1, 1, 15, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64SMFR0, RES0_1)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, STMOP, 16, 1, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64SMFR0, STMOP)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, RES0_17, 17, 6, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64SMFR0, RES0_17)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, SFEXPA, 23, 1, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64SMFR0, SFEXPA)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, AES, 24, 1, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64SMFR0, AES)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, SBITPERM, 25, 1, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64SMFR0, SBITPERM)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, RES0_26, 26, 2, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64SMFR0, RES0_26)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, SF8DP2, 28, 1, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64SMFR0, SF8DP2)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, SF8DP4, 29, 1, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64SMFR0, SF8DP4)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, SF8FMA, 30, 1, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64SMFR0, SF8FMA)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, RES0_31, 31, 1, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64SMFR0, RES0_31)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, F32F32, 32, 1, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64SMFR0, F32F32)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, BI32I32, 33, 1, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64SMFR0, BI32I32)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, B16F32, 34, 1, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64SMFR0, B16F32)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, F16F32, 35, 1, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64SMFR0, F16F32)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, I8I32, 36, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1111, \"on\")\n+IDREG_FIELD_END(ID_AA64SMFR0, I8I32)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, F8F32, 40, 1, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64SMFR0, F8F32)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, F8F16, 41, 1, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64SMFR0, F8F16)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, F16F16, 42, 1, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64SMFR0, F16F16)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, B16B16, 43, 1, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64SMFR0, B16B16)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, I16I32, 44, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0101, \"on\")\n+IDREG_FIELD_END(ID_AA64SMFR0, I16I32)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, F64F64, 48, 1, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64SMFR0, F64F64)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, RES0_49, 49, 3, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64SMFR0, RES0_49)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, I16I64, 52, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1111, \"on\")\n+IDREG_FIELD_END(ID_AA64SMFR0, I16I64)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, SMEVER, 56, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"sme\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"sme2\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"sme2p1\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"sme2p2\")\n+IDREG_FIELD_END(ID_AA64SMFR0, SMEVER)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, LUTV2, 60, 1, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64SMFR0, LUTV2)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, RES0_61, 61, 2, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64SMFR0, RES0_61)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, FA64, 63, 1, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64SMFR0, FA64)\n+\n+IDREG_END(ID_AA64SMFR0_EL1)\n+\n+/* CTR_EL0 */\n+IDREG_START(CTR_EL0)\n+IDREG_FIELD_START(CTR_EL0, IMINLINE, 0, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL_ANY\n+IDREG_FIELD_END(CTR_EL0, IMINLINE)\n+\n+IDREG_FIELD_START(CTR_EL0, RES0_4, 4, 10, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(CTR_EL0, RES0_4)\n+\n+IDREG_FIELD_START(CTR_EL0, L1IP, 14, 2, EXACT, 0b10)\n+IDREG_FIELD_ARCH_VAL(0b00, \"reserved_vpipt\")\n+IDREG_FIELD_ARCH_VAL(0b01, \"reserved_aivivt\")\n+IDREG_FIELD_ARCH_VAL(0b10, \"vipt\")\n+IDREG_FIELD_ARCH_VAL(0b11, \"pipt\")\n+IDREG_FIELD_END(CTR_EL0, L1IP)\n+\n+IDREG_FIELD_START(CTR_EL0, DMINLINE, 16, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL_ANY\n+IDREG_FIELD_END(CTR_EL0, DMINLINE)\n+\n+IDREG_FIELD_START(CTR_EL0, ERG, 20, 4, HIGHER_OR_ZERO, 0)\n+IDREG_FIELD_ARCH_VAL_ANY\n+IDREG_FIELD_END(CTR_EL0, ERG)\n+\n+IDREG_FIELD_START(CTR_EL0, CWG, 24, 4, HIGHER_OR_ZERO, 0)\n+IDREG_FIELD_ARCH_VAL_ANY\n+IDREG_FIELD_END(CTR_EL0, CWG)\n+\n+IDREG_FIELD_START(CTR_EL0, IDC, 28, 1, LOWER, 0b1)\n+IDREG_FIELD_ARCH_VAL_ANY\n+IDREG_FIELD_END(CTR_EL0, IDC)\n+\n+IDREG_FIELD_START(CTR_EL0, DIC, 29, 1, LOWER, 0b1)\n+IDREG_FIELD_ARCH_VAL_ANY\n+IDREG_FIELD_END(CTR_EL0, DIC)\n+\n+IDREG_FIELD_START(CTR_EL0, RES0_30, 30, 1, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(CTR_EL0, RES0_30)\n+\n+IDREG_FIELD_START(CTR_EL0, RES1_31, 31, 1, EXACT, 1)\n+IDREG_FIELD_ARCH_VAL(1, NULL)\n+IDREG_FIELD_END(CTR_EL0, RES1_31)\n+\n+IDREG_FIELD_START(CTR_EL0, TMINLINE, 32, 6, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL_ANY\n+IDREG_FIELD_END(CTR_EL0, TMINLINE)\n+\n+IDREG_FIELD_START(CTR_EL0, RES0_38, 38, 26, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(CTR_EL0, RES0_38)\n+\n+IDREG_END(CTR_EL0)\n+\n+/* ID_AA64ISAR3_EL1 */\n+IDREG_START(ID_AA64ISAR3_EL1)\n+IDREG_FIELD_START(ID_AA64ISAR3, CPA, 0, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"cpa2\")\n+IDREG_FIELD_END(ID_AA64ISAR3, CPA)\n+\n+IDREG_FIELD_START(ID_AA64ISAR3, FAMINMAX, 4, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR3, FAMINMAX)\n+\n+IDREG_FIELD_START(ID_AA64ISAR3, TLBIW, 8, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR3, TLBIW)\n+\n+IDREG_FIELD_START(ID_AA64ISAR3, PACM, 12, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"trivial_imp\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"full_imp\")\n+IDREG_FIELD_END(ID_AA64ISAR3, PACM)\n+\n+IDREG_FIELD_START(ID_AA64ISAR3, LSFE, 16, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR3, LSFE)\n+\n+IDREG_FIELD_START(ID_AA64ISAR3, OCCMO, 20, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR3, OCCMO)\n+\n+IDREG_FIELD_START(ID_AA64ISAR3, LSUI, 24, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR3, LSUI)\n+\n+IDREG_FIELD_START(ID_AA64ISAR3, FPRCVT, 28, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR3, FPRCVT)\n+\n+IDREG_FIELD_START(ID_AA64ISAR3, RES0_32, 32, 32, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64ISAR3, RES0_32)\n+\n+IDREG_END(ID_AA64ISAR3_EL1)\n+\n+/* ID_AA64PFR2_EL1 */\n+IDREG_START(ID_AA64PFR2_EL1)\n+IDREG_FIELD_START(ID_AA64PFR2, MTEPERM, 0, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64PFR2, MTEPERM)\n+\n+IDREG_FIELD_START(ID_AA64PFR2, MTESTOREONLY, 4, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64PFR2, MTESTOREONLY)\n+\n+IDREG_FIELD_START(ID_AA64PFR2, MTEFAR, 8, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64PFR2, MTEFAR)\n+\n+IDREG_FIELD_START(ID_AA64PFR2, GCIE, 12, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64PFR2, GCIE)\n+\n+IDREG_FIELD_START(ID_AA64PFR2, UINJ, 16, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64PFR2, UINJ)\n+\n+IDREG_FIELD_START(ID_AA64PFR2, RES0_20, 20, 12, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64PFR2, RES0_20)\n+\n+IDREG_FIELD_START(ID_AA64PFR2, FPMR, 32, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64PFR2, FPMR)\n+\n+IDREG_FIELD_START(ID_AA64PFR2, RES0_36, 36, 28, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64PFR2, RES0_36)\n+\n+IDREG_END(ID_AA64PFR2_EL1)\n+\n+/* ID_AA64FPFR0_EL1 */\n+IDREG_START(ID_AA64FPFR0_EL1)\n+IDREG_FIELD_START(ID_AA64FPFR0, F8E5M2, 0, 1, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64FPFR0, F8E5M2)\n+\n+IDREG_FIELD_START(ID_AA64FPFR0, F8E4M3, 1, 1, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64FPFR0, F8E4M3)\n+\n+IDREG_FIELD_START(ID_AA64FPFR0, RES0_2, 2, 24, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64FPFR0, RES0_2)\n+\n+IDREG_FIELD_START(ID_AA64FPFR0, F8MM4, 26, 1, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64FPFR0, F8MM4)\n+\n+IDREG_FIELD_START(ID_AA64FPFR0, F8MM8, 27, 1, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64FPFR0, F8MM8)\n+\n+IDREG_FIELD_START(ID_AA64FPFR0, F8DP2, 28, 1, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64FPFR0, F8DP2)\n+\n+IDREG_FIELD_START(ID_AA64FPFR0, F8DP4, 29, 1, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64FPFR0, F8DP4)\n+\n+IDREG_FIELD_START(ID_AA64FPFR0, F8FMA, 30, 1, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64FPFR0, F8FMA)\n+\n+IDREG_FIELD_START(ID_AA64FPFR0, F8CVT, 31, 1, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64FPFR0, F8CVT)\n+\n+IDREG_FIELD_START(ID_AA64FPFR0, RES0_32, 32, 32, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64FPFR0, RES0_32)\n+\n+IDREG_END(ID_AA64FPFR0_EL1)\n+\n+\n+/* ID_AA64MMFR4_EL1 */\n+IDREG_START(ID_AA64MMFR4_EL1)\n+IDREG_FIELD_START(ID_AA64MMFR4, POPS, 0, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR4, POPS)\n+\n+IDREG_FIELD_START(ID_AA64MMFR4, EIESB, 4, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"toel3\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"toelx\")\n+IDREG_FIELD_ARCH_VAL(0b1111, \"any\")\n+IDREG_FIELD_END(ID_AA64MMFR4, EIESB)\n+\n+IDREG_FIELD_START(ID_AA64MMFR4, ASID2, 8, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR4, ASID2)\n+\n+IDREG_FIELD_START(ID_AA64MMFR4, HACDBS, 12, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR4, HACDBS)\n+\n+IDREG_FIELD_START(ID_AA64MMFR4, FGWTE3, 16, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR4, FGWTE3)\n+\n+IDREG_FIELD_START(ID_AA64MMFR4, NV_FRAC, 20, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"nv_nv2\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"nv2_only\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"nv2p1\")\n+IDREG_FIELD_END(ID_AA64MMFR4, NV_FRAC)\n+\n+IDREG_FIELD_START(ID_AA64MMFR4, E2H0, 24, 4, SIGNED_LOWER, 0b1111)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b1110, \"ni_nv1\")\n+IDREG_FIELD_ARCH_VAL(0b1111, \"off\")\n+IDREG_FIELD_END(ID_AA64MMFR4, E2H0)\n+\n+IDREG_FIELD_START(ID_AA64MMFR4, RMEGDI, 28, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR4, RMEGDI)\n+\n+IDREG_FIELD_START(ID_AA64MMFR4, RES0_32, 32, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64MMFR4, RES0_32)\n+\n+IDREG_FIELD_START(ID_AA64MMFR4, E3DSE, 36, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR4, E3DSE)\n+\n+IDREG_FIELD_START(ID_AA64MMFR4, RES0_40, 40, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64MMFR4, RES0_40)\n+\n+IDREG_FIELD_START(ID_AA64MMFR4, SRMASK, 44, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR4, SRMASK)\n+\n+IDREG_FIELD_START(ID_AA64MMFR4, RES0_48, 48, 16, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64MMFR4, RES0_48)\n+\n+IDREG_END(ID_AA64MMFR4_EL1)\n+\n+/* ID_AA64DFR1_EL1 */\n+IDREG_START(ID_AA64DFR1_EL1)\n+IDREG_FIELD_START(ID_AA64DFR1, SYSPMUID, 0, 8, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL_ANY\n+IDREG_FIELD_END(ID_AA64DFR1, SYSPMUID)\n+\n+IDREG_FIELD_START(ID_AA64DFR1, BRPS, 8, 8, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL_ANY\n+IDREG_FIELD_END(ID_AA64DFR1, BRPS)\n+\n+IDREG_FIELD_START(ID_AA64DFR1, WRPS, 16, 8, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL_ANY\n+IDREG_FIELD_END(ID_AA64DFR1, WRPS)\n+\n+IDREG_FIELD_START(ID_AA64DFR1, CTX_CMPS, 24, 8, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL_ANY\n+IDREG_FIELD_END(ID_AA64DFR1, CTX_CMPS)\n+\n+IDREG_FIELD_START(ID_AA64DFR1, SPMU, 32, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"imp_spmzr\")\n+IDREG_FIELD_END(ID_AA64DFR1, SPMU)\n+\n+IDREG_FIELD_START(ID_AA64DFR1, PMICNTR, 36, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64DFR1, PMICNTR)\n+\n+IDREG_FIELD_START(ID_AA64DFR1, ABLE, 40, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64DFR1, ABLE)\n+\n+IDREG_FIELD_START(ID_AA64DFR1, ITE, 44, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64DFR1, ITE)\n+\n+IDREG_FIELD_START(ID_AA64DFR1, EBEP, 48, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64DFR1, EBEP)\n+\n+IDREG_FIELD_START(ID_AA64DFR1, DPFZS, 52, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"ignr\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"frzn\")\n+IDREG_FIELD_END(ID_AA64DFR1, DPFZS)\n+\n+IDREG_FIELD_START(ID_AA64DFR1, ABL_CMPS, 56, 8, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL_ANY\n+IDREG_FIELD_END(ID_AA64DFR1, ABL_CMPS)\n+\n+IDREG_END(ID_AA64DFR1_EL1)\n+\n+/* MIDR_EL1 */\n+IDREG_START(MIDR_EL1)\n+IDREG_FIELD_START(MIDR, REVISION, 0, 4, ANY, 0)\n+IDREG_FIELD_END(MIDR, REVISION)\n+\n+IDREG_FIELD_START(MIDR, PARTNUM, 4, 12, ANY, 0)\n+IDREG_FIELD_END(MIDR, PARTNUM)\n+\n+IDREG_FIELD_START(MIDR, ARCHITECTURE, 16, 4, ANY, 0)\n+IDREG_FIELD_END(MIDR, ARCHITECTURE)\n+\n+IDREG_FIELD_START(MIDR, VARIANT, 20, 4, ANY, 0)\n+IDREG_FIELD_END(MIDR, VARIANT)\n+\n+IDREG_FIELD_START(MIDR, IMPLEMENTER, 24, 8, ANY, 0)\n+IDREG_FIELD_END(MIDR, IMPLEMENTER)\n+\n+IDREG_FIELD_START(MIDR, RES0_32, 32, 32, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(MIDR, RES0_32)\n+\n+IDREG_END(MIDR_EL1)\n+\n+/* REVIDR_EL1 */\n+IDREG_START(REVIDR_EL1)\n+IDREG_FIELD_START(REVIDR, VAL, 0, 64, ANY, 0)\n+IDREG_FIELD_END(REVIDR, VAL)\n+\n+IDREG_END(REVIDR_EL1)\n+\n+/* AIDR_EL1 */\n+IDREG_START(AIDR_EL1)\n+IDREG_FIELD_START(AIDR, VAL, 0, 64, ANY, 0)\n+IDREG_FIELD_END(AIDR, VAL)\n+\n+IDREG_END(AIDR_EL1)\n+\n+/* DCZID_EL0 */\n+IDREG_START(DCZID_EL0)\n+IDREG_FIELD_START(DCZID_EL0, BS, 0, 4, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL_ANY\n+IDREG_FIELD_END(DCZID_EL0, BS)\n+\n+IDREG_FIELD_START(DCZID_EL0, DZP, 4, 1, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL_ANY\n+IDREG_FIELD_END(DCZID_EL0, DZP)\n+\n+IDREG_FIELD_START(DCZID_EL0, RES0_5, 5, 59, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(DCZID_EL0, RES0_5)\n+\n+IDREG_END(DCZID_EL0)\n+\n+\n+/* ID_AA64AFR0_EL1 */\n+IDREG_START(ID_AA64AFR0_EL1)\n+IDREG_FIELD_START(ID_AA64AFR0, VAL, 0, 64, EXACT, 0)\n+IDREG_FIELD_END(ID_AA64AFR0, VAL)\n+\n+IDREG_END(ID_AA64AFR0_EL1)\n+\n+/* ID_AA64AFR1_EL1 */\n+IDREG_START(ID_AA64AFR1_EL1)\n+IDREG_FIELD_START(ID_AA64AFR1, VAL, 0, 64, EXACT, 0)\n+IDREG_FIELD_END(ID_AA64AFR1, VAL)\n+\n+IDREG_END(ID_AA64AFR1_EL1)\n+\n+ /* AArch32 ID registers */\n+\n+/* ID_PFR0_EL1 */\n+IDREG_START(ID_PFR0_EL1)\n+IDREG_FIELD_START(ID_PFR0, VAL, 0, 64, EXACT, 0)\n+IDREG_FIELD_END(ID_PFR0, VAL)\n+\n+IDREG_END(ID_PFR0_EL1)\n+\n+/* ID_PFR1_EL1 */\n+IDREG_START(ID_PFR1_EL1)\n+IDREG_FIELD_START(ID_PFR1, VAL_LO, 0, 28, EXACT, 0)\n+IDREG_FIELD_END(ID_PFR1, VAL_LO)\n+\n+IDREG_FIELD_START(ID_PFR1, GIC, 28, 4, LOWER, 0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"gicv3\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"gicv4p1\")\n+IDREG_FIELD_END(ID_PFR1, GIC)\n+\n+IDREG_FIELD_START(ID_PFR1, RES0_HI, 32, 32, EXACT, 0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_PFR1, RES0_HI)\n+\n+IDREG_END(ID_PFR1_EL1)\n+\n+/* ID_DFR0_EL1 */\n+IDREG_START(ID_DFR0_EL1)\n+IDREG_FIELD_START(ID_DFR0, VAL_LO, 0, 24, EXACT, 0 )\n+IDREG_FIELD_END(ID_DFR0, VAL_LO)\n+\n+IDREG_FIELD_START(ID_DFR0, PMU, 24, 4, LOWER, 0 )\n+IDREG_FIELD_END(ID_DFR0, PMU)\n+\n+IDREG_FIELD_START(ID_DFR0, VAL_HI, 28, 4, EXACT, 0 )\n+IDREG_FIELD_END(ID_DFR0, VAL_HI)\n+\n+IDREG_FIELD_START(ID_DFR0, RES0_HI, 32, 32, EXACT, 0 )\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_DFR0, RES0_HI)\n+\n+IDREG_END(ID_DFR0_EL1)\n+\n+/* ID_AFR0_EL1 */\n+IDREG_START(ID_AFR0_EL1)\n+IDREG_FIELD_START(ID_AFR0, VAL, 0, 64, EXACT, 0 )\n+IDREG_FIELD_END(ID_AFR0, VAL)\n+\n+IDREG_END(ID_AFR0_EL1)\n+\n+/* ID_MMFR0_EL1 */\n+IDREG_START(ID_MMFR0_EL1)\n+IDREG_FIELD_START(ID_MMFR0, VAL, 0, 64, EXACT, 0 )\n+IDREG_FIELD_END(ID_MMFR0, VAL)\n+\n+IDREG_END(ID_MMFR0_EL1)\n+\n+/* ID_MMFR1_EL1 */\n+IDREG_START(ID_MMFR1_EL1)\n+IDREG_FIELD_START(ID_MMFR1, VAL, 0, 64, EXACT, 0 )\n+IDREG_FIELD_END(ID_MMFR1, VAL)\n+\n+IDREG_END(ID_MMFR1_EL1)\n+\n+/* ID_MMFR2_EL1 */\n+IDREG_START(ID_MMFR2_EL1)\n+IDREG_FIELD_START(ID_MMFR2, VAL, 0, 64, EXACT, 0 )\n+IDREG_FIELD_END(ID_MMFR2, VAL)\n+\n+IDREG_END(ID_MMFR2_EL1)\n+\n+/* ID_MMFR3_EL1 */\n+IDREG_START(ID_MMFR3_EL1)\n+IDREG_FIELD_START(ID_MMFR3, VAL, 0, 64, EXACT, 0 )\n+IDREG_FIELD_END(ID_MMFR3, VAL)\n+\n+IDREG_END(ID_MMFR3_EL1)\n+\n+/* ID_MMFR4_EL1 */\n+IDREG_START(ID_MMFR4_EL1)\n+IDREG_FIELD_START(ID_MMFR4, VAL, 0, 64, EXACT, 0 )\n+IDREG_FIELD_END(ID_MMFR4, VAL)\n+\n+IDREG_END(ID_MMFR4_EL1)\n+\n+/* ID_MMFR5_EL1 */\n+IDREG_START(ID_MMFR5_EL1)\n+IDREG_FIELD_START(ID_MMFR5, VAL, 0, 64, EXACT, 0 )\n+IDREG_FIELD_END(ID_MMFR5, VAL)\n+\n+IDREG_END(ID_MMFR5_EL1)\n+\n+/* ID_ISAR0_EL1 */\n+IDREG_START(ID_ISAR0_EL1)\n+IDREG_FIELD_START(ID_ISAR0, VAL, 0, 64, EXACT, 0 )\n+IDREG_FIELD_END(ID_ISAR0, VAL)\n+\n+IDREG_END(ID_ISAR0_EL1)\n+\n+/* ID_ISAR1_EL1 */\n+IDREG_START(ID_ISAR1_EL1)\n+IDREG_FIELD_START(ID_ISAR1, VAL, 0, 64, EXACT, 0 )\n+IDREG_FIELD_END(ID_ISAR1, VAL)\n+\n+IDREG_END(ID_ISAR1_EL1)\n+\n+/* ID_ISAR2_EL1 */\n+IDREG_START(ID_ISAR2_EL1)\n+IDREG_FIELD_START(ID_ISAR2, VAL, 0, 64, EXACT, 0 )\n+IDREG_FIELD_END(ID_ISAR2, VAL)\n+\n+IDREG_END(ID_ISAR2_EL1)\n+\n+/* ID_ISAR3_EL1 */\n+IDREG_START(ID_ISAR3_EL1)\n+IDREG_FIELD_START(ID_ISAR3, VAL, 0, 64, EXACT, 0 )\n+IDREG_FIELD_END(ID_ISAR3, VAL)\n+\n+IDREG_END(ID_ISAR3_EL1)\n+\n+/* ID_ISAR4_EL1 */\n+IDREG_START(ID_ISAR4_EL1)\n+IDREG_FIELD_START(ID_ISAR4, VAL, 0, 64, EXACT, 0 )\n+IDREG_FIELD_END(ID_ISAR4, VAL)\n+\n+IDREG_END(ID_ISAR4_EL1)\n+\n+/* ID_ISAR5_EL1 */\n+IDREG_START(ID_ISAR5_EL1)\n+IDREG_FIELD_START(ID_ISAR5, VAL, 0, 64, EXACT, 0 )\n+IDREG_FIELD_END(ID_ISAR5, VAL)\n+\n+IDREG_END(ID_ISAR5_EL1)\n+\n+/* ID_ISAR6_EL1 */\n+IDREG_START(ID_ISAR6_EL1)\n+IDREG_FIELD_START(ID_ISAR6, VAL, 0, 64, EXACT, 0 )\n+IDREG_FIELD_END(ID_ISAR6, VAL)\n+\n+IDREG_END(ID_ISAR6_EL1)\n+\n+/* ID_PFR2_EL1 */\n+IDREG_START(ID_PFR2_EL1)\n+IDREG_FIELD_START(ID_PFR2, VAL, 0, 64, EXACT, 0 )\n+IDREG_FIELD_END(ID_PFR2, VAL)\n+\n+IDREG_END(ID_PFR2_EL1)\n+\n+/* ID_DFR1_EL1 */\n+IDREG_START(ID_DFR1_EL1)\n+IDREG_FIELD_START(ID_DFR1, VAL, 0, 64, EXACT, 0 )\n+IDREG_FIELD_END(ID_DFR1, VAL)\n+\n+IDREG_END(ID_DFR1_EL1)\n+\n+/* MVFR0_EL1 */\n+IDREG_START(MVFR0_EL1)\n+IDREG_FIELD_START(MVFR0, VAL, 0, 64, EXACT, 0)\n+IDREG_FIELD_END(MVFR0, VAL)\n+\n+IDREG_END(MVFR0_EL1)\n+\n+/* MVFR1_EL1 */\n+IDREG_START(MVFR1_EL1)\n+IDREG_FIELD_START(MVFR1, VAL, 0, 64, EXACT, 0 )\n+IDREG_FIELD_END(MVFR1, VAL)\n+\n+IDREG_END(MVFR1_EL1)\n+\n+/* MVFR2_EL1 */\n+IDREG_START(MVFR2_EL1)\n+IDREG_FIELD_START(MVFR2, VAL, 0, 64, EXACT, 0)\n+IDREG_FIELD_END(MVFR2, VAL)\n+\n+IDREG_END(MVFR2_EL1)\n", "prefixes": [ "RFC", "v1", "02/13" ] }