Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.1/patches/2237934/?format=api
{ "id": 2237934, "url": "http://patchwork.ozlabs.org/api/1.1/patches/2237934/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260513163356.3033159-10-shaju.abraham@nutanix.com/", "project": { "id": 14, "url": "http://patchwork.ozlabs.org/api/1.1/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": "" }, "msgid": "<20260513163356.3033159-10-shaju.abraham@nutanix.com>", "date": "2026-05-13T16:33:52", "name": "[RFC,v1,09/13] target/arm: named_cpu_model: Add ID register field helper functions", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "a385dd12cece5373fb092858c6115a53c245db2f", "submitter": { "id": 77003, "url": "http://patchwork.ozlabs.org/api/1.1/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-10-shaju.abraham@nutanix.com/mbox/", "series": [ { "id": 504187, "url": "http://patchwork.ozlabs.org/api/1.1/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/2237934/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2237934/checks/", "tags": {}, "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=nsgOF7ij;\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=JPnnpnFp;\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 4gFzbB5tNcz1yLT\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 14 May 2026 02:35:18 +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 1wNCXs-0003M1-FR; Wed, 13 May 2026 12:34:52 -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 1wNCXh-0003K0-DB; Wed, 13 May 2026 12:34:42 -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 1wNCXe-0000hf-KG; Wed, 13 May 2026 12:34:40 -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 64DGLKTm4149398; Wed, 13 May 2026 09:34:28 -0700", "from sn4pr0501cu005.outbound.protection.outlook.com\n (mail-southcentralusazon11021113.outbound.protection.outlook.com\n [40.93.194.113])\n by mx0b-002c1b01.pphosted.com (PPS) with ESMTPS id 4e3nva675w-1\n (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT);\n Wed, 13 May 2026 09:34:28 -0700 (PDT)", "from PH7PR02MB10160.namprd02.prod.outlook.com\n (2603:10b6:510:2e7::19) by SJ0PR02MB8813.namprd02.prod.outlook.com\n (2603:10b6:a03:3d6::9) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Wed, 13 May\n 2026 16:34:24 +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:24 +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=L73Uw9Um5kU3p7Uv0nNRjoWBNgOAHdnlFRQeQAV21\n B8=; b=nsgOF7ijr7lYXrjTj52bgmbNWIGu61LqUHR08avOuLQHw36O4ITB2phbb\n wAkfIUmqwsnWIy/qR8SQBnI3mQO860wlXW3abVk37BMPegpw3/shT5cSFiJJjKkR\n DCaWTKGUqCk/cijBbHBCjAys09gvL3ohA6l6RSBUFbo9Gh6I39mD0r2FIz5N+X6p\n vDF7xj1ewjUqLWHavgqMNZsp5ZOY3Fymcx2j+9rROfyYxiyMvtdu0Z2yK5qPyHX2\n 6O29lRi9yVnafEh4t1Dxn5CXu/JoAtD2TlbcvdIftliRH+Q+/OQSAEy/HYXm0Xog\n 8Xv/oJXL/wMDFRkaQ7bFrv26suvFQ==", "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=L73Uw9Um5kU3p7Uv0nNRjoWBNgOAHdnlFRQeQAV21B8=;\n b=JPnnpnFpc05um9raApXpVUP45tVdF88ExSrwa3kwk8Mzf88PUY1Rmmv8HyDLtX8NBN0V+vZnYrkslKyvKLRgrGJdwQgusFdlri8EVPb293WvWHuhwJ2OKZCIpm6EzXnkmaYik4hr5xJfoNm3+8WaBapXKd+FkjY9kAXFCzRmSnOfLnC54Hp5eLQN9uNr2nWG4tlGaasi9xcQWNhehvAPwz5aMIZXNZClFro9XRRUmGIw960Qso9e8NRilgUzS20oMYeH7Spfyij1s9XmxNAxUlSlMwqPSoDqCvGMNbmqWe/pJBmxVfttQV3FocnZHcXAdFCNbSS0V9ypmOp8xikOcA==" ], "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=YtgCZCscsNN1wkx2deQBOJ7ptykn+COeXJC9FLZmDq5rdvZdSV52a18gBeajofGwv2f8J6TFFHBmE4t0vWNJcHCi1aWMFfqe+YhmMZGBn5GZOOGHR9E2kAArCYVvBvKMDBU6DJlX3a+/anZaaCF1cM6xpebQT0DsABg2rbtxKmkFT1oIt2c3QpbyjZ8sY1QB0ykcjOaC1mrZTCiIwHk6w6BXiZhRXAkWAyVxYlohOqtg7hW1JvPFy2KHPahyi8lWhBkSuaK2IiZv8yB31T9UcxPrlVBfTfFeTlcT8ZEqbfUREaN8MiEllsX8twaqp9sO+zYck77unuBf1G56bQNujQ==", "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=L73Uw9Um5kU3p7Uv0nNRjoWBNgOAHdnlFRQeQAV21B8=;\n b=kuX1Vqzt/NaxIk8LqTUu9wGvZ7gdbx8QIA8AgDCpEMTDzD9jVs42lbvkQS62GiTO/zHe7txWsQZvDXCC4SHIh1Ztv6/aF9a0d2hnf5Gt/VUQ3idlm2DkMdfJX2rPo1+nhwCwEFdOhGS7xvKHw6MUV/95w5IGmRaxkP7AKTRejzAXZisiHknREOvfv2akB3/RPONoIz4zgvO/Sut5QEYZcEoU/1QVHMynB9EzyMeBHZpSfCfBwXbGEfRgsirj21q4qBMHvv/rr7b2RdJ4hY0KXNs0Osnrn3Fvlb7Ou3eQpjAjZlzUumV0bssRhr3+vqDIjfr5OJOGLorvbG80YgyusQ==", "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 09/13] target/arm: named_cpu_model: Add ID register\n 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": "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_|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;\n ARA:13230040|7416014|376014|366016|1800799024|921020|18002099003|22082099003|56012099003;", "X-Microsoft-Antispam-Message-Info": "\n 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:;\n IPV:NLI; SFV:NSPM; H:PH7PR02MB10160.namprd02.prod.outlook.com; PTR:;\n CAT:NONE;\n SFS:(13230040)(7416014)(376014)(366016)(1800799024)(921020)(18002099003)(22082099003)(56012099003);\n DIR:OUT; SFP:1102;", "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1", "X-MS-Exchange-AntiSpam-MessageData-0": "\n +XG3eIn/eJvBpXE0Lk5eCPLyEhTN6/l5ySH5Buboc4SfG04rsXoxUPGZhpeKFnuhIqqJrEp/+21udFGD3HC62hsExmYfFeIpoYpp5CJOIU8RUte4N1ZWFGLdxnaRmxyGlE7czn/NmJrgsEFFObOJ9rsnk87Ij2ifLftRyLgDzv1M4xiAzxgeei1dfRHu7AbPPZ8O5Ra1WiE1N28tACOXyk6AxlA01n/7s96ssra7P8LDZ5Tni17scm0OpQx/fdJ68f1jGYmIoIXv1Vb1T7a6tlONHpB4AZmBVNlSQdul0t7B9mayyk4R42XtaevBb2NfFNlq09Bx9xtX8oJTQ5mGKzpW0orhd79bTFnbyCW+n8cQmvPSKiJ9VOW/GT+V+Jmq5/3Yd8xWeBGLJYQwA6Lxp/XndjOn7F2zBdGuv0IFZE1tUXVC1zHETCRmcjTTH/rM0+wk6RAl1W4Syoqv6MkweJb676ke0Hs274vNa/B4yYRWg30FtTu0msyfyvQ7tCfy8Lg/sztbTwUJpiDtjvXpC5dPhudMQuZvGJWpoKgV4VC+YjF4ro+sMO5ZHnbozsUv7kFBDAFqX5J2h1hVGiI1SVpRTbeEpKAe1XWt8d9ApMHYof7iKIhKZM43tfMW163UDhvRlKKO5ymL+U1pcUoyo5eRwpNx4G2sULnQ8/HVZfVTS5RykrX2up6xKSEiH2+cXjXBaDis7CdUz4rH7YOolLAFCTPzwvY2UxG9CC3DWC36/reABXhTdtnkuvrXKVrD0p/RloAccRzyccj+NxZbSRWEF0as1bDsrPNv9Vo50qkj7YhtvpvGUja/7Fd8XTvHP26IZ+4SW7dd35RcdZxdewVjc7p8yVonNpMfPJoF8hZ/4QDsu+7mGQJGCzSNqHBtifDkZkvEVwImtcWB/UszMDgfSLFSr1LjgWki422B6PKo8GDGbqH1Dt56P952KDZZXsOF1EMH68B7nzf5yyyaB0raxpK3cPqEKJDzDkO2VBKmO6FBAtA0SgUBWDeOjNecYEJCvm9gAYR8kSrbVi3hzse1l/2stuxHxCKs2huxRSRWhaHXOH2tg8b3DOJJqbC/ZBMRxjUyyZFGfvprtwZwobmM193vA8C2g1VNWjjmuylsdVjbqm6b4/mv7dD8IRSpmx9qHhWzllbZ4SPYV0YMlXSVnZxQi9/yJkUgoUqFMLUJaKTcmp/agOANXO36bTAMJrBYRYlp9ayPvKR+nRiE7K7AQk75vkoxyy6+yeSWvdbIHnDubC5FmUvVXgM3HUxJydRSe9mELbUOb3UwciZTRF0Jl75jvhxXPExasX2N0exgBeDG+sQ7Xr1EcubjBEvc8b/WN181DbB7M4FagMX2V1Zaa2bbwmWziXibnLPPKOPu8XTrybV5c43S2YzOiY9RKnM9jegVOBnYDyu1se9lZQ74XBHt4VnpeJZmoYLrA/VAE7yBR36QlAVL36LrRIi8uXSEdGhp+F5sGbwFi0VBOAIGS7hJObcEZV400NtdzCM38YeakjTnFunG97f4j939eiMkGVQ09yZ4trqU+MYbXhZ9MMWCe9QubtFVBupJNmfREZFYXhUfO13cHwNcBjd5Gaf8xR291OmAXvCnMJoY6YuWGFEN/5esi4lfkDLMfFdufkCay79jgr3ngT4nm9ClZnfCIN9koPbOSMFIgVsv6JrOgc8ojO5oc8UxlG30ZxMorFjt0TJlcWxKcqCL/saoAF1U7dU/m5/N6/IsXmspHYU7BeBMjp3iolB0oqp6xd8=", "X-Exchange-RoutingPolicyChecked": "\n Qx+Xu6h/qVLeIgnHQu3U7/urxLi1fSGVbn93t7Hsng3JxY0qjtSEoV2YnqIe6seKed7wKsD2MCGuoEgoini7QRfePjiHrbXx+BrmlRECOtas/YpR0lYUOZzowtLJHsULRCyHyvnzICqOXRfXUDIX02urLk0LMbfQiurk4AZkyYcYdn6sY+IZNpV2mx3t628Hzuxlu7ArzfxkZd5IPBKuy9BrQ7w5wQkGuqWo/U4HjuA+x6ZRbUzSy9vTpUvJQCdYWGOgpZ7gAA2gp/SavROufgFSwC4NCMQf6dVAFc2RWl+UsKEa4oADY5CBfqx/h6EFCy4iKgm5aTdTzu+ZGsavvQ==", "X-OriginatorOrg": "nutanix.com", "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 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": "\n r3YqoGc0aElk85kWGYAqLDjrcWoVtXTdnbEznXQVuIjdXK5q8EkoZSTi39O+6pLxU2QS16/Gewtypmd3KR04HKgghaQVb6OQtAZpESWxfpg=", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "SJ0PR02MB8813", "X-Proofpoint-Spam-Details-Enc": "AW1haW4tMjYwNTEzMDE2OCBTYWx0ZWRfXwKofUIeW5V24\n 9AVNbEe0sJJ30vwzKfoa5dJuLbaXp6NqI8VkE2QwflTQSB3tIEZ/rYJBMvALO3mdFMRL3VGBKLz\n E4r04kmTvzukv6NYPw9UIjKvUaw0hRqAh2qYruEp+h3jWJUq687H27/Pp6aNjpnynFs/dGEAgXD\n 9HhoTIBf5PdUBqdKpMoJ19fHW3U4c5wgmpsffYZWvilZvzqw/HrUzrYLrUZnjszdgFt3fPZ5fqR\n FBVN3rbweJbOpzq05x1s9QQ26D3X1/BgWguuvmebc+f/RKELLgp72mmjuiA/pp9kXMGNjPSlSD5\n 9RrYzUen1Fe/rMqFuFxA08ChiKZ9j4mZAKcDbcAOt270BM59H4nUnSQ7m5izA4KVcDJzkhvP5rK\n tFVZczjdcBNXmLDBp+PcRJMtUupwUJULHi1sy+sM42AyE3F8ZpzR1rZGbawUGbylF4oPxHiEuS+\n qabsfzs9jZ5e7US2SsA==", "X-Authority-Analysis": "v=2.4 cv=evLvCIpX c=1 sm=1 tr=0 ts=6a04a814 cx=c_pps\n a=+jjOclGHkOGhuepu6R0Llw==: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=2magLiQhmqer7YsuebIA:9", "X-Proofpoint-ORIG-GUID": "1Bnqj1_J7JTUo6V-_3O9Ucp3V47LeyKw", "X-Proofpoint-GUID": "1Bnqj1_J7JTUo6V-_3O9Ucp3V47LeyKw", "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,\n 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 <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 helper functions to extract and set fields from the ID registers.\nThese include reading/writing individual fields, looking up architectural\nvalue names, and resetting ID registers to their default values.\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.c | 107 ++++++++++++++++++++++++++++++++++++++++\n target/arm/cpu-idregs.h | 9 ++++\n 2 files changed, 116 insertions(+)", "diff": "diff --git a/target/arm/cpu-idregs.c b/target/arm/cpu-idregs.c\nindex 8fced7d8d7..5ffdeb5f21 100644\n--- a/target/arm/cpu-idregs.c\n+++ b/target/arm/cpu-idregs.c\n@@ -122,3 +122,110 @@ const ArmIdRegFieldLoc arm_field_locs[ARM_FIELD__MAX] = {\n #undef IDREG_FIELD_START\n #undef IDREG_END\n #undef IDREG_START\n+\n+void arm_idreg_field_read(ARMCPU *cpu, ArmFieldIdx field, uint64_t *value)\n+{\n+ ARMIDRegisterIdx reg_idx = ARM_FIELD_REG(field);\n+ uint64_t reg_value = cpu->isar.idregs[reg_idx];\n+ uint32_t shift = ARM_FIELD_SHIFT(field);\n+ uint32_t length = ARM_FIELD_LENGTH(field);\n+\n+ *value = extract64(reg_value, shift, length);\n+}\n+\n+bool arm_idreg_field_write(ARMCPU *cpu, ArmFieldIdx field, uint64_t value,\n+ Error **errp)\n+{\n+ ARMIDRegisterIdx reg_idx = ARM_FIELD_REG(field);\n+ uint64_t reg_value = cpu->isar.idregs[reg_idx];\n+ uint32_t shift = ARM_FIELD_SHIFT(field);\n+ uint32_t length = ARM_FIELD_LENGTH(field);\n+ ArmIdReg *reg;\n+ ArmIdRegField *fdesc;\n+\n+ if (length < 64 && value > ((1ULL << length) - 1)) {\n+ reg = &arm_idregs[reg_idx];\n+ fdesc = ®->fields[ARM_FIELD_REG_FIELD(field)];\n+\n+ error_setg(errp, \"value %\" PRIu64 \" is too large for field %s.%s\",\n+ value, reg->name, fdesc->name);\n+ return false;\n+ }\n+\n+ cpu->isar.idregs[reg_idx] = deposit64(reg_value, shift, length, value);\n+ return true;\n+}\n+\n+static const ArmIdRegField *arm_get_field_desc(ArmFieldIdx field)\n+{\n+ ARMIDRegisterIdx reg_idx = ARM_FIELD_REG(field);\n+ uint16_t field_idx = ARM_FIELD_REG_FIELD(field);\n+ return &arm_idregs[reg_idx].fields[field_idx];\n+}\n+\n+const char *arm_arch_val_name(ArmFieldIdx field, uint64_t val)\n+{\n+ uint32_t i;\n+ const ArmIdRegField *f = arm_get_field_desc(field);\n+\n+ for (i = 0; i < f->arch_vals_count; i++) {\n+ if (f->arch_vals[i].value == val && f->arch_vals[i].name) {\n+ return f->arch_vals[i].name;\n+ }\n+ }\n+ return NULL;\n+}\n+\n+bool arm_arch_val_from_name(ArmFieldIdx field, const char *name,\n+ uint64_t *val)\n+{\n+ uint32_t i;\n+ ArmIdRegArchVal *av;\n+ const ArmIdRegField *f = arm_get_field_desc(field);\n+\n+ for (i = 0; i < f->arch_vals_count; i++) {\n+ av = &f->arch_vals[i];\n+\n+ if (av->name && g_ascii_strcasecmp(av->name, name) == 0) {\n+ *val = av->value;\n+ return true;\n+ }\n+ }\n+ return false;\n+}\n+\n+bool arm_field_is_idreg_any(ArmFieldIdx field)\n+{\n+ const ArmIdRegField *f = arm_get_field_desc(field);\n+\n+ return f->arch_vals_count == 1 &&\n+ f->arch_vals[0].value == 0xffffffffUL &&\n+ f->arch_vals[0].name == NULL;\n+}\n+\n+void arm_idregs_reset_to_defaults(ARMCPU *cpu)\n+{\n+ int i;\n+ uint32_t j;\n+ ArmIdReg *reg;\n+ ArmIdRegField *f;\n+ uint64_t val = 0;\n+\n+ for (i = 0; i < NUM_ID_IDX; i++) {\n+ reg = &arm_idregs[i];\n+\n+ if (!reg->name) {\n+ warn_report(\"target/arm: no field table for ID register slot \"\n+ \"%d; cpu->isar.idregs[%d] left at 0x%016\"\n+ PRIx64, i,\n+ i, cpu->isar.idregs[i]);\n+ continue;\n+ }\n+\n+ for (j = 0; j < reg->fields_count; j++) {\n+ f = ®->fields[j];\n+ val = deposit64(val, f->shift, f->length, f->default_val);\n+ }\n+ cpu->isar.idregs[i] = val;\n+ }\n+}\ndiff --git a/target/arm/cpu-idregs.h b/target/arm/cpu-idregs.h\nindex 4e568e877d..0127bc0a95 100644\n--- a/target/arm/cpu-idregs.h\n+++ b/target/arm/cpu-idregs.h\n@@ -119,4 +119,13 @@ extern const ArmIdRegFieldLoc arm_field_locs[ARM_FIELD__MAX];\n #define ARM_FIELD_IDX(reg, field) ARM_FIELD_##reg##_##field\n \n extern ArmIdReg arm_idregs[NUM_ID_IDX];\n+\n+void arm_idreg_field_read(ARMCPU *cpu, ArmFieldIdx field, uint64_t *value);\n+bool arm_idreg_field_write(ARMCPU *cpu, ArmFieldIdx field,\n+ uint64_t value, Error **errp);\n+const char *arm_arch_val_name(ArmFieldIdx field, uint64_t val);\n+bool arm_arch_val_from_name(ArmFieldIdx field, const char *name,\n+ uint64_t *val);\n+bool arm_field_is_idreg_any(ArmFieldIdx field);\n+void arm_idregs_reset_to_defaults(ARMCPU *cpu);\n #endif /* CPU_IDREGS_H */\n", "prefixes": [ "RFC", "v1", "09/13" ] }