From nobody Mon Feb 9 01:29:52 2026 Received: from esa4.hc555-34.eu.iphmx.com (esa4.hc555-34.eu.iphmx.com [207.54.77.171]) (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 17F7843D4F2 for ; Tue, 20 Jan 2026 14:26:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=207.54.77.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768919216; cv=none; b=BegroZCXO6ISe0n6QZ8p8LvO/H2XVms+qJtHug58/G+4Lj+7aWhz3Ra+6S8tEB/zDRt32AwTO0hskT2v6M9JexUPPYUDUxIjSFdv8Vcq6qjnNrPvSDBoh50ndMZKqnkU06AwWQVAfILP0FbKExrSkgdYWu0O72uocJkEYp5ejDo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768919216; c=relaxed/simple; bh=8EBLwHT55IuAbkABwax6AVrddslo69S70L3DGkHyKUU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Toe0pw6MrU45pPRx5tBlCAxg9NuCCnyCWkbBMW/wKLW/Qkv8AsbhTEIrpdEoCA96xiReodbtiiRTqI5KTazaKzIXYZylspCA1HzXOhMAmPw4tMN4RynMH5KzktlQa6tp80ccz2tsoXcHUBAIjWZzh9mxfpLpi6DEV4DqSAlSIK0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=mobileye.com; spf=pass smtp.mailfrom=mobileye.com; dkim=fail (0-bit key) header.d=mobileye.com header.i=@mobileye.com header.b=PBf2z58Z reason="key not found in DNS"; arc=none smtp.client-ip=207.54.77.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=mobileye.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=mobileye.com Authentication-Results: smtp.subspace.kernel.org; dkim=fail reason="key not found in DNS" (0-bit key) header.d=mobileye.com header.i=@mobileye.com header.b="PBf2z58Z" DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=mobileye.com; i=@mobileye.com; q=dns/txt; s=MoEyIP; t=1768919213; x=1800455213; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=8EBLwHT55IuAbkABwax6AVrddslo69S70L3DGkHyKUU=; b=PBf2z58ZyswSvoAo8ovxocpVTFx2my7xWtPdgCv+SZ9YFcBYphjFvhJ7 uP5cuh4+thJOtb9PXES5KxCsJPhSQIqNHDO5F4JIABlKtEWcctgD5sjd1 6ya2xRtYY/HTZGeHu6SdRl/VKqGJOxq+yCmPo9YtLc1QcNKatK6Yz9MEt AXLSgJvcF7a6M2U/BbRZXWNe60TUPpF1o1wESi8fpA2J/dS3kuWjam4iz KjqUU4tek5Z1ewTXS/DuNuaTeefUdnHYr9QpJ2bQWpOaPP8dRgxg99yna OwA2k9+ue0M/KmVve6yWAqPZ7xaL0mbHjJzFAXw6nPV3zE3kFVlJg7Qtc w==; X-CSE-ConnectionGUID: mY3C/lZxQ9+riliCFUNlcw== X-CSE-MsgGUID: oFqke7kCQKKBCthqGaX0Uw== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from unknown (HELO ces03_data.me-corp.lan) ([146.255.191.134]) by esa4.hc555-34.eu.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Jan 2026 16:26:43 +0200 X-CSE-ConnectionGUID: Pp58k23DRzexhP6tmk/wuQ== X-CSE-MsgGUID: i54Ppv5KSm6oKZVU4VwrHA== Received: from unknown (HELO epgd071.me-corp.lan) ([10.154.54.2]) by ces03_data.me-corp.lan with SMTP; 20 Jan 2026 16:28:31 +0200 Received: by epgd071.me-corp.lan (sSMTP sendmail emulation); Tue, 20 Jan 2026 16:26:41 +0200 From: Vladimir Kondratiev To: Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Will Deacon , Peter Zijlstra , Boqun Feng , Mark Rutland , Gary Guo , Yury Norov , Rasmus Villemoes , cfu@wavecomp.com, torvalds@linux-foundation.org, olof@lixom.net, aleksa.paunovic@htecgroup.com, arikalo@gmail.com Cc: Vladimir Kondratiev , linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Vladimir.Kondratiev@mobileye.com Subject: [PATCH v2 2/2] riscv: more accurate check for CPU atomics support Date: Tue, 20 Jan 2026 16:26:24 +0200 Message-ID: <20260120-lrsc-only-v2-2-a522e640d27d@mobileye.com> In-Reply-To: <20260120-lrsc-only-v2-0-a522e640d27d@mobileye.com> References: <20260120-lrsc-only-v2-0-a522e640d27d@mobileye.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" X-Mailer: b4 0.14.2 Content-Transfer-Encoding: quoted-printable CPU reports extensions supported in "riscv,isa-extensions" property of the CPU node, for atomic operations it is - "a" extension meaning both AMO and LR/SC supported - "zaamo" extension meaning AMO instructions supported - "zalrsc" extension meaning LR/SC supported Code can also be compiled with subset of atomics support Relax requirements for CPU extension support from full "a" to subset compatible with software configuration Signed-off-by: Vladimir Kondratiev --- arch/riscv/kernel/cpu.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/arch/riscv/kernel/cpu.c b/arch/riscv/kernel/cpu.c index 3dbc8cc557dd1d71101959a003ea7195af3c92a0..84d4a549b6136e0c97a35025a18= ce710afbedad5 100644 --- a/arch/riscv/kernel/cpu.c +++ b/arch/riscv/kernel/cpu.c @@ -82,12 +82,26 @@ int __init riscv_early_of_processor_hartid(struct devic= e_node *node, unsigned lo return -ENODEV; =20 if (of_property_match_string(node, "riscv,isa-extensions", "i") < 0 || - of_property_match_string(node, "riscv,isa-extensions", "m") < 0 || - of_property_match_string(node, "riscv,isa-extensions", "a") < 0) { - pr_warn("CPU with hartid=3D%lu does not support ima", *hart); + of_property_match_string(node, "riscv,isa-extensions", "m") < 0) { + pr_warn("CPU with hartid=3D%lu does not support im", *hart); return -ENODEV; } - + /* any atomic supported? */ +#if defined(__riscv_atomic) || defined(__riscv_zaamo) + if (of_property_match_string(node, "riscv,isa-extensions", "a") < 0 && + of_property_match_string(node, "riscv,isa-extensions", "zaamo") < 0) { + pr_warn("CPU with hartid=3D%lu does not support AMO atomics", *hart); + return -ENODEV; + } +#elif defined(__riscv_zalrsc) + if (of_property_match_string(node, "riscv,isa-extensions", "a") < 0 && + of_property_match_string(node, "riscv,isa-extensions", "zalrsc") < 0)= { + pr_warn("CPU with hartid=3D%lu does not support LS/SC atomics", *hart); + return -ENODEV; + } +#else +#error "need atomic or zalrsc extension" +#endif return 0; =20 old_interface: --=20 2.43.0