From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.remote-ip=217.140.110.172 ARC-Seal: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; cv=none; t=1793628830; b=oZ1ZcD7xKs+PtaKODLk5qd++6HUh2aBhDVClkMnjq1teY8akArH4IT4ixL0k34tkuSZ+ m8o0pzgPCH8/VtYwWP0fcTYFQnxBE5vD8j3hsisQ0Ih8G1/KH3+uZKSeK+foi0ixB1IAT mBMBghB7Qzf5+ZfPtXU4hHAWU61iQqxv6v7xzbFbwGT/XVnAswFipZMvbnU1NhEPmjAsQ Y4TspqD2eKjGG+uSJczeUU1e4lpdm5XqcFVK3a9VCJNx7Tv1fsmMZABT2EZLtOP3uO7Yx caBe/RjeeAR4mzkwKyzwXWgM/YHs4jGw2vtxoyGLO7TuHfF6mRyBr3IIBU+qwRaqcFA== ARC-Message-Signature: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; c=relaxed/relaxed; t=1793628830; h=DMARC-Filter:Received:Received:DKIM-Signature:From:To:Cc:Subject: Date:Message-ID:X-Mailer:In-Reply-To:References:MIME-Version: Content-Transfer-Encoding; bh=ET496Gzwj43x8I7ewRvTn0IIrLk3rzMMwwxV+tD8iR0=; b=y+Q1vPjqQ1ogYf/XmmLbdDZeYNzMdNLzgblIanJZz2NAv4KNSjFiAVdGa+qmJ2ekh1+v FNHRkkycO2/YUGwlxfPuSvqfgjofFnsA9Hiplvl4ZY/hF0tbYnHDN+FjRqpHr1WMSq2dB Sh3+NpAEhxLThqe8bis3rlGtEP7sZ8VQvKOv4rk7SHnJ3PU9l14phh3QDHo2wraw7yZUi Rcri2Nk8lpIdTLIb2svRfabvLVL+lmdrHiAJZC6i4G+yr+S1CLDo9ml2Qya9ixvAxRS8O OqaQHvd82V85jERdb2y2kN7ULHr6J1deCIRbch5SSUs9rpdU4eL/Q40+i0R5bJKxVZw== ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass header.from=arm.com; spf=pass smtp.mailfrom=arm.com; dkim=pass header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=foss header.b=CxyBiLlf; arc=none smtp.remote-ip=217.140.110.172 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 50FB260A2615; Mon, 2 Nov 2026 14:13:50 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.2 smtp.subspace.kernel.org 50FB260A2615 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, unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=foss header.b=CxyBiLlf Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 9B8342A6B; Mon, 2 Nov 2026 06:13:46 -0800 (PST) Received: from e122027.arm.com (unknown [10.57.58.9]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 773743F59E; Mon, 2 Nov 2026 06:13:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=arm.com; s=foss; t=1793628829; bh=5GOUK/m9ms1YU9j5P67FGLqCUA3VCOThOsPuqKea4gU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CxyBiLlfzyRJ7kfsy06U1+1A4KmThWoeNEv+JKzVoTAUt3oZmI+hyYtrXiC+MWG3f cC1pdZtB4exgq02AEiFOGkhMez/dHZkXiGS7ViY5eH9ZUX3mNngjYYPOdUga3Dz1+k IdTZBYljvvAR4f1vg5agoAw254aZxWAM7INir6XA= From: Steven Price To: kvm@vger.kernel.org, kvmarm@lists.linux.dev Cc: Steven Price , Catalin Marinas , Marc Zyngier , Will Deacon , James Morse , Oliver Upton , Suzuki K Poulose , Zenghui Yu , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Joey Gouly , Alexandru Elisei , Christoffer Dall , Fuad Tabba , linux-coco@lists.linux.dev, Ganapatrao Kulkarni , Gavin Shan , Shanker Donthineni , Alper Gun , "Aneesh Kumar K . V" , Emi Kisanuki , Vishal Annapurve , WeiLin.Chang@arm.com, Lorenzo Pieralisi Subject: [PATCH 04/11] KVM: arm64: CCA: Check for LPA2 support and SHA-256 Date: Mon, 2 Nov 2026 14:12:55 +0000 Message-ID: <20261102141304.126883-5-steven.price@arm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20261102141304.126883-1-steven.price@arm.com> References: <20261102141304.126883-1-steven.price@arm.com> X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Transfer-Encoding: 8bit If KVM has enabled LPA2 support then check that the RMM also supports it. If there is a mismatch then disable support for realm guests as the VMM may attempt to create a guest which is incompatible with the RMM. Also check for SHA-256 support in the RMM as to begin with we only support SHA-256 based measurements. This can be relaxed in the future. Reviewed-by: Suzuki K Poulose Signed-off-by: Steven Price --- arch/arm64/kvm/rmi.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/arch/arm64/kvm/rmi.c b/arch/arm64/kvm/rmi.c index 9d118768550d..5b07beff8bc9 100644 --- a/arch/arm64/kvm/rmi.c +++ b/arch/arm64/kvm/rmi.c @@ -6,8 +6,30 @@ #include #include +#include #include +static bool rmi_has_feature(int reg, unsigned long feature) +{ + return !!u64_get_bits(rmi_feat_reg(reg), feature); +} + +static int rmm_check_features(void) +{ + if (kvm_lpa2_is_enabled() && + !rmi_has_feature(0, RMI_FEATURE_REGISTER_0_LPA2)) { + kvm_err("RMM doesn't support LPA2\n"); + return -ENXIO; + } + + if (!rmi_has_feature(1, RMI_FEATURE_REGISTER_1_HASH_SHA_256)) { + kvm_err("RMM doesn't support SHA-256 measurements\n"); + return -ENXIO; + } + + return 0; +} + void kvm_init_rmi(void) { if (kvm_get_mode() != KVM_MODE_RMM) @@ -16,5 +38,8 @@ void kvm_init_rmi(void) if (!is_rmi_available()) return; + if (rmm_check_features()) + return; + /* Future patch will enable static branch kvm_rmi_is_available */ } -- 2.43.0