From nobody Sat May 30 18:36:26 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=foss.st.com); dmarc=pass(p=none dis=none) header.from=foss.st.com ARC-Seal: i=2; a=rsa-sha256; t=1779121045; cv=pass; d=zohomail.com; s=zohoarc; b=ibqW24hPT2bXiVNv6Z6gz5baUC3eUti0ZkhjmUk6WG/AstwMhZGbaxL6530jfoUxTpBk46aFnMbVwtjrYSTtr0siHV5DS0sUyo94IEpWCJPuWNTHzK1P4zQucbcYmn/VBIN9OK48EmPzz7IWZ++pOytHvY5olfAJv4XaEFxbzQw= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779121045; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=+bjlG9gzxWevazCUMGmFwkWjGmHaToEazOwrHxf8SuA=; b=XEAnQvc3BeC9lVxj+FuhxncOSc1aUO0RDe56jEHxPa9Q+3zEaP4Gb9F80HmGqh16NFD3NWoSZCZmakavPJpXBsrQsbeVXVsvTLkQBjOYgmjYXGF+LgOmYV5Q2HmSZgxXbqT45rl7TRRuFb4JTVpW5gj03uIK6QMeNQRgFQKQ5PA= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=foss.st.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1779121045317940.4058698297382; Mon, 18 May 2026 09:17:25 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wP0eH-0004WG-QK; Mon, 18 May 2026 12:16:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wP0do-0004Df-2u; Mon, 18 May 2026 12:16:28 -0400 Received: from mail-westeuropeazlp170110003.outbound.protection.outlook.com ([2a01:111:f403:c201::3] helo=AS8PR04CU009.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wP0dl-0004a7-EA; Mon, 18 May 2026 12:16:27 -0400 Received: from DU2PR04CA0081.eurprd04.prod.outlook.com (2603:10a6:10:232::26) by PA1PR10MB9711.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:102:56b::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.23; Mon, 18 May 2026 16:16:18 +0000 Received: from DU6PEPF00009523.eurprd02.prod.outlook.com (2603:10a6:10:232:cafe::7a) by DU2PR04CA0081.outlook.office365.com (2603:10a6:10:232::26) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.23 via Frontend Transport; Mon, 18 May 2026 16:16:18 +0000 Received: from smtpO365.st.com (164.130.1.59) by DU6PEPF00009523.mail.protection.outlook.com (10.167.8.4) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.11 via Frontend Transport; Mon, 18 May 2026 16:16:17 +0000 Received: from STKDAG1NODE2.st.com (10.75.128.133) by smtpo365.st.com (10.250.44.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.35; Mon, 18 May 2026 18:20:09 +0200 Received: from jkgcxl0012.jkg.st.com (10.74.22.122) by STKDAG1NODE2.st.com (10.75.128.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.35; Mon, 18 May 2026 18:16:16 +0200 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=JHccQ6lG0tm4O4HammxOT36FkwDQRAIm2ZGLgJg1iui57QtvphAktZGrYDLd8C/zdr3mZH72VEVOzxIx+RepqQc2UKUtEah44nIz/9KXIMgSQaS99vbimnocNwQkmHWvsmDUCggQXWEIVsimpE7Q0BqUmedxm/IAF+M+sktzWPstOmPzfR4rpAF1bmlVzkcVGNvNRg396MaC8hE+pVI9DCxUNCjTDFZkmo7jvarqrnJKvP5GycFlMz0Le16/IfWuvPQ1nine0KS1l3iQ9j0lKokk2IVCwCFFaN9Cs8z5s5qWSbk4SlTzeVbK1hslMAjC5/yAN2djjFnSH/C/5uk19Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=+bjlG9gzxWevazCUMGmFwkWjGmHaToEazOwrHxf8SuA=; b=GjTN/PGDLPnewwwfDsqm0OnJLc37UTxrCpJs3CWTOL9EFkMJLbtUDf2Jx2KluiseyE/dsISFEKFcqTuJ9sD79xHE6sqXVg1jUn7slbXAlGuqHuIlj2PaFiHYc0tzMTjf7sOMONizOI1HswJHO45ufon60ozZco5zQjdWoVS6Yh20K+HIfVvEc59vZNSZYsg/0BMkehl0wdxifA2/lU8gbCCaBjQR/Yvdl+zu5rtb0Fm2ClvLCnQ5QZg4IbLbpKO4YQL5HeDoqcv9cfU1QccjU7tgmAIk+SbwQNfPwE44U4duYzWOJtHPj5PHyS7L/mP0iLv9JE8GjkQScazXESFd3Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 164.130.1.59) smtp.rcpttodomain=nongnu.org smtp.mailfrom=foss.st.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=foss.st.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foss.st.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+bjlG9gzxWevazCUMGmFwkWjGmHaToEazOwrHxf8SuA=; b=Hrdx5HO40DzYRvdxBdFPzjrJABDAtQJA+NZY6JuBX99YNX+CsWAkMx/aK5NJ2md8DdnqutEOzJEstYIS8ZgAVFKJ1v60C5tYmv2GiT7UenCzb6wQjvPIk4AoQNISj6voQpkOqeQUSb3fKYBfNOuAg66vLALLbCRE0f/oTJ8Y1CHN9gsmy5fIszXeIVJNqYEAyNvVSVRrAYb9KMbqWGa/xpnLl2T9FWEPNMmJbRSQWgbNtZt3UOs72V9B3Elb5JepZ1ykGpgicqBMp+0Sq6l+9vTWFZ7RcdiMDf6i8f8mHerHAc5ysY8Zucduy4QooIPPBFoskiLVvi97B2eyXVBrOw== X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 164.130.1.59) smtp.mailfrom=foss.st.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=foss.st.com; Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: Fail (protection.outlook.com: domain of foss.st.com does not designate 164.130.1.59 as permitted sender) receiver=protection.outlook.com; client-ip=164.130.1.59; helo=smtpO365.st.com; From: =?utf-8?q?Torbj=C3=B6rn_SVENSSON?= Date: Mon, 18 May 2026 18:13:59 +0200 Subject: [PATCH 1/3] target/arm/tcg: define cortex-m85 cpu MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20260518-pr-pacbti-v1-1-8932a885b03d@foss.st.com> References: <20260518-pr-pacbti-v1-0-8932a885b03d@foss.st.com> In-Reply-To: <20260518-pr-pacbti-v1-0-8932a885b03d@foss.st.com> To: CC: Peter Maydell , , =?utf-8?q?Torbj=C3=B6rn_SVENSSON?= X-Mailer: b4 0.13.0 X-Originating-IP: [10.74.22.122] X-ClientProxiedBy: ENXCAS1NODE2.st.com (10.75.128.138) To STKDAG1NODE2.st.com (10.75.128.133) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU6PEPF00009523:EE_|PA1PR10MB9711:EE_ X-MS-Office365-Filtering-Correlation-Id: 2ef81e4d-8244-4d76-7ce7-08deb4f8ca9a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|82310400026|376014|42112799006|36860700016|18002099003|22082099003|56012099003|11063799003; X-Microsoft-Antispam-Message-Info: ReGyxlIeaXpeUlRP5ts4zjH5vMF5NTyUw4i+Pvx8eD271o8krg1F7/onGEWNHwRrL4CqwOn0lVfQoeTd5GMs1aYMcrTbB2noVdjTBpqDTli6Z3cVxDxUwgzLDA3J1LHDELH7WlnieylHGdnIGRs+mCBTokhuS8sorsd/VCPYArRP6IUNwjCiiPFNWSj9cLqMNRN70MgcNUeHXniKPiZtbMy+6K5UVLgipTN9QKKw0gFsQxdrTcoa0IUXykEug1VI5KeYYF0mM3pfxFmDE/5oH4ZxinMgt4or9GLCLgHLoPtr3uHtafBjFiVWVhRXoveOZkWXxZzJEWfw2RguZNl1QOasJC8tLAlPZX1utf6Bd4+EJS29yhtN4DmakgHkkDTaQapO7dCM1Igv++VuPai4WESHwT2So2uPU4FoDEzI3EaI3lbwcyqQa0ftvvb64wJD/feZlW/9R1wp5ScrlXPuzlSysso8IrdsaOiWoRDjUZNyF24Wp+9HxzMa1mItJsZln0DAQTTvsJyNJCrx9bkjoC1U+cr4V4+itx6iDBVs+9+Jgi5jmdmBVMBdlFRjqEZmvAcJeN2eIgzISqNrYMrvBoONFdfl177mbLqHkwvObKPoUZmUmXQ7O76cdJ5ZuFzdDmCHMSSkYmGLTx713Y++mIFrU4UX/GXF+1jPGHp4VV2J3esUwU55kQLgZP2SuAYiAFFOyap0Q0HGnlpbm6lRbJupoLkF5DyCRKeDnFJKqig= X-Forefront-Antispam-Report: CIP:164.130.1.59; CTRY:IT; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:smtpO365.st.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(1800799024)(82310400026)(376014)(42112799006)(36860700016)(18002099003)(22082099003)(56012099003)(11063799003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ljiXUSVVZCV4m3udEI3Op0kQifJv5paBYEDCNMjnw2xhHWxIDfexQKxg8VqU615vS6oqDXssDVaML7qdWrpDJ4rYLt4OQ7/ua9VRXE22r9zdmu5jW2+YXjdPiUFjTzo6BpPL+UHLVbe+lcFpgpkoZXvMO5Hsv824p/preVnBSBh/nv+R3h/Iy/dlzhc4s0dkW0s+9mRUmSpKryxZbjZWrtHm1cXc8I3OCTqP4ugMYaCkhgCuQhZt/dXpRR5BmJplSDpegOqglkNSob3KujO0VjDqI000IzjDVoD2t+/ebnaaypCaiNDOZxHVPXgk1PD2WijnCOz/lYVne/FwjtMLQBEpEjcnVahfYWTOHNqP+HONrsibnnc/Hv7gY8w/1mSWUTs3FhFeHr3p8PEbp/8BIT5oUnZq1Otb5rbNahEVgRtGLX3Aq8E/q0sMKc4QhE9i X-OriginatorOrg: foss.st.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 May 2026 16:16:17.6005 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2ef81e4d-8244-4d76-7ce7-08deb4f8ca9a X-MS-Exchange-CrossTenant-Id: 75e027c9-20d5-47d5-b82f-77d7cd041e8f X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=75e027c9-20d5-47d5-b82f-77d7cd041e8f; Ip=[164.130.1.59]; Helo=[smtpO365.st.com] X-MS-Exchange-CrossTenant-AuthSource: DU6PEPF00009523.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA1PR10MB9711 Received-SPF: pass client-ip=2a01:111:f403:c201::3; envelope-from=torbjorn.svensson@foss.st.com; helo=AS8PR04CU009.outbound.protection.outlook.com X-Spam_score_int: -19 X-Spam_score: -2.0 X-Spam_bar: -- X-Spam_report: (-2.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @foss.st.com) X-ZM-MESSAGEID: 1779121045694158500 Signed-off-by: Torbj=C3=B6rn SVENSSON --- target/arm/tcg/cpu-v7m.c | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/target/arm/tcg/cpu-v7m.c b/target/arm/tcg/cpu-v7m.c index dc249ce1f1..5cfda232cd 100644 --- a/target/arm/tcg/cpu-v7m.c +++ b/target/arm/tcg/cpu-v7m.c @@ -237,6 +237,44 @@ static void cortex_m55_initfn(Object *obj) cpu->ctr =3D 0x8303c003; } =20 +static void cortex_m85_initfn(Object *obj) +{ + ARMCPU *cpu =3D ARM_CPU(obj); + ARMISARegisters *isar =3D &cpu->isar; + + set_feature(&cpu->env, ARM_FEATURE_V8); + set_feature(&cpu->env, ARM_FEATURE_V8_1M); + set_feature(&cpu->env, ARM_FEATURE_M); + set_feature(&cpu->env, ARM_FEATURE_M_MAIN); + set_feature(&cpu->env, ARM_FEATURE_M_SECURITY); + set_feature(&cpu->env, ARM_FEATURE_THUMB_DSP); + cpu->midr =3D 0x411fd230; /* r1p0 */ + cpu->revidr =3D 0; + cpu->pmsav7_dregion =3D 16; + cpu->sau_sregion =3D 8; + /* These are the MVFR* values for the FPU + full MVE configuration */ + cpu->isar.mvfr0 =3D 0x10110221; + cpu->isar.mvfr1 =3D 0x12100211; + cpu->isar.mvfr2 =3D 0x00000040; + SET_IDREG(isar, ID_PFR0, 0x20000030); + SET_IDREG(isar, ID_PFR1, 0x00000230); + SET_IDREG(isar, ID_DFR0, 0x10200000); + SET_IDREG(isar, ID_AFR0, 0x00000000); + SET_IDREG(isar, ID_MMFR0, 0x00111040); + SET_IDREG(isar, ID_MMFR1, 0x00000000); + SET_IDREG(isar, ID_MMFR2, 0x01000000); + SET_IDREG(isar, ID_MMFR3, 0x00000011); + SET_IDREG(isar, ID_ISAR0, 0x01103110); + SET_IDREG(isar, ID_ISAR1, 0x02212000); + SET_IDREG(isar, ID_ISAR2, 0x20232232); + SET_IDREG(isar, ID_ISAR3, 0x01111131); + SET_IDREG(isar, ID_ISAR4, 0x01310132); + SET_IDREG(isar, ID_ISAR5, 0x00000000); + SET_IDREG(isar, ID_ISAR6, 0x00000000); + SET_IDREG(isar, CLIDR, 0x00000000); /* caches not implemented */ + cpu->ctr =3D 0x8303c003; +} + static const TCGCPUOps arm_v7m_tcg_ops =3D { /* ARM processors have a weak memory model */ .guest_default_memory_order =3D 0, @@ -290,6 +328,8 @@ static const ARMCPUInfo arm_v7m_cpus[] =3D { .class_init =3D arm_v7m_class_init }, { .name =3D "cortex-m55", .initfn =3D cortex_m55_initfn, .class_init =3D arm_v7m_class_init }, + { .name =3D "cortex-m85", .initfn =3D cortex_m85_initfn, + .class_init =3D arm_v7m_class_init }, }; =20 static void arm_v7m_cpu_register_types(void) --=20 2.43.0 From nobody Sat May 30 18:36:26 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=foss.st.com); dmarc=pass(p=none dis=none) header.from=foss.st.com ARC-Seal: i=2; a=rsa-sha256; t=1779121065; cv=pass; d=zohomail.com; s=zohoarc; b=O8e4TFcVoP7NH0OQZEGATgvD54fA5pM4UG3WxmXdCVUPMjx1vOL+OWLdeCbL+qzHID1gtKE+h2iD17rPHWt3oumXj6ATVoj6l37ZJo/w+Bb3yNNu+WHt3j3K8xE00klrR27OeAnwUurVfsDvyTCGtaPfRZ3pICt8m9HH5P+34no= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779121065; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=0sBrf9tfSTic6B9MKDePQCZpmydbauzHAxqLb6NtU0Y=; b=MpPnXWjM04j8YHlKe5X3e0UCQXu+YbmdDM5APCc+7JPFvmgJHAUrMYekMy9kNGaQsOf5Jpa98U9U1E8WUe9GljcTx0cSD3Ed8g1bVisNH6dqn6qmE1n8gYsZCGQ5h/yRW8QxcidEeCJPFoPmsmg9bNwR3WQFq3ANv5f2l81L09c= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=foss.st.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1779121065452158.29945070960605; Mon, 18 May 2026 09:17:45 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wP0eI-0004Yq-NI; Mon, 18 May 2026 12:16:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wP0dp-0004Ht-T2; Mon, 18 May 2026 12:16:39 -0400 Received: from mail-westeuropeazlp170130006.outbound.protection.outlook.com ([2a01:111:f403:c201::6] helo=AM0PR02CU008.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wP0do-0004aM-4q; Mon, 18 May 2026 12:16:29 -0400 Received: from AS4P190CA0032.EURP190.PROD.OUTLOOK.COM (2603:10a6:20b:5d1::9) by AMBPR10MB9753.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:76c::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.23; Mon, 18 May 2026 16:16:17 +0000 Received: from AM2PEPF0001C712.eurprd05.prod.outlook.com (2603:10a6:20b:5d1:cafe::3b) by AS4P190CA0032.outlook.office365.com (2603:10a6:20b:5d1::9) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.23 via Frontend Transport; Mon, 18 May 2026 16:16:17 +0000 Received: from smtpO365.st.com (164.130.1.60) by AM2PEPF0001C712.mail.protection.outlook.com (10.167.16.182) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.11 via Frontend Transport; Mon, 18 May 2026 16:16:17 +0000 Received: from STKDAG1NODE2.st.com (10.75.128.133) by smtpO365.st.com (10.250.44.72) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.35; Mon, 18 May 2026 18:19:46 +0200 Received: from jkgcxl0012.jkg.st.com (10.74.22.122) by STKDAG1NODE2.st.com (10.75.128.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.35; Mon, 18 May 2026 18:16:17 +0200 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=pqeMVxOIWeEP4ApFAhDpFQIIIfyrV7PJ55RV3L8XJXDZViYMMje9T1hjbMd+u57277nJx49pTXix40/z2jiMfxPUNTfIdeKP0Xr1E6+7bbwAMwUMmQqfocUB2CmUDo7mTOPCIOOkC+K+XmA+M20S2iTqv9QYf57jApbwPCJpJfS8RM3bFZmFduizJwufVgM2dMOhcNd4LxMl9cUwk46X9i+UeGu0YZgKW/SH7DoWcTj1TiAT/Eg2oLveP7aUpx1yG6jemZFtbONcU26VuxZBuNQEc4vA6d8LTn/0nc9gpqqhaD9svHH2oPuhAXhPko1RrfMyE2rET0bNmgp5nU1pcA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=0sBrf9tfSTic6B9MKDePQCZpmydbauzHAxqLb6NtU0Y=; b=eljuBcAcClRqVBgDZb/ph0IoqHtixzoPXdB8pd2xot2RfRWEleoA8RFsE/4sH2Lj40ulpt3CXTrYM66w0GKnrFcR+jPYKgxnSSW0qCoPaSxqAZSBBt5nGQ5RIb/iCzOd3gAIe/15+ZZWNvq9o2eQh6Hurszj4sUkQNsA49sV5c0DSRKpOwOWQJbyjtUag7ZEuEKSzYzB1kWWF/2+kw17ra2NGfl6zFZAsEXL/HgA17I005aomN609VImdkQTpoVUstBcWZeCGG8m8O1x9+Z6xj45dyrKLaRFTon4ayub2RjmkVIGmEeaLZltvv4sPqnXC44jMcDqe0JuGfdflnEmnQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 164.130.1.60) smtp.rcpttodomain=nongnu.org smtp.mailfrom=foss.st.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=foss.st.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foss.st.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0sBrf9tfSTic6B9MKDePQCZpmydbauzHAxqLb6NtU0Y=; b=WcY8AujX32MIIQkMo/Y8Jxc+OyrQNjUvyj/I0bAiii85W6Xk63bkh5IR4+tKh0CvKbbaFjj/+Pl+D43RTjYgiRw5FcSxPoMVZARduiVzMo/gUDKI5vlAmY8HZ2wGaK/k9Kv8/HmIAigRenOJBLoUZih4+CXYmB/3KwtIDJ2hGPDkqt3Uwek5NcA22fWY8yGrXbm6l2JIeCVGJ4XBw5QMTO24mYuY+LdXuX9fnJEopuQcAU4Plyx9RweriM259kjK5zlRRF6FoAnAuLv46j/BxYtuT+zNwi2oeiCsNS7XX6TUaLzvi2amLbe/mNIIDxXkI8cH8lg+Kz3jTyudLSbYNQ== X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 164.130.1.60) smtp.mailfrom=foss.st.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=foss.st.com; Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: Fail (protection.outlook.com: domain of foss.st.com does not designate 164.130.1.60 as permitted sender) receiver=protection.outlook.com; client-ip=164.130.1.60; helo=smtpO365.st.com; From: =?utf-8?q?Torbj=C3=B6rn_SVENSSON?= Date: Mon, 18 May 2026 18:14:00 +0200 Subject: [PATCH 2/3] target/arm/tcg: add PAC related instructions MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20260518-pr-pacbti-v1-2-8932a885b03d@foss.st.com> References: <20260518-pr-pacbti-v1-0-8932a885b03d@foss.st.com> In-Reply-To: <20260518-pr-pacbti-v1-0-8932a885b03d@foss.st.com> To: CC: Peter Maydell , , =?utf-8?q?Torbj=C3=B6rn_SVENSSON?= X-Mailer: b4 0.13.0 X-Originating-IP: [10.74.22.122] X-ClientProxiedBy: ENXCAS1NODE2.st.com (10.75.128.138) To STKDAG1NODE2.st.com (10.75.128.133) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM2PEPF0001C712:EE_|AMBPR10MB9753:EE_ X-MS-Office365-Filtering-Correlation-Id: a52b9b95-73bd-4d8f-124b-08deb4f8caac X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|42112799006|82310400026|376014|36860700016|1800799024|11063799003|22082099003|56012099003|18002099003|3023799003; X-Microsoft-Antispam-Message-Info: jtlM25X/QvUhxAX6SkzwS4aVo1yXG6otZwEepm9Sb6GYyY1u8kKPHlyTlqiwGFIrsTNoDBELyzsuJ0otXO9yqGTcVYgYfx0kHGI2189z377UjJByv96ZpKB7Ntbd5/u7y2YkC8e85Bk26iwXSReEmjozaOrB7qpLFilhfqUNglLhCwc99JYNj9Y1Tb+gpmW2WB33x61mmTyw7NMswZxHeVnoAksESeOvEQ0HutT6n9f/gIz0J+uzy9Sfy0mda+IraX94nRrMWVpKoYk+wgFJobwpoCSMblTNOK+I6ic+GBLPJQT3YVU4N5mhOvDFBIhElYsAfSRh3vFtFJHuSUJcuM+ho0KPrl33nnWQ9+rooX+Q20BOp2iRTeFDmDu/LcVJ9dyaWLsOVPL5Kc+Ty/cFTwkCHmEDprodgtOozhcVVuTl+cAMHBiZcrlU9DtY3wl5q1aS1nFfKd8fbYT+fOAJlnlW7178VVZXlaLpM7f5SqNgop7edC0aF1s8Li4MVybXq6+vQ+JxhYxeouHB3xwUba1rHxVm/nmsl5/QfECC7HJezFv43gO80wIi+VjQm1eCoX2daiSXLr/vSCFpv99pVdmpKq93p4rILkbZGbGt6DIjqqj1ko5L7TxB4MEcXbuRltytbOi9qB3CZL3KkBlDr0tsNMhkUiwcVojqQYZCNmIHndPz9IAdCz4naH7lIFhVdOukeLpDJMmvQt8conSpiqbe/pFqUGqpqzQ0Y9eoE/Y= X-Forefront-Antispam-Report: CIP:164.130.1.60; CTRY:IT; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:smtpO365.st.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(42112799006)(82310400026)(376014)(36860700016)(1800799024)(11063799003)(22082099003)(56012099003)(18002099003)(3023799003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: NAT3zO2iDbPHGAWVDkZQqGscfAY4gpDSF9a6Um3DK2oA+nHkIm7SaiNmvvkwvfT6v2EMH0ubzI4O+6z9J2J7NJhm2MUHKFQx/rv5mr5P9S3qoCT3+X5tk8NOKRBrWB37ws5KgGsGz58+Zk6FJPXiSK6S0gpx2zS+oLsY42Wsyjnt/Zc0nmh3/fyT5XhCCgeI//dra8/0ex3fBZF4EH3tgZQXQV/MGCqgRDsSO0hiK5mXdmuADQzzzSBuHOhgl6CcLOW+f4fRa977aOuHCmLVCCzOBL+U/hCGHsQkHOFTjYtpVGZ4eR6dU5zozeYDq7apZwPAZ2laAsTnJYwFV4PGnDsYluw+cmA30Yff5tWOXyBbmZ27I6pACfhZNI7/1XVh3QL3g9/mgSNhr1fQJigBhXiJStjfm2RYdmneHoiVdnh0YpopJT+wzTvF+8/+v8Me X-OriginatorOrg: foss.st.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 May 2026 16:16:17.7465 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a52b9b95-73bd-4d8f-124b-08deb4f8caac X-MS-Exchange-CrossTenant-Id: 75e027c9-20d5-47d5-b82f-77d7cd041e8f X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=75e027c9-20d5-47d5-b82f-77d7cd041e8f; Ip=[164.130.1.60]; Helo=[smtpO365.st.com] X-MS-Exchange-CrossTenant-AuthSource: AM2PEPF0001C712.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMBPR10MB9753 Received-SPF: pass client-ip=2a01:111:f403:c201::6; envelope-from=torbjorn.svensson@foss.st.com; helo=AM0PR02CU008.outbound.protection.outlook.com X-Spam_score_int: -19 X-Spam_score: -2.0 X-Spam_bar: -- X-Spam_report: (-2.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @foss.st.com) X-ZM-MESSAGEID: 1779121065977158500 This commit adds the pointer authentication instructions from the Arm v8.1-m PACBTI extension. While the instructions are properly recognized, they are all NOPs. Signed-off-by: Torbj=C3=B6rn SVENSSON --- target/arm/tcg/t32.decode | 21 +++++++++++++--- target/arm/tcg/translate.c | 62 ++++++++++++++++++++++++++++++++++++++++++= ++++ 2 files changed, 80 insertions(+), 3 deletions(-) diff --git a/target/arm/tcg/t32.decode b/target/arm/tcg/t32.decode index 49b8d0037e..a885eed101 100644 --- a/target/arm/tcg/t32.decode +++ b/target/arm/tcg/t32.decode @@ -263,6 +263,7 @@ BFCI 1111 0011 011 0 .... 0 ... .... ..0...= .. @bfi @s0_rnadm .... .... .... rn:4 ra:4 rd:4 .... rm:4 &s_rrrr s=3D0 @s0_rn0dm .... .... .... rn:4 .... rd:4 .... rm:4 &s_rrrr ra= =3D0 s=3D0 @rnadm .... .... .... rn:4 ra:4 rd:4 .... rm:4 &rrrr +@rna0m .... .... .... rn:4 ra:4 .... .... rm:4 &rrrr rd=3D0 @rn0dm .... .... .... rn:4 .... rd:4 .... rm:4 &rrrr ra=3D0 @rndm .... .... .... rn:4 .... rd:4 .... rm:4 &rrr @rdm .... .... .... .... .... rd:4 .... rm:4 &rr @@ -319,9 +320,18 @@ SMLALDX 1111 1011 1100 .... .... .... 1101 ..= .. @rnadm SMLSLD 1111 1011 1101 .... .... .... 1100 .... @rnadm SMLSLDX 1111 1011 1101 .... .... .... 1101 .... @rnadm =20 -SMMLA 1111 1011 0101 .... .... .... 0000 .... @rnadm -SMMLAR 1111 1011 0101 .... .... .... 0001 .... @rnadm -SMMLS 1111 1011 0110 .... .... .... 0000 .... @rnadm +{ + AUTG 1111 1011 0101 .... .... 1111 0000 .... @rna0m + SMMLA 1111 1011 0101 .... .... .... 0000 .... @rnadm +} +{ + BXAUT 1111 1011 0101 .... .... 1111 0001 .... @rna0m + SMMLAR 1111 1011 0101 .... .... .... 0001 .... @rnadm +} +{ + PACG 1111 1011 0110 .... 1111 .... 0000 .... @rndm + SMMLS 1111 1011 0110 .... .... .... 0000 .... @rnadm +} SMMLSR 1111 1011 0110 .... .... .... 0001 .... @rnadm =20 SDIV 1111 1011 1001 .... 1111 .... 1111 .... @rndm @@ -375,6 +385,11 @@ CLZ 1111 1010 1011 ---- 1111 .... 1000 ..= .. @rdm # SEVL 1111 0011 1010 1111 1000 0000 0000 0101 =20 ESB 1111 0011 1010 1111 1000 0000 0001 0000 + + # v8.1-m PACBTI extention + AUT 1111 0011 1010 1111 1000 0000 0010 1101 + PAC 1111 0011 1010 1111 1000 0000 0001 1101 + PACBTI 1111 0011 1010 1111 1000 0000 0000 1101 ] =20 # The canonical nop ends in 0000 0000, but the whole rest diff --git a/target/arm/tcg/translate.c b/target/arm/tcg/translate.c index c744b16345..ae1351ef03 100644 --- a/target/arm/tcg/translate.c +++ b/target/arm/tcg/translate.c @@ -5012,6 +5012,68 @@ static bool trans_SMMLSR(DisasContext *s, arg_rrrr *= a) return op_smmla(s, a, true, true); } =20 +static bool trans_PAC(DisasContext *s, arg_empty *a) +{ + if (!arm_dc_feature(s, ARM_FEATURE_V8_1M)) { + return false; + } + + /* Handle as if PACBTI is disabled. */ + return true; +} + +static bool trans_PACBTI(DisasContext *s, arg_empty *a) +{ + if (!arm_dc_feature(s, ARM_FEATURE_V8_1M)) { + return false; + } + + /* todo: reset EPSR.B to 0 */ + + /* Handle as if PACBTI is disabled. */ + return true; +} + +static bool trans_PACG(DisasContext *s, arg_rrr *a) +{ + if (!arm_dc_feature(s, ARM_FEATURE_V8_1M)) { + return false; + } + + /* Handle as if PACBTI is disabled. */ + return true; +} + +static bool trans_BXAUT(DisasContext *s, arg_rrrr *a) +{ + if (!arm_dc_feature(s, ARM_FEATURE_V8_1M)) { + return false; + } + + /* Handle as if PACBTI is disabled. */ + return true; +} + +static bool trans_AUT(DisasContext *s, arg_empty *a) +{ + if (!arm_dc_feature(s, ARM_FEATURE_V8_1M)) { + return false; + } + + /* Handle as if PACBTI is disabled. */ + return true; +} + +static bool trans_AUTG(DisasContext *s, arg_rrrr *a) +{ + if (!arm_dc_feature(s, ARM_FEATURE_V8_1M)) { + return false; + } + + /* Handle as if PACBTI is disabled. */ + return true; +} + static bool op_div(DisasContext *s, arg_rrr *a, bool u) { TCGv_i32 t1, t2; --=20 2.43.0 From nobody Sat May 30 18:36:26 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=foss.st.com); dmarc=pass(p=none dis=none) header.from=foss.st.com ARC-Seal: i=2; a=rsa-sha256; t=1779121042; cv=pass; d=zohomail.com; s=zohoarc; b=AYgUxoVazsDO94rlrOkV9f/SukULQU/DdhYbCQgHApOVg2LMIkp/UPE6bAWUy1YYAm7pVCJXoC7p5kIc5JgO+a6EKTmK75H4J7Lkd73UQETDqDgtW/e1Gms9PuzzRdcEDfznTYPgsO5PoeHH05uLT6nVX0YVSgGPo8gz6RMvFrY= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779121042; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=vm6v+LM/18oicffGB/KKcmXbo568/S/T7fOLdh8kbR8=; b=FY8OVAvQ8d2zu48gVFkvntq8JiltcQW8DMyKL5muBkZl7harIuWC/jnvD9S/Nb0w9Ynok+YpVt32ih1eAowY+2CrwBid8g0zRtne0B/p8/88PLDwqD66iCjp+5N5r6RMlD4QXHfl5qHVlckKvJhERA9IOQQEkLCdZWWjcrMnmXI= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=foss.st.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1779121042093273.63429863118074; Mon, 18 May 2026 09:17:22 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wP0eH-0004VD-M7; Mon, 18 May 2026 12:16:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wP0dp-0004Hu-T8; Mon, 18 May 2026 12:16:39 -0400 Received: from mail-westeuropeazlp170100001.outbound.protection.outlook.com ([2a01:111:f403:c201::1] helo=AM0PR83CU005.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wP0dm-0004cN-Ot; Mon, 18 May 2026 12:16:29 -0400 Received: from DU2PR04CA0070.eurprd04.prod.outlook.com (2603:10a6:10:232::15) by VI0PR10MB8665.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:800:23a::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.18; Mon, 18 May 2026 16:16:18 +0000 Received: from DU6PEPF00009523.eurprd02.prod.outlook.com (2603:10a6:10:232:cafe::95) by DU2PR04CA0070.outlook.office365.com (2603:10a6:10:232::15) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.23 via Frontend Transport; Mon, 18 May 2026 16:16:18 +0000 Received: from smtpO365.st.com (164.130.1.59) by DU6PEPF00009523.mail.protection.outlook.com (10.167.8.4) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.11 via Frontend Transport; Mon, 18 May 2026 16:16:18 +0000 Received: from STKDAG1NODE2.st.com (10.75.128.133) by smtpo365.st.com (10.250.44.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.35; Mon, 18 May 2026 18:20:10 +0200 Received: from jkgcxl0012.jkg.st.com (10.74.22.122) by STKDAG1NODE2.st.com (10.75.128.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.35; Mon, 18 May 2026 18:16:17 +0200 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=LLGuUWcXcM1SSZGbFXadOLYIkb1c+tN6VBJA7l1wfuG0PAxIao4vd1AEkMzbx/iiE+5w/+9U3f+tDlbK6hgwQRH59f90W2K2KFFVRy5ut+8JqG5L9huOIwSx85V/o8HLRfMMGBWlJl5LoH5ZhiJS59KgCxixBijbmo10FThAgSjqjXQLlOa6Y7ZTPQWsrTh/KCzjV5z9PZKVRAtT2a+bzUqM64/NMDtbUouJrjC8ITyxhX0/zwoeADhcset0seAu3Ssh2CXoJk1ZfEg7a+9XmbzyELTCVmHlI4vxKmJC6b+RcMShHpUuFz0WqP5dPZEwmesR7tjzJueuxsBmoD3QjQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=vm6v+LM/18oicffGB/KKcmXbo568/S/T7fOLdh8kbR8=; b=zC+0p+UwF5PlpIHRkpeRrXgA+EmIe9rbrNp3a1yofn21OZOW/m+1QRLACQh7cNe/qK0PpaUmpI8RJjcjx4LXCb0F39kuBcakvq/DiCwY1bNzdFUxNIPQIYm3o81ZBeCpBmm8h3FHrCjQuS0Fz6LtzSNNYGchyv/N2+oDhAvR4LUqA396Ekgcmy3VGqFqYuJi4hKUp6YYTaEWDTL9AD+ZB7Gu+Z48j9Yz7LvaF3Ws7qJwaxtsg5L2bUA0LCWG25uGkZJ+u0VWp6gnvNp/xzTbhkdYYppRpstargPg2T2isYJjME8N0O1XyAdN6rCZXzBVG1c4f3IFrV4/k6x6ZPfOKw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 164.130.1.59) smtp.rcpttodomain=nongnu.org smtp.mailfrom=foss.st.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=foss.st.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foss.st.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=vm6v+LM/18oicffGB/KKcmXbo568/S/T7fOLdh8kbR8=; b=cMkaHwGro3LD8OMIvPMhYcyi9G/hNHKVYFgbR7QnovyUP6O16Np7DlOeJ3jstHKZWRvCqLRwcojaHgDpzfSUimBSkB/lBmnnzsNvjnXxfV/oHcSrU1esPiw1r8nJiXurGkPvwVQXVWEWM0K/xIfGxXBbbPnKr8C0u9lx6O+9amZ3CtfJOk5o6/J9b4T7aVHKzikY7BmzzDUp/tSUmM211h3ROdIDYfoNd98nvUegzVi5MUy3DJI6l+dpH1Du2ctr/fw1s475nYkWtMe6NaD4yMak9PWt/TzGe2zMzksVvJlDgRQfieJr6ZH026/5QZLvv9XtiTbl1UA/9thG7gcD8Q== X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 164.130.1.59) smtp.mailfrom=foss.st.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=foss.st.com; Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: Fail (protection.outlook.com: domain of foss.st.com does not designate 164.130.1.59 as permitted sender) receiver=protection.outlook.com; client-ip=164.130.1.59; helo=smtpO365.st.com; From: =?utf-8?q?Torbj=C3=B6rn_SVENSSON?= Date: Mon, 18 May 2026 18:14:01 +0200 Subject: [PATCH 3/3] target/arm: implement v8.1-m PAC support MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20260518-pr-pacbti-v1-3-8932a885b03d@foss.st.com> References: <20260518-pr-pacbti-v1-0-8932a885b03d@foss.st.com> In-Reply-To: <20260518-pr-pacbti-v1-0-8932a885b03d@foss.st.com> To: CC: Peter Maydell , , =?utf-8?q?Torbj=C3=B6rn_SVENSSON?= X-Mailer: b4 0.13.0 X-Originating-IP: [10.74.22.122] X-ClientProxiedBy: ENXCAS1NODE2.st.com (10.75.128.138) To STKDAG1NODE2.st.com (10.75.128.133) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU6PEPF00009523:EE_|VI0PR10MB8665:EE_ X-MS-Office365-Filtering-Correlation-Id: 06e1b9d7-998f-4485-e871-08deb4f8cb0c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|376014|36860700016|1800799024|82310400026|42112799006|11063799003|3023799003|22082099003|18002099003|56012099003; X-Microsoft-Antispam-Message-Info: oBUCC3KrRjF9AvOS1aUICxsq3kjj5wHMfTS1RUASbkt0OY5/y9IuCTFziK/DZAetXw7tJgARl46OJnqwrz6cpzpovlrGG5IoPq+Q6NIpZRVqG3uG1yxEblG1XKVBD+skO8YG2cGHqCQezQMxvIErAIy9d7mU2vEUZkb/4Z1cP1CIiwxlWtvVSpARVlOlv0/FQ888TkzS81yckXmQ2Nx2oPhJ2Amgzkff09GnTwoflZx+5yCcx8qdNkZmN/pet2xl+skRPEYC5Zu6UW77s5hBjEFQz3eX5vIwAGPL3ECxsrde/eBO3OkGp57NGIOLFHQJuwJogveKI7w3sqzGcgvXiOi+kCid7N0fY1bh5qnQ22Xrrfc8LOTsAsst8zykrgTp0mTS6YGb2XLEyzygAtKEBJdJrIlSUhSFdCzZObYNp2gjT1qxu1sLPDchyyBfMhEyDQiwF3YuUuAk746SEJTy8Lqlyr6WMS9KGby4yA6LEsSlYSqk8crlDSnSlrDq6bF4L2nS34Fjg2nH/XPhMYMJBPGDZurcjVOPOie4gBi/XY6w/pmwSecKpt6iXaZ2HbfkrlpE8sUk3CF/1iabyhDDNRYkznlSCN61qLwlAzPUJRQBzLw66qpDXmefQWGinmLIuHcKwX9JMzxAZ5cS7CZ5XzUpZ/DeYRTkOQS/oMSCLPSlLj564hP1tsxCG9M+SvYpjkuEVJybxB97XrCMHH9kG4WUvf/Y9leppDJsvu/T1lk= X-Forefront-Antispam-Report: CIP:164.130.1.59; CTRY:IT; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:smtpO365.st.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(376014)(36860700016)(1800799024)(82310400026)(42112799006)(11063799003)(3023799003)(22082099003)(18002099003)(56012099003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 2djnJLosY2JjBDqeMlluR3sypP1Tre2zhk0ZmUZdDQSXweZpEQSzwMo2Oyi89B2JbWmqQTFnXU5mGne6pGCjvLC6V7Oit/zQiy7qhHD9PZcfxtL/IIY8P6AB20b/EmdY1F4Ca+xurfxHTJ8bgAiItkJbAkFNN7fIMA5dw3lji60ZC0weRR53QCiBUUHeYHJUbA7DQ+l3zNztMxR2PqaiHmqFejkQMZkP65F+h8k+cFxHQJrPbmAFNqHm9dXm05kzRQHvDolm17/EQC2kKbZzdYQ3QFAeP+JNmGosHgM9X5t1LVCtNpapfSkMe5ZyfXRNMzXomSALGdt6YbbaCdMnMt+yujlyfseAX83fVR8bkKNvyL9YpzoTE2qlelg7SHCaiXW43uWyIOBYwY1Z6yJADmDYB6QEw7oW1NQVftXcVpo8vmH3Q+A1f1W7ygdMeQuR X-OriginatorOrg: foss.st.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 May 2026 16:16:18.3627 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 06e1b9d7-998f-4485-e871-08deb4f8cb0c X-MS-Exchange-CrossTenant-Id: 75e027c9-20d5-47d5-b82f-77d7cd041e8f X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=75e027c9-20d5-47d5-b82f-77d7cd041e8f; Ip=[164.130.1.59]; Helo=[smtpO365.st.com] X-MS-Exchange-CrossTenant-AuthSource: DU6PEPF00009523.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR10MB8665 Received-SPF: pass client-ip=2a01:111:f403:c201::1; envelope-from=torbjorn.svensson@foss.st.com; helo=AM0PR83CU005.outbound.protection.outlook.com X-Spam_score_int: -19 X-Spam_score: -2.0 X-Spam_bar: -- X-Spam_report: (-2.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @foss.st.com) X-ZM-MESSAGEID: 1779121043909158500 The algorithm used for hashing is a simple XOR between the pointer and the modifier using the "implementation defined" scheme. Signed-off-by: Torbj=C3=B6rn SVENSSON --- target/arm/cpu-features.h | 6 +++ target/arm/internals.h | 2 + target/arm/tcg/cpu-v7m.c | 2 +- target/arm/tcg/m_helper.c | 17 ++++++++ target/arm/tcg/translate.c | 98 ++++++++++++++++++++++++++++++++++++++++--= ---- 5 files changed, 113 insertions(+), 12 deletions(-) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index 4e44245a8b..60bd7a0765 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -114,6 +114,7 @@ FIELD(ID_ISAR5, AES, 4, 4) FIELD(ID_ISAR5, SHA1, 8, 4) FIELD(ID_ISAR5, SHA2, 12, 4) FIELD(ID_ISAR5, CRC32, 16, 4) +FIELD(ID_ISAR5, PACBTI, 20, 4) FIELD(ID_ISAR5, RDM, 24, 4) FIELD(ID_ISAR5, VCMA, 28, 4) =20 @@ -583,6 +584,11 @@ static inline bool isar_feature_aa32_m_sec_state(const= ARMISARegisters *id) return FIELD_EX32_IDREG(id, ID_PFR1, SECURITY) >=3D 3; } =20 +static inline bool isar_feature_aa32_m_pacbti(const ARMISARegisters *id) +{ + return FIELD_EX32_IDREG(id, ID_ISAR5, PACBTI) !=3D 0; +} + static inline bool isar_feature_aa32_fp16_arith(const ARMISARegisters *id) { /* Sadly this is encoded differently for A-profile and M-profile */ diff --git a/target/arm/internals.h b/target/arm/internals.h index 00830b1724..cbb0a1d8fc 100644 --- a/target/arm/internals.h +++ b/target/arm/internals.h @@ -90,6 +90,8 @@ FIELD(V7M_CONTROL, NPRIV, 0, 1) FIELD(V7M_CONTROL, SPSEL, 1, 1) FIELD(V7M_CONTROL, FPCA, 2, 1) FIELD(V7M_CONTROL, SFPA, 3, 1) +FIELD(V7M_CONTROL, PAC_EN, 6, 1) +FIELD(V7M_CONTROL, UPAC_EN, 7, 1) =20 /* Bit definitions for v7M exception return payload */ FIELD(V7M_EXCRET, ES, 0, 1) diff --git a/target/arm/tcg/cpu-v7m.c b/target/arm/tcg/cpu-v7m.c index 5cfda232cd..3beb2b23fa 100644 --- a/target/arm/tcg/cpu-v7m.c +++ b/target/arm/tcg/cpu-v7m.c @@ -269,7 +269,7 @@ static void cortex_m85_initfn(Object *obj) SET_IDREG(isar, ID_ISAR2, 0x20232232); SET_IDREG(isar, ID_ISAR3, 0x01111131); SET_IDREG(isar, ID_ISAR4, 0x01310132); - SET_IDREG(isar, ID_ISAR5, 0x00000000); + SET_IDREG(isar, ID_ISAR5, 0x00200000); /* PACBTI=3Dimplementation defi= ned */ SET_IDREG(isar, ID_ISAR6, 0x00000000); SET_IDREG(isar, CLIDR, 0x00000000); /* caches not implemented */ cpu->ctr =3D 0x8303c003; diff --git a/target/arm/tcg/m_helper.c b/target/arm/tcg/m_helper.c index f2059ed8b0..1160fe8d87 100644 --- a/target/arm/tcg/m_helper.c +++ b/target/arm/tcg/m_helper.c @@ -2658,6 +2658,15 @@ void HELPER(v7m_msr)(CPUARMState *env, uint32_t mask= reg, uint32_t val) env->v7m.control[M_REG_S] &=3D ~R_V7M_CONTROL_FPCA_MASK; env->v7m.control[M_REG_S] |=3D val & R_V7M_CONTROL_FPCA_MA= SK; } + + /* Only update PAC_EN / UPAC_EN if PACBTI is implemented. */ + if (cpu_isar_feature(aa32_m_pacbti, env_archcpu(env))) { + uint32_t enable_mask =3D + R_V7M_CONTROL_PAC_EN_MASK | R_V7M_CONTROL_UPAC_EN_MASK; + env->v7m.control[M_REG_NS] &=3D ~enable_mask; + env->v7m.control[M_REG_NS] |=3D val & enable_mask; + } + return; case 0x98: /* SP_NS */ { @@ -2784,6 +2793,14 @@ void HELPER(v7m_msr)(CPUARMState *env, uint32_t mask= reg, uint32_t val) env->v7m.control[M_REG_S] |=3D val & R_V7M_CONTROL_FPCA_MA= SK; } } + + /* Only update PAC_EN / UPAC_EN if PACBTI is implemented. */ + if (cpu_isar_feature(aa32_m_pacbti, env_archcpu(env))) { + uint32_t enable_mask =3D + R_V7M_CONTROL_PAC_EN_MASK | R_V7M_CONTROL_UPAC_EN_MASK; + env->v7m.control[env->v7m.secure] &=3D ~enable_mask; + env->v7m.control[env->v7m.secure] |=3D val & enable_mask; + } break; default: bad_reg: diff --git a/target/arm/tcg/translate.c b/target/arm/tcg/translate.c index ae1351ef03..e13119b33b 100644 --- a/target/arm/tcg/translate.c +++ b/target/arm/tcg/translate.c @@ -5012,26 +5012,80 @@ static bool trans_SMMLSR(DisasContext *s, arg_rrrr = *a) return op_smmla(s, a, true, true); } =20 +static void arm_gen_test_pac_enabled(DisasContext *s, TCGLabel *label) +{ + int bank =3D s->v8m_secure ? M_REG_S : M_REG_NS; + int mask =3D IS_USER(s) + ? R_V7M_CONTROL_UPAC_EN_MASK + : R_V7M_CONTROL_PAC_EN_MASK; + TCGv_i32 temp =3D load_cpu_field(v7m.control[bank]); + tcg_gen_brcondi_i32(TCG_COND_TSTEQ, temp, mask, label); +} + +static TCGv_i32 op_create_pac_hash(DisasContext *s, int rn, int rm) +{ + TCGv_i32 res =3D tcg_temp_new_i32(); + TCGv_i64 ext_ptr =3D tcg_temp_new_i64(); + TCGv_i64 modifier =3D tcg_temp_new_i64(); + TCGv_i64 temp =3D tcg_temp_new_i64(); + + tcg_gen_extu_i32_i64(ext_ptr, load_reg(s, rn)); + tcg_gen_extu_i32_i64(modifier, load_reg(s, rm)); + + /* + * This a very simple implementation that just xor the two + * inputs. The goal is not to replicate any of the predefined + * hashing functions, but use a simple check. + */ + tcg_gen_xor_i64(temp, ext_ptr, modifier); + + /* Return the lower word */ + tcg_gen_extrl_i64_i32(res, temp); + return res; +} + +static bool op_pacg(DisasContext *s, arg_rrr *a) +{ + TCGv_i32 temp; + TCGLabel *done =3D gen_new_label(); + + arm_gen_test_pac_enabled(s, done); + + temp =3D op_create_pac_hash(s, a->rn, a->rm); + store_reg(s, a->rd, temp); + + gen_set_label(done); + return true; +} + static bool trans_PAC(DisasContext *s, arg_empty *a) { + arg_rrr arg; + if (!arm_dc_feature(s, ARM_FEATURE_V8_1M)) { return false; } =20 - /* Handle as if PACBTI is disabled. */ - return true; + arg.rd =3D 0xc; /* R12 */ + arg.rn =3D 0xe; /* LR */ + arg.rm =3D 0xd; /* SP */ + return op_pacg(s, &arg); } =20 static bool trans_PACBTI(DisasContext *s, arg_empty *a) { + arg_rrr arg; + if (!arm_dc_feature(s, ARM_FEATURE_V8_1M)) { return false; } =20 /* todo: reset EPSR.B to 0 */ =20 - /* Handle as if PACBTI is disabled. */ - return true; + arg.rd =3D 0xc; /* R12 */ + arg.rn =3D 0xe; /* LR */ + arg.rm =3D 0xd; /* SP */ + return op_pacg(s, &arg); } =20 static bool trans_PACG(DisasContext *s, arg_rrr *a) @@ -5040,7 +5094,26 @@ static bool trans_PACG(DisasContext *s, arg_rrr *a) return false; } =20 - /* Handle as if PACBTI is disabled. */ + return op_pacg(s, a); +} + +static bool op_autg(DisasContext *s, arg_rrrr *a, int set_pc_from_reg) +{ + TCGv_i32 expected_pac_hash, actual_pac_hash; + TCGLabel *done =3D gen_new_label(); + TCGLabel *fail =3D delay_exception(s, EXCP_INVSTATE, syn_uncategorized= ()); + + arm_gen_test_pac_enabled(s, done); + + expected_pac_hash =3D load_reg(s, a->ra); + actual_pac_hash =3D op_create_pac_hash(s, a->rn, a->rm); + tcg_gen_brcond_i32(TCG_COND_NE, expected_pac_hash, actual_pac_hash, fa= il); + + gen_set_label(done); + if (set_pc_from_reg >=3D 0) { + gen_bx_excret(s, load_reg(s, set_pc_from_reg)); + } + return true; } =20 @@ -5050,18 +5123,22 @@ static bool trans_BXAUT(DisasContext *s, arg_rrrr *= a) return false; } =20 - /* Handle as if PACBTI is disabled. */ - return true; + return op_autg(s, a, a->rn); } =20 static bool trans_AUT(DisasContext *s, arg_empty *a) { + arg_rrrr arg; + if (!arm_dc_feature(s, ARM_FEATURE_V8_1M)) { return false; } =20 - /* Handle as if PACBTI is disabled. */ - return true; + arg.rd =3D 0; /* unused */ + arg.ra =3D 0xc; /* R12 */ + arg.rn =3D 0xe; /* LR */ + arg.rm =3D 0xd; /* SP */ + return op_autg(s, &arg, -1); } =20 static bool trans_AUTG(DisasContext *s, arg_rrrr *a) @@ -5070,8 +5147,7 @@ static bool trans_AUTG(DisasContext *s, arg_rrrr *a) return false; } =20 - /* Handle as if PACBTI is disabled. */ - return true; + return op_autg(s, a, -1); } =20 static bool op_div(DisasContext *s, arg_rrr *a, bool u) --=20 2.43.0