From nobody Mon Jun 15 19:03:37 2026 Received: from GVXPR05CU001.outbound.protection.outlook.com (mail-swedencentralazon11013047.outbound.protection.outlook.com [52.101.83.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7C4F83A6F02 for ; Mon, 13 Apr 2026 08:52:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.83.47 ARC-Seal: i=3; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776070355; cv=fail; b=E3FKB7ydvpD8X2THaLPFCG+qUWITC+C5vlI3Vz/GZYVHcjIIPjDvSl8D9reC7UeAQ613wXmBM3K7/S9lPV1soXmQzfQLT7cXIClhLl17ogZW/5X501zJGP3nlNBCmGPl+fiVbhN8G/h0nuH86EXgppTP2Ykda0WPT6Nf0d01vkE= ARC-Message-Signature: i=3; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776070355; c=relaxed/simple; bh=bgMHBHhvVnvsekQVfjE4rP9efFDrly4AWG9SiRDm+e8=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=EFDP38UlzYV1QATZoONJRXXof56Jgel3jVeVb+4lMpEKlbOrtg6h0qR8zE6nfXTwWO1chFRyO0eKml42PuXAn2b2AOLDrCJwKan7YyAUpUbW9D5aVHwGHsopzggJUekqJ+s68xObugBY0I6wPUn0m8ILZSqsl5pk0ea+2bcJUMs= ARC-Authentication-Results: i=3; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com; spf=pass smtp.mailfrom=arm.com; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b=LuOjeYkp; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b=LuOjeYkp; arc=fail smtp.client-ip=52.101.83.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=arm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b="LuOjeYkp"; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b="LuOjeYkp" ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=kHQVyvKZr9FAPMG6xhzMkm1cL7kJGJcPrdKvi4rrgTHSwFr7guD+IwgGl/QnBlOUNY0Dj7vPcfMJPgW3lrKn3QkzBmXbebltXgdVBuCWFxaKhGo7XXZe/erP+hdjk+SjAbDdVym5s7Ld3howRZIjFf4bbNa12iz0Vgc8ZHl6unBXWfwJPjNac+MOJwrr5OQF5mdd+rz5eC7OslbLohcPwswpg15/i3t8otN8N6EhagD/QVnyxtGYvuddeqxDzbDF28JOP1Ir7UAOvcw2wx6RuIJpiDdLHar0xPpwF/ErETAmSfMJShuNYGE5ZtrwFL9gjsMaf+ZPhZKLrCHpsnPeXg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=1QWN6rL2r/xYAa5DXD7V2SgRbgtZfpFgvpc2OtYyFwU=; b=aNKbDOrLcApTtC57RXMFwXrTMmhn7476eqQn0wOBH/bzCs3/GGKrGbY0OewiZe4VybLnT8AHov494tH3JfubWfoyQiAsYXy63zZVWuUw8ZITABQjFpbVzxdx+dWlc9CXocscCXcVA23tD2u6/Ybp0xcBxDc/MFM+auFWUM8MdAWEUkoQmbOTQMZc5OZ6f1VERJpccyzvbJdVRuNpcp0AHkCvs+d1tqBxOnScD1HmB3IdWEu1/8GofF5jwgbxsoyV5tagIcW2zdN5msj+0WjFujKkkNKD+Z2Ts1INXuAdfXM8Uy3yfNHMCq63t+PHA1vFeWbXhV9sCfhWY1UHl1RU3A== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 4.158.2.129) smtp.rcpttodomain=lists.infradead.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dmarc=[1,1,header.from=arm.com]) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1QWN6rL2r/xYAa5DXD7V2SgRbgtZfpFgvpc2OtYyFwU=; b=LuOjeYkpL/mdb98BrK6u14Np/wz54TvtgL6WChwD8uJVQozkeTPB0aXYLnivSBumBMQQW+dG7t7gZSQKthy2wdezASZnaE84HJQwtdfaIw/Q/POxlnPgbRdweM6aTNlcAPTUftnaYnq42MW5M66ty0FetSEuXHfQwhWxxcd0XR0= Received: from DUZPR01CA0254.eurprd01.prod.exchangelabs.com (2603:10a6:10:4b5::26) by DB4PR08MB9864.eurprd08.prod.outlook.com (2603:10a6:10:3cf::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.48; Mon, 13 Apr 2026 08:52:25 +0000 Received: from DU6PEPF0000B61C.eurprd02.prod.outlook.com (2603:10a6:10:4b5:cafe::66) by DUZPR01CA0254.outlook.office365.com (2603:10a6:10:4b5::26) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9769.48 via Frontend Transport; Mon, 13 Apr 2026 08:52:25 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=arm.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 4.158.2.129 as permitted sender) receiver=protection.outlook.com; client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by DU6PEPF0000B61C.mail.protection.outlook.com (10.167.8.135) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9769.17 via Frontend Transport; Mon, 13 Apr 2026 08:52:24 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ykRhNQPyZYWP9M7SxBtKcovvr0pJ7LX5wsL68OHlHw+qXIMg4YXkdVYHdaZ1m2Jm46XzaeIJhACG9EqlEVw/z5YbtFPGHJpOKgFbvK06ERqKFAHiEHXLj3sDSv/cbewl29/lng+bIzObdIInSDRPuQ9iFHbB2VeT5jg6PF9lZAwRRWf9UqwYUrUl7lUu2WHcsW4HNIRUZ/Z6dxCXhop9J7lHHpskSahuGidYaM5lZXDPmZKT/KF70SA++ugT6+6XLNT1cDnijZHRCJpUj+ohr1Mcu0g0JWhLOSytfhtnPuJQI5+v+yqpEQl8JEOh5JfPxxVTVwjqCu/5q3YFpsG+GA== 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=1QWN6rL2r/xYAa5DXD7V2SgRbgtZfpFgvpc2OtYyFwU=; b=eRkZkkKDJ3f7pG8e51gs30OamlexoRpFGQTs7CF/uH6Iq7DlSJMhyXE0PBXAk/J6NH16lZF6LSxiHRf3hB2osUiA0Fwmi29xUR33V3kDwF/Xn3oya9SLjjuqg6ZqdVH0dOsH7q1LP4JrkeVRO1l6nDwlut0fl++U/0JTIdow9FS7GnrQAMIUYM72wT8B0b/N0G+sjb6d/GUINeUHXpz/VKeZaba9tJiparYVpFqQdEXm2suJzSFgmOuSrZvFw+emGJ7y4iGdFl60BUKRizEmgY5/YACr7LFs9T4y+J/5qEaBmhiQSoo0JaCrLoqH1QFyoaLLZF8RLzKnN5/yKKXaNA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 172.205.89.229) smtp.rcpttodomain=lists.infradead.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1QWN6rL2r/xYAa5DXD7V2SgRbgtZfpFgvpc2OtYyFwU=; b=LuOjeYkpL/mdb98BrK6u14Np/wz54TvtgL6WChwD8uJVQozkeTPB0aXYLnivSBumBMQQW+dG7t7gZSQKthy2wdezASZnaE84HJQwtdfaIw/Q/POxlnPgbRdweM6aTNlcAPTUftnaYnq42MW5M66ty0FetSEuXHfQwhWxxcd0XR0= Received: from AS4P189CA0025.EURP189.PROD.OUTLOOK.COM (2603:10a6:20b:5db::15) by DU0PR08MB8710.eurprd08.prod.outlook.com (2603:10a6:10:402::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.48; Mon, 13 Apr 2026 08:51:19 +0000 Received: from AMS0EPF0000019C.eurprd05.prod.outlook.com (2603:10a6:20b:5db:cafe::c4) by AS4P189CA0025.outlook.office365.com (2603:10a6:20b:5db::15) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9769.48 via Frontend Transport; Mon, 13 Apr 2026 08:51:20 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 172.205.89.229) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 172.205.89.229 as permitted sender) receiver=protection.outlook.com; client-ip=172.205.89.229; helo=nebula.arm.com; pr=C Received: from nebula.arm.com (172.205.89.229) by AMS0EPF0000019C.mail.protection.outlook.com (10.167.16.248) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.17 via Frontend Transport; Mon, 13 Apr 2026 08:51:20 +0000 Received: from AZ-NEU-EX04.Arm.com (10.240.25.138) by AZ-NEU-EX03.Arm.com (10.240.25.137) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.29; Mon, 13 Apr 2026 08:51:19 +0000 Received: from localhost.localdomain (10.1.31.15) by mail.arm.com (10.240.25.138) with Microsoft SMTP Server id 15.2.2562.29 via Frontend Transport; Mon, 13 Apr 2026 08:51:19 +0000 From: Sami Mujawar To: , CC: , , , , , , , , Sami Mujawar Subject: [PATCH 1/3] arm64: rsi: Add helpers for Arm CCA measurement register operations Date: Mon, 13 Apr 2026 09:49:55 +0100 Message-ID: <20260413084957.327661-2-sami.mujawar@arm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260413084957.327661-1-sami.mujawar@arm.com> References: <20260413084957.327661-1-sami.mujawar@arm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: AMS0EPF0000019C:EE_|DU0PR08MB8710:EE_|DU6PEPF0000B61C:EE_|DB4PR08MB9864:EE_ X-MS-Office365-Filtering-Correlation-Id: 3b3aef6a-19cf-43c9-5b2d-08de9939fbda x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0;ARA:13230040|36860700016|376014|1800799024|82310400026|18002099003|22082099003|56012099003; X-Microsoft-Antispam-Message-Info-Original: i7NMYoD/hj9cDUAbmAyC3N/Q1LLsBeQ0Ck1ooK2rteg58/a55tfYwvKEudXThYSttsGa818vq5rTeizm5kHtL9SIk4fihqm4KFT/wKzZXAsg6U+GAxnW126VvF5vdXc4cgIa5eQCHN38iO9Jpi122nFNCFDPC0rOfz0vTTgAyJ0ydD6LcfBdWb1Ddxk+5TiwwI5Voj+oHOh+f2E8oL6Im2jZNylcFNggXRbjf08sK9G4oJ8Lc2SOgJzFAMZ4qwb/d5lYy0WdrjzFWar8DqhgPeiIXco0kGkms+VaDE8W1rV1wJhdj8XwlUdS8n0wv8PGB0NlyuoYNJ/NkFnyF3dpOsdpvcriAU0c3tOocsDylFt0zZih21RXLAfsCGGbNwLxF37bU7TYL0w26J9KuiPW5OH32+hC9Y6W/TeM+J6MhhsPGXFsk5EeH0EMSnu6vhoqtvBUHacw9Cn/woWmd5wx5cw1Jw95Haj6vuMIUfpVKwnsNvXfLtWwgWMbkMHsalx9wwGzt3GHfbyQl9Ex71weA3+v/boc0vxZOPERr3Mht4az4M1XmhjCKtv/prM/vSf1OxfVZ0GLbDcjsEGKX7a3q6kr9KkRUW+hst65afi2xPyV5J615Ta431bGxT2iTGp7f/x0PE3yZFqoz52/K5p8oRG51wld5RdibpHfsgVYWDxczGs2/3pjSDskC2DyxhR3czGA9R9KmS1SGvRP9RYHOcdjZry3Fsd2POfyIWqMLyJdKhB/79XUjjSW1w8Jj+Md++pTty/DgINE9S32kTIQ2w== X-Forefront-Antispam-Report-Untrusted: CIP:172.205.89.229;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:nebula.arm.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(376014)(1800799024)(82310400026)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101; X-Exchange-RoutingPolicyChecked: NdHzrtTcJr/NI2DNuxN8/8N7qtlDutrMj5rYsrcMSckdIUixu5r2iUE+QZvqSrwxVoIWnIAU1m+PPrVyEY1Klx7tUlHBTNZ1K2EloLB7GRBg4YcW13Gpv0ssGc3RQwVjYu4Cgqli75Tk2yReLQLZPr85TNukaNITS2Ga24+3AMTdFT2CFG5LunwSFxFG71Esp53GUAspo91/T/NNvyLPgd8ZSBPEw93Gxklxzu6jPDADPSis9YFc6rvi2TIpjfkQy3IlOz7azUJSGap+24wbB5RTQj2+3xF0doRL4OfOItuKyiKQLbHgyMgs8ZapwPxUhsKN+VBGw5hMqRquP+u+gA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB8710 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DU6PEPF0000B61C.eurprd02.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 4cf558cc-d88c-49e2-dafc-08de9939d585 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700016|376014|82310400026|14060799003|1800799024|35042699022|18002099003|56012099003|22082099003; X-Microsoft-Antispam-Message-Info: UEDr+IIj3CUBesK03hk8tS06ARAqzSm8gGp0CV6YDLJPNLj/++volaVGuknyrs6xyP3uJ7TE2HlS8LV6OYnHoqFtKQIfNGZplBGHMbWhm7rwf4Z4Y0HbMT9vTPDxl6RwgmRnYCxmR+VFetVV1EpnYkRCo+EAV1iEuKhh05r93/L+m763nr6rM+jpqAjl4Snb39iys1NDNyMsJX1uIjp7A5EpIp8+L36SUHsjaUcRQ+A5RZUoaxdo6xfAFPM0QOja7s7ECri8H2a4m2FMBNwQSfGVssZiGZzJSohiaKQp9hrqnsbYJrwzP1YNuhX5ZzfoATTiDuB9LcOPajPo89lxPeK5KZ6TUQzRBIme3fT985hnK8lvAd5XcYujdpoQhVWaAUhkYyYpG6ndsI/O+WkhnaokZcJPXUmvSpX5AOb7UU9LUsQwPC5xHt0Ed5Exy1iFRa2BkfztPDKAvO7mSVIeMDaKiwdt7hc9mHnJaakqbCaKzPgx+jY8Dw33OyMBL3pWS4gJrYiPQAPfQ99rk8EuEyNauYOJ56xH+O4I6R2L3UW05vEBN9Ljg+4AP9ZJ04MZ+tg+V+79GqncEY2BbPL4ksBS5B5ZZhv0qcOJgJCww4O5oyH26r/j7slCr0IUZCwEPSSqcDi0aD1iGjGugQgifZ7abqEF9fuGmIutIJfbZhXOCD2wVIPGZQSDZs0o6iHW7LkpkMNHJMFQRVzIB5yllXvfGwG5q3Oq1YDyCBbjwj+DUCVFl7lbpQeSZHqdUcW6923YYELADzJW8854OTwFQg== X-Forefront-Antispam-Report: CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(376014)(82310400026)(14060799003)(1800799024)(35042699022)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: VQTMTngBSYitaxQ5pVilnWii3L+3E7V9yTp6zM0LOTaCEFcTH5/Vzwbq7vuhAnQksBSJPpkNYX2BTyMyz+j5C/TETAEA96g8u++rh3lELrRAEBCbfcLxLjl/MQFVgx/z9WkSC7lV1L2BrZo9knsQMgrAPzkVptlND9BHEHVIbhdmOk4TsoGTCJqGly6S2Tzh6+504SWKs78KbQwTNuOQZ5ZXtoK6myWlMcWhWx6mWThvi3KuSKMgq0Q2MNXljClh8yWZGlWcIEWNbI/9xfNQ7rCmSg67n80zP5qSNLpLL/xoeIm0dmKOQ6dfdlI6opoKTsPwLzMsemx1tYFA+6hUnRSQaVh6x83Tw5obnIEKd8a5cNN5QI0NACJ9C9m/C2vPwRYzKGXSl7Fqdfza6hUtNcQU4rEFD5mns4i7IElcZq2pKAPV3iT6wLOPc4QtLybS X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Apr 2026 08:52:24.9742 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3b3aef6a-19cf-43c9-5b2d-08de9939fbda X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com] X-MS-Exchange-CrossTenant-AuthSource: DU6PEPF0000B61C.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB4PR08MB9864 Add static inline helper functions to support reading the Realm Initial Measurement (RIM) and reading/extending the Realm Extensible Measurement (REM) registers. The indices of the Arm CCA measurement registers, as defined by the Realm Management Monitor specification, are as follows: Index Register 0 RIM 1 - 4 REM[0 - 3] The rsi_measurement_extend() function allows extending REM[0=E2=80=933] registers with a caller-provided digest (up to 64 bytes). Index 0 (RIM) is read-only and cannot be extended. The rsi_measurement_read() function allows reading measurement values from RIM (index 0) or REM[0=E2=80=933] (indices 1=E2=80=934). The re= turned digest is expected to be 64 bytes. Signed-off-by: Sami Mujawar --- arch/arm64/include/asm/rsi_cmds.h | 105 +++++++++++++++++++++++++++++- 1 file changed, 104 insertions(+), 1 deletion(-) diff --git a/arch/arm64/include/asm/rsi_cmds.h b/arch/arm64/include/asm/rsi= _cmds.h index 2c8763876dfb..cfd9bff88147 100644 --- a/arch/arm64/include/asm/rsi_cmds.h +++ b/arch/arm64/include/asm/rsi_cmds.h @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0-only */ /* - * Copyright (C) 2023 ARM Ltd. + * Copyright (C) 2023 - 2025 ARM Ltd. */ =20 #ifndef __ASM_RSI_CMDS_H @@ -15,6 +15,26 @@ #define RSI_GRANULE_SHIFT 12 #define RSI_GRANULE_SIZE (_AC(1, UL) << RSI_GRANULE_SHIFT) =20 +/* + * Maximum measurement data size in bytes. + * According to the RMM Specification, the width of the RmmRealmMeasuremen= t type + * is 512 bits. + */ +#define RSI_MAX_MEASUREMENT_DATA_SIZE_BYTES 64 + +/* + * Indices for the Realm Initial Measurement register (RIM) and the Realm + * Extensible Measurement registers (REMs). + * According to the RMM Specification, Realm attributes of a Realm include + * an array of measurement values. The first entry in this array is a RIM. + * The remaining entries in this array are REMs. + */ +#define RSI_INDEX_RIM 0 +#define RSI_INDEX_REM0 1 +#define RSI_INDEX_REM1 2 +#define RSI_INDEX_REM2 3 +#define RSI_INDEX_REM3 4 + enum ripas { RSI_RIPAS_EMPTY =3D 0, RSI_RIPAS_RAM =3D 1, @@ -159,4 +179,87 @@ static inline unsigned long rsi_attestation_token_cont= inue(phys_addr_t granule, return res.a0; } =20 +/** + * rsi_measurement_extend - Extend the measurement value to the Realm Exte= nsible + * Measurement (REM). + * + * @idx: Index of the REM register. + * Where: + * Index Register + * 1 - 4 REM[0-3] + * @digest: The digest data to be extended. + * @digest_size: Size of the digest data in bytes. + * + * Returns: + * On success, returns RSI_SUCCESS. + * Otherwise, -EINVAL + */ +static inline unsigned long rsi_measurement_extend(u32 idx, + const u8 *digest, + unsigned long digest_size) +{ + struct arm_smccc_1_2_regs regs =3D { 0 }; + + /* + * Index 0 is for RIM (which is Read Only), while + * REM[0-3] are indexed from 1 - 4. + * The digest size can be at the most 64 bytes. + */ + if (!digest || idx < RSI_INDEX_REM0 || idx > RSI_INDEX_REM3 || + digest_size =3D=3D 0 || digest_size > RSI_MAX_MEASUREMENT_DATA_SIZE_B= YTES) + return -EINVAL; + + regs.a0 =3D SMC_RSI_MEASUREMENT_EXTEND; + regs.a1 =3D idx; + regs.a2 =3D digest_size; + memcpy(®s.a3, digest, digest_size); + arm_smccc_1_2_smc(®s, ®s); + + if (regs.a0 !=3D RSI_SUCCESS) + return -EINVAL; + + return regs.a0; +} + +/** + * rsi_measurement_read - Read the measurement value from the Realm Initial + * Measurement (RIM) or the Realm Extensible Measurement (REM) register. + * + * @idx: Index of the RIM or REM register. + * Where: + * Index Register + * 0 RIM + * 1 - 4 REM[0-3] + * @digest: The digest data to be returned. + * @digest_size: Size of the digest data buffer in bytes. + * + * Returns: + * On success, returns RSI_SUCCESS. + * Otherwise, -EINVAL + */ +static inline unsigned long rsi_measurement_read(u32 idx, + u8 *digest, + unsigned long digest_size) +{ + struct arm_smccc_1_2_regs regs =3D { 0 }; + + /* + * The digest size can be at the most 64 bytes, if less then 64 bytes + * it is zero padded. + */ + if (!digest || idx > RSI_INDEX_REM3 || + digest_size =3D=3D 0 || digest_size > RSI_MAX_MEASUREMENT_DATA_SIZE_B= YTES) + return -EINVAL; + + regs.a0 =3D SMC_RSI_MEASUREMENT_READ; + regs.a1 =3D idx; + arm_smccc_1_2_smc(®s, ®s); + + if (regs.a0 !=3D RSI_SUCCESS) + return -EINVAL; + + memcpy(digest, ®s.a1, digest_size); + return regs.a0; +} + #endif /* __ASM_RSI_CMDS_H */ --=20 SAMI:{C3F47F37-75D8-414A-A8BA-3980EC8A46D7} From nobody Mon Jun 15 19:03:37 2026 Received: from DUZPR83CU001.outbound.protection.outlook.com (mail-northeuropeazon11012038.outbound.protection.outlook.com [52.101.66.38]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8FE7037EFF6 for ; Mon, 13 Apr 2026 08:52:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.66.38 ARC-Seal: i=3; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776070368; cv=fail; b=YtIgZk0waDDSj/jhqnFEAI8Ex704Xq2YKRa26DePRtMnyhfVJ9u4bYjC80GcCStytnhqMyowX0BYOq+mSy/I61bApbt6xN/rxIra1SvuMW09VXtZFGdelqSz2K6dhybIoasMu7ryXoRPH6hcpBS5zIvmB5a52kHPcCnGdRn4Mpc= ARC-Message-Signature: i=3; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776070368; c=relaxed/simple; bh=k1JRDUoxjzPGvdHn/uaVPLvo18QcLGSGYukGEiD0Ow4=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=PdE0W7NCSNZO4EettM5rfEPDXIZGTf91RLxRTyF3P3CMX+mPxsJ6FDz9RbZeZZGzzsQZ0FOheV0Hhoo8VEtNhHGnCqemj5TBG71byW1AXaZr+JXSNeBxc4Qr1IxrdXc/VWkgEyxr6zuwTT8b0K0BC5FkdCKQoRsQeK8p2hCwJJ8= ARC-Authentication-Results: i=3; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com; spf=pass smtp.mailfrom=arm.com; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b=GdBPSBWJ; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b=GdBPSBWJ; arc=fail smtp.client-ip=52.101.66.38 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=arm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b="GdBPSBWJ"; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b="GdBPSBWJ" ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=iDHRwXqZnLQXj25cE7Ks4HbWXz8eIKpTwWVbGxvobsY7EhlmbhplPCdZ3YTmm7eu1ikADLUHBax+Pab4JnHrApJ14KLBoioYhJc1BnBWcqvkXDpDvXwYqgSRnA+rgiY5Ejaiq6K6zS2StScxE8M73ao0MUSPTO5s1/WuIhNPKliTRDe7I0Zc7yjwKlJVhPIsOZ4o4+q9JalpDZUf6G4AJXKV2ewo0Sb92xw7WXXu30kfZaKZW6qXqwQKfXd6To4wNWJgpxcxzznHDE/7DITzqqPoIr1zTicJlJMMRsJaHPIsVGguuYOc2VRs5/kTnAzoTSZEzWx5Srw3fyGobGMi5A== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=IiobUB5GXaUYRN/RtELklBTsVZ+87qCL0h8fZgrFFoA=; b=sVXanXOu/2KEjAmNBdVbDoDaWvaAv4oc4K4WShIyF6q0MMuiwGIpgQTBwrNaz8BKtV40P8DE+VU666TVnXxZMHjpV343/kGFacWRLv56zVF2vn9VsTXsjNnr7D5olkns7amfu/Ot+TYri6tS1wiRVNG2+wU8wHpQ2qN3EFr78+c4VLQA4eXssxcZ2tFh3GnTXAnxU8MIJs/AYvv2cGPMeLIn8R5AwhAsaD7sM6v1oTz4XriBAK3tR9ojk5sR93YyC8S4u2xIZsGqIa3wIFIo0qaL9okcas2UCx7Qdo5MEvXmW2IKf4+yKKlFQnizx+9FRN5xV7RJKarpytUszf1GVw== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 4.158.2.129) smtp.rcpttodomain=lists.infradead.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dmarc=[1,1,header.from=arm.com]) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IiobUB5GXaUYRN/RtELklBTsVZ+87qCL0h8fZgrFFoA=; b=GdBPSBWJ8ZJpYa5PrBrX0ARYaP+xaWFyySajy0RtfMTZTSbANmyw/CjgnkfEVOWAi86j9RMdrjwDUBb4Gblko6vdJkW1Z9YI28KO7LHfuCK9hoSiEMzKhJ7PiBXk6qG4H+hs3RjUNGnWOpEKslZr5+i087wAmw9TNhXyuCpRF0U= Received: from AM8P251CA0030.EURP251.PROD.OUTLOOK.COM (2603:10a6:20b:21b::35) by DB9PR08MB11548.eurprd08.prod.outlook.com (2603:10a6:10:60d::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.48; Mon, 13 Apr 2026 08:52:42 +0000 Received: from AM1PEPF000252DF.eurprd07.prod.outlook.com (2603:10a6:20b:21b:cafe::53) by AM8P251CA0030.outlook.office365.com (2603:10a6:20b:21b::35) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9769.40 via Frontend Transport; Mon, 13 Apr 2026 08:52:42 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=arm.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 4.158.2.129 as permitted sender) receiver=protection.outlook.com; client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by AM1PEPF000252DF.mail.protection.outlook.com (10.167.16.57) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9769.17 via Frontend Transport; Mon, 13 Apr 2026 08:52:42 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=M9wuId82TG9zpX5lOe2u3pUOVxbKo3+5ToW62/Zv3JKATH6hMLRMhknQk8tANjGVe/WtgguY4YGk/oqTxw+Pz0q5oKKwSWPknn73pJ7KQexXPq2cdbQVA9B71fX8OJbd1hKpVc5aYPtlU3d7rxoo96E6HZTMHvam33e+VzPQRDBF8OMCorWLz2svtHknMhrHxKom6/wesvA0auvpxdIZzWae4FUXOI9zBh+YI82WAaf87tOvZSG1y1BGRAswwRm14IQmjPvbIqrzQoBuM46aeKsQrEALnPXQSY32jBooogF894sBfCkHUbsF2BV/o5/AQhwOOTGdF9UhxMgE6idj2A== 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=IiobUB5GXaUYRN/RtELklBTsVZ+87qCL0h8fZgrFFoA=; b=kOrcBtmVx1OnC1Huh1ahuV1JivcxknCsVJKy2LhqlNP4YjSvGMWRGCvVCAr9MkT3W71tVdsKcvn6QP9WXICaTUBZvH9pFDqvFMNniZCrt8G+yaSq+0n1oXIEKrKl25rBUPT18/yjKS5ARPA9zgGvhZvqotAKo0COLXw/ZYvOQMxlFWA8Py19lDCS6A24cabNc3Astx1HgYhN6mjl1U2lPxWOIdx7MN0QfCamnDdWeXq3xuRKVo3t2V22EnPX6IHn6JHPI2dKPKEbmO2tLq0WgH5pezSVfU+2JATsnZhjWBwzkH26S6qYiCOGhC7FoFkMIP2lTyxEfjeqrNHuM9bAcw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 172.205.89.229) smtp.rcpttodomain=lists.infradead.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IiobUB5GXaUYRN/RtELklBTsVZ+87qCL0h8fZgrFFoA=; b=GdBPSBWJ8ZJpYa5PrBrX0ARYaP+xaWFyySajy0RtfMTZTSbANmyw/CjgnkfEVOWAi86j9RMdrjwDUBb4Gblko6vdJkW1Z9YI28KO7LHfuCK9hoSiEMzKhJ7PiBXk6qG4H+hs3RjUNGnWOpEKslZr5+i087wAmw9TNhXyuCpRF0U= Received: from AS4P190CA0040.EURP190.PROD.OUTLOOK.COM (2603:10a6:20b:5d1::20) by GVXPR08MB10938.eurprd08.prod.outlook.com (2603:10a6:150:1f8::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.48; Mon, 13 Apr 2026 08:51:36 +0000 Received: from AMS0EPF00000199.eurprd05.prod.outlook.com (2603:10a6:20b:5d1:cafe::6) by AS4P190CA0040.outlook.office365.com (2603:10a6:20b:5d1::20) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9769.48 via Frontend Transport; Mon, 13 Apr 2026 08:51:36 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 172.205.89.229) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 172.205.89.229 as permitted sender) receiver=protection.outlook.com; client-ip=172.205.89.229; helo=nebula.arm.com; pr=C Received: from nebula.arm.com (172.205.89.229) by AMS0EPF00000199.mail.protection.outlook.com (10.167.16.245) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.17 via Frontend Transport; Mon, 13 Apr 2026 08:51:35 +0000 Received: from AZ-NEU-EX04.Arm.com (10.240.25.138) by AZ-NEU-EX03.Arm.com (10.240.25.137) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.29; Mon, 13 Apr 2026 08:51:20 +0000 Received: from localhost.localdomain (10.1.31.15) by mail.arm.com (10.240.25.138) with Microsoft SMTP Server id 15.2.2562.29 via Frontend Transport; Mon, 13 Apr 2026 08:51:20 +0000 From: Sami Mujawar To: , CC: , , , , , , , , Sami Mujawar Subject: [PATCH 2/3] arm64: rsi: Add realm hash algorithm defines Date: Mon, 13 Apr 2026 09:49:56 +0100 Message-ID: <20260413084957.327661-3-sami.mujawar@arm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260413084957.327661-1-sami.mujawar@arm.com> References: <20260413084957.327661-1-sami.mujawar@arm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: AMS0EPF00000199:EE_|GVXPR08MB10938:EE_|AM1PEPF000252DF:EE_|DB9PR08MB11548:EE_ X-MS-Office365-Filtering-Correlation-Id: 5d3a71d8-ee55-4e9d-cc69-08de993a0626 x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0;ARA:13230040|376014|82310400026|36860700016|1800799024|56012099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info-Original: 4LkPHleAbSMmaZczCkyYnrNEQEstBDwMvVn8Pni15nvn0VvMbDhKoQruipBJQgoPkwVQO9eqEABEPjSgv/28CubEf/wCwGx+x+CN/zBzDUv1D0MEGqKOva36TEHJPLd+gSzu+X20su9V24RhSLwLHvAOiMzYNaGWNlpb+8uP+Tjb8Sv1eRg6f/KMSi5da/+7nCQ/FVrdIwKdCBtWYKF86lWsHQ+Kpnz49z3CFhd4AnoMrD28KWUb2VpTfcm5BGLJmuLWGhUvaOreZt8NhBbQigTUJijcEm+SsAes/2s+V/jWYE0JB8OG2ouat0o6vJRCcKTFpROeTPpD0ls8sqFPxWNKO8IZZZmoMDxmhQBybo935czDuFOGkWR4Pg9kN+pgHBAs6FTLnii27jX5T64SVJLUJ6Rn+1/wKpM01746o954Se3yQdntPIPvNE6Anc8o3ZukDGOSauGiyPIVr69AWSKjclrvEtTcc+uVjpL53fJAlPnF4aHl5EowAT5m62fgK8wKNQYoh0F89AJG5HTAKpH52ISLGZulyUcCmYBnLJmeVJYg1RjMQyHs7oeE/i1eFx5RfpwJ6k4y42yIsIrQWYSk8jX6jbHeGrsBFy0V//DB6yCNL9zPgMQFs46daP/TrH4CWLdgb1sPu/lrJKMF5kh07HWlo/05zB42jLi/O9GKskvabqkgrt6VwUYq+safDCED74nS4VNRSm+osL3BCkdK4PTU7O3vh4l1I2mX/Kx8+jWDDWMmaLMFUcBZdp0Z2QWy3I8q7uahC5Z+bXxNNQ== X-Forefront-Antispam-Report-Untrusted: CIP:172.205.89.229;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:nebula.arm.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(36860700016)(1800799024)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-Exchange-RoutingPolicyChecked: kPLc9gQ4RuzTewa0we/6tdYbuPegMS1qUMmDqtrk/ze73biETn81Tl0Q0X2ZcFN5/bEJlM6zHgmvAHh7LnoUR+xLtbYYWjCZSurvMdjJWy15DntjQbsLWQ8tl45EsM0MUL/UHuCgLJA8dl7SEs9l1fmX+Dj4eInSRAELvGS5fR/5/18+cq4ntZaYnhlZqgzfzVWqPfwk3l4nbwvXvE7QZZ14vp9uo3cm/+a/0G6hkUvTXfj+68EqcW2EshtOBcsFX4dk0gKI7xkulBdV6Mp+/z6M9tJIcSQJAQ/QBthyIUI52Na3TVq05ZljZeUVDbJezmMtO8Cq03KsHyG4Upx0nA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR08MB10938 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM1PEPF000252DF.eurprd07.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 42f71043-e42a-4302-40ca-08de9939de9a X-Microsoft-Antispam: BCL:0;ARA:13230040|35042699022|14060799003|1800799024|36860700016|82310400026|376014|22082099003|18002099003|56012099003; X-Microsoft-Antispam-Message-Info: /qNix6bOj6z/VVemPGWZ27UMnEQMEwSuF6IAVLGbzSDrGjQKOuZ+uaXlhOd1qHd9ETxgiAlumb6o61dk5vwzHhBBHkd0bJtY/EqniwTUw7Q4fhXZfaK8vGCT7CtPCbkDzPfV1jzDxAI7mpGYetJypUBj+Bz08554FhJ2hdXhhz91wrLJ5rP0XkatSME3bx6yNXQJI25lORNATib5/otAUxKTT0XhcbZYWyB8RxThWj/r344hKx0xLohim5RJ1FJ322XgrFXtl7HlMkZFdmGzf23ETmqf1MJT92ET/oMiVpEcpv1+mlyHSipWLksmPvzy5m9EHlHybSJRKG8OPXAFH7gA3IxSE/dDFVk8gZHrrYGUFS38MWrRef3StlvSfRfIIElwqTzhziF/9Hln/o9ONU/vS+R+lScjHGeWpyIArVM2wsnvQognSJaQsSUPHzBOmn2nzPDoWsihq/hmuvTQJHGcflddJIji7xHFtMtDbf9c+t7WBQLtlRh2mCm+0IK7zAnyN9Ch+Ovmxg8wOfN1d9iCXyas1XoaWMmC31Pm2nY+1uxpF4eJHfgyAIHmI9FmgY9+pYtnvDz7I3/ha9O40zCIpxrXTL2wfGTUbIH8kIquUvzKhDp3mo4qnodeDB0uvHsVFUbVyswd9a2ocz3WpK1ZDBtKPdIL1D7zsB3JAk5owk7aM40SlhtDnIJq4wc7v9aRUIoaQxHb80UUnH+UHGEVHCdCDqO6HZgButAL/LZvm7Yk4Rrd6GLwW9plG+UUz9Xx2f8ouvKNFUP133hStQ== X-Forefront-Antispam-Report: CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(35042699022)(14060799003)(1800799024)(36860700016)(82310400026)(376014)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: HW3ecMnzzy6CyyqNsVNjTgB8+l1YJtD3gOq+sD5pNeaKY8rgxpPcJXmYI6MxAnd6a7xRfvOT+oA5c3B0M0K/h4Ay5jOZj1f1Va4w5zLKX2Vt6kqePUSnKEPSQlhVKUHh9GgWvOu6Kwz2pHkBp7OEP//BB5gBnnPRebKxUhwtim6dw4eUvsjJm2062WewEfp1ZBwYRueYnNJcIagF75sGEPHmy0/n3qs3BqiFG5YjFzIPYdSpF9myE84HMNgL5FBAs2uJtcDBtz2Q2j+WtNdqjp04LNQgG1/NjVZ2z4R6nJ3arbc26naR6EjCR/ftlql1tS5XrrFonwoMZLPSOseYfQv9Kdeuzi+jGhJnmVnyUpvgxNfPkV4pZWLDI3c2XZl+OvA6GsWI4MjYNL3A1b2d2I4IZIYBki0I7L+0ZaWbJwJDVr5ZCtPbvPUbeqPsB0LI X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Apr 2026 08:52:42.2597 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5d3a71d8-ee55-4e9d-cc69-08de993a0626 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com] X-MS-Exchange-CrossTenant-AuthSource: AM1PEPF000252DF.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB11548 Content-Type: text/plain; charset="utf-8" Add macro definitions for the hash algorithm identifiers, as specified in the Realm Management Monitor (RMM) specification. Signed-off-by: Sami Mujawar --- arch/arm64/include/asm/rsi_smc.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/arch/arm64/include/asm/rsi_smc.h b/arch/arm64/include/asm/rsi_= smc.h index e19253f96c94..dbcb98a6d5c9 100644 --- a/arch/arm64/include/asm/rsi_smc.h +++ b/arch/arm64/include/asm/rsi_smc.h @@ -144,6 +144,13 @@ struct realm_config { =20 #endif /* __ASSEMBLER__ */ =20 +/* + * The RSI definition of the Hash Algorithm (as specified by the Secure + * Hash Standard) returned in the realm_config data structure. + */ +#define RSI_HASH_SHA_256 0 +#define RSI_HASH_SHA_512 1 + /* * Read configuration for the current Realm. * --=20 SAMI:{C3F47F37-75D8-414A-A8BA-3980EC8A46D7} From nobody Mon Jun 15 19:03:37 2026 Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11010033.outbound.protection.outlook.com [52.101.84.33]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E4CD53AD53D for ; Mon, 13 Apr 2026 08:52:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.84.33 ARC-Seal: i=3; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776070373; cv=fail; b=tf88B8UpwrnZoQiYClQHdVxqoztHRUAVrRpyqIbauBlxdhF8AUnf2bbtpTvZNnakEOideT45TL3YpoEbkSBWkIdqJJC1C0wAdTVk1pUirRKPdYGZ6XbV74V2rc7Mahxm7notQkCuosqlwiv9dpsG/lK9zNx8tvnH88xB9aq0L3Y= ARC-Message-Signature: i=3; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776070373; c=relaxed/simple; bh=euJw1pKXoWU9jp9Tfo200HXwprg4zPeeeB0WjZu1RRQ=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Y/yNRL8eSsClnReTCicJcAAF7h2c0Fe40cdyxey/a01DMdF6jWYAzqiPFbLXD1vCZQ+W/+Ym2IdNEeMZvI4M8NnCTCqOGc1I3R2mDJN8yKDhdxrAHN5p8ofvLWPcIh3xhmlRu1mqOQivOlYdEmRwUQReErJWTuc1Xjxi5Et+inU= ARC-Authentication-Results: i=3; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com; spf=pass smtp.mailfrom=arm.com; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b=JlS3oy53; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b=JlS3oy53; arc=fail smtp.client-ip=52.101.84.33 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=arm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b="JlS3oy53"; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b="JlS3oy53" ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=GufgeDjyKJmVM1Yd3uguKzWUk70U0LcUsxB0hASv6opejQzqgLNftE2bsFZx7twiRUq5QHyvqa/JR7ZCM09r6HFMFvHhGOGI7e1hMyIJJpnYvCnkLX+VQHZT6Glai5nRkbkoTyykVLEWTBDBfUihRN9cv8jgEjrFHH5bJv72h3A6gIk//FxT7VndrqWCOn88CUhaxwqFFQHfPq63B7zR9upNudGig1OcEFR3JZ1n36+sRE2c+oX0er+Ll05DpMS45VW7NIzRXmsfTO0RyA/Siobxd81Hfn3YULb2wbFCRIof8BwJQGuGgtOGovPZJCGmcoEpGNBqGEuthTIDdaDcGQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=xP+3+D5YOUSzMn7p/BoTnXi3i33C9bBpd6D8xAW2Cnc=; b=qqwYrVqxHSRhS+wE2LjFwBHa4XKi+eCMlDlXEVA4NycKYT0Wpq5KQi3l2dxmh5BRzxBBTzFn1PSdKhXGhdsEsGGCJ11uUz8zrnr5K6e/l84fdDiOhQghxip2vz2YEVQemyy5sDjr8FMsgAXFecse/Qw4MQ6Cs4GyRgjnNBLkY/rn7PK+7W3Dvxbr7N+wRQyj1DcIoHR7jSN+sAp8ZrclCPc1dz3Ndceb+IdIbz/GloN1ChWwo/jgH/fyz0LSCZCJniawhQPZ7D7Un1VBYzphp6RzoTPXlj15Uy4Ov/GG3r25s/lFEYPg5Lgm+BDHdfDSddQdzgIcAESQa3y0c/1zJw== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 4.158.2.129) smtp.rcpttodomain=lists.infradead.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dmarc=[1,1,header.from=arm.com]) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=xP+3+D5YOUSzMn7p/BoTnXi3i33C9bBpd6D8xAW2Cnc=; b=JlS3oy538sFtZ3sb0ABJM3n9X07lXFnaW7NyenGDDX0bGmHY1tHrB0L+6CdsgsW0PIir1rMDw6thero/HMh7solIwtdWUAOcC4zwGk2YXmsyZvUNwdtg30xHNabi4c32NzjaKgRbTkIeqD7VBX9lM1jE3tSZ0H27B4I2rvjQFtQ= Received: from AM8P189CA0029.EURP189.PROD.OUTLOOK.COM (2603:10a6:20b:218::34) by DU2PR08MB10130.eurprd08.prod.outlook.com (2603:10a6:10:493::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.46; Mon, 13 Apr 2026 08:52:40 +0000 Received: from AM2PEPF0001C716.eurprd05.prod.outlook.com (2603:10a6:20b:218:cafe::c8) by AM8P189CA0029.outlook.office365.com (2603:10a6:20b:218::34) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9769.48 via Frontend Transport; Mon, 13 Apr 2026 08:52:39 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=arm.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 4.158.2.129 as permitted sender) receiver=protection.outlook.com; client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by AM2PEPF0001C716.mail.protection.outlook.com (10.167.16.186) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9769.17 via Frontend Transport; Mon, 13 Apr 2026 08:52:39 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Gp/gOjzkZ06UztarskWeMHy3f+BAvzZf8S5zQC4A17ae49SoD8KhjLvRcWo+jlENFBjyWCf0gHs01IDWcb6CmvoXmBtOOJm1RORers9l1zkKYPCohoxWgJgUCf/Tds1DL0VABqvrPJ7aPGzav1GyTyPKGq19qxEaiQ0BpvrUSoH/OkOvGCOqh3PwsXriubxVUnpob3eLodlI8rcvMVy7Gg3qJuKSqFVFmouhW8B5JvF+6K84f2Yf48vQ8oa1ek1utVPZ8L6oz25/KfJPvO+/XQpCtODdAUsGxbPcm7mTt5LG2/Fg8RA67Xx/WIwaA1vzPo0iw14rMYuUFDWlimeKzw== 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=xP+3+D5YOUSzMn7p/BoTnXi3i33C9bBpd6D8xAW2Cnc=; b=nmo8SajkBSsx0OXx7dKjZ3aB7oHikOY6p1lDW6XkLABsLluPXG/WJYGKoU+vyX1/qKBFAeT+pwuFN8xE07VNUl59GHy02sf9YgVOiLMdP0Q6o5ESDgFQ6k3gv2S8spi0iBZIx8T9cbgK0STMP7h2R4IbQMc0n0c+reow32Tf7re1JJOfSlicUvylaP5Q2XGSqaRlqrNxnJ6gJYEfBfv7a508RZ9/1QTKF/sfJ4x/270OQZEXTCaSgDmZ8bBCTVQOFdsE1KRV6+PMZWMTRpYfzyg5qtuwJInd8eggveXT/u3ECVRPH8PFpljftsYAfdp7pAPWqbxKxfA+DI5DXRAqRw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 172.205.89.229) smtp.rcpttodomain=lists.infradead.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=xP+3+D5YOUSzMn7p/BoTnXi3i33C9bBpd6D8xAW2Cnc=; b=JlS3oy538sFtZ3sb0ABJM3n9X07lXFnaW7NyenGDDX0bGmHY1tHrB0L+6CdsgsW0PIir1rMDw6thero/HMh7solIwtdWUAOcC4zwGk2YXmsyZvUNwdtg30xHNabi4c32NzjaKgRbTkIeqD7VBX9lM1jE3tSZ0H27B4I2rvjQFtQ= Received: from CWLP123CA0086.GBRP123.PROD.OUTLOOK.COM (2603:10a6:401:5b::26) by DU0PR08MB7881.eurprd08.prod.outlook.com (2603:10a6:10:3b3::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.48; Mon, 13 Apr 2026 08:51:22 +0000 Received: from AM4PEPF00027A5F.eurprd04.prod.outlook.com (2603:10a6:401:5b:cafe::3a) by CWLP123CA0086.outlook.office365.com (2603:10a6:401:5b::26) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9769.48 via Frontend Transport; Mon, 13 Apr 2026 08:51:21 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 172.205.89.229) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 172.205.89.229 as permitted sender) receiver=protection.outlook.com; client-ip=172.205.89.229; helo=nebula.arm.com; pr=C Received: from nebula.arm.com (172.205.89.229) by AM4PEPF00027A5F.mail.protection.outlook.com (10.167.16.74) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.17 via Frontend Transport; Mon, 13 Apr 2026 08:51:21 +0000 Received: from AZ-NEU-EXJ02.Arm.com (10.240.25.139) by AZ-NEU-EX04.Arm.com (10.240.25.138) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.29; Mon, 13 Apr 2026 08:51:21 +0000 Received: from AZ-NEU-EX04.Arm.com (10.240.25.138) by AZ-NEU-EXJ02.Arm.com (10.240.25.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.29; Mon, 13 Apr 2026 08:51:20 +0000 Received: from localhost.localdomain (10.1.31.15) by mail.arm.com (10.240.25.138) with Microsoft SMTP Server id 15.2.2562.29 via Frontend Transport; Mon, 13 Apr 2026 08:51:20 +0000 From: Sami Mujawar To: , CC: , , , , , , , , Sami Mujawar Subject: [PATCH 3/3] virt: arm-cca-guest: Add support for measurement registers Date: Mon, 13 Apr 2026 09:49:57 +0100 Message-ID: <20260413084957.327661-4-sami.mujawar@arm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260413084957.327661-1-sami.mujawar@arm.com> References: <20260413084957.327661-1-sami.mujawar@arm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: AM4PEPF00027A5F:EE_|DU0PR08MB7881:EE_|AM2PEPF0001C716:EE_|DU2PR08MB10130:EE_ X-MS-Office365-Filtering-Correlation-Id: 611bfe9e-6c95-4735-afd6-08de993a043c x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0;ARA:13230040|36860700016|376014|82310400026|1800799024|56012099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info-Original: rZTexo4Uj0aqA2QrQM3Oz68276tdrvefCkbXMXsu7UmrUyhHT+9YIaMyfswI2BUKRvhx8Pj8XENGeJGIY1M2/agEYYOeybKniXgs5Y5MmB+FJqR3IaWI9aZDDRsMdaXuEKswyraLuw1LnsNYM/NphxPhus82iWfx0zfkA5IfTt+p6gvfvi3DFeDfCSj4kgMB/RlS0qX18OqxdLqboHCfMvjVv7wzvJ1MbHzTdzGVJ4ZwWfdL0T9heKw6hfaB78zZZv07gz0PIVBHB85YjG7knfSyeNN20KdoUL0BFuRoL+VjHD3ETiK8pqY+0bzmG1RSYwNPtfPQ9Q6f5rcug+ITZVUf8cPtMeFupP2ShRWO18m+50jdj0KMnP09iQmWp5gQPif/tHfCyzSnN4vPBHqlxPM0TLRorCQ7gj25gwMWkyAjF6Nx81K89upQlbbg+jA5znBKdzPcLlNeXdmhzfQ0um0t1+aBzWOYfdhe4eKxNJs1yeNGttWMA+Ujs5orWmTrrvRgdxpfQg5MfzASQ/mmJblVO0f5DA2DgynXSfsoViLAgtjS4ksytMnUgDW4mCWmryL0hsRY9qXzcJTZ6iOEsy8aOs2DikLIbQd0B71bM3q39ZR72HviKO4XUd3J1k2UAqR6Fb26h/+jOkG1kmLFb2yxzIh1ivb9G5N3sIJvQaOt8tZt/8OrpYdLAlZf63d4HUjmYo6URjetPEq47IFzIORxhBUl44rgsjUQsAPM30oxX9cmfr8Qn7OPoPHaggxFF5S1BXL44slMazVCMFs537FsgzJcyx3CyDmjJfbg5V8= X-Forefront-Antispam-Report-Untrusted: CIP:172.205.89.229;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:nebula.arm.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(376014)(82310400026)(1800799024)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-Exchange-RoutingPolicyChecked: saDN0pC+UwqPeNDheE9pZv3hahXuNY3f8moKsGc1ZaOnxGxptYdNg9YZ7PzD+jkXEyXU4X0fL8M7nQm/0DrjQ0QsobdZbYDxoAVCGbBYPgrpVlZaj+jQhW4eEVkH512kZrq2m0omo87e9uo0GFtDiPY7OQuLF2IA7pV973ziAALqfKsuL1+QCnyNvvj2kuqWOcCd3Zj6y6pRq+tMDRgl7PB6WCEP3nGoHIDKNOfN5zI5yzFU5B2FCgycIRylPzyI1JAzZVSqfqK964v9QCuAX177/GI9YHoEXnrmsKS3MHZk74U31kuPixTO+xu/zY4cJYy4EmVLDvlSVdZs+hL1oQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB7881 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM2PEPF0001C716.eurprd05.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: c611b0a0-1629-4694-c413-08de9939d62d X-Microsoft-Antispam: BCL:0;ARA:13230040|35042699022|14060799003|82310400026|1800799024|376014|36860700016|13003099007|18002099003|22082099003|56012099003; X-Microsoft-Antispam-Message-Info: auH9mzYme57Ymbf88mzCk3ykWM9dkCKaO0xTewTV+qSd/MYWc7kS9vg7rapuIbWZ2Q138QmWl7nsP7auuGIcPvn9BV7+Pa5hC7UxI4TvqzrwbYLEBCD1j85AnvDhnoEj2/qmMOgc0Nr/QKvSvBZ2nJtqteAGWNctXondHg9vYIWOMBK5P5bqxXa84LpXtmRb3cLnYySCkrNbcWF4nvHF4C3RlJ9vRcJdFUcMqniBz8bOyDKdy8Wt4bBAdy7V9cvncUfVLZFDUcTikQwHGWBz/UpGPwvhzo98fMXbjgzyxj4OM3xxQs4OiGxM5uh7N2Tb6ZiCOCN7mVMk2tYtxNFo8S1jodCqgzKndHLwRo08vFUu03775XQVd8DxIbqeFutmOGmOUH6zpnEAwJ/x/QLyP1knajv4lfvMYFfivgyhKt9anqAC440YP+cTbdn93VRTpByCR46oynK4be65xPU6KEbDnhUWHHJPeNv4YMgdPvj3ZDQnp0wy5dlKoqq3gsBZGcw7pCN0s02iFYhPR+jp80Y1Gdb1pXG7eQR7NDXZoXe05KdiMf14Z6KYBsX38H0dIkEUVtaPDto2J3RCHClsW8hou+vwT44cMgQu01J8AgzuubMwXIDzp5S6QEl2mM2yMoXddNALMyDelZifygwUidDu+Wbp2v8Y4RSkWnFUfOU8z2siSP34ZKrrdv5lH1WqGeUgYbEc1znsEsl7LYaHSfyhDJKjvKNh5Rp5IuBkwPias7XaBgO78d7niTtYA8mPbHerCyjv/bloX4ZnydtwWHqR1eOwqMsKlPqCVSE+2MY= X-Forefront-Antispam-Report: CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(35042699022)(14060799003)(82310400026)(1800799024)(376014)(36860700016)(13003099007)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: FDH6lQ+iPIVJdSgrN1G4BxmALoGjpThIHteWCVPL1IKCcz+K6q0pe2nZcbmvp9ljsHc/qKB3uyShtEyK3maWoCqp8JT/LI2AE+YMID6LwPKLs3QM1dE032zSQ4KnuBeKWM+dUlb40vHezJ0LNQyUv7LusSAxNH15EVHwi0+SElzgNFjScKFCAB+k/5+LpcmgCBeS6+/md8730/xliUrYaq7v39j5krp7uKyXL3sj+jTBLWxlRWr+ZdTAsOtj/Y0P7WWNwiDGPep/LXnlYFpGIJVkLDvtI5za84TxvWaKW0W89/E0Na9XmVSUY94E5Jkp7F6gJ2kf4ezlNUt6lutfQGXfNtpmaWDd96S6SynLMkED7/XjAKLzTdACOb+DpOPdcragR+hs+ZDLnnR69fDzSF9OqNin7qLOMETsagBLounSPaPJIwg1m7GmB+wmxhJY X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Apr 2026 08:52:39.0437 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 611bfe9e-6c95-4735-afd6-08de993a043c X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com] X-MS-Exchange-CrossTenant-AuthSource: AM2PEPF0001C716.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR08MB10130 Add support for Arm CCA measurement registers (MRs), enabling attestation and runtime integrity tracking from guest Realms. This implementation registers a measurement configuration with the TSM framework and exposes measurement register values via sysfs using a misc device. The supported registers include the Realm Initial Measurement (RIM) and four Runtime Extensible Measurement Registers (REM0=E2=80=93REM3), each using SHA-256 or SHA-512 depending on Realm configuration. The measurement registers are located under the following sysfs node: /sys/devices/virtual/misc/arm_cca_guest/measurements/ -rw-r--r-- 1 0 0 64 Jul 21 11:46 rem0:sha512 -rw-r--r-- 1 0 0 64 Jul 21 11:46 rem1:sha512 -rw-r--r-- 1 0 0 64 Jul 21 11:46 rem2:sha512 -rw-r--r-- 1 0 0 64 Jul 21 11:46 rem3:sha512 -r--r--r-- 1 0 0 64 Jul 21 11:46 rim:sha512 As seen above the attributes for the REMs are 'rw' indicating they can be read or extended. While the attributes for RIM is 'r' indicating that it can only be read and not extended. The sysfs node suffix for the measurement register (i.e. ':sha512') indicates the hash algorithm used is sha512. This also reflects that the Realm was launched with SHA512 as the measurement algorithm. Signed-off-by: Sami Mujawar --- .../sysfs-devices-virtual-misc-arm_cca_guest | 38 +++ drivers/virt/coco/arm-cca-guest/Kconfig | 1 + .../virt/coco/arm-cca-guest/arm-cca-guest.c | 296 +++++++++++++++++- 3 files changed, 331 insertions(+), 4 deletions(-) create mode 100644 Documentation/ABI/testing/sysfs-devices-virtual-misc-ar= m_cca_guest diff --git a/Documentation/ABI/testing/sysfs-devices-virtual-misc-arm_cca_g= uest b/Documentation/ABI/testing/sysfs-devices-virtual-misc-arm_cca_guest new file mode 100644 index 000000000000..878dc54e48f8 --- /dev/null +++ b/Documentation/ABI/testing/sysfs-devices-virtual-misc-arm_cca_guest @@ -0,0 +1,38 @@ +What: /sys/devices/virtual/misc/arm_cca_guest/measurements/MRNAME[:HASH] +Date: July, 2025 +KernelVersion: v6.16 +Contact: linux-coco@lists.linux.dev +Description: + Value of a Arm CCA Realm measurement register (MR). The optional + suffix :HASH is to represent the hash algorithms associated with + the MRs. See below for a complete list of Arm CCA Realm MRs exposed + via sysfs. Refer to the Arm Realm Management Monitor (RMM) + Specification for more information on the Realm Measurement registers. + + The Arm Realm Management Monitor Specification can be found at: + https://developer.arm.com/documentation/den0137/latest/ + + See also: + https://docs.kernel.org/driver-api/coco/measurement-registers.html + +What: /sys/devices/virtual/misc/arm_cca_guest/measurements/rim:[sha256|sh= a512] +Date: July, 2025 +KernelVersion: v6.16 +Contact: linux-coco@lists.linux.dev +Description: + (RO) RIM - [32|64]-byte immutable storage typically used to represent + the Realm Initial Measurement (RIM) which is the measurement of + the configuration and contents of a Realm at the time of activation. + +What: /sys/devices/virtual/misc/arm_cca_guest/measurements/rem[0123]:[sha= 256|sha512] +Date: July, 2025 +KernelVersion: v6.16 +Contact: linux-coco@lists.linux.dev +Description: + (RW) REM[0123] - 4 Run-Time extendable Measurement Registers that + represent the Realm Extensible Measurement (REM) registers which + can be extended during the lifetime of a Realm. + Read from any of these returns the current value of the corresponding + REM. Write extends the written buffer to the REM. All writes must start + at offset 0 and be maximum 64 bytes in size. Attempting to write more + than 64 bytes will result in EINVAL returned by the write() syscall. diff --git a/drivers/virt/coco/arm-cca-guest/Kconfig b/drivers/virt/coco/ar= m-cca-guest/Kconfig index 3f0f013f03f1..62fcc6b16843 100644 --- a/drivers/virt/coco/arm-cca-guest/Kconfig +++ b/drivers/virt/coco/arm-cca-guest/Kconfig @@ -2,6 +2,7 @@ config ARM_CCA_GUEST tristate "Arm CCA Guest driver" depends on ARM64 select TSM_REPORTS + select TSM_MEASUREMENTS help The driver provides userspace interface to request and attestation report from the Realm Management Monitor(RMM). diff --git a/drivers/virt/coco/arm-cca-guest/arm-cca-guest.c b/drivers/virt= /coco/arm-cca-guest/arm-cca-guest.c index 0c9ea24a200c..2b5c5fa01cb3 100644 --- a/drivers/virt/coco/arm-cca-guest/arm-cca-guest.c +++ b/drivers/virt/coco/arm-cca-guest/arm-cca-guest.c @@ -1,18 +1,286 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (C) 2023 ARM Ltd. + * Copyright (C) 2023 - 2025 ARM Ltd. */ =20 #include #include #include +#include #include #include #include #include +#include #include =20 #include +#include + +/* MR buffer */ +static u8 *arm_cca_mr_buf; + +/** + * arm_cca_mrs - ARM CCA measurement register set. + * + * Defines a static array of measurement registers used by the ARM + * Confidential Compute Architecture (CCA). These registers are used + * for attestation and runtime integrity tracking. + * + * Register types: + * - rim: Realm initial measurement register (RIM) + * - rem0=E2=80=93rem3: Runtime extensible measurement registers (REMs) + */ +static struct tsm_measurement_register arm_cca_mrs[] =3D { + { TSM_MR_(rim, SHA256) | TSM_MR_F_READABLE }, + { TSM_MR_(rem0, SHA256) | TSM_MR_F_RTMR }, + { TSM_MR_(rem1, SHA256) | TSM_MR_F_RTMR }, + { TSM_MR_(rem2, SHA256) | TSM_MR_F_RTMR }, + { TSM_MR_(rem3, SHA256) | TSM_MR_F_RTMR } +}; + +/** + * arm_cca_mr_refresh - Refresh measurement registers for ARM CCA. + * + * @tm: Pointer to a struct tsm_measurements containing measurement regist= ers. + * + * Iterates through all measurement registers in @tm and refreshes those + * marked with TSM_MR_F_LIVE or TSM_MR_F_READABLE by invoking + * rsi_measurement_read() for each. + * + * Return: 0 on success, or -EINVAL if @tm is NULL or a read operation fai= ls. + */ +static int arm_cca_mr_refresh(const struct tsm_measurements *tm) +{ + int retval; + int index =3D 0; + const struct tsm_measurement_register *mr; + + if (!tm) + return -EINVAL; + + while (index < tm->nr_mrs) { + mr =3D &tm->mrs[index]; + + /* Skip if the MR is not Live or Readable. */ + if ((mr->mr_flags & (TSM_MR_F_LIVE | TSM_MR_F_READABLE)) !=3D 0) { + retval =3D rsi_measurement_read(index, + mr->mr_value, + mr->mr_size); + if (retval !=3D 0) + return -EINVAL; + } + + index++; + } + + return 0; +} + +/** + * arm_cca_mr_extend - Extend a measurement register with new data. + * + * @tm: Pointer to the tsm_measurements structure containing measurement + * registers. + * @mr: Pointer to the specific measurement register to extend. + * @data: Pointer to the data to be used for extension. + * + * This function extends a measurement register with new input data. + * + * Return: 0 on success, or a negative error code (e.g., -EINVAL for inval= id + * arguments). + */ +static int arm_cca_mr_extend(const struct tsm_measurements *tm, + const struct tsm_measurement_register *mr, + const u8 *data) +{ + if (!tm || !mr || !data) + return -EINVAL; + + return rsi_measurement_extend((mr - tm->mrs), data, mr->mr_size); +} + +/** + * arm_cca_measurements - ARM CCA measurement configuration instance. + * + * This defines the measurement set and behavior for the ARM + * Confidential Compute Architecture, enabling measurements + * for attestation and runtime validation. + */ +static struct tsm_measurements arm_cca_measurements =3D { + .mrs =3D arm_cca_mrs, + .nr_mrs =3D ARRAY_SIZE(arm_cca_mrs), + .refresh =3D arm_cca_mr_refresh, + .write =3D arm_cca_mr_extend, +}; + +/** + * arm_cca_attr_groups - Attribute groups for the arm_cca_misc_dev miscell= aneous + * device. + * + */ +static const struct attribute_group *arm_cca_attr_groups[] =3D { + NULL, /* measurements */ + NULL +}; + +/** + * arm_cca_misc_dev - Miscellaneous device for ARM CCA functionality. + * + */ +static struct miscdevice arm_cca_misc_dev =3D { + .name =3D KBUILD_MODNAME, + .minor =3D MISC_DYNAMIC_MINOR, + .groups =3D arm_cca_attr_groups, +}; + +/** + * arm_cca_get_hash_algorithm - Get the hash algorithm and digest size for + * a Realm. + * + * @hash_algo: Pointer to an int to receive the internal hash algorithm = ID + * (e.g., HASH_ALGO_SHA256 or HASH_ALGO_SHA512). + * @digest_size: Pointer to an int to receive the digest size in bytes + * (e.g., SHA256_DIGEST_SIZE or SHA512_DIGEST_SIZE). + * + * This function retrieves the hash algorithm used in a Realm's configurat= ion + * by invoking the `rsi_get_realm_config()` interface. + * + * Return: + * * %0 - Success. The hash algorithm and digest size are returned. + * * %-ENOMEM - Memory allocation failed. + * * %-EINVAL - Configuration fetch failed or algorithm is unsupported. + * + */ +static int arm_cca_get_hash_algorithm(int *hash_algo, int *digest_size) +{ + int ret =3D 0; + unsigned long result; + struct realm_config *cfg =3D NULL; + + cfg =3D alloc_pages_exact(sizeof(*cfg), GFP_KERNEL); + if (!cfg) + return -ENOMEM; + + result =3D rsi_get_realm_config(cfg); + if (result !=3D RSI_SUCCESS) { + ret =3D -EINVAL; + goto exit_free_realm_config; + } + + switch (cfg->hash_algo) { + case RSI_HASH_SHA_512: + *hash_algo =3D HASH_ALGO_SHA512; + *digest_size =3D SHA512_DIGEST_SIZE; + break; + case RSI_HASH_SHA_256: + *hash_algo =3D HASH_ALGO_SHA256; + *digest_size =3D SHA256_DIGEST_SIZE; + break; + default: + /* Unknown/unsupported algorithm. */ + ret =3D -EINVAL; + break; + } + +exit_free_realm_config: + free_pages_exact(cfg, RSI_GRANULE_SIZE); + return ret; +} + +/** + * arm_cca_mr_init - Initialize ARM CCA measurement register infrastructur= e. + * + * This function sets up the internal data structures for handling ARM CCA + * measurement registers (MRs) and creates a sysfs attribute group. It also + * registers a miscelaneous device for exposing the Arm CCA measurement + * registers to userspace. + * + * Return: + * * %0 - On success. + * * %-ENOMEM - if memory allocation fails. + * * %-EINVAL - On hash algorithm retrieval or attribute group creation + * failure. + */ +static int arm_cca_mr_init(void) +{ + const struct attribute_group *g; + int ret; + int hash_algo; + int digest_size; + int digest_buf_size; + + /* Retrieve the hash algorithm and digest size. */ + ret =3D arm_cca_get_hash_algorithm(&hash_algo, &digest_size); + if (ret) + return ret; + + /* + * Allocate a single contiguous buffer to hold the digest values + * for all MRs. + */ + digest_buf_size =3D ARRAY_SIZE(arm_cca_mrs) * digest_size; + u8 *digest_buf __free(kfree) =3D kzalloc(digest_buf_size, GFP_KERNEL); + if (!digest_buf) + return -ENOMEM; + + arm_cca_mr_buf =3D digest_buf; + + /* Initialise the mr_value storage and the mr_size. */ + for (size_t i =3D 0; i < ARRAY_SIZE(arm_cca_mrs); ++i) { + arm_cca_mrs[i].mr_value =3D digest_buf + (digest_size * i); + arm_cca_mrs[i].mr_size =3D digest_size; + arm_cca_mrs[i].mr_hash =3D hash_algo; + } + + /* Read the measurement registers. */ + ret =3D arm_cca_mr_refresh(&arm_cca_measurements); + if (ret) + return ret; + + /* + * Create a sysfs attribute group to expose the measurements + * to userspace. + */ + g =3D tsm_mr_create_attribute_group(&arm_cca_measurements); + if (IS_ERR_OR_NULL(g)) + return PTR_ERR(g); + + /* Initialise the attribute group before registering the misc device. */ + arm_cca_attr_groups[0] =3D g; + + /* + * Register a miscelaneous device for exposing + * the Arm CCA measurement registers to userspace. + */ + ret =3D misc_register(&arm_cca_misc_dev); + if (ret < 0) { + tsm_mr_free_attribute_group(g); + return ret; + } + + arm_cca_mr_buf =3D no_free_ptr(digest_buf); + + return 0; +} + +/** + * arm_cca_mr_cleanup - Unregister sysfs attribute group and free the + * measurement digest buffer region. + * + * @mr_grp: Pointer to the sysfs attribute group. + * + * This function performs cleanup for the Arm CCA memory registers (MR). + * + * The function should be called during the teardown or cleanup phase + * to ensure proper resource deallocation. + */ +static void arm_cca_mr_cleanup(const struct attribute_group *mr_grp) +{ + misc_deregister(&arm_cca_misc_dev); + tsm_mr_free_attribute_group(mr_grp); + kfree(arm_cca_mr_buf); +} =20 /** * struct arm_cca_token_info - a descriptor for the token buffer. @@ -188,12 +456,16 @@ static const struct tsm_report_ops arm_cca_tsm_ops = =3D { =20 /** * arm_cca_guest_init - Register with the Trusted Security Module (TSM) - * interface. + * interface and also register a miscelaneous device used for exposing + * the Arm CCA measurement registers to userspace. * * Return: * * %0 - Registered successfully with the TSM interface. * * %-ENODEV - The execution context is not an Arm Realm. * * %-EBUSY - Already registered. + * * %-ENOMEM - If memory allocation fails. + * * %-EINVAL - On hash algorithm retrieval or attribute group creation + * failure. */ static int __init arm_cca_guest_init(void) { @@ -202,9 +474,22 @@ static int __init arm_cca_guest_init(void) if (!is_realm_world()) return -ENODEV; =20 + ret =3D arm_cca_mr_init(); + if (ret < 0) { + pr_err("Error %d initialising MRs\n", ret); + return ret; + } + ret =3D tsm_report_register(&arm_cca_tsm_ops, NULL); - if (ret < 0) + if (ret < 0) { pr_err("Error %d registering with TSM\n", ret); + goto cleanup_mr; + } + + return ret; + +cleanup_mr: + arm_cca_mr_cleanup(arm_cca_attr_groups[0]); =20 return ret; } @@ -212,11 +497,14 @@ module_init(arm_cca_guest_init); =20 /** * arm_cca_guest_exit - unregister with the Trusted Security Module (TSM) - * interface. + * interface and deregister the miscelaneous device used for exposing the + * Arm CCA measurement registers to userspace. + * */ static void __exit arm_cca_guest_exit(void) { tsm_report_unregister(&arm_cca_tsm_ops); + arm_cca_mr_cleanup(arm_cca_attr_groups[0]); } module_exit(arm_cca_guest_exit); =20 --=20 SAMI:{C3F47F37-75D8-414A-A8BA-3980EC8A46D7}