From nobody Fri Jun 12 23:57:43 2026 Received: from mail-pl1-f179.google.com (mail-pl1-f179.google.com [209.85.214.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B52EA369D64 for ; Thu, 11 Jun 2026 20:13:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781208794; cv=none; b=cQ2lWFuF5t0zyhoZ9zhSQR0vLC/k2LGasPT5w6aGN6CNQLLLw9F1SzPLCvduzbc57vTlmtWRtC1Vgaoef0auhOvLCY2D3MQleexVTLsOtRH4n4W+vdH76eyMlq2aHoqFR9oD50Wdz9om/STJQvnex2QF89nZhsSD1k2GU4uuG9Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781208794; c=relaxed/simple; bh=DXyH1dA5Y1+InWuS9/lc23H/uRLWrnjzX1jOIrUlARE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ifmyAinI0QPLZwDgYquoOtnY90gX9/IL3I00e3IE8fuDxrKjN313PEUEM2ichfdb0ARL1hlkX8vOhs3Yx363fNtld7Ksi3BqGr/TBnUY2ovET6y/ek+yIS85ij5GPqMMPc0iNMJn6bcarPCKongB0cMzcwn6ozZIIiOfpjP84DA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=hdtixdkz; arc=none smtp.client-ip=209.85.214.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="hdtixdkz" Received: by mail-pl1-f179.google.com with SMTP id d9443c01a7336-2bf2247e38eso2448335ad.3 for ; Thu, 11 Jun 2026 13:13:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781208791; x=1781813591; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=PislshUCfHCMEi1kW2QUXiEEtshFqI/HzbllE9LwpBk=; b=hdtixdkz4t/O9I/mYCY9KiWAc/sD5KxTnDOdjEQ7ftCKmP0gFl2V3P0bhIIfRMGkcM hV+IqRE6xqDDaelJiYF3WVh3tP0e0YAtIQX32thBLupNn2Sksuo35ZuKA9AGIpaOXvXs yvbY2cIqNjI0sUReev+VOK8PS2jMxk8zx4B19enntLIGPCWzLGxBMcQep5eHgpWjhS7v 70DWktTqiZvv/gB4BcUOIrmTQu9hNoNA93yAtF+mlbi0c3yeIzmQ+dUQ+K/ckF54Cffv h9kG5zSEuBPWV30YUo79oJ1UBhNQcmtJXaCR60BCQKcC30Un8QOQAOcptZijsgMKkPGX pjZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781208791; x=1781813591; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=PislshUCfHCMEi1kW2QUXiEEtshFqI/HzbllE9LwpBk=; b=gI/WSHNzzzws+LV3D7ehxPp1j3MAnoFznfviijl9nbHI49P7cNmtvSoIwI1khdcnVv sdzla7M3+kAjx0cHs2fE5hlgdPuLwxPfcimo2Neg+ebrMvh1GzS87u9cfqpy2jmpykje gw7d1aR6LQWYh/RaoFWsORSNeq6apEujVhxa9Oe+KMQeoBcmpw+fLSFPnRgJc48s8JU3 O93zrabEQ5nXpveHnzq+n5B2BbEIRzmOrbBFcBPZBTRx58gRCWdXnzglT4rg2D3oZXN7 MNLRMprp2rga0rfdOHtBGn/MD4vouINPXkix8+4/UReH4M/P8LTJOzmS1RH0YrpsVf/k 3/jg== X-Forwarded-Encrypted: i=1; AFNElJ8WoRTy4gB0Om9xvyub1PnIKPzYEiuuOfLer9S7nsGMccOOOJ5cDN7OgDmMpEW2g+PUr1QGermTJ258jgA=@vger.kernel.org X-Gm-Message-State: AOJu0YyFJWDTOBUzZtVbONmEoQAXWIxuPQmQS9N2QllL38o9ecMzS9Tb tkbHkF68Hp5cdWCByp6RHMFVw9Zzatt509aWGhJCh9pDNXzsJqGGjTmZ X-Gm-Gg: Acq92OGOeUlXiluyMd8hfGOXS1y+HvnhvKUsas+k+BC2IKm35blzq2w6yeE6NRbqYek k6QyxlTQwFmMJ69oyvOAQSEj8ie2XsWBDQUhB2I4wF4p/09sJSgLGq9ZLZL2vMrtnW+HMYajmL7 VXUccqS/KDNIWsqrG0MJOhEysHOEV62DYca5JF9z+FL4s1tvGHzOWEfsAPKj77zferkx7v7SFJI EgJCL+EsEy8WJR9GJlxRttYEqvShpnns0aXFKwb52Gb+NC4RsVU40k4yTbHAe/FPZXlTcSm13cq RLu0nXagGcBqaz18VRXZZIzD+BuKM+IxFuu8SQi62ku7YW9lkvxu4Z8MGJ+1IGtlupWsRqqQhPp ahvkb8a293LGxGtfJEEQSSsV/VxpI3rIgKw2ywuICI9BR1Svyg80+8z//LRMUXcszxut0sEZUr7 CwLKfH1ejl X-Received: by 2002:a17:902:f607:b0:2bf:222e:455 with SMTP id d9443c01a7336-2c2f0059f50mr67453425ad.7.1781208791012; Thu, 11 Jun 2026 13:13:11 -0700 (PDT) Received: from [127.0.1.1] ([2a12:a305:4::302d]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c164f875casm288730475ad.22.2026.06.11.13.13.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Jun 2026 13:13:10 -0700 (PDT) From: Guodong Xu Date: Thu, 11 Jun 2026 16:12:38 -0400 Subject: [PATCH v4 01/16] dt-bindings: riscv: sort multi-letter Z extensions alphanumerically 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 Message-Id: <20260611-rva23u64-hwprobe-v2-v4-1-3f01a2449488@gmail.com> References: <20260611-rva23u64-hwprobe-v2-v4-0-3f01a2449488@gmail.com> In-Reply-To: <20260611-rva23u64-hwprobe-v2-v4-0-3f01a2449488@gmail.com> To: Jonathan Corbet , Shuah Khan , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Zong Li , Deepak Gupta , Anup Patel , Atish Patra , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Yixun Lan , Chen Wang , Inochi Amaoto Cc: linux-doc@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, Paul Walmsley , Conor Dooley , devicetree@vger.kernel.org, spacemit@lists.linux.dev, sophgo@lists.linux.dev, linux-kselftest@vger.kernel.org, Palmer Dabbelt , Guodong Xu X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=10891; i=docular.xu@gmail.com; h=from:subject:message-id; bh=DXyH1dA5Y1+InWuS9/lc23H/uRLWrnjzX1jOIrUlARE=; b=owGbwMvMwCXWtEl1Z3CGpCDjabUkhixtsf0RC3eYvLzana13v1hu35/fK2QfObnoVt180hO+6 N7sE/XPO0pZGMS4GGTFFFkOH23J3vrKJ9r3OecPmDmsTCBDGLg4BWAi52oYGQ7NZFvznHdpiVLw 1n9GS0WmPtA+s+0k42QjzzuL5GTakqMY/vDuFb3N377bSX6ryLcg08Wlea7qSq2/rddtrfnJsZz vAwcA X-Developer-Key: i=docular.xu@gmail.com; a=openpgp; fpr=90B1DC3DF0BD10FD1227BD6344F254AF42F143EE The multi-letter extension enum is documented as being sorted alphanumerically (see the "multi-letter extensions, sorted alphanumerically" comment), but several Z entries have drifted out of order. Reorder the affected entries so the multi-letter Z list is sorted alphanumerically again. Signed-off-by: Guodong Xu Acked-by: Conor Dooley --- v4: New patch. --- .../devicetree/bindings/riscv/extensions.yaml | 184 ++++++++++-------= ---- 1 file changed, 92 insertions(+), 92 deletions(-) diff --git a/Documentation/devicetree/bindings/riscv/extensions.yaml b/Docu= mentation/devicetree/bindings/riscv/extensions.yaml index 2b0a8a93bb214..5ffc40d599c02 100644 --- a/Documentation/devicetree/bindings/riscv/extensions.yaml +++ b/Documentation/devicetree/bindings/riscv/extensions.yaml @@ -457,6 +457,13 @@ properties: merged in the riscv-isa-manual by commit dbc79cf28a2 ("Initial= seed of zc.adoc to src tree."). =20 + - const: zclsd + description: + The Zclsd extension implements the compressed (16-bit) version= of the + Load/Store Pair for RV32. As with Zilsd, this extension was ra= tified + in commit f88abf1 ("Integrating load/store pair for RV32 with = the + main manual") of riscv-isa-manual. + - const: zcmop description: The standard Zcmop extension version 1.0, as ratified in commit @@ -487,6 +494,22 @@ properties: in commit 64074bc ("Update version numbers for Zfh/Zfinx") of riscv-isa-manual. =20 + - const: zicbom + description: + The standard Zicbom extension for base cache management operat= ions as + ratified in commit 3dd606f ("Create cmobase-v1.0.pdf") of risc= v-CMOs. + + - const: zicbop + description: + The standard Zicbop extension for cache-block prefetch instruc= tions + as ratified in commit 3dd606f ("Create cmobase-v1.0.pdf") of + riscv-CMOs. + + - const: zicboz + description: + The standard Zicboz extension for cache-block zeroing as ratif= ied + in commit 3dd606f ("Create cmobase-v1.0.pdf") of riscv-CMOs. + - const: ziccamoa description: The standard Ziccamoa extension for main memory (cacheability = and @@ -514,6 +537,66 @@ properties: guarantee on LR/SC sequences, as ratified in commit b1d806605f= 87 ("Updated to ratified state.") of the riscv profiles specifica= tion. =20 + - const: zicfilp + description: | + The standard Zicfilp extension for enforcing forward edge + control-flow integrity as ratified in commit 3f8e450 ("merge + pull request #227 from ved-rivos/0709") of riscv-cfi + github repo. + + - const: zicfiss + description: | + The standard Zicfiss extension for enforcing backward edge + control-flow integrity as ratified in commit 3f8e450 ("merge + pull request #227 from ved-rivos/0709") of riscv-cfi + github repo. + + - const: zicntr + description: + The standard Zicntr extension for base counters and timers, as + ratified in the 20191213 version of the unprivileged ISA + specification. + + - const: zicond + description: + The standard Zicond extension for conditional arithmetic and + conditional-select/move operations as ratified in commit 95cf1= f9 + ("Add changes requested by Ved during signoff") of riscv-zicon= d. + + - const: zicsr + description: | + The standard Zicsr extension for control and status register + instructions, as ratified in the 20191213 version of the + unprivileged ISA specification. + + This does not include Chapter 10, "Counters", which documents + special case read-only CSRs, that were moved into the Zicntr a= nd + Zihpm extensions after the ratification of the 20191213 versio= n of + the unprivileged specification. + + - const: zifencei + description: + The standard Zifencei extension for instruction-fetch fence, as + ratified in the 20191213 version of the unprivileged ISA + specification. + + - const: zihintntl + description: + The standard Zihintntl extension for non-temporal locality hin= ts, as + ratified in commit 0dc91f5 ("Zihintntl is ratified") of the + riscv-isa-manual. + + - const: zihintpause + description: + The standard Zihintpause extension for pause hints, as ratifie= d in + commit d8ab5c7 ("Zihintpause is ratified") of the riscv-isa-ma= nual. + + - const: zihpm + description: + The standard Zihpm extension for hardware performance counters= , as + ratified in the 20191213 version of the unprivileged ISA + specification. + - const: zilsd description: The standard Zilsd extension which provides support for aligned @@ -521,12 +604,10 @@ properties: encodings, as ratified in commit f88abf1 ("Integrating load/store pair for RV32 with the main manual") of riscv-isa-m= anual. =20 - - const: zclsd + - const: zimop description: - The Zclsd extension implements the compressed (16-bit) version= of the - Load/Store Pair for RV32. As with Zilsd, this extension was ra= tified - in commit f88abf1 ("Integrating load/store pair for RV32 with = the - main manual") of riscv-isa-manual. + The standard Zimop extension version 1.0, as ratified in commit + 58220614a5f ("Zimop is ratified/1.0") of the riscv-isa-manual. =20 - const: zk description: @@ -590,87 +671,6 @@ properties: in version 1.0 of RISC-V Cryptography Extensions Volume I specification. =20 - - const: zicbom - description: - The standard Zicbom extension for base cache management operat= ions as - ratified in commit 3dd606f ("Create cmobase-v1.0.pdf") of risc= v-CMOs. - - - const: zicbop - description: - The standard Zicbop extension for cache-block prefetch instruc= tions - as ratified in commit 3dd606f ("Create cmobase-v1.0.pdf") of - riscv-CMOs. - - - const: zicboz - description: - The standard Zicboz extension for cache-block zeroing as ratif= ied - in commit 3dd606f ("Create cmobase-v1.0.pdf") of riscv-CMOs. - - - const: zicfilp - description: | - The standard Zicfilp extension for enforcing forward edge - control-flow integrity as ratified in commit 3f8e450 ("merge - pull request #227 from ved-rivos/0709") of riscv-cfi - github repo. - - - const: zicfiss - description: | - The standard Zicfiss extension for enforcing backward edge - control-flow integrity as ratified in commit 3f8e450 ("merge - pull request #227 from ved-rivos/0709") of riscv-cfi - github repo. - - - const: zicntr - description: - The standard Zicntr extension for base counters and timers, as - ratified in the 20191213 version of the unprivileged ISA - specification. - - - const: zicond - description: - The standard Zicond extension for conditional arithmetic and - conditional-select/move operations as ratified in commit 95cf1= f9 - ("Add changes requested by Ved during signoff") of riscv-zicon= d. - - - const: zicsr - description: | - The standard Zicsr extension for control and status register - instructions, as ratified in the 20191213 version of the - unprivileged ISA specification. - - This does not include Chapter 10, "Counters", which documents - special case read-only CSRs, that were moved into the Zicntr a= nd - Zihpm extensions after the ratification of the 20191213 versio= n of - the unprivileged specification. - - - const: zifencei - description: - The standard Zifencei extension for instruction-fetch fence, as - ratified in the 20191213 version of the unprivileged ISA - specification. - - - const: zihintpause - description: - The standard Zihintpause extension for pause hints, as ratifie= d in - commit d8ab5c7 ("Zihintpause is ratified") of the riscv-isa-ma= nual. - - - const: zihintntl - description: - The standard Zihintntl extension for non-temporal locality hin= ts, as - ratified in commit 0dc91f5 ("Zihintntl is ratified") of the - riscv-isa-manual. - - - const: zihpm - description: - The standard Zihpm extension for hardware performance counters= , as - ratified in the 20191213 version of the unprivileged ISA - specification. - - - const: zimop - description: - The standard Zimop extension version 1.0, as ratified in commit - 58220614a5f ("Zimop is ratified/1.0") of the riscv-isa-manual. - - const: ztso description: The standard Ztso extension for total store ordering, as ratif= ied @@ -809,18 +809,18 @@ properties: instructions, as ratified in commit 56ed795 ("Update riscv-crypto-spec-vector.adoc") of riscv-crypto. =20 - - const: zvksh - description: | - The standard Zvksh extension for ShangMi suite: SM3 secure hash - instructions, as ratified in commit 56ed795 ("Update - riscv-crypto-spec-vector.adoc") of riscv-crypto. - - const: zvksg description: The standard Zvksg extension for ShangMi algorithm suite with = GCM instructions, as ratified in commit 56ed795 ("Update riscv-crypto-spec-vector.adoc") of riscv-crypto. =20 + - const: zvksh + description: | + The standard Zvksh extension for ShangMi suite: SM3 secure hash + instructions, as ratified in commit 56ed795 ("Update + riscv-crypto-spec-vector.adoc") of riscv-crypto. + - const: zvkt description: The standard Zvkt extension for vector data-independent execut= ion --=20 2.43.0 From nobody Fri Jun 12 23:57:43 2026 Received: from mail-pl1-f170.google.com (mail-pl1-f170.google.com [209.85.214.170]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7EA6D392C24 for ; Thu, 11 Jun 2026 20:13:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.170 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781208802; cv=none; b=YpCuS82slccDJyjExf59iEhSd2rIJ04zar2Kiqvz+SlBe5noGTIVCXMIs6OWdcm5DXFXV3DVJwbjeLsty1vCB8wQxRGM7FsuPgtHG4qm1xqBhP8xOn4IUdyAkU7r+CCKhVyFTfeTOkL7R1lpgpXeRckaRkWE3DYRQygjBbImOcg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781208802; c=relaxed/simple; bh=WGcOGvqaetbEHQzdF/lWpQ6ABvIWM9LYTrsz4zJlOL0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=bNMVuggZWAZpJtUK4x7J1Iv9Je79IkKCQG9SXaNZe676n3kfg9gkoNy9cFxSNdydu6i4mMl04Ono210fsgCtzQRowTvxBlakiuYhqiu4HuvNQkUKr4snqQHJOPb/zMrDhAMiOK8n3x3DXzO+/5sVjJ4Z/oIHrC8SZwIAPTqQDgU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=na6/bPsj; arc=none smtp.client-ip=209.85.214.170 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="na6/bPsj" Received: by mail-pl1-f170.google.com with SMTP id d9443c01a7336-2c27fc587ebso1325265ad.0 for ; Thu, 11 Jun 2026 13:13:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781208800; x=1781813600; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=8I5erXJc2rPSk4mu9K4o3pYu8vzsNMBKJ/Xde8NImfk=; b=na6/bPsjkXop4EIdSUZnTaUz12Ix4J6puZJdg9MEZnGyblfOFg8fE4FmPq4BIqTcrV RnIoOf9IES0W+XATKk1Gf/vSHXXxzXHB2K8Rlhyx5jN/9SXtKEAGC1efq8P1mS4zkyRW fQIqkpX6/IT9JYt6w3VY9UOKjRFPcx7uUDN+i6nNABQjE+A/cAnmsp8iZOQvRZfebwFm ED69ldRsbr3GL1k3i20LSYjJOJYPTstGMVZ/WKWtsog4E3oEDH60yCru8nOSw8+3Uj2O Sh9jiU2gIs0IfTJI0Ep06uZ+lWOUPQ1u/ld2WaoqdBe7Eu2nou1LCgAdZMqzj1qAVYo7 PBdg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781208800; x=1781813600; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=8I5erXJc2rPSk4mu9K4o3pYu8vzsNMBKJ/Xde8NImfk=; b=AjgPNxrGtrjMiCuafepppk/H8BHGTY2tDfuILXXXZki8di1p+5+Pdqm/03wmZNxPFM 1aVpademIFGi0zD2/LsC+wOHTE+LGbNyKGG20s7ClEwj5xmQ6FBazC3wWjnygWrxmQXM j4SwebupEgU5OeZYwi5YqHwepV3gNBsBT3SRBb8Li/8tbpLn6JYUXVHqCyW3uPR1vqjE alfphtWPZ87T7vO24objorjJoPDbB2XxOKBlNWSD7ugxzQK6Vzr0SoC8Q7PXOY26CKKb GWh9K2TUdA7QgRdnU90Gk8SGU0o3jv+Oo891Lc4WiIL2urtsBrGIu/dlYlLp6QkOcwqG zB9g== X-Forwarded-Encrypted: i=1; AFNElJ/aPCVv2/KLb/CTrKY5zn/f/voxC59ILmeU5pfdHuPe8n1nJLjJdUFGbe8e9xfZ30QQzdyTizxwFrW+UU4=@vger.kernel.org X-Gm-Message-State: AOJu0YwJxRRRjH8ZdpN8GZBcd7O1fzdYtNOgUTWucwRko+D8CLWb0SEe pxGsgOpI/us1biJPzcU/LA16lS7xT0vdX3j8RyLKm2Ra5gDSOB5m+sWz X-Gm-Gg: Acq92OHbdmpwF0arYPZVK1Go6+ABe9dBt0fYp4ViJQMY8WD4hYejiPrw5wO8RS3IaSq T88SMvlIgUGjNrJTw66816n3K5Oi37ScmbQgjCwRvyNUFyyOTIM/G6dbMAQJx4lUGV5FrnQjXoU GcXguyr1tr7qQDTnNm7BRMLG3JWDUDQtXvehq5rZ77YKNvcokHjHgFthf3YLmaAXazunwLZ+gfS Lr4ercmh8Sa30k4f8vXUByq+r4jIJ3ZsI0zRaGQBR0rjnZCzw2punZcp7eRCGyyBQ4xfOCNdwKy nKnjNIzrbCzo7zrbBNsOZAHwIWTlCevYnqBrX7T8AWmfZdxdf94qfgaiSWgqNCOhc1qusU7DQE8 7vpm/6UXlkyYBykGwWJeWTNX83IaRC10laGeCCK3cdKrE+ohot5bEEkAoOdfmj7RyB4nBi9fPbC qn0Znmvc5v X-Received: by 2002:a17:903:2449:b0:2c2:50c7:58a4 with SMTP id d9443c01a7336-2c2f21a17e8mr51191105ad.22.1781208799654; Thu, 11 Jun 2026 13:13:19 -0700 (PDT) Received: from [127.0.1.1] ([2a12:a305:4::302d]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c164f875casm288730475ad.22.2026.06.11.13.13.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Jun 2026 13:13:19 -0700 (PDT) From: Guodong Xu Date: Thu, 11 Jun 2026 16:12:39 -0400 Subject: [PATCH v4 02/16] riscv: hwprobe.rst: Make indentation consistent 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 Message-Id: <20260611-rva23u64-hwprobe-v2-v4-2-3f01a2449488@gmail.com> References: <20260611-rva23u64-hwprobe-v2-v4-0-3f01a2449488@gmail.com> In-Reply-To: <20260611-rva23u64-hwprobe-v2-v4-0-3f01a2449488@gmail.com> To: Jonathan Corbet , Shuah Khan , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Zong Li , Deepak Gupta , Anup Patel , Atish Patra , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Yixun Lan , Chen Wang , Inochi Amaoto Cc: linux-doc@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, Paul Walmsley , Conor Dooley , devicetree@vger.kernel.org, spacemit@lists.linux.dev, sophgo@lists.linux.dev, linux-kselftest@vger.kernel.org, Palmer Dabbelt , Guodong Xu , Andrew Jones X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=20524; i=docular.xu@gmail.com; h=from:subject:message-id; bh=s32nahUhQLj4L2esrJKbW037pNJIi93j499jOhIxbus=; b=owGbwMvMwCXWtEl1Z3CGpCDjabUkhixtsQO3+PYv4T0TVdi6KGjhvNtist7ply2OeP3qMqt/8 LT5pHtpRykLgxgXg6yYIsvhoy3ZW1/5RPs+5/wBM4eVCWQIAxenAExkdQDDX4k/6Sc9nublu/7e dvupZ7zAmd9fu4LXLt7pvujzWsNHJxcxMjytOpG44VW7QppRs/wdX/3PkRdbLVxPdHVLlD9azFj /ghUA X-Developer-Key: i=docular.xu@gmail.com; a=openpgp; fpr=90B1DC3DF0BD10FD1227BD6344F254AF42F143EE From: Andrew Jones A handful of vendor-extension entries indent continuation lines with a tab character, while the rest of hwprobe.rst uses spaces. In addition, many list items align their continuation lines under the 'm' of ':c:macro:' (column 7) rather than under the item text (column 4), so the file mixes several indentation styles. Replace the tabs with spaces and align every list item's continuation lines under the item text, giving the whole file one consistent style. Whitespace-only change, no functional change. Signed-off-by: Andrew Jones [Guodong: extend from tabs->spaces to normalizing all continuation-line indentation across the file] Signed-off-by: Guodong Xu --- v4: No change. v3: - Move to the front of the series. - Extend from replacing tabs to normalizing all continuation-line indentation, so later patches add documentation on top of a consistent base (Andrew). --- Documentation/arch/riscv/hwprobe.rst | 194 +++++++++++++++++--------------= ---- 1 file changed, 97 insertions(+), 97 deletions(-) diff --git a/Documentation/arch/riscv/hwprobe.rst b/Documentation/arch/risc= v/hwprobe.rst index c420a8349bc68..a09a8f16bd16f 100644 --- a/Documentation/arch/riscv/hwprobe.rst +++ b/Documentation/arch/riscv/hwprobe.rst @@ -82,121 +82,121 @@ The following keys are defined: version 1.0 of the RISC-V Vector extension manual. =20 * :c:macro:`RISCV_HWPROBE_EXT_ZBA`: The Zba address generation extension= is - supported, as defined in version 1.0 of the Bit-Manipulation ISA - extensions. + supported, as defined in version 1.0 of the Bit-Manipulation ISA + extensions. =20 * :c:macro:`RISCV_HWPROBE_EXT_ZBB`: The Zbb extension is supported, as d= efined - in version 1.0 of the Bit-Manipulation ISA extensions. + in version 1.0 of the Bit-Manipulation ISA extensions. =20 * :c:macro:`RISCV_HWPROBE_EXT_ZBS`: The Zbs extension is supported, as d= efined - in version 1.0 of the Bit-Manipulation ISA extensions. + in version 1.0 of the Bit-Manipulation ISA extensions. =20 * :c:macro:`RISCV_HWPROBE_EXT_ZICBOZ`: The Zicboz extension is supported= , as - ratified in commit 3dd606f ("Create cmobase-v1.0.pdf") of riscv-CMO= s. + ratified in commit 3dd606f ("Create cmobase-v1.0.pdf") of riscv-CMOs. =20 * :c:macro:`RISCV_HWPROBE_EXT_ZBC` The Zbc extension is supported, as de= fined - in version 1.0 of the Bit-Manipulation ISA extensions. + in version 1.0 of the Bit-Manipulation ISA extensions. =20 * :c:macro:`RISCV_HWPROBE_EXT_ZBKB` The Zbkb extension is supported, as - defined in version 1.0 of the Scalar Crypto ISA extensions. + defined in version 1.0 of the Scalar Crypto ISA extensions. =20 * :c:macro:`RISCV_HWPROBE_EXT_ZBKC` The Zbkc extension is supported, as - defined in version 1.0 of the Scalar Crypto ISA extensions. + defined in version 1.0 of the Scalar Crypto ISA extensions. =20 * :c:macro:`RISCV_HWPROBE_EXT_ZBKX` The Zbkx extension is supported, as - defined in version 1.0 of the Scalar Crypto ISA extensions. + defined in version 1.0 of the Scalar Crypto ISA extensions. =20 * :c:macro:`RISCV_HWPROBE_EXT_ZKND` The Zknd extension is supported, as - defined in version 1.0 of the Scalar Crypto ISA extensions. + defined in version 1.0 of the Scalar Crypto ISA extensions. =20 * :c:macro:`RISCV_HWPROBE_EXT_ZKNE` The Zkne extension is supported, as - defined in version 1.0 of the Scalar Crypto ISA extensions. + defined in version 1.0 of the Scalar Crypto ISA extensions. =20 * :c:macro:`RISCV_HWPROBE_EXT_ZKNH` The Zknh extension is supported, as - defined in version 1.0 of the Scalar Crypto ISA extensions. + defined in version 1.0 of the Scalar Crypto ISA extensions. =20 * :c:macro:`RISCV_HWPROBE_EXT_ZKSED` The Zksed extension is supported, as - defined in version 1.0 of the Scalar Crypto ISA extensions. + defined in version 1.0 of the Scalar Crypto ISA extensions. =20 * :c:macro:`RISCV_HWPROBE_EXT_ZKSH` The Zksh extension is supported, as - defined in version 1.0 of the Scalar Crypto ISA extensions. + defined in version 1.0 of the Scalar Crypto ISA extensions. =20 * :c:macro:`RISCV_HWPROBE_EXT_ZKT` The Zkt extension is supported, as de= fined - in version 1.0 of the Scalar Crypto ISA extensions. + in version 1.0 of the Scalar Crypto ISA extensions. =20 * :c:macro:`RISCV_HWPROBE_EXT_ZVBB`: The Zvbb extension is supported as - defined in version 1.0 of the RISC-V Cryptography Extensions Volume= II. + defined in version 1.0 of the RISC-V Cryptography Extensions Volume II. =20 * :c:macro:`RISCV_HWPROBE_EXT_ZVBC`: The Zvbc extension is supported as - defined in version 1.0 of the RISC-V Cryptography Extensions Volume= II. + defined in version 1.0 of the RISC-V Cryptography Extensions Volume II. =20 * :c:macro:`RISCV_HWPROBE_EXT_ZVKB`: The Zvkb extension is supported as - defined in version 1.0 of the RISC-V Cryptography Extensions Volume= II. + defined in version 1.0 of the RISC-V Cryptography Extensions Volume II. =20 * :c:macro:`RISCV_HWPROBE_EXT_ZVKG`: The Zvkg extension is supported as - defined in version 1.0 of the RISC-V Cryptography Extensions Volume= II. + defined in version 1.0 of the RISC-V Cryptography Extensions Volume II. =20 * :c:macro:`RISCV_HWPROBE_EXT_ZVKNED`: The Zvkned extension is supported= as - defined in version 1.0 of the RISC-V Cryptography Extensions Volume= II. + defined in version 1.0 of the RISC-V Cryptography Extensions Volume II. =20 * :c:macro:`RISCV_HWPROBE_EXT_ZVKNHA`: The Zvknha extension is supported= as - defined in version 1.0 of the RISC-V Cryptography Extensions Volume= II. + defined in version 1.0 of the RISC-V Cryptography Extensions Volume II. =20 * :c:macro:`RISCV_HWPROBE_EXT_ZVKNHB`: The Zvknhb extension is supported= as - defined in version 1.0 of the RISC-V Cryptography Extensions Volume= II. + defined in version 1.0 of the RISC-V Cryptography Extensions Volume II. =20 * :c:macro:`RISCV_HWPROBE_EXT_ZVKSED`: The Zvksed extension is supported= as - defined in version 1.0 of the RISC-V Cryptography Extensions Volume= II. + defined in version 1.0 of the RISC-V Cryptography Extensions Volume II. =20 * :c:macro:`RISCV_HWPROBE_EXT_ZVKSH`: The Zvksh extension is supported as - defined in version 1.0 of the RISC-V Cryptography Extensions Volume= II. + defined in version 1.0 of the RISC-V Cryptography Extensions Volume II. =20 * :c:macro:`RISCV_HWPROBE_EXT_ZVKT`: The Zvkt extension is supported as - defined in version 1.0 of the RISC-V Cryptography Extensions Volume= II. + defined in version 1.0 of the RISC-V Cryptography Extensions Volume II. =20 * :c:macro:`RISCV_HWPROBE_EXT_ZFH`: The Zfh extension version 1.0 is sup= ported - as defined in the RISC-V ISA manual. + as defined in the RISC-V ISA manual. =20 * :c:macro:`RISCV_HWPROBE_EXT_ZFHMIN`: The Zfhmin extension version 1.0 = is - supported as defined in the RISC-V ISA manual. + supported as defined in the RISC-V ISA manual. =20 * :c:macro:`RISCV_HWPROBE_EXT_ZIHINTNTL`: The Zihintntl extension versio= n 1.0 - is supported as defined in the RISC-V ISA manual. + is supported as defined in the RISC-V ISA manual. =20 * :c:macro:`RISCV_HWPROBE_EXT_ZVFH`: The Zvfh extension is supported as - defined in the RISC-V Vector manual starting from commit e2ccd0548d= 6c - ("Remove draft warnings from Zvfh[min]"). + defined in the RISC-V Vector manual starting from commit e2ccd0548d6c + ("Remove draft warnings from Zvfh[min]"). =20 * :c:macro:`RISCV_HWPROBE_EXT_ZVFHMIN`: The Zvfhmin extension is support= ed as - defined in the RISC-V Vector manual starting from commit e2ccd0548d= 6c - ("Remove draft warnings from Zvfh[min]"). + defined in the RISC-V Vector manual starting from commit e2ccd0548d6c + ("Remove draft warnings from Zvfh[min]"). =20 * :c:macro:`RISCV_HWPROBE_EXT_ZFA`: The Zfa extension is supported as - defined in the RISC-V ISA manual starting from commit 056b6ff467c7 - ("Zfa is ratified"). + defined in the RISC-V ISA manual starting from commit 056b6ff467c7 + ("Zfa is ratified"). =20 * :c:macro:`RISCV_HWPROBE_EXT_ZTSO`: The Ztso extension is supported as - defined in the RISC-V ISA manual starting from commit 5618fb5a216b - ("Ztso is now ratified.") + defined in the RISC-V ISA manual starting from commit 5618fb5a216b + ("Ztso is now ratified.") =20 * :c:macro:`RISCV_HWPROBE_EXT_ZACAS`: The Zacas extension is supported as - defined in the Atomic Compare-and-Swap (CAS) instructions manual st= arting - from commit 5059e0ca641c ("update to ratified"). + defined in the Atomic Compare-and-Swap (CAS) instructions manual start= ing + from commit 5059e0ca641c ("update to ratified"). =20 * :c:macro:`RISCV_HWPROBE_EXT_ZICNTR`: The Zicntr extension version 2.0 - is supported as defined in the RISC-V ISA manual. + is supported as defined in the RISC-V ISA manual. =20 * :c:macro:`RISCV_HWPROBE_EXT_ZICOND`: The Zicond extension is supported= as - defined in the RISC-V Integer Conditional (Zicond) operations exten= sion - manual starting from commit 95cf1f9 ("Add changes requested by Ved - during signoff") + defined in the RISC-V Integer Conditional (Zicond) operations extension + manual starting from commit 95cf1f9 ("Add changes requested by Ved + during signoff") =20 * :c:macro:`RISCV_HWPROBE_EXT_ZIHINTPAUSE`: The Zihintpause extension is - supported as defined in the RISC-V ISA manual starting from commit - d8ab5c78c207 ("Zihintpause is ratified"). + supported as defined in the RISC-V ISA manual starting from commit + d8ab5c78c207 ("Zihintpause is ratified"). =20 * :c:macro:`RISCV_HWPROBE_EXT_ZIHPM`: The Zihpm extension version 2.0 - is supported as defined in the RISC-V ISA manual. + is supported as defined in the RISC-V ISA manual. =20 * :c:macro:`RISCV_HWPROBE_EXT_ZVE32X`: The Vector sub-extension Zve32x is supported, as defined by version 1.0 of the RISC-V Vector extension ma= nual. @@ -214,84 +214,84 @@ The following keys are defined: supported, as defined by version 1.0 of the RISC-V Vector extension ma= nual. =20 * :c:macro:`RISCV_HWPROBE_EXT_ZIMOP`: The Zimop May-Be-Operations extens= ion is - supported as defined in the RISC-V ISA manual starting from commit - 58220614a5f ("Zimop is ratified/1.0"). + supported as defined in the RISC-V ISA manual starting from commit + 58220614a5f ("Zimop is ratified/1.0"). =20 * :c:macro:`RISCV_HWPROBE_EXT_ZCA`: The Zca extension part of Zc* standa= rd - extensions for code size reduction, as ratified in commit 8be3419c1= c0 - ("Zcf doesn't exist on RV64 as it contains no instructions") of - riscv-code-size-reduction. + extensions for code size reduction, as ratified in commit 8be3419c1c0 + ("Zcf doesn't exist on RV64 as it contains no instructions") of + riscv-code-size-reduction. =20 * :c:macro:`RISCV_HWPROBE_EXT_ZCB`: The Zcb extension part of Zc* standa= rd - extensions for code size reduction, as ratified in commit 8be3419c1= c0 - ("Zcf doesn't exist on RV64 as it contains no instructions") of - riscv-code-size-reduction. + extensions for code size reduction, as ratified in commit 8be3419c1c0 + ("Zcf doesn't exist on RV64 as it contains no instructions") of + riscv-code-size-reduction. =20 * :c:macro:`RISCV_HWPROBE_EXT_ZCD`: The Zcd extension part of Zc* standa= rd - extensions for code size reduction, as ratified in commit 8be3419c1= c0 - ("Zcf doesn't exist on RV64 as it contains no instructions") of - riscv-code-size-reduction. + extensions for code size reduction, as ratified in commit 8be3419c1c0 + ("Zcf doesn't exist on RV64 as it contains no instructions") of + riscv-code-size-reduction. =20 * :c:macro:`RISCV_HWPROBE_EXT_ZCF`: The Zcf extension part of Zc* standa= rd - extensions for code size reduction, as ratified in commit 8be3419c1= c0 - ("Zcf doesn't exist on RV64 as it contains no instructions") of - riscv-code-size-reduction. + extensions for code size reduction, as ratified in commit 8be3419c1c0 + ("Zcf doesn't exist on RV64 as it contains no instructions") of + riscv-code-size-reduction. =20 * :c:macro:`RISCV_HWPROBE_EXT_ZCMOP`: The Zcmop May-Be-Operations extens= ion is - supported as defined in the RISC-V ISA manual starting from commit - c732a4f39a4 ("Zcmop is ratified/1.0"). + supported as defined in the RISC-V ISA manual starting from commit + c732a4f39a4 ("Zcmop is ratified/1.0"). =20 * :c:macro:`RISCV_HWPROBE_EXT_ZAWRS`: The Zawrs extension is supported as - ratified in commit 98918c844281 ("Merge pull request #1217 from - riscv/zawrs") of riscv-isa-manual. + ratified in commit 98918c844281 ("Merge pull request #1217 from + riscv/zawrs") of riscv-isa-manual. =20 * :c:macro:`RISCV_HWPROBE_EXT_ZAAMO`: The Zaamo extension is supported as - defined in the in the RISC-V ISA manual starting from commit e87412= e621f1 - ("integrate Zaamo and Zalrsc text (#1304)"). + defined in the in the RISC-V ISA manual starting from commit e87412e62= 1f1 + ("integrate Zaamo and Zalrsc text (#1304)"). =20 * :c:macro:`RISCV_HWPROBE_EXT_ZALASR`: The Zalasr extension is supported= as - frozen at commit 194f0094 ("Version 0.9 for freeze") of riscv-zalas= r. + frozen at commit 194f0094 ("Version 0.9 for freeze") of riscv-zalasr. =20 * :c:macro:`RISCV_HWPROBE_EXT_ZALRSC`: The Zalrsc extension is supported= as - defined in the in the RISC-V ISA manual starting from commit e87412= e621f1 - ("integrate Zaamo and Zalrsc text (#1304)"). + defined in the in the RISC-V ISA manual starting from commit e87412e62= 1f1 + ("integrate Zaamo and Zalrsc text (#1304)"). =20 * :c:macro:`RISCV_HWPROBE_EXT_SUPM`: The Supm extension is supported as - defined in version 1.0 of the RISC-V Pointer Masking extensions. + defined in version 1.0 of the RISC-V Pointer Masking extensions. =20 * :c:macro:`RISCV_HWPROBE_EXT_ZFBFMIN`: The Zfbfmin extension is support= ed as - defined in the RISC-V ISA manual starting from commit 4dc23d6229de - ("Added Chapter title to BF16"). + defined in the RISC-V ISA manual starting from commit 4dc23d6229de + ("Added Chapter title to BF16"). =20 * :c:macro:`RISCV_HWPROBE_EXT_ZVFBFMIN`: The Zvfbfmin extension is suppo= rted as - defined in the RISC-V ISA manual starting from commit 4dc23d6229de - ("Added Chapter title to BF16"). + defined in the RISC-V ISA manual starting from commit 4dc23d6229de + ("Added Chapter title to BF16"). =20 * :c:macro:`RISCV_HWPROBE_EXT_ZVFBFWMA`: The Zvfbfwma extension is suppo= rted as - defined in the RISC-V ISA manual starting from commit 4dc23d6229de - ("Added Chapter title to BF16"). + defined in the RISC-V ISA manual starting from commit 4dc23d6229de + ("Added Chapter title to BF16"). =20 * :c:macro:`RISCV_HWPROBE_EXT_ZICBOM`: The Zicbom extension is supported= , as - ratified in commit 3dd606f ("Create cmobase-v1.0.pdf") of riscv-CMO= s. + ratified in commit 3dd606f ("Create cmobase-v1.0.pdf") of riscv-CMOs. =20 * :c:macro:`RISCV_HWPROBE_EXT_ZABHA`: The Zabha extension is supported as - ratified in commit 49f49c842ff9 ("Update to Rafified state") of - riscv-zabha. + ratified in commit 49f49c842ff9 ("Update to Rafified state") of + riscv-zabha. =20 * :c:macro:`RISCV_HWPROBE_EXT_ZICBOP`: The Zicbop extension is supported= , as - ratified in commit 3dd606f ("Create cmobase-v1.0.pdf") of riscv-CMO= s. + ratified in commit 3dd606f ("Create cmobase-v1.0.pdf") of riscv-CMOs. =20 * :c:macro:`RISCV_HWPROBE_EXT_ZILSD`: The Zilsd extension is supported as - defined in the RISC-V ISA manual starting from commit f88abf1 ("Int= egrating - load/store pair for RV32 with the main manual") of the riscv-isa-ma= nual. + defined in the RISC-V ISA manual starting from commit f88abf1 ("Integr= ating + load/store pair for RV32 with the main manual") of the riscv-isa-manua= l. =20 * :c:macro:`RISCV_HWPROBE_EXT_ZCLSD`: The Zclsd extension is supported as - defined in the RISC-V ISA manual starting from commit f88abf1 ("Int= egrating - load/store pair for RV32 with the main manual") of the riscv-isa-ma= nual. + defined in the RISC-V ISA manual starting from commit f88abf1 ("Integr= ating + load/store pair for RV32 with the main manual") of the riscv-isa-manua= l. =20 * :c:macro:`RISCV_HWPROBE_KEY_CPUPERF_0`: Deprecated. Returns similar val= ues to - :c:macro:`RISCV_HWPROBE_KEY_MISALIGNED_SCALAR_PERF`, but the key was - mistakenly classified as a bitmask rather than a value. + :c:macro:`RISCV_HWPROBE_KEY_MISALIGNED_SCALAR_PERF`, but the key was + mistakenly classified as a bitmask rather than a value. =20 * :c:macro:`RISCV_HWPROBE_KEY_MISALIGNED_SCALAR_PERF`: An enum value descr= ibing the performance of misaligned scalar native word accesses on the selecte= d set @@ -326,7 +326,7 @@ The following keys are defined: * :c:macro:`RISCV_HWPROBE_KEY_TIME_CSR_FREQ`: Frequency (in Hz) of `time C= SR`. =20 * :c:macro:`RISCV_HWPROBE_KEY_MISALIGNED_VECTOR_PERF`: An enum value descr= ibing the - performance of misaligned vector accesses on the selected set of proc= essors. + performance of misaligned vector accesses on the selected set of process= ors. =20 * :c:macro:`RISCV_HWPROBE_MISALIGNED_VECTOR_UNKNOWN`: The performance of= misaligned vector accesses is unknown. @@ -348,7 +348,7 @@ The following keys are defined: * MIPS =20 * :c:macro:`RISCV_HWPROBE_VENDOR_EXT_XMIPSEXECTL`: The xmipsexectl ven= dor - extension is supported in the MIPS ISA extensions spec. + extension is supported in the MIPS ISA extensions spec. =20 * :c:macro:`RISCV_HWPROBE_KEY_VENDOR_EXT_THEAD_0`: A bitmask containing the thead vendor extensions that are compatible with the @@ -357,8 +357,8 @@ The following keys are defined: * T-HEAD =20 * :c:macro:`RISCV_HWPROBE_VENDOR_EXT_XTHEADVECTOR`: The xtheadvector v= endor - extension is supported in the T-Head ISA extensions spec starting = from - commit a18c801634 ("Add T-Head VECTOR vendor extension. "). + extension is supported in the T-Head ISA extensions spec starting fr= om + commit a18c801634 ("Add T-Head VECTOR vendor extension. "). =20 * :c:macro:`RISCV_HWPROBE_KEY_ZICBOM_BLOCK_SIZE`: An unsigned int which represents the size of the Zicbom block in bytes. @@ -370,20 +370,20 @@ The following keys are defined: * SIFIVE =20 * :c:macro:`RISCV_HWPROBE_VENDOR_EXT_XSFVQMACCDOD`: The Xsfqmaccdod ve= ndor - extension is supported in version 1.1 of SiFive Int8 Matrix Multip= lication - Extensions Specification. + extension is supported in version 1.1 of SiFive Int8 Matrix Multipli= cation + Extensions Specification. =20 * :c:macro:`RISCV_HWPROBE_VENDOR_EXT_XSFVQMACCQOQ`: The Xsfqmaccqoq ve= ndor - extension is supported in version 1.1 of SiFive Int8 Matrix Multip= lication - Instruction Extensions Specification. + extension is supported in version 1.1 of SiFive Int8 Matrix Multipli= cation + Instruction Extensions Specification. =20 * :c:macro:`RISCV_HWPROBE_VENDOR_EXT_XSFVFNRCLIPXFQF`: The Xsfvfnrclip= xfqf - vendor extension is supported in version 1.0 of SiFive FP32-to-int= 8 Ranged - Clip Instructions Extensions Specification. + vendor extension is supported in version 1.0 of SiFive FP32-to-int8 = Ranged + Clip Instructions Extensions Specification. =20 * :c:macro:`RISCV_HWPROBE_VENDOR_EXT_XSFVFWMACCQQQ`: The Xsfvfwmaccqqq - vendor extension is supported in version 1.0 of Matrix Multiply Ac= cumulate - Instruction Extensions Specification. + vendor extension is supported in version 1.0 of Matrix Multiply Accu= mulate + Instruction Extensions Specification. =20 * :c:macro:`RISCV_HWPROBE_KEY_ZICBOP_BLOCK_SIZE`: An unsigned int which represents the size of the Zicbop block in bytes. --=20 2.43.0 From nobody Fri Jun 12 23:57:43 2026 Received: from mail-pl1-f173.google.com (mail-pl1-f173.google.com [209.85.214.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 84F463998A4 for ; Thu, 11 Jun 2026 20:13:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781208809; cv=none; b=cgGQFSXGBNWLFW+ap73bQnIwZdtXlRHWGKNWPVfWaRyE4aXK0rwUfW3ZQJTa8rFupKTGk+m+Wwp1f5E4ZCYpQAc4HL9r7Q12NV+Rqf3hnkdKi0zL43AQCdsxA1TuagKdrll0HM9JH9iniZsQD4upc1qZFLz1LTn10iD1taZWkWA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781208809; c=relaxed/simple; bh=q/QLrWSGJJhQtCezKRc6txtE+UkVnOpKgnOg6fjEGdI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=aiLRJzDt3Wvgwhj/w5QpRoYoJtv6p0MUu0BDMaoRGtxLWdkMK9I06BDGe5JwTku1bdti0tgjOucyxiE5mK5LyGDAkZbcqG3WeILWYrZKfyQVeL4i7th/00ETw45yKM5m/7Fo3RQx9nZloKFtjDYcvxOt4kH6UygzWSiz1HRVtHc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=kI6qqUok; arc=none smtp.client-ip=209.85.214.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="kI6qqUok" Received: by mail-pl1-f173.google.com with SMTP id d9443c01a7336-2bf22d29dabso1886305ad.2 for ; Thu, 11 Jun 2026 13:13:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781208808; x=1781813608; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=gm44aTTKOxWn0lKZi70AX96tEsXQQm8LgJ40+/hEF0Q=; b=kI6qqUokt0GU6PTeVVWprdc80dAzZjvb7KJASalkAl+9n9iMrwDQ1daHyu4qM/OaW8 mWMW74iNSKw1FAU0/mX7xWz7Scc6uJ2mLC5pQ784EZMzg7I1kETHt4S/28qCi3EhDGF2 7P/Fe2EckOpxbJmpKaPZGgZ2kkhVeWjXeliR5LAy6q+K/szkEtVw2eZH+Gsn21OErkbI D7FwImBbAzSgUWWbuDzTNZYleVOKfmFD0u+F4OvikISN+ENlCgjuvjoPB/WPFv+hA6hs a9kjPy4jq5gT+AIeZYjzrbIvg5FyqkdOM9bdSERE2dguuJVjOHqdNWXcA9RbIvBAUyF2 cVRA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781208808; x=1781813608; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=gm44aTTKOxWn0lKZi70AX96tEsXQQm8LgJ40+/hEF0Q=; b=ANADkMrBr5t9gAmO/6EYM5qerDJLtRi7UTu2riUS2av+c1IeM+zkz1noW1VCtvlZnq ErUiH3gyLxL5zpLDU+UBz/l8I981usIjjsqWn/8Qshe8xDD4x66LvATDynmMvgewTiCl bkRtvv1vokyHy8OSs26Q9D8g+8jFw51IiRsqnatukmf0lRkHk9Qp6tPMMCPn9VkqV263 kYLULGexSVG05CUuH1xOj3O/hOCBq8fQB14POEgbLyNT+g19gXSrEqejP9C6pDC2d5dz KAfk8/mw4jnIe7UZcJftBsWrfFqjBND902NBN9wl5DBaxwh8UBOMS8EvT0QyHe28VnIY wIMQ== X-Forwarded-Encrypted: i=1; AFNElJ8gos1UeQzE0MwEUa+C/vyNRCj4gh0ZlPTF2dkL2VHkRY0IE2mF4D391IiS3uQUD85j/W4W/YC2N2u7Uzw=@vger.kernel.org X-Gm-Message-State: AOJu0YyfH2Z6NVZlWSP1gP/uTH+R2U4T3Uut3YQ9KMUCw6Wq9Bios0VT GwCV625Orr1U/4NARWLA1re81DH/fNpFxBnHRhjCZ//jiWy6YOgM7Dq6 X-Gm-Gg: Acq92OHA8r/tZ9UuMeb4CMYwUQjgljYFPv2v7as4/qRct43KgScQeRc9NmYJbBa4RlM JrivDHcAWpCzkkVhqFh3qlPx/Io6xZ8p9KVFxFQs04tiPipYr59JJv+kUPj2HI4i0KmAypCtpXP i2KcD8TUXu3Bnk6rldIDgHByYGQjPvN2fjjqxYpSvc34Wvywlwh+7vb9XnqxUTGh65Cpyd4if+G LEVZebPCM1DLrXBwNHsSbrr2+2mx7+xW3bm61+G1bzrGyPvDNiA6CUnA8jlqaILzPOveWsSJFp7 4iPFKdaLvszDPPMVH4YfNMDpaYRt9f1GgDmiNgD3rwyECgEjVsaDmGtH9wZItO/zWGnM1D1j26q Aso/RQVpBI0Ngk/MqWuOwH5tFKjGSxdffBMBoZWu3HZOdc81STukKqqv4aZtCyjCTE65Tm2VEPQ == X-Received: by 2002:a17:903:4b46:b0:2c1:6259:cda8 with SMTP id d9443c01a7336-2c2f22a9f06mr51888325ad.25.1781208807828; Thu, 11 Jun 2026 13:13:27 -0700 (PDT) Received: from [127.0.1.1] ([2a12:a305:4::302d]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c164f875casm288730475ad.22.2026.06.11.13.13.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Jun 2026 13:13:27 -0700 (PDT) From: Guodong Xu Date: Thu, 11 Jun 2026 16:12:40 -0400 Subject: [PATCH v4 03/16] riscv: hwprobe.rst: Document EXT_ZICFISS and EXT_ZICFILP 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 Message-Id: <20260611-rva23u64-hwprobe-v2-v4-3-3f01a2449488@gmail.com> References: <20260611-rva23u64-hwprobe-v2-v4-0-3f01a2449488@gmail.com> In-Reply-To: <20260611-rva23u64-hwprobe-v2-v4-0-3f01a2449488@gmail.com> To: Jonathan Corbet , Shuah Khan , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Zong Li , Deepak Gupta , Anup Patel , Atish Patra , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Yixun Lan , Chen Wang , Inochi Amaoto Cc: linux-doc@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, Paul Walmsley , Conor Dooley , devicetree@vger.kernel.org, spacemit@lists.linux.dev, sophgo@lists.linux.dev, linux-kselftest@vger.kernel.org, Palmer Dabbelt , Guodong Xu , Andrew Jones X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=2231; i=docular.xu@gmail.com; h=from:subject:message-id; bh=q/QLrWSGJJhQtCezKRc6txtE+UkVnOpKgnOg6fjEGdI=; b=owGbwMvMwCXWtEl1Z3CGpCDjabUkhixtsQMhX89b/jK+JCRn0MornigW9b3hyMPzwofO+E6Zo OCz7+rMjlIWBjEuBlkxRZbDR1uyt77yifZ9zvkDZg4rE8gQBi5OAZhIxBeGf9qm976639f69W0V w+nNF3xEdGem/L+z0GGNnnNgRX2FMgvDf7dtpZJc33bcTb0lVM65UDi3+C+rk0eI372LQmZHZb7 e5wMA X-Developer-Key: i=docular.xu@gmail.com; a=openpgp; fpr=90B1DC3DF0BD10FD1227BD6344F254AF42F143EE RISCV_HWPROBE_EXT_ZICFISS and RISCV_HWPROBE_EXT_ZICFILP are defined in the hwprobe uAPI but are not documented in Documentation/arch/riscv/hwprobe.rst. Add documentation for them. Link: https://github.com/riscv/riscv-cfi/commit/302a2d45c2435940d9a63571c66= bc038adc74133 Signed-off-by: Guodong Xu Reviewed-by: Andrew Jones --- v4: - Update the commit message. - Cite riscv-cfi commit 302a2d45c243 (tag v1.0) instead of ff03d8485a04, per Andrew. - Add a Link: tag for this citation. v3: - Also document RISCV_HWPROBE_EXT_ZICFILP (bit 63 of IMA_EXT_0), the sibling enumeration to ZICFISS (Andrew). v2: New patch. --- Documentation/arch/riscv/hwprobe.rst | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Documentation/arch/riscv/hwprobe.rst b/Documentation/arch/risc= v/hwprobe.rst index a09a8f16bd16f..d9928641deb99 100644 --- a/Documentation/arch/riscv/hwprobe.rst +++ b/Documentation/arch/riscv/hwprobe.rst @@ -289,6 +289,11 @@ The following keys are defined: defined in the RISC-V ISA manual starting from commit f88abf1 ("Integr= ating load/store pair for RV32 with the main manual") of the riscv-isa-manua= l. =20 + * :c:macro:`RISCV_HWPROBE_EXT_ZICFILP`: The Zicfilp extension is support= ed, + as defined in version 1.0 of the RISC-V Control-flow Integrity (CFI) + extensions specification, ratified in commit 302a2d45c243 + ("Update build-pdf.yml") of riscv-cfi. + * :c:macro:`RISCV_HWPROBE_KEY_CPUPERF_0`: Deprecated. Returns similar val= ues to :c:macro:`RISCV_HWPROBE_KEY_MISALIGNED_SCALAR_PERF`, but the key was mistakenly classified as a bitmask rather than a value. @@ -391,3 +396,8 @@ The following keys are defined: * :c:macro:`RISCV_HWPROBE_KEY_IMA_EXT_1`: A bitmask containing additional extensions that are compatible with the :c:macro:`RISCV_HWPROBE_BASE_BEHAVIOR_IMA`: base system behavior. + + * :c:macro:`RISCV_HWPROBE_EXT_ZICFISS`: The Zicfiss extension is support= ed, + as defined in version 1.0 of the RISC-V Control-flow Integrity (CFI) + extensions specification, ratified in commit 302a2d45c243 + ("Update build-pdf.yml") of riscv-cfi. --=20 2.43.0 From nobody Fri Jun 12 23:57:43 2026 Received: from mail-pl1-f177.google.com (mail-pl1-f177.google.com [209.85.214.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3F05938D688 for ; Thu, 11 Jun 2026 20:13:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781208820; cv=none; b=N0XIh2dhA0qWwQVYLXiqxmUrvzzDakBLrOCJCAsqUxL2XxE6KffiwF5M0509Y4j6NIN3dHifZyD3HYOdP2GUCOQ0rHWogl52ufbNWYNGdj2v1TZ1iVOB8a9kRNpL/rM00/jhwTyaM3hR7EtFjxrfgD7wHUu3EjHKSaQEx8bSK/g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781208820; c=relaxed/simple; bh=26qw3C39kWjFByInjfqBA3183hWF+l1smeWDClFPXgc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=YvdrExIuW43CMkbpFaKUcMDWShQDRux5bz/fo6DJTTNV811urrmgCLl7fjed4/JqEDxWw+jfD19TkOH37A/dxXNeLyMQgtgz/oJCqnmaizjQi7cU3OwVT4hbkssv6SK9Ak8QLfdh9xZ4on1yg+/7cABxQwPxJsklgozE8VJLM5Q= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=RGVq99El; arc=none smtp.client-ip=209.85.214.177 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="RGVq99El" Received: by mail-pl1-f177.google.com with SMTP id d9443c01a7336-2c0c2d8b95bso2075995ad.1 for ; Thu, 11 Jun 2026 13:13:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781208817; x=1781813617; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=sUHzJNNbv9fARf1kiavOMFeITLw6MRu/nyeIaC2w1m0=; b=RGVq99ElKHiGBglA3YhSBcYp+7uEqFxosRVyhCdLpuIy/sRMPrbuL4IRGbyTLJ+U3G /noJW6RllL593caubkGALOQgMIHX04o7yE66kJNWUNeff2hvClxDkoFMxEryE7AbyPjD JV8c8aIqlpQiqvr6zIucwDT8yMZFYATPxwiw8LLQmSwhGllMVl42b90+jTJx7o/eFiiN +6O3xCMMzoS2RaqSuSZ4g1AvUVy0Sj1LZctsvesDmmMTWSI076q3aVUtscypKSiShIna sCmekOhq10hFhIv71YBmlDLUCAdFnG7dstk2v8ld/Qtd5cE1Kf2c5a/lm/6kQLlEltuz pndQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781208817; x=1781813617; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=sUHzJNNbv9fARf1kiavOMFeITLw6MRu/nyeIaC2w1m0=; b=AGT5aICcdVs2aDYT5dUqdfUS4KB3gLNo2+q3qb7e4CKzmALVhxSOEG7VToZMpwT/mb YFIXCOz96MN0xrjIygBb4lRtj+nzHmVybilC426s5zSbVVr+5HwabID1xS/JM5jiqXS+ wy7rMMzxE5CCfCilYnRz5sQHJdGCXm5SjHaploB+Ef5Gy5cij3t84fFFD+/CKqaAPdIk dRlqxSnT9jugnaNnMgtmzsXOQMl4ajvIwd8L9MuVp/9hgVenfKMnOhTuhTGaKqrkqUKG E8FK+nJ9j7sa9VTHTzz8TpTFHPvPyLzSrVWhc7vcLItCUNz4NgyD+/cAMBbwE/3o3FpU PjAw== X-Forwarded-Encrypted: i=1; AFNElJ/8X+c7mftwin+dnEPgCmGmckofzKXc6kAtT2iLCfxj2A8/0LKn+4EVWW+9fLNIejVhIwcN27kaZ+Lz9vM=@vger.kernel.org X-Gm-Message-State: AOJu0YwD8JLO/tBN1F5hSiQU/81Iz5diaYvJIYY59Shn/hSbJNdq3Z1j /sSKAYYP33gkdOZnhZ5z0VgazEtAF+zlj4GuJ2zHS547aNlOYycbBySo X-Gm-Gg: Acq92OHxHXxuKbOxdp92zS2MKeVOh7GCHGGFKE3W8SFuvC0Obw9eyLl3Pn0OV7eFg7E qGSyRd2J4MjqVGqVb0C0/G0B+p4fegS8r9PIYFh30ctzoitGmtQoD4ssCSxa6WzryZsLKRX97Pr ljMdjZQX26hFBEVhXnbqx6M1Jmjbz35d9pCocPiCreUS8YmBwMhZ0LL+zP6wsJTW+MuQhn6FDn0 rB/LU9Uuopn1zhJstAWLAEksuf71Net5/Ghme8lY6d3d/ShIxvqxSywJ6LZE4wtdRXHcWMgekL1 UtyvZZgvuHwn4a6PY3HKkqHs4fbpy3OHDLWOm3nrvXrbrGvP2rawiMqjMvYvgDoHA9BHG/do/Xj Heq4AOFjr5UCAryaBcgdeXQyKFDglNAvXSl016JnjyPoMKnEc+/yBuj0OIBjY//2KgTMWwadfAA == X-Received: by 2002:a17:903:2411:b0:2b0:7d3d:756a with SMTP id d9443c01a7336-2c2f2f5d6cbmr52411075ad.35.1781208816610; Thu, 11 Jun 2026 13:13:36 -0700 (PDT) Received: from [127.0.1.1] ([2a12:a305:4::302d]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c164f875casm288730475ad.22.2026.06.11.13.13.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Jun 2026 13:13:36 -0700 (PDT) From: Guodong Xu Date: Thu, 11 Jun 2026 16:12:41 -0400 Subject: [PATCH v4 04/16] riscv: Standardize extension capitalization 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 Message-Id: <20260611-rva23u64-hwprobe-v2-v4-4-3f01a2449488@gmail.com> References: <20260611-rva23u64-hwprobe-v2-v4-0-3f01a2449488@gmail.com> In-Reply-To: <20260611-rva23u64-hwprobe-v2-v4-0-3f01a2449488@gmail.com> To: Jonathan Corbet , Shuah Khan , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Zong Li , Deepak Gupta , Anup Patel , Atish Patra , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Yixun Lan , Chen Wang , Inochi Amaoto Cc: linux-doc@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, Paul Walmsley , Conor Dooley , devicetree@vger.kernel.org, spacemit@lists.linux.dev, sophgo@lists.linux.dev, linux-kselftest@vger.kernel.org, Palmer Dabbelt , Guodong Xu , Charlie Jenkins , Charlie Jenkins , Andrew Jones X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=16653; i=docular.xu@gmail.com; h=from:subject:message-id; bh=26LS+lN/QELqDRNCimxty9TMbCTXDVj7wNQ/rrcK48E=; b=owGbwMvMwCXWtEl1Z3CGpCDjabUkhixtsQOZRYGTjtf9/6r/20vVMCmd5V/F2ZnJDt8fb2z5u vXDvLDPHaUsDGJcDLJiiiyHj7Zkb33lE+37nPMHzBxWJpAhDFycAjCRQ28YGY4/mdzcnmSrEF7S v4ON8VqKsKYb+1x9da7ob1YiHY0plxgZTtqdvfCIQWZ7QsGjVv0N1fdtFppeiu76OGudUDLXbmZ rLgA= X-Developer-Key: i=docular.xu@gmail.com; a=openpgp; fpr=90B1DC3DF0BD10FD1227BD6344F254AF42F143EE From: Charlie Jenkins The base extensions are often lowercase and were written as lowercase in hwcap, but other references to these extensions in the kernel are uppercase. Standardize the case to make it easier to handle macro expansion. Signed-off-by: Charlie Jenkins [Apply KVM_ISA_EXT_ARR(), fixup all KVM use.] Signed-off-by: Andrew Jones Signed-off-by: Guodong Xu Acked-by: Anup Patel Reviewed-by: Anup Patel --- v4: No change. v3: - Collected Anup's Acked-by and Reviewed-by. - Rebased onto v7.1-rc6: two more occurances between -rc2 and -rc6: 1). isa2hwcap[] indices added by commit 41337097f2823 2). the T-Head "v" workaround's clear_bit() added by commit d272b8d2dd132 v2: - Rebased onto v7.1-rc2. - KVM_ISA_EXT_ARR() consolidation moved to its new upstream location (kvm/isa.c); host-side checks now use kvm_riscv_isa_check_host(). --- arch/riscv/include/asm/hwcap.h | 18 ++++++++-------- arch/riscv/include/asm/switch_to.h | 4 ++-- arch/riscv/kernel/cpufeature.c | 44 +++++++++++++++++++---------------= ---- arch/riscv/kernel/sys_hwprobe.c | 4 ++-- arch/riscv/kvm/isa.c | 16 +++++++------- arch/riscv/kvm/main.c | 2 +- arch/riscv/kvm/vcpu_fp.c | 20 ++++++++--------- arch/riscv/kvm/vcpu_onereg.c | 6 +++--- arch/riscv/kvm/vcpu_vector.c | 10 ++++----- 9 files changed, 62 insertions(+), 62 deletions(-) diff --git a/arch/riscv/include/asm/hwcap.h b/arch/riscv/include/asm/hwcap.h index 7ef8e5f55c8dc..44bf8c7d8acc5 100644 --- a/arch/riscv/include/asm/hwcap.h +++ b/arch/riscv/include/asm/hwcap.h @@ -10,15 +10,15 @@ =20 #include =20 -#define RISCV_ISA_EXT_a ('a' - 'a') -#define RISCV_ISA_EXT_c ('c' - 'a') -#define RISCV_ISA_EXT_d ('d' - 'a') -#define RISCV_ISA_EXT_f ('f' - 'a') -#define RISCV_ISA_EXT_h ('h' - 'a') -#define RISCV_ISA_EXT_i ('i' - 'a') -#define RISCV_ISA_EXT_m ('m' - 'a') -#define RISCV_ISA_EXT_q ('q' - 'a') -#define RISCV_ISA_EXT_v ('v' - 'a') +#define RISCV_ISA_EXT_A ('a' - 'a') +#define RISCV_ISA_EXT_C ('c' - 'a') +#define RISCV_ISA_EXT_D ('d' - 'a') +#define RISCV_ISA_EXT_F ('f' - 'a') +#define RISCV_ISA_EXT_H ('h' - 'a') +#define RISCV_ISA_EXT_I ('i' - 'a') +#define RISCV_ISA_EXT_M ('m' - 'a') +#define RISCV_ISA_EXT_Q ('q' - 'a') +#define RISCV_ISA_EXT_V ('v' - 'a') =20 /* * These macros represent the logical IDs of each multi-letter RISC-V ISA diff --git a/arch/riscv/include/asm/switch_to.h b/arch/riscv/include/asm/sw= itch_to.h index 0e71eb82f920c..ff35a4d04f85a 100644 --- a/arch/riscv/include/asm/switch_to.h +++ b/arch/riscv/include/asm/switch_to.h @@ -60,8 +60,8 @@ static inline void __switch_to_fpu(struct task_struct *pr= ev, =20 static __always_inline bool has_fpu(void) { - return riscv_has_extension_likely(RISCV_ISA_EXT_f) || - riscv_has_extension_likely(RISCV_ISA_EXT_d); + return riscv_has_extension_likely(RISCV_ISA_EXT_F) || + riscv_has_extension_likely(RISCV_ISA_EXT_D); } #else static __always_inline bool has_fpu(void) { return false; } diff --git a/arch/riscv/kernel/cpufeature.c b/arch/riscv/kernel/cpufeature.c index f46aa5602d74d..686dde3ce3b98 100644 --- a/arch/riscv/kernel/cpufeature.c +++ b/arch/riscv/kernel/cpufeature.c @@ -84,7 +84,7 @@ EXPORT_SYMBOL_GPL(__riscv_isa_extension_available); static int riscv_ext_f_depends(const struct riscv_isa_ext_data *data, const unsigned long *isa_bitmap) { - if (__riscv_isa_extension_available(isa_bitmap, RISCV_ISA_EXT_f)) + if (__riscv_isa_extension_available(isa_bitmap, RISCV_ISA_EXT_F)) return 0; =20 return -EPROBE_DEFER; @@ -146,7 +146,7 @@ static int riscv_ext_f_validate(const struct riscv_isa_= ext_data *data, * Due to extension ordering, d is checked before f, so no deferral * is required. */ - if (!__riscv_isa_extension_available(isa_bitmap, RISCV_ISA_EXT_d)) { + if (!__riscv_isa_extension_available(isa_bitmap, RISCV_ISA_EXT_D)) { pr_warn_once("This kernel does not support systems with F but not D\n"); return -EINVAL; } @@ -189,7 +189,7 @@ static int riscv_ext_vector_float_validate(const struct= riscv_isa_ext_data *data * Since this function validates vector only, and v/Zve* are probed * after f/d, there's no need for a deferral here. */ - if (!__riscv_isa_extension_available(isa_bitmap, RISCV_ISA_EXT_d)) + if (!__riscv_isa_extension_available(isa_bitmap, RISCV_ISA_EXT_D)) return -EINVAL; =20 return 0; @@ -224,7 +224,7 @@ static int riscv_ext_zcd_validate(const struct riscv_is= a_ext_data *data, const unsigned long *isa_bitmap) { if (__riscv_isa_extension_available(isa_bitmap, RISCV_ISA_EXT_ZCA) && - __riscv_isa_extension_available(isa_bitmap, RISCV_ISA_EXT_d)) + __riscv_isa_extension_available(isa_bitmap, RISCV_ISA_EXT_D)) return 0; =20 return -EPROBE_DEFER; @@ -237,7 +237,7 @@ static int riscv_ext_zcf_validate(const struct riscv_is= a_ext_data *data, return -EINVAL; =20 if (__riscv_isa_extension_available(isa_bitmap, RISCV_ISA_EXT_ZCA) && - __riscv_isa_extension_available(isa_bitmap, RISCV_ISA_EXT_f)) + __riscv_isa_extension_available(isa_bitmap, RISCV_ISA_EXT_F)) return 0; =20 return -EPROBE_DEFER; @@ -490,15 +490,15 @@ static const unsigned int riscv_c_exts[] =3D { * New entries to this struct should follow the ordering rules described a= bove. */ const struct riscv_isa_ext_data riscv_isa_ext[] =3D { - __RISCV_ISA_EXT_DATA(i, RISCV_ISA_EXT_i), - __RISCV_ISA_EXT_DATA(m, RISCV_ISA_EXT_m), - __RISCV_ISA_EXT_SUPERSET(a, RISCV_ISA_EXT_a, riscv_a_exts), - __RISCV_ISA_EXT_DATA_VALIDATE(f, RISCV_ISA_EXT_f, riscv_ext_f_validate), - __RISCV_ISA_EXT_DATA_VALIDATE(d, RISCV_ISA_EXT_d, riscv_ext_d_validate), - __RISCV_ISA_EXT_DATA(q, RISCV_ISA_EXT_q), - __RISCV_ISA_EXT_SUPERSET(c, RISCV_ISA_EXT_c, riscv_c_exts), - __RISCV_ISA_EXT_SUPERSET_VALIDATE(v, RISCV_ISA_EXT_v, riscv_v_exts, riscv= _ext_vector_float_validate), - __RISCV_ISA_EXT_DATA(h, RISCV_ISA_EXT_h), + __RISCV_ISA_EXT_DATA(i, RISCV_ISA_EXT_I), + __RISCV_ISA_EXT_DATA(m, RISCV_ISA_EXT_M), + __RISCV_ISA_EXT_SUPERSET(a, RISCV_ISA_EXT_A, riscv_a_exts), + __RISCV_ISA_EXT_DATA_VALIDATE(f, RISCV_ISA_EXT_F, riscv_ext_f_validate), + __RISCV_ISA_EXT_DATA_VALIDATE(d, RISCV_ISA_EXT_D, riscv_ext_d_validate), + __RISCV_ISA_EXT_DATA(q, RISCV_ISA_EXT_Q), + __RISCV_ISA_EXT_SUPERSET(c, RISCV_ISA_EXT_C, riscv_c_exts), + __RISCV_ISA_EXT_SUPERSET_VALIDATE(v, RISCV_ISA_EXT_V, riscv_v_exts, riscv= _ext_vector_float_validate), + __RISCV_ISA_EXT_DATA(h, RISCV_ISA_EXT_H), __RISCV_ISA_EXT_SUPERSET_VALIDATE(zicbom, RISCV_ISA_EXT_ZICBOM, riscv_xli= nuxenvcfg_exts, riscv_ext_zicbom_validate), __RISCV_ISA_EXT_DATA_VALIDATE(zicbop, RISCV_ISA_EXT_ZICBOP, riscv_ext_zic= bop_validate), __RISCV_ISA_EXT_SUPERSET_VALIDATE(zicboz, RISCV_ISA_EXT_ZICBOZ, riscv_xli= nuxenvcfg_exts, riscv_ext_zicboz_validate), @@ -897,7 +897,7 @@ static void __init riscv_fill_hwcap_from_isa_string(uns= igned long *isa2hwcap) * marchid. */ if (acpi_disabled && boot_vendorid =3D=3D THEAD_VENDOR_ID && boot_archid= =3D=3D 0x0) - clear_bit(RISCV_ISA_EXT_v, source_isa); + clear_bit(RISCV_ISA_EXT_V, source_isa); =20 riscv_resolve_isa(source_isa, isainfo->isa, &this_hwcap, isa2hwcap); =20 @@ -1105,13 +1105,13 @@ void __init riscv_fill_hwcap(void) unsigned long isa2hwcap[RISCV_ISA_EXT_BASE] =3D {0}; int i, j; =20 - isa2hwcap[RISCV_ISA_EXT_i] =3D COMPAT_HWCAP_ISA_I; - isa2hwcap[RISCV_ISA_EXT_m] =3D COMPAT_HWCAP_ISA_M; - isa2hwcap[RISCV_ISA_EXT_a] =3D COMPAT_HWCAP_ISA_A; - isa2hwcap[RISCV_ISA_EXT_f] =3D COMPAT_HWCAP_ISA_F; - isa2hwcap[RISCV_ISA_EXT_d] =3D COMPAT_HWCAP_ISA_D; - isa2hwcap[RISCV_ISA_EXT_c] =3D COMPAT_HWCAP_ISA_C; - isa2hwcap[RISCV_ISA_EXT_v] =3D COMPAT_HWCAP_ISA_V; + isa2hwcap[RISCV_ISA_EXT_I] =3D COMPAT_HWCAP_ISA_I; + isa2hwcap[RISCV_ISA_EXT_M] =3D COMPAT_HWCAP_ISA_M; + isa2hwcap[RISCV_ISA_EXT_A] =3D COMPAT_HWCAP_ISA_A; + isa2hwcap[RISCV_ISA_EXT_F] =3D COMPAT_HWCAP_ISA_F; + isa2hwcap[RISCV_ISA_EXT_D] =3D COMPAT_HWCAP_ISA_D; + isa2hwcap[RISCV_ISA_EXT_C] =3D COMPAT_HWCAP_ISA_C; + isa2hwcap[RISCV_ISA_EXT_V] =3D COMPAT_HWCAP_ISA_V; =20 if (!acpi_disabled) { riscv_fill_hwcap_from_isa_string(isa2hwcap); diff --git a/arch/riscv/kernel/sys_hwprobe.c b/arch/riscv/kernel/sys_hwprob= e.c index 1659d31fd288f..f8f68ba781b45 100644 --- a/arch/riscv/kernel/sys_hwprobe.c +++ b/arch/riscv/kernel/sys_hwprobe.c @@ -88,10 +88,10 @@ static void hwprobe_isa_ext0(struct riscv_hwprobe *pair, if (has_fpu()) pair->value |=3D RISCV_HWPROBE_IMA_FD; =20 - if (riscv_isa_extension_available(NULL, c)) + if (riscv_isa_extension_available(NULL, C)) pair->value |=3D RISCV_HWPROBE_IMA_C; =20 - if (has_vector() && riscv_isa_extension_available(NULL, v)) + if (has_vector() && riscv_isa_extension_available(NULL, V)) pair->value |=3D RISCV_HWPROBE_IMA_V; =20 /* diff --git a/arch/riscv/kvm/isa.c b/arch/riscv/kvm/isa.c index 1132d909cc25c..94077117d1136 100644 --- a/arch/riscv/kvm/isa.c +++ b/arch/riscv/kvm/isa.c @@ -17,14 +17,14 @@ /* Mapping between KVM ISA Extension ID & guest ISA extension ID */ static const unsigned long kvm_isa_ext_arr[] =3D { /* Single letter extensions (alphabetically sorted) */ - [KVM_RISCV_ISA_EXT_A] =3D RISCV_ISA_EXT_a, - [KVM_RISCV_ISA_EXT_C] =3D RISCV_ISA_EXT_c, - [KVM_RISCV_ISA_EXT_D] =3D RISCV_ISA_EXT_d, - [KVM_RISCV_ISA_EXT_F] =3D RISCV_ISA_EXT_f, - [KVM_RISCV_ISA_EXT_H] =3D RISCV_ISA_EXT_h, - [KVM_RISCV_ISA_EXT_I] =3D RISCV_ISA_EXT_i, - [KVM_RISCV_ISA_EXT_M] =3D RISCV_ISA_EXT_m, - [KVM_RISCV_ISA_EXT_V] =3D RISCV_ISA_EXT_v, + KVM_ISA_EXT_ARR(A), + KVM_ISA_EXT_ARR(C), + KVM_ISA_EXT_ARR(D), + KVM_ISA_EXT_ARR(F), + KVM_ISA_EXT_ARR(H), + KVM_ISA_EXT_ARR(I), + KVM_ISA_EXT_ARR(M), + KVM_ISA_EXT_ARR(V), /* Multi letter extensions (alphabetically sorted) */ KVM_ISA_EXT_ARR(SMNPM), KVM_ISA_EXT_ARR(SMSTATEEN), diff --git a/arch/riscv/kvm/main.c b/arch/riscv/kvm/main.c index cb8a65273c1f0..70640701310c8 100644 --- a/arch/riscv/kvm/main.c +++ b/arch/riscv/kvm/main.c @@ -85,7 +85,7 @@ static int __init riscv_kvm_init(void) char slist[64]; const char *str; =20 - if (!riscv_isa_extension_available(NULL, h)) { + if (!riscv_isa_extension_available(NULL, H)) { kvm_info("hypervisor extension not available\n"); return -ENODEV; } diff --git a/arch/riscv/kvm/vcpu_fp.c b/arch/riscv/kvm/vcpu_fp.c index 6ad6df26a2fd4..bb11e6757d349 100644 --- a/arch/riscv/kvm/vcpu_fp.c +++ b/arch/riscv/kvm/vcpu_fp.c @@ -21,8 +21,8 @@ void kvm_riscv_vcpu_fp_reset(struct kvm_vcpu *vcpu) struct kvm_cpu_context *cntx =3D &vcpu->arch.guest_context; =20 cntx->sstatus &=3D ~SR_FS; - if (riscv_isa_extension_available(vcpu->arch.isa, f) || - riscv_isa_extension_available(vcpu->arch.isa, d)) + if (riscv_isa_extension_available(vcpu->arch.isa, F) || + riscv_isa_extension_available(vcpu->arch.isa, D)) cntx->sstatus |=3D SR_FS_INITIAL; else cntx->sstatus |=3D SR_FS_OFF; @@ -38,9 +38,9 @@ void kvm_riscv_vcpu_guest_fp_save(struct kvm_cpu_context = *cntx, const unsigned long *isa) { if ((cntx->sstatus & SR_FS) =3D=3D SR_FS_DIRTY) { - if (riscv_isa_extension_available(isa, d)) + if (riscv_isa_extension_available(isa, D)) __kvm_riscv_fp_d_save(cntx); - else if (riscv_isa_extension_available(isa, f)) + else if (riscv_isa_extension_available(isa, F)) __kvm_riscv_fp_f_save(cntx); kvm_riscv_vcpu_fp_clean(cntx); } @@ -50,9 +50,9 @@ void kvm_riscv_vcpu_guest_fp_restore(struct kvm_cpu_conte= xt *cntx, const unsigned long *isa) { if ((cntx->sstatus & SR_FS) !=3D SR_FS_OFF) { - if (riscv_isa_extension_available(isa, d)) + if (riscv_isa_extension_available(isa, D)) __kvm_riscv_fp_d_restore(cntx); - else if (riscv_isa_extension_available(isa, f)) + else if (riscv_isa_extension_available(isa, F)) __kvm_riscv_fp_f_restore(cntx); kvm_riscv_vcpu_fp_clean(cntx); } @@ -89,7 +89,7 @@ int kvm_riscv_vcpu_get_reg_fp(struct kvm_vcpu *vcpu, void *reg_val; =20 if ((rtype =3D=3D KVM_REG_RISCV_FP_F) && - riscv_isa_extension_available(vcpu->arch.isa, f)) { + riscv_isa_extension_available(vcpu->arch.isa, F)) { if (KVM_REG_SIZE(reg->id) !=3D sizeof(u32)) return -EINVAL; if (reg_num =3D=3D KVM_REG_RISCV_FP_F_REG(fcsr)) @@ -102,7 +102,7 @@ int kvm_riscv_vcpu_get_reg_fp(struct kvm_vcpu *vcpu, } else return -ENOENT; } else if ((rtype =3D=3D KVM_REG_RISCV_FP_D) && - riscv_isa_extension_available(vcpu->arch.isa, d)) { + riscv_isa_extension_available(vcpu->arch.isa, D)) { if (reg_num =3D=3D KVM_REG_RISCV_FP_D_REG(fcsr)) { if (KVM_REG_SIZE(reg->id) !=3D sizeof(u32)) return -EINVAL; @@ -138,7 +138,7 @@ int kvm_riscv_vcpu_set_reg_fp(struct kvm_vcpu *vcpu, void *reg_val; =20 if ((rtype =3D=3D KVM_REG_RISCV_FP_F) && - riscv_isa_extension_available(vcpu->arch.isa, f)) { + riscv_isa_extension_available(vcpu->arch.isa, F)) { if (KVM_REG_SIZE(reg->id) !=3D sizeof(u32)) return -EINVAL; if (reg_num =3D=3D KVM_REG_RISCV_FP_F_REG(fcsr)) @@ -151,7 +151,7 @@ int kvm_riscv_vcpu_set_reg_fp(struct kvm_vcpu *vcpu, } else return -ENOENT; } else if ((rtype =3D=3D KVM_REG_RISCV_FP_D) && - riscv_isa_extension_available(vcpu->arch.isa, d)) { + riscv_isa_extension_available(vcpu->arch.isa, D)) { if (reg_num =3D=3D KVM_REG_RISCV_FP_D_REG(fcsr)) { if (KVM_REG_SIZE(reg->id) !=3D sizeof(u32)) return -EINVAL; diff --git a/arch/riscv/kvm/vcpu_onereg.c b/arch/riscv/kvm/vcpu_onereg.c index bb920e8923c93..5cc7ddd4aa276 100644 --- a/arch/riscv/kvm/vcpu_onereg.c +++ b/arch/riscv/kvm/vcpu_onereg.c @@ -770,7 +770,7 @@ static inline unsigned long num_fp_f_regs(const struct = kvm_vcpu *vcpu) { const struct kvm_cpu_context *cntx =3D &vcpu->arch.guest_context; =20 - if (riscv_isa_extension_available(vcpu->arch.isa, f)) + if (riscv_isa_extension_available(vcpu->arch.isa, F)) return sizeof(cntx->fp.f) / sizeof(u32); else return 0; @@ -799,7 +799,7 @@ static inline unsigned long num_fp_d_regs(const struct = kvm_vcpu *vcpu) { const struct kvm_cpu_context *cntx =3D &vcpu->arch.guest_context; =20 - if (riscv_isa_extension_available(vcpu->arch.isa, d)) + if (riscv_isa_extension_available(vcpu->arch.isa, D)) return sizeof(cntx->fp.d.f) / sizeof(u64) + 1; else return 0; @@ -878,7 +878,7 @@ static inline unsigned long num_sbi_regs(struct kvm_vcp= u *vcpu) =20 static inline unsigned long num_vector_regs(const struct kvm_vcpu *vcpu) { - if (!riscv_isa_extension_available(vcpu->arch.isa, v)) + if (!riscv_isa_extension_available(vcpu->arch.isa, V)) return 0; =20 /* vstart, vl, vtype, vcsr, vlenb and 32 vector regs */ diff --git a/arch/riscv/kvm/vcpu_vector.c b/arch/riscv/kvm/vcpu_vector.c index 62d2fb77bb9b9..f26108a4e601e 100644 --- a/arch/riscv/kvm/vcpu_vector.c +++ b/arch/riscv/kvm/vcpu_vector.c @@ -26,7 +26,7 @@ void kvm_riscv_vcpu_vector_reset(struct kvm_vcpu *vcpu) =20 cntx->vector.vlenb =3D riscv_v_vsize / 32; =20 - if (riscv_isa_extension_available(isa, v)) { + if (riscv_isa_extension_available(isa, V)) { cntx->sstatus |=3D SR_VS_INITIAL; WARN_ON(!cntx->vector.datap); memset(cntx->vector.datap, 0, riscv_v_vsize); @@ -45,7 +45,7 @@ void kvm_riscv_vcpu_guest_vector_save(struct kvm_cpu_cont= ext *cntx, unsigned long *isa) { if ((cntx->sstatus & SR_VS) =3D=3D SR_VS_DIRTY) { - if (riscv_isa_extension_available(isa, v)) + if (riscv_isa_extension_available(isa, V)) __kvm_riscv_vector_save(cntx); kvm_riscv_vcpu_vector_clean(cntx); } @@ -55,7 +55,7 @@ void kvm_riscv_vcpu_guest_vector_restore(struct kvm_cpu_c= ontext *cntx, unsigned long *isa) { if ((cntx->sstatus & SR_VS) !=3D SR_VS_OFF) { - if (riscv_isa_extension_available(isa, v)) + if (riscv_isa_extension_available(isa, V)) __kvm_riscv_vector_restore(cntx); kvm_riscv_vcpu_vector_clean(cntx); } @@ -154,7 +154,7 @@ int kvm_riscv_vcpu_get_reg_vector(struct kvm_vcpu *vcpu, void *reg_addr; int rc; =20 - if (!riscv_isa_extension_available(isa, v)) + if (!riscv_isa_extension_available(isa, V)) return -ENOENT; =20 rc =3D kvm_riscv_vcpu_vreg_addr(vcpu, reg_num, reg_size, ®_addr); @@ -180,7 +180,7 @@ int kvm_riscv_vcpu_set_reg_vector(struct kvm_vcpu *vcpu, void *reg_addr; int rc; =20 - if (!riscv_isa_extension_available(isa, v)) + if (!riscv_isa_extension_available(isa, V)) return -ENOENT; =20 if (reg_num =3D=3D KVM_REG_RISCV_VECTOR_CSR_REG(vlenb)) { --=20 2.43.0 From nobody Fri Jun 12 23:57:43 2026 Received: from mail-pj1-f43.google.com (mail-pj1-f43.google.com [209.85.216.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 335CE36A004 for ; Thu, 11 Jun 2026 20:13:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781208828; cv=none; b=EhtPXm5vD0BnVBv4qCF/zjz5mSD05986gxBIqPqlmzPXM0pd/nRxv9anejUG7CqflV7uWOFu7b41ZoEUCBrKovWO3JHha7gAqNIyZQh7AuMoT0DXMslijLdM3CTwB2QZpqDdMYxWpRro5OX7//jdHOkNYjTtHdJKPoWwCsOf0ko= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781208828; c=relaxed/simple; bh=NbZKfIhAESQSZGLKBeiejMf182pR47BEC4U9FBjuJWo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=sSB6sa44PsJYkMqSPO8lNyZBW0ChrjTAiUuIzsELK2GiubzjH7Okn4bYjnnx+SQfayiW/wXE73qOE7IgCN8TlNumsgpOodUOi8W6XzHxDPcNTZeonXkgwvcvTD4YB7TJzxnLiBMMizpYTbXlto5qnIVtQvShrJxAjePlg0XLoIo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=lrX8ICu+; arc=none smtp.client-ip=209.85.216.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="lrX8ICu+" Received: by mail-pj1-f43.google.com with SMTP id 98e67ed59e1d1-36b9ec98144so312299a91.1 for ; Thu, 11 Jun 2026 13:13:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781208826; x=1781813626; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=SZxM0nq9Qo37aSql2ij+ibdvlWTuLmx0z98uOay5MXI=; b=lrX8ICu+A7SivIpxFyZ/wuaPZ46IcbvIVGySeKF7P1e1Tf9figTcsNL/Rv4utgFkMo sPsupzycVKcdKJZ8JhsLBdnH2XdaHYZpX2WBoj2iklXbxc29IdXxii4BkwIze03QIaJ7 GGTwMnddWAPujUWyk9+Z6OMijG0Y59KS8DYXKE3+CQg6wR+UWM5Rd9jUNYCLyAsYfsHV 25DjGYTDx/EzT9AwCN9QTG5oE7IcAhg/GUWaaT0VMG6uUJd7hFRSAMbzx2nLHjeN/V4m fLaKSnJXixABJfq1/BW0RLdPGhj/6+235aNmA6Npti68WOcX0K10tlH9Ksn5HjeIllNH qtew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781208826; x=1781813626; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=SZxM0nq9Qo37aSql2ij+ibdvlWTuLmx0z98uOay5MXI=; b=Y0PGdUgZAP2mBXkE3WGu+QxdhVzqxm1IIok3fVOGeaw+U06rWUcVM5CI6rybQLr/C/ TlylXYVo9Zy1133A9Im/lBNLpgv/6IabgM1nCX8niTWlftuoS1oAygPA4pPUWyqshDAy 5BjVEmfDKNu1c3tF2kTMs369PQJU70zbcPmblM6NSHNlk721E0vcGFyyf86MUAo+vOMa mOAPWtXDb0kcD7utHFLTtl0l36jCAuEz2elp3Q5Z/jGzoF+v+uSlO3zHMtU1wySc66/p PSO8ZkcpOH/xzOWuzMggxW9S0e1UuI8gPvxWZUDKzcvy0f+S+JZFnnMLXnGQpfqc/mq0 O3tg== X-Forwarded-Encrypted: i=1; AFNElJ8D1osQJaGBAB9gn8CpSZ1UoZdfdUXRpk9+BQkdZdqm3aiq+1X/YZeBP4olkXJ5j9HlPDqq8iUDbX9HoyA=@vger.kernel.org X-Gm-Message-State: AOJu0Yww+2bSYeJxTVpwUhe7Cu5qOgG1B3MVo98peJumqazRePuqQFNR 472qiy7J8UfRYo0zkHj3NFHKGsDtHOk24RpejCJ7MDkpCTyHZhihSR30 X-Gm-Gg: Acq92OEnX77TvkKqNMjPBW3E9lpiH2kvp1kYBCXwJkBGqJPVtUSlCz/88w7GpKS2hgb YsSaeRfCzD7dxDexYtuCVsAikxOe+2+jfKcQg9fotVETFvCm29lTVBD9w8gRHR5Ix5+YvPRo0xS gFJOa/16Rl7/ixh4KqIvWhWaAp1fdP/VrFZMOaubuPzoAHc93iPG9bmUNSeT5gNX8B/Y1kbTKBP dczRRei1aBfXhLysfVMtSdB+Ip31/rM7n32PVtNNbv4SOC/nqhkbhYeb7oFSJux0hvP9QbRd1tr JQkXp0BlrIhxsNKx76vzCYNPsazWVwIWhzl74R1OAlo0iMjehSQ6ihbSjTpy5oFIMeqn2aTIQE4 J3ko0QhsvSgcLJNFChSVBpsjzqKXoIlcvr0rdDaGSnELXx8WRw5coNAcv7j6EDmlIH24WwSvtDg == X-Received: by 2002:a17:902:f60c:b0:2c2:7baf:139f with SMTP id d9443c01a7336-2c2f2693495mr50380055ad.30.1781208826458; Thu, 11 Jun 2026 13:13:46 -0700 (PDT) Received: from [127.0.1.1] ([2a12:a305:4::302d]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c164f875casm288730475ad.22.2026.06.11.13.13.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Jun 2026 13:13:46 -0700 (PDT) From: Guodong Xu Date: Thu, 11 Jun 2026 16:12:42 -0400 Subject: [PATCH v4 05/16] riscv: Add Zicclsm to cpufeature and hwprobe 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 Message-Id: <20260611-rva23u64-hwprobe-v2-v4-5-3f01a2449488@gmail.com> References: <20260611-rva23u64-hwprobe-v2-v4-0-3f01a2449488@gmail.com> In-Reply-To: <20260611-rva23u64-hwprobe-v2-v4-0-3f01a2449488@gmail.com> To: Jonathan Corbet , Shuah Khan , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Zong Li , Deepak Gupta , Anup Patel , Atish Patra , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Yixun Lan , Chen Wang , Inochi Amaoto Cc: linux-doc@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, Paul Walmsley , Conor Dooley , devicetree@vger.kernel.org, spacemit@lists.linux.dev, sophgo@lists.linux.dev, linux-kselftest@vger.kernel.org, Palmer Dabbelt , Guodong Xu , Jesse Taube , Conor Dooley , Charlie Jenkins , Andrew Jones , Andy Chiu X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=4415; i=docular.xu@gmail.com; h=from:subject:message-id; bh=5gK/AJ7I7Z0fBTNqkcRMKGgIqY4cXewYPVL687SON2g=; b=owGbwMvMwCXWtEl1Z3CGpCDjabUkhixtsQNLEkV1ZpjuVfdXemZh73iycw/Dg4u5M1YkfLdJW stekszdUcrCIMbFICumyHL4aEv21lc+0b7POX/AzGFlAhnCwMUpABM5+ZThn9Lc/lJlgV/G6qEu nGtbnFuuTzxYpV1zqGBWnqLL5KDMHwz/PR+Yh9lkftX7wVj0+dsrd/ENPUr/WiXcdKTYX/RVm5u wAgA= X-Developer-Key: i=docular.xu@gmail.com; a=openpgp; fpr=90B1DC3DF0BD10FD1227BD6344F254AF42F143EE From: Jesse Taube Zicclsm requires misaligned support for all regular load and store instructions, both scalar and vector, but not AMOs or other specialized forms of memory access, to main memory regions with both the cacheability and coherence PMAs, as defined in the profiles spec. Even though mandated, misaligned loads and stores might execute extremely slowly. Standard software distributions should assume their existence only for correctness, not for performance. Reviewed-by: Conor Dooley Reviewed-by: Andy Chiu Reviewed-by: Charlie Jenkins Tested-by: Charlie Jenkins Signed-off-by: Jesse Taube [Rebased, rewrote doc text, minor commit message revisions] Signed-off-by: Andrew Jones Signed-off-by: Guodong Xu --- v4: No change. v3: - Move the hwprobe.rst entry to the IMA_EXT_1 section so its documentation matches the IMA_EXT_1 bit it was allocated in v2 (Sashiko, agreed by Andrew). v2: - Rebased onto v7.1-rc2; moved ZICCLSM to IMA_EXT_1 and allocated a new bit for it --- Documentation/arch/riscv/hwprobe.rst | 4 ++++ arch/riscv/include/asm/hwcap.h | 1 + arch/riscv/include/uapi/asm/hwprobe.h | 1 + arch/riscv/kernel/cpufeature.c | 1 + arch/riscv/kernel/sys_hwprobe.c | 1 + 5 files changed, 8 insertions(+) diff --git a/Documentation/arch/riscv/hwprobe.rst b/Documentation/arch/risc= v/hwprobe.rst index d9928641deb99..49d9fb68632d0 100644 --- a/Documentation/arch/riscv/hwprobe.rst +++ b/Documentation/arch/riscv/hwprobe.rst @@ -401,3 +401,7 @@ The following keys are defined: as defined in version 1.0 of the RISC-V Control-flow Integrity (CFI) extensions specification, ratified in commit 302a2d45c243 ("Update build-pdf.yml") of riscv-cfi. + + * :c:macro:`RISCV_HWPROBE_EXT_ZICCLSM`: The Zicclsm extension is support= ed, + as defined in the RISC-V Profiles specification starting from commit + b1d80660 ("Updated to ratified state.") diff --git a/arch/riscv/include/asm/hwcap.h b/arch/riscv/include/asm/hwcap.h index 44bf8c7d8acc5..e8f4a7dd96a93 100644 --- a/arch/riscv/include/asm/hwcap.h +++ b/arch/riscv/include/asm/hwcap.h @@ -112,6 +112,7 @@ #define RISCV_ISA_EXT_ZCLSD 103 #define RISCV_ISA_EXT_ZICFILP 104 #define RISCV_ISA_EXT_ZICFISS 105 +#define RISCV_ISA_EXT_ZICCLSM 106 =20 #define RISCV_ISA_EXT_XLINUXENVCFG 127 =20 diff --git a/arch/riscv/include/uapi/asm/hwprobe.h b/arch/riscv/include/uap= i/asm/hwprobe.h index 9139edba0aecb..6819df159c51e 100644 --- a/arch/riscv/include/uapi/asm/hwprobe.h +++ b/arch/riscv/include/uapi/asm/hwprobe.h @@ -116,6 +116,7 @@ struct riscv_hwprobe { #define RISCV_HWPROBE_KEY_ZICBOP_BLOCK_SIZE 15 #define RISCV_HWPROBE_KEY_IMA_EXT_1 16 #define RISCV_HWPROBE_EXT_ZICFISS (1ULL << 0) +#define RISCV_HWPROBE_EXT_ZICCLSM (1ULL << 1) =20 /* Increase RISCV_HWPROBE_MAX_KEY when adding items. */ =20 diff --git a/arch/riscv/kernel/cpufeature.c b/arch/riscv/kernel/cpufeature.c index 686dde3ce3b98..1fb595581adcf 100644 --- a/arch/riscv/kernel/cpufeature.c +++ b/arch/riscv/kernel/cpufeature.c @@ -502,6 +502,7 @@ const struct riscv_isa_ext_data riscv_isa_ext[] =3D { __RISCV_ISA_EXT_SUPERSET_VALIDATE(zicbom, RISCV_ISA_EXT_ZICBOM, riscv_xli= nuxenvcfg_exts, riscv_ext_zicbom_validate), __RISCV_ISA_EXT_DATA_VALIDATE(zicbop, RISCV_ISA_EXT_ZICBOP, riscv_ext_zic= bop_validate), __RISCV_ISA_EXT_SUPERSET_VALIDATE(zicboz, RISCV_ISA_EXT_ZICBOZ, riscv_xli= nuxenvcfg_exts, riscv_ext_zicboz_validate), + __RISCV_ISA_EXT_DATA(zicclsm, RISCV_ISA_EXT_ZICCLSM), __RISCV_ISA_EXT_DATA(ziccrse, RISCV_ISA_EXT_ZICCRSE), __RISCV_ISA_EXT_SUPERSET_VALIDATE(zicfilp, RISCV_ISA_EXT_ZICFILP, riscv_x= linuxenvcfg_exts, riscv_cfilp_validate), diff --git a/arch/riscv/kernel/sys_hwprobe.c b/arch/riscv/kernel/sys_hwprob= e.c index f8f68ba781b45..9cf62266f1890 100644 --- a/arch/riscv/kernel/sys_hwprobe.c +++ b/arch/riscv/kernel/sys_hwprobe.c @@ -205,6 +205,7 @@ static void hwprobe_isa_ext1(struct riscv_hwprobe *pair, * in the hart_isa bitmap, are made. */ EXT_KEY(isainfo->isa, ZICFISS, pair->value, missing); + EXT_KEY(isainfo->isa, ZICCLSM, pair->value, missing); } =20 /* Now turn off reporting features if any CPU is missing it. */ --=20 2.43.0 From nobody Fri Jun 12 23:57:43 2026 Received: from mail-pj1-f54.google.com (mail-pj1-f54.google.com [209.85.216.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EA965369D64 for ; Thu, 11 Jun 2026 20:13:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781208837; cv=none; b=nWEQSegcskcD6pexVSI39qoonCVwEV3P8NwrILHfeJYzGJUBa3ptuxsMnjWAV2OHxx/k4xvBqvIiuz+Guf/VwNJm1FXZ3q3LdpIbL3x9gh84OaFyvBkoSATDcnOiDPPH+VlUIRZgKUBRIcrzcSal1nXpyA7jciJ5m9dDpQNKfhI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781208837; c=relaxed/simple; bh=wxIMux4s2Lg8V483oagVs/H8o1b+tlSAkTGv9uXSFbw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=LEOaYRjM4MSKJlxT0SbjRG1dlUJVUGQrfAa30YSTz3Txoo5HJRu82pjYweYB2jRugOW5G/rpQcVo8wog7c0x5hkeMFDnaMGOprUWHkbLwrzIeQ5HC5o3bA+Rdr4FAFkPweN3kb97w3LQYT0e+6W6E+OJr5bhWWn7vRbJq2FE7XY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Wz3UPZop; arc=none smtp.client-ip=209.85.216.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Wz3UPZop" Received: by mail-pj1-f54.google.com with SMTP id 98e67ed59e1d1-36ba3ea5c46so247201a91.1 for ; Thu, 11 Jun 2026 13:13:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781208835; x=1781813635; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=WS0rWWpsi14GvxPL/X8PguzM8SKO3VATlxFp0qEp/fw=; b=Wz3UPZopRYeO6BoHoTqKjQnYKsow113dCC1hBrYYFKTs57ouEi53V2zFksFYJgFTH+ oDXtQTJcdxMyEXfJCgarEFmCWgyRAHskqzIyYMF8oIvgHjgiUWRBIJn4y2uWMrfKLV6A WJITZYsGd9WvEsVQQylwQgtWhmhfkJcM5uKiJJWmgDvpI9XYPkpuo0YfPxYxwCU6GUQ5 uVvOvmk2xHwEYTdx3qY+etP0jJOb27KUjZgtyNFkidIjsgR23I37anE0rdJnYyT4n6HC ZGkb2rQUKTeWYRVNdAxksWx6+PK3RjENQanG7yIundGwVmQRByz9HZJJ1IcrnW4NgjfR tVyw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781208835; x=1781813635; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=WS0rWWpsi14GvxPL/X8PguzM8SKO3VATlxFp0qEp/fw=; b=OyYJ2p2YfkSRPKz7nMTqhaqMY0VolYrXCCfCLPGI5nL0fx1xv1Ki48/EzJoYA6QBxR CZbV254rhgbZthWjr2rz/NnYN6LncgBhFo4359tQvm4GmExOyYLGxPXxNZC/w2OdO0dY QfkdUTVdESLBwAL+N6VrvN4nXaVrHZTDVpsGC4RADAYfCsLAoV+M2vclA82siAxi3leD NH80xIDdAuk+NqJbxslbWrhfVVPX/jdPN+RWLw3sL0b8mPYc6zKnsHDz2SKGG5Ow25W7 Ve+iZbOpu9UdkkXOjrMNimxOGe2v6167AJrYiphsaSIOmLzPp636+uhTf8VF73f8xWC8 Hjbg== X-Forwarded-Encrypted: i=1; AFNElJ9xaGxhhN6bu28334bc9Nw4yQS12ek9RrFVREhBDfqnEePOWggJl6uW0JHAblvsg98/OuItB+ZxWUVkdwE=@vger.kernel.org X-Gm-Message-State: AOJu0YwuZ2RWy4Y45ZgWqL1DmXSlPwlOI2sDDNyL8DB/NvdlkmrXTi5o c+BRN4qR3lenBWOxY2DlIKUc22rNlJV86baIxaZvwiTijpJV+fe6a0H8 X-Gm-Gg: Acq92OENC2Qdx1ULk3H+EteqxvhwcpHxjK7ZLu+eMM2WupZy1y+Y6+8A0ymkK0KCh5o YD9ohP6GTMTgbooG/d66AXokZTsWvdKkb0LXQkkWcrYH3gCuWvtfupYDrqqXQInLJ+RUhGTnn+3 +KB9BgoaN4DomQ6hSza5z80WVxKHN8LxPB+d81jbJO08EbSGjx8934xOb/cKggjGERkOV07Tp36 pOsJVnc0I0QivMizBhMJKPLZW6Kwp6OdLAGKkjHc0D6COFWK5JQg3IUM3iNvAbSgIIfZfF+s5lo qXmwS5faBSt8TNy5CGFWiaXog9Bn6mYMpU6+vKu5N2mWDfcbV6A08/sSGc4OR7Q+Zrft32o5IZ2 ZZI78JusP+6WqlVZKFA5Bbo/tIKQvWCKdLFhFdn2cuL4e7jByKPcDqb5IYwVeuuIj5jj8n/uENg == X-Received: by 2002:a17:902:d2c8:b0:2c0:ee6c:c53c with SMTP id d9443c01a7336-2c2f0b21db3mr49681805ad.1.1781208835361; Thu, 11 Jun 2026 13:13:55 -0700 (PDT) Received: from [127.0.1.1] ([2a12:a305:4::302d]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c164f875casm288730475ad.22.2026.06.11.13.13.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Jun 2026 13:13:55 -0700 (PDT) From: Guodong Xu Date: Thu, 11 Jun 2026 16:12:43 -0400 Subject: [PATCH v4 06/16] riscv: Add Ziccamoa, Ziccif, Ziccrse, and Za64rs to cpufeature and hwprobe 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 Message-Id: <20260611-rva23u64-hwprobe-v2-v4-6-3f01a2449488@gmail.com> References: <20260611-rva23u64-hwprobe-v2-v4-0-3f01a2449488@gmail.com> In-Reply-To: <20260611-rva23u64-hwprobe-v2-v4-0-3f01a2449488@gmail.com> To: Jonathan Corbet , Shuah Khan , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Zong Li , Deepak Gupta , Anup Patel , Atish Patra , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Yixun Lan , Chen Wang , Inochi Amaoto Cc: linux-doc@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, Paul Walmsley , Conor Dooley , devicetree@vger.kernel.org, spacemit@lists.linux.dev, sophgo@lists.linux.dev, linux-kselftest@vger.kernel.org, Palmer Dabbelt , Guodong Xu , Andrew Jones X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=7498; i=docular.xu@gmail.com; h=from:subject:message-id; bh=yNvYOT8c1VRmNPuEc/Kz8/rNNg4lB26dA3zMssylORU=; b=owGbwMvMwCXWtEl1Z3CGpCDjabUkhixtsYOh/c7VbRct4g+vNNW/r1bkf8RPas/tR7XaD+KtF e8r6Hl3lLIwiHExyIopshw+2pK99ZVPtO9zzh8wc1iZQIYwcHEKwES2yjAy3D/Av2FuzaXVeaum bDb0TxQuXeh46gA7x9YX2nPCPPeHHWX4K1q+LdzzkMHZx2ZC77dlpH/KW8qodS43q+Pj4adST5Y WsQAA X-Developer-Key: i=docular.xu@gmail.com; a=openpgp; fpr=90B1DC3DF0BD10FD1227BD6344F254AF42F143EE From: Andrew Jones Add Ziccamoa, Ziccif, and Za64rs to riscv_isa_ext[] so they can be parsed from devicetree/ACPI ISA strings. Ziccrse is already present in cpufeature; this patch only adds its hwprobe exposure. Expose all four extensions via hwprobe through new bits in RISCV_HWPROBE_KEY_IMA_EXT_1 (RISCV_HWPROBE_EXT_ZICCAMOA, _ZICCIF, _ZICCRSE, _ZA64RS), so userspace can probe each of these RVA23U64-mandatory extensions individually. Rationale for the validation dependencies added for Ziccamoa and Za64rs: 1) Ziccamoa depends on Zaamo. The RVA23 profile prose was updated post-ratification to spell out the Zaamo reference: commit 2b218613752d in riscv/riscv-profiles ("Improve description of Ziccamoa (#224)") reworded the rva23-profile.adoc (and other profiles that include Ziccamoa) text from "must support all atomics in A" to "must support all atomics in the Zaamo extension" [1]. 2) Za64rs depends on Zalrsc. The unprivileged ISA manual src/zars.adoc, integrated in commit ebe06adc22cd ("Integrate profiles as Volume III (#2771)"), defines Za64rs as: "The Za64rs extension requires that the reservation sets used by the instructions in the Zalrsc extension be contiguous, naturally aligned, and at most 64 bytes in size" [2]. Link: https://github.com/riscv/riscv-profiles/commit/2b218613752d63287286b5= ae801b820cbd8cc10c [1] Link: https://github.com/riscv/riscv-isa-manual/blob/main/src/unpriv/zars.a= doc [2] Signed-off-by: Andrew Jones Signed-off-by: Guodong Xu --- v4: No change. v3: Indent the added hwprobe.rst entries to match the normalized style; no = other change. v2: - Rebased to v7.1-rc2. - Reworded subject and expanded commit message. - Validation added for Ziccamoa depending on Zaamo and Za64rs depending on Zalrsc. --- Documentation/arch/riscv/hwprobe.rst | 16 ++++++++++++++++ arch/riscv/include/asm/hwcap.h | 3 +++ arch/riscv/include/uapi/asm/hwprobe.h | 4 ++++ arch/riscv/kernel/cpufeature.c | 21 +++++++++++++++++++++ arch/riscv/kernel/sys_hwprobe.c | 4 ++++ 5 files changed, 48 insertions(+) diff --git a/Documentation/arch/riscv/hwprobe.rst b/Documentation/arch/risc= v/hwprobe.rst index 49d9fb68632d0..893e1a1215d23 100644 --- a/Documentation/arch/riscv/hwprobe.rst +++ b/Documentation/arch/riscv/hwprobe.rst @@ -405,3 +405,19 @@ The following keys are defined: * :c:macro:`RISCV_HWPROBE_EXT_ZICCLSM`: The Zicclsm extension is support= ed, as defined in the RISC-V Profiles specification starting from commit b1d80660 ("Updated to ratified state.") + + * :c:macro:`RISCV_HWPROBE_EXT_ZICCAMOA`: The Ziccamoa extension is suppo= rted, + as defined in the RISC-V Profiles specification starting from commit + b1d80660 ("Updated to ratified state.") + + * :c:macro:`RISCV_HWPROBE_EXT_ZICCIF`: The Ziccif extension is supported, + as defined in the RISC-V Profiles specification starting from commit + b1d80660 ("Updated to ratified state.") + + * :c:macro:`RISCV_HWPROBE_EXT_ZICCRSE`: The Ziccrse extension is support= ed, + as defined in the RISC-V Profiles specification starting from commit + b1d80660 ("Updated to ratified state.") + + * :c:macro:`RISCV_HWPROBE_EXT_ZA64RS`: The Za64rs extension is supported, + as defined in the RISC-V Profiles specification starting from commit + b1d80660 ("Updated to ratified state.") diff --git a/arch/riscv/include/asm/hwcap.h b/arch/riscv/include/asm/hwcap.h index e8f4a7dd96a93..0acb7a01ecc0f 100644 --- a/arch/riscv/include/asm/hwcap.h +++ b/arch/riscv/include/asm/hwcap.h @@ -113,6 +113,9 @@ #define RISCV_ISA_EXT_ZICFILP 104 #define RISCV_ISA_EXT_ZICFISS 105 #define RISCV_ISA_EXT_ZICCLSM 106 +#define RISCV_ISA_EXT_ZICCAMOA 107 +#define RISCV_ISA_EXT_ZICCIF 108 +#define RISCV_ISA_EXT_ZA64RS 109 =20 #define RISCV_ISA_EXT_XLINUXENVCFG 127 =20 diff --git a/arch/riscv/include/uapi/asm/hwprobe.h b/arch/riscv/include/uap= i/asm/hwprobe.h index 6819df159c51e..58d1e86e47ae7 100644 --- a/arch/riscv/include/uapi/asm/hwprobe.h +++ b/arch/riscv/include/uapi/asm/hwprobe.h @@ -117,6 +117,10 @@ struct riscv_hwprobe { #define RISCV_HWPROBE_KEY_IMA_EXT_1 16 #define RISCV_HWPROBE_EXT_ZICFISS (1ULL << 0) #define RISCV_HWPROBE_EXT_ZICCLSM (1ULL << 1) +#define RISCV_HWPROBE_EXT_ZICCAMOA (1ULL << 2) +#define RISCV_HWPROBE_EXT_ZICCIF (1ULL << 3) +#define RISCV_HWPROBE_EXT_ZICCRSE (1ULL << 4) +#define RISCV_HWPROBE_EXT_ZA64RS (1ULL << 5) =20 /* Increase RISCV_HWPROBE_MAX_KEY when adding items. */ =20 diff --git a/arch/riscv/kernel/cpufeature.c b/arch/riscv/kernel/cpufeature.c index 1fb595581adcf..b9538e69fa1b3 100644 --- a/arch/riscv/kernel/cpufeature.c +++ b/arch/riscv/kernel/cpufeature.c @@ -90,6 +90,24 @@ static int riscv_ext_f_depends(const struct riscv_isa_ex= t_data *data, return -EPROBE_DEFER; } =20 +static int riscv_ext_zaamo_depends(const struct riscv_isa_ext_data *data, + const unsigned long *isa_bitmap) +{ + if (__riscv_isa_extension_available(isa_bitmap, RISCV_ISA_EXT_ZAAMO)) + return 0; + + return -EPROBE_DEFER; +} + +static int riscv_ext_zalrsc_depends(const struct riscv_isa_ext_data *data, + const unsigned long *isa_bitmap) +{ + if (__riscv_isa_extension_available(isa_bitmap, RISCV_ISA_EXT_ZALRSC)) + return 0; + + return -EPROBE_DEFER; +} + static int riscv_ext_zicbom_validate(const struct riscv_isa_ext_data *data, const unsigned long *isa_bitmap) { @@ -502,6 +520,8 @@ const struct riscv_isa_ext_data riscv_isa_ext[] =3D { __RISCV_ISA_EXT_SUPERSET_VALIDATE(zicbom, RISCV_ISA_EXT_ZICBOM, riscv_xli= nuxenvcfg_exts, riscv_ext_zicbom_validate), __RISCV_ISA_EXT_DATA_VALIDATE(zicbop, RISCV_ISA_EXT_ZICBOP, riscv_ext_zic= bop_validate), __RISCV_ISA_EXT_SUPERSET_VALIDATE(zicboz, RISCV_ISA_EXT_ZICBOZ, riscv_xli= nuxenvcfg_exts, riscv_ext_zicboz_validate), + __RISCV_ISA_EXT_DATA_VALIDATE(ziccamoa, RISCV_ISA_EXT_ZICCAMOA, riscv_ext= _zaamo_depends), + __RISCV_ISA_EXT_DATA(ziccif, RISCV_ISA_EXT_ZICCIF), __RISCV_ISA_EXT_DATA(zicclsm, RISCV_ISA_EXT_ZICCLSM), __RISCV_ISA_EXT_DATA(ziccrse, RISCV_ISA_EXT_ZICCRSE), __RISCV_ISA_EXT_SUPERSET_VALIDATE(zicfilp, RISCV_ISA_EXT_ZICFILP, riscv_x= linuxenvcfg_exts, @@ -516,6 +536,7 @@ const struct riscv_isa_ext_data riscv_isa_ext[] =3D { __RISCV_ISA_EXT_DATA(zihintpause, RISCV_ISA_EXT_ZIHINTPAUSE), __RISCV_ISA_EXT_DATA(zihpm, RISCV_ISA_EXT_ZIHPM), __RISCV_ISA_EXT_DATA(zimop, RISCV_ISA_EXT_ZIMOP), + __RISCV_ISA_EXT_DATA_VALIDATE(za64rs, RISCV_ISA_EXT_ZA64RS, riscv_ext_zal= rsc_depends), __RISCV_ISA_EXT_DATA(zaamo, RISCV_ISA_EXT_ZAAMO), __RISCV_ISA_EXT_DATA(zabha, RISCV_ISA_EXT_ZABHA), __RISCV_ISA_EXT_DATA(zacas, RISCV_ISA_EXT_ZACAS), diff --git a/arch/riscv/kernel/sys_hwprobe.c b/arch/riscv/kernel/sys_hwprob= e.c index 9cf62266f1890..b15ac9adf7920 100644 --- a/arch/riscv/kernel/sys_hwprobe.c +++ b/arch/riscv/kernel/sys_hwprobe.c @@ -206,6 +206,10 @@ static void hwprobe_isa_ext1(struct riscv_hwprobe *pai= r, */ EXT_KEY(isainfo->isa, ZICFISS, pair->value, missing); EXT_KEY(isainfo->isa, ZICCLSM, pair->value, missing); + EXT_KEY(isainfo->isa, ZICCAMOA, pair->value, missing); + EXT_KEY(isainfo->isa, ZICCIF, pair->value, missing); + EXT_KEY(isainfo->isa, ZICCRSE, pair->value, missing); + EXT_KEY(isainfo->isa, ZA64RS, pair->value, missing); } =20 /* Now turn off reporting features if any CPU is missing it. */ --=20 2.43.0 From nobody Fri Jun 12 23:57:43 2026 Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 621D1399D02 for ; Thu, 11 Jun 2026 20:14:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781208845; cv=none; b=q8xFYLi5wPyJRAYtVnD/BdEGtHmSpvDBWTve4RkR6QAbN/rtRg2LcJaWWXgZlQjX53PnUxwGwnVUxsUWmB9leuxNyYUtv0njsGxfv+3G8ym1Q8t6I1vb0pqFTBPN2ZUSx3shUmf7U6Dkb9u4nIfCm9o8/L6QjU+9B9fxD/nGeas= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781208845; c=relaxed/simple; bh=Z4SvLEe4IZzEFb+cAK8zmYNsxWif6BZPOJ1s9j1h5ok=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=APPWJzOF+SFB5Hq+ry4xEE6bw3bDrezenfHreXE8vz4HD2cEzpiPp9N6wl4+Tp5rofcAQAE7swtNPMwsQtxhsbq0K3C94yziVyVrdev5zZ8YHz1ShrquuCd/TR73MQ91cFjpDFpyP8y4kiK1j6pEXmlWXQf13SpdAueOymr4cuE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=subBRzxU; arc=none smtp.client-ip=209.85.214.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="subBRzxU" Received: by mail-pl1-f181.google.com with SMTP id d9443c01a7336-2c0b944f6edso2459505ad.2 for ; Thu, 11 Jun 2026 13:14:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781208844; x=1781813644; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=uDWD971MMwJ6qHve2YOG8FRlEWvJHn1EivNT/6Ew/sE=; b=subBRzxU6wqEIMs10BPd4MrM9K2Km5PQZrfQ0rt/Q5tKppBSCCDb1Hf1fe/Q5fcixH gBIDtIh5ScwLEBOjxxQi60h48i5PgGrQIRM/r7BFqlyl6iMu2Fj2aIRNVyxi7phAL+Wl T2usjuYHg1hhtF0SyCtRoBf9NDfUet3o0aAKdQ7EspDxVKlODA9GQWma6NbKqgEW5i0S 2TptfM8VaTDS8lBTrIEREXuTFYVtJx3NbPOS+d5EdCoxgLZ/YPSeaJN6xhfRzmXPnjFq NftUt5ZC7s2ZuTouXSSvd67wkrDpjnMkewTT/BMtoN9Wn06mRACxsevnc0UHHBiJgV7s OLxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781208844; x=1781813644; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=uDWD971MMwJ6qHve2YOG8FRlEWvJHn1EivNT/6Ew/sE=; b=oWOXxPP6MXEl5auFhNu9en1foqJTc2DFrstzv0FpGwQZPWwBBo8Qn1LpGlu9vx7VZg 2kW64TX2Z463YBiTb1J8RZZtaAyAoGemaEjKbOAM8sMIEJUvvmxYBsdXtZSqDxes4U0f lWyQzYOnvzRf+b7TmepSRcpYBRY2worBgddq5ulUJgRf4T4+//8L/5jeBacbDGPf/y7X CqmUaLa0C5qZYT1lamwdkTFRBIiyu3FG+IFGRNmuGhN38++WZyFwGlwCOkDILPy30NS/ OGZv5BeyE6Mfbs2I68a19XoLoWh3joI239eW0+qKCPPuq3C//in0FvPCsoM/4W6QrCyh cerA== X-Forwarded-Encrypted: i=1; AFNElJ9yxNxLVP2eZcduyukPwr6Z4AmhPh8rIoFjrpxo1Izh/TrNL5L0RhH4Z7VAk0+2LHFY22oHbFgeA0QmPHs=@vger.kernel.org X-Gm-Message-State: AOJu0Yz11U88kHo09Y7vhgXlNILcNtDgwgKAHgRl3ohNLP9qsNdysmHw nCxK3UpjZJ1lY/NwXog+5DLGVSA6epKeIVI9+yZUBEjAWt5VT3muBpMg X-Gm-Gg: Acq92OGVGb0vX4YiPgYfgAx5K1zIEfJBrZqJbFeDJpBDTvzrZAGpOY6sphkuwKFKPwA bbmetjF/J1SRdvky9aBH+yULRS3injfhXyGYE/kKGyS9TtJ2M2uMoNH7LvxCIp47MIrMxMa5OF+ a+AUwuj/th1DjMNo2pOnb1flUNIC9gSXmsnGmKwOKFBGnCezAwXAKkfBaB3FhbSWQ9NSdbx+Ieg xCexogeVcHwt3GHzkYs1bbHePewaEjlNVSPJAoI63i7timAZkDtJZs/DXH3FypH6Igmvk2HaGSx /RrXrNn8rSjJ2AX/Gyf6ZnXJVdrAZUuJul7I1NyeB5ucUjJNqwzsQ3MnnMT2W6PZ00A7tHwP6xP FQQEyhqOXEuXQeWzc0uCtmGRqngYFsIyHSEVshOTxzoVTiYQ4bmt148ltwdLmkdFB353fjH0X/Q == X-Received: by 2002:a17:902:ce83:b0:2be:39bd:8dd8 with SMTP id d9443c01a7336-2c2f4cdfce1mr50813675ad.33.1781208843652; Thu, 11 Jun 2026 13:14:03 -0700 (PDT) Received: from [127.0.1.1] ([2a12:a305:4::302d]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c164f875casm288730475ad.22.2026.06.11.13.13.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Jun 2026 13:14:03 -0700 (PDT) From: Guodong Xu Date: Thu, 11 Jun 2026 16:12:44 -0400 Subject: [PATCH v4 07/16] riscv: Add B to hwcap and hwprobe 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 Message-Id: <20260611-rva23u64-hwprobe-v2-v4-7-3f01a2449488@gmail.com> References: <20260611-rva23u64-hwprobe-v2-v4-0-3f01a2449488@gmail.com> In-Reply-To: <20260611-rva23u64-hwprobe-v2-v4-0-3f01a2449488@gmail.com> To: Jonathan Corbet , Shuah Khan , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Zong Li , Deepak Gupta , Anup Patel , Atish Patra , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Yixun Lan , Chen Wang , Inochi Amaoto Cc: linux-doc@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, Paul Walmsley , Conor Dooley , devicetree@vger.kernel.org, spacemit@lists.linux.dev, sophgo@lists.linux.dev, linux-kselftest@vger.kernel.org, Palmer Dabbelt , Guodong Xu , Andrew Jones X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=5372; i=docular.xu@gmail.com; h=from:subject:message-id; bh=b9UB3n6jmzaPS8rRQ79NB7tbcWOa+iWqyCC7BBkj9z0=; b=owGbwMvMwCXWtEl1Z3CGpCDjabUkhixtsYNXY26adu+oE13Ek8+VV5YZY2jT9kRVP/ofS+KVU 85Sd953lLIwiHExyIopshw+2pK99ZVPtO9zzh8wc1iZQIYwcHEKwET+bmJkOM5xtb45/4mHQtDm yM86/lGHdzCWTlksyJuTfojDfMXlZIb/uRv0z5/48uPwSxkh9UeORzZZHX4n57KI2SLxy4fXbaq XmQE= X-Developer-Key: i=docular.xu@gmail.com; a=openpgp; fpr=90B1DC3DF0BD10FD1227BD6344F254AF42F143EE From: Andrew Jones Add B to hwcap and ensure when B is present that Zba, Zbb, and Zbs are all set. Also expose B via hwprobe (RISCV_HWPROBE_EXT_B in RISCV_HWPROBE_KEY_IMA_EXT_1) so that userspace can probe B directly, mirroring the F/D/C/V pattern where each is reported via both hwcap and hwprobe. Signed-off-by: Andrew Jones [Add B to hwprobe] Signed-off-by: Guodong Xu Reviewed-by: Conor Dooley --- v4: No change. v3: - Indent the added hwprobe.rst entry to match the normalized style. - Rebased onto v7.1-rc6: index isa2hwcap[] via RISCV_ISA_EXT_B to match the macro-ization in commit 41337097f2823. v2: - Rebased to v7.1-rc2 - Add B to hwprobe (RISCV_HWPROBE_EXT_B at IMA_EXT_1 bit 6) and document it in hwprobe.rst, so userspace can probe B directly. --- Documentation/arch/riscv/hwprobe.rst | 4 ++++ arch/riscv/include/asm/hwcap.h | 1 + arch/riscv/include/uapi/asm/hwcap.h | 1 + arch/riscv/include/uapi/asm/hwprobe.h | 1 + arch/riscv/kernel/cpufeature.c | 8 ++++++++ arch/riscv/kernel/sys_hwprobe.c | 1 + 6 files changed, 16 insertions(+) diff --git a/Documentation/arch/riscv/hwprobe.rst b/Documentation/arch/risc= v/hwprobe.rst index 893e1a1215d23..fc68dea397aae 100644 --- a/Documentation/arch/riscv/hwprobe.rst +++ b/Documentation/arch/riscv/hwprobe.rst @@ -421,3 +421,7 @@ The following keys are defined: * :c:macro:`RISCV_HWPROBE_EXT_ZA64RS`: The Za64rs extension is supported, as defined in the RISC-V Profiles specification starting from commit b1d80660 ("Updated to ratified state.") + + * :c:macro:`RISCV_HWPROBE_EXT_B`: The B extension is supported, as defin= ed + in version 1.0 of the Bit-Manipulation ISA extensions, and implies the + presence of the Zba, Zbb, and Zbs sub-extensions. diff --git a/arch/riscv/include/asm/hwcap.h b/arch/riscv/include/asm/hwcap.h index 0acb7a01ecc0f..58523b3a1998a 100644 --- a/arch/riscv/include/asm/hwcap.h +++ b/arch/riscv/include/asm/hwcap.h @@ -11,6 +11,7 @@ #include =20 #define RISCV_ISA_EXT_A ('a' - 'a') +#define RISCV_ISA_EXT_B ('b' - 'a') #define RISCV_ISA_EXT_C ('c' - 'a') #define RISCV_ISA_EXT_D ('d' - 'a') #define RISCV_ISA_EXT_F ('f' - 'a') diff --git a/arch/riscv/include/uapi/asm/hwcap.h b/arch/riscv/include/uapi/= asm/hwcap.h index c52bb7bbbabe9..96b7cf854e090 100644 --- a/arch/riscv/include/uapi/asm/hwcap.h +++ b/arch/riscv/include/uapi/asm/hwcap.h @@ -21,6 +21,7 @@ #define COMPAT_HWCAP_ISA_F (1 << ('F' - 'A')) #define COMPAT_HWCAP_ISA_D (1 << ('D' - 'A')) #define COMPAT_HWCAP_ISA_C (1 << ('C' - 'A')) +#define COMPAT_HWCAP_ISA_B (1 << ('B' - 'A')) #define COMPAT_HWCAP_ISA_V (1 << ('V' - 'A')) =20 #endif /* _UAPI_ASM_RISCV_HWCAP_H */ diff --git a/arch/riscv/include/uapi/asm/hwprobe.h b/arch/riscv/include/uap= i/asm/hwprobe.h index 58d1e86e47ae7..430dc49a82863 100644 --- a/arch/riscv/include/uapi/asm/hwprobe.h +++ b/arch/riscv/include/uapi/asm/hwprobe.h @@ -121,6 +121,7 @@ struct riscv_hwprobe { #define RISCV_HWPROBE_EXT_ZICCIF (1ULL << 3) #define RISCV_HWPROBE_EXT_ZICCRSE (1ULL << 4) #define RISCV_HWPROBE_EXT_ZA64RS (1ULL << 5) +#define RISCV_HWPROBE_EXT_B (1ULL << 6) =20 /* Increase RISCV_HWPROBE_MAX_KEY when adding items. */ =20 diff --git a/arch/riscv/kernel/cpufeature.c b/arch/riscv/kernel/cpufeature.c index b9538e69fa1b3..e0197160af6dd 100644 --- a/arch/riscv/kernel/cpufeature.c +++ b/arch/riscv/kernel/cpufeature.c @@ -468,6 +468,12 @@ static const unsigned int riscv_c_exts[] =3D { RISCV_ISA_EXT_ZCD, }; =20 +static const unsigned int riscv_b_exts[] =3D { + RISCV_ISA_EXT_ZBA, + RISCV_ISA_EXT_ZBB, + RISCV_ISA_EXT_ZBS, +}; + /* * The canonical order of ISA extension names in the ISA string is defined= in * chapter 27 of the unprivileged specification. @@ -515,6 +521,7 @@ const struct riscv_isa_ext_data riscv_isa_ext[] =3D { __RISCV_ISA_EXT_DATA_VALIDATE(d, RISCV_ISA_EXT_D, riscv_ext_d_validate), __RISCV_ISA_EXT_DATA(q, RISCV_ISA_EXT_Q), __RISCV_ISA_EXT_SUPERSET(c, RISCV_ISA_EXT_C, riscv_c_exts), + __RISCV_ISA_EXT_SUPERSET(b, RISCV_ISA_EXT_B, riscv_b_exts), __RISCV_ISA_EXT_SUPERSET_VALIDATE(v, RISCV_ISA_EXT_V, riscv_v_exts, riscv= _ext_vector_float_validate), __RISCV_ISA_EXT_DATA(h, RISCV_ISA_EXT_H), __RISCV_ISA_EXT_SUPERSET_VALIDATE(zicbom, RISCV_ISA_EXT_ZICBOM, riscv_xli= nuxenvcfg_exts, riscv_ext_zicbom_validate), @@ -1133,6 +1140,7 @@ void __init riscv_fill_hwcap(void) isa2hwcap[RISCV_ISA_EXT_F] =3D COMPAT_HWCAP_ISA_F; isa2hwcap[RISCV_ISA_EXT_D] =3D COMPAT_HWCAP_ISA_D; isa2hwcap[RISCV_ISA_EXT_C] =3D COMPAT_HWCAP_ISA_C; + isa2hwcap[RISCV_ISA_EXT_B] =3D COMPAT_HWCAP_ISA_B; isa2hwcap[RISCV_ISA_EXT_V] =3D COMPAT_HWCAP_ISA_V; =20 if (!acpi_disabled) { diff --git a/arch/riscv/kernel/sys_hwprobe.c b/arch/riscv/kernel/sys_hwprob= e.c index b15ac9adf7920..dcc102bf8f183 100644 --- a/arch/riscv/kernel/sys_hwprobe.c +++ b/arch/riscv/kernel/sys_hwprobe.c @@ -210,6 +210,7 @@ static void hwprobe_isa_ext1(struct riscv_hwprobe *pair, EXT_KEY(isainfo->isa, ZICCIF, pair->value, missing); EXT_KEY(isainfo->isa, ZICCRSE, pair->value, missing); EXT_KEY(isainfo->isa, ZA64RS, pair->value, missing); + EXT_KEY(isainfo->isa, B, pair->value, missing); } =20 /* Now turn off reporting features if any CPU is missing it. */ --=20 2.43.0 From nobody Fri Jun 12 23:57:43 2026 Received: from mail-pg1-f171.google.com (mail-pg1-f171.google.com [209.85.215.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7A5F939C621 for ; Thu, 11 Jun 2026 20:14:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781208853; cv=none; b=oYeep3jX2+1cPF8GXMQI5/w1p+vKI5xNOH24qnacPRfwxI5jpi1V1snJppx6+3/Zcl73Ur+i0dodJmAHbliUivujC/Qr8uFOgl/eKw85A6KODKSSByvPhzIgTcC3OAG5Xq6wYIECwh0g3a30fO4U4JpFzL9+KNKuFhkn3pW2piw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781208853; c=relaxed/simple; bh=vzqxvIv/Z820msoDS14+zD5u3OuYC3MRZkySViyquOA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=UDbWfy2T05r+1e6qPyYDWbUXLCW073wUvucT5yJCFrr2g3uI0J+S6YZp0S9YWxSmcE5M3+sFzfd9ogiJ3dZRaiWDihefb7gIFzkCl1xNS7jk+vZL5K5/E9zWtdKurRyLH4QxlYd/7gmtC2TNgTwEAms4htag4cK3oB5IpxhC55Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=mx0PxvyB; arc=none smtp.client-ip=209.85.215.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="mx0PxvyB" Received: by mail-pg1-f171.google.com with SMTP id 41be03b00d2f7-c857fba35cfso115076a12.1 for ; Thu, 11 Jun 2026 13:14:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781208852; x=1781813652; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=+UogjurmnadVGaEybH3I8GCYhGRY5wKTkofTPfwNbdk=; b=mx0PxvyByqbsUbMbFuwjACk0mTEQSjhhIFFfIE5yP315DV1ZjiJINg3vWjJdp/Qo9u lV75tzv1n9n9FuZAwfqE1j2YtoeNXJH2Dkar/9ngGbFSGvTZOkxbyLyzm4CUBlD1tZnb AzwFG3QB99qYt0YhL9TH6MsWGG+3clDP7HRHmaVnBciC/hVHvE6MTaur9Fnx73lJKu1r +LFhiVtOHao1Cqxyhgq7dEvqtBDLjs2ivB60y2Ox6ce7cUb+++AekURqrF4O5bbhXrYS X04by9bAt/D/1G8VISHu5ehvkMXH0DrhCATm9pZ7KeNFFxBTNJW1P5DROimBovKKndx+ U3mg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781208852; x=1781813652; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=+UogjurmnadVGaEybH3I8GCYhGRY5wKTkofTPfwNbdk=; b=jPl1Uixu+Ld5/x5So0hRLvRUUOppERO3NG1t5eQlRa25PSgv9eeW+nOvU7el3VieZa 7J7/W2Q72BBlkRcNykb+QwgZETF8YtBuFmNg+o4O0vmKSLn9IjuLFGs9K+wRGG1M8VQC dyvyay2jQSRJh6/Ccp8QzWLQzVBjtZqApQrrCHF/InY+GM9Pv05EMwnRDARXf3XNZtg9 2ZC4i8iDughNGUyNFn7b9hFrAM8gfLgcAPKcMRmGmN1iNbrXqW2iEPsltTigK9IMpvfy Wo9qOqfldXLjps4h6LVrOnpkKN2npmKD8rYLAk/6RHLqbNYYd6vResDbTMLL6EPuF1rW YSWA== X-Forwarded-Encrypted: i=1; AFNElJ9Na3VhqtUopXreUmVHuTN587cFNHUFGGdQBb+GJQ0lKq1UADqJR7aZkBjxX7r74tFmpYPOZq/tiLxvwO8=@vger.kernel.org X-Gm-Message-State: AOJu0Yz69qYeGSUOkbxbXAp4DXmkfwZoRg6eS/knatj40pnZXqRK7fJ8 +pzoTCXFOvO7XD9YJxY3M37fSoVAsrklJl4HjVum+o75n3fCJX/gc9Qs X-Gm-Gg: Acq92OF9PcdE/0t8YLk6Kb4KR6Lj0oTV39CP5VPZa9A90/Ka4x049hRK2LNoFDRMkSF cZuCcblURf56UjIUlbO/cDU/AJZ2kc+Hyd0njZKsh/L0zjvjOALkyjDgnApq3ExdvD4xKUNmlP/ A5rk+1kzZG8d/RqZ0OWPwgPVbHrQ4XUscObz/dnqCaOmix7oHrxpgsk8VtJXl/K+lJxrBgRR9X6 2Wxt1RR0sjwr6xh0Ti1oSIVHhbfwLO2r7GtPBrhCMESXElSTRYaE7ICly2vCLY7B79XFsvbWQ+I FP5o6CJyk90FxUbiE6EUSj0MrMdkzjaBTHR63a5qPTOlpsQUyEGSgy+3WGhyqzhVTNeSTswM0Hv oJrwfqrh0M6f0i7RXfHvfMSeK7200gRln00zFtfkqcFeFbU8SwiSWFvNO3dONyOnEBt7yOs3Myg == X-Received: by 2002:a17:902:c407:b0:2c0:c625:4010 with SMTP id d9443c01a7336-2c2f2d5b823mr49982165ad.32.1781208851778; Thu, 11 Jun 2026 13:14:11 -0700 (PDT) Received: from [127.0.1.1] ([2a12:a305:4::302d]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c164f875casm288730475ad.22.2026.06.11.13.14.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Jun 2026 13:14:11 -0700 (PDT) From: Guodong Xu Date: Thu, 11 Jun 2026 16:12:45 -0400 Subject: [PATCH v4 08/16] dt-bindings: riscv: Add Zic64b extension description 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 Message-Id: <20260611-rva23u64-hwprobe-v2-v4-8-3f01a2449488@gmail.com> References: <20260611-rva23u64-hwprobe-v2-v4-0-3f01a2449488@gmail.com> In-Reply-To: <20260611-rva23u64-hwprobe-v2-v4-0-3f01a2449488@gmail.com> To: Jonathan Corbet , Shuah Khan , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Zong Li , Deepak Gupta , Anup Patel , Atish Patra , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Yixun Lan , Chen Wang , Inochi Amaoto Cc: linux-doc@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, Paul Walmsley , Conor Dooley , devicetree@vger.kernel.org, spacemit@lists.linux.dev, sophgo@lists.linux.dev, linux-kselftest@vger.kernel.org, Palmer Dabbelt , Guodong Xu X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=2173; i=docular.xu@gmail.com; h=from:subject:message-id; bh=vzqxvIv/Z820msoDS14+zD5u3OuYC3MRZkySViyquOA=; b=kA0DAAoWgrIluVNoGREByyZiAGorFsGj1LKmqSZuxM3ds1D1JnMhsEQYTedSZCio+Vjz0G5Wp 4h1BAAWCgAdFiEEw8WEa7XqTFtN5wn4grIluVNoGREFAmorFsEACgkQgrIluVNoGRFeTgEAlm4q TS0RrfZZaJySqif9VGXq49FSo90l1aGtPT74WfsA/0Z6QPZvvgDRClq2yD8QKSJAIMfvQbF+DxU A/TYM7CQF X-Developer-Key: i=docular.xu@gmail.com; a=openpgp; fpr=90B1DC3DF0BD10FD1227BD6344F254AF42F143EE Zic64b mandates that cache blocks are 64 bytes in size and naturally aligned in the address space. It is a mandatory extension of both the RVA22 (U64/S64) and RVA23 (U64/S64) profiles, ratified with RISC-V Profiles Version 1.0. Document it so it can be described in the riscv,isa-extensions property, alongside the related Zicbom/Zicbop/Zicboz cache-block extensions. Since Zic64b fixes the cache block size at 64 bytes, also add a schema check requiring any present cbom/cbop/cboz block size to be 64. Signed-off-by: Guodong Xu --- v4: Insert zic64b at its sorted position (before zicbom). Update the commit message. v3: New patch. --- .../devicetree/bindings/riscv/extensions.yaml | 20 ++++++++++++++++= ++++ 1 file changed, 20 insertions(+) diff --git a/Documentation/devicetree/bindings/riscv/extensions.yaml b/Docu= mentation/devicetree/bindings/riscv/extensions.yaml index 5ffc40d599c02..1c24999beb59e 100644 --- a/Documentation/devicetree/bindings/riscv/extensions.yaml +++ b/Documentation/devicetree/bindings/riscv/extensions.yaml @@ -494,6 +494,12 @@ properties: in commit 64074bc ("Update version numbers for Zfh/Zfinx") of riscv-isa-manual. =20 + - const: zic64b + description: + The standard Zic64b extension for 64-byte naturally aligned ca= che + blocks, as ratified in RISC-V Profiles Version 1.0, with commit + b1d806605f87 ("Updated to ratified state.") + - const: zicbom description: The standard Zicbom extension for base cache management operat= ions as @@ -1142,6 +1148,20 @@ allOf: not: contains: const: zilsd + # Zic64b mandates 64-byte naturally aligned cache blocks + - if: + properties: + riscv,isa-extensions: + contains: + const: zic64b + then: + properties: + riscv,cbom-block-size: + const: 64 + riscv,cbop-block-size: + const: 64 + riscv,cboz-block-size: + const: 64 =20 additionalProperties: true ... --=20 2.43.0 From nobody Fri Jun 12 23:57:43 2026 Received: from mail-pl1-f169.google.com (mail-pl1-f169.google.com [209.85.214.169]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B544139891F for ; Thu, 11 Jun 2026 20:14:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781208863; cv=none; b=jFPIXKaDqRomzlOLCT7kG2rqoX1ptpRc8ooGkAmHZoqTueG1bhSyAuLBDQems5r8BJ8POASnOdJ+PkXNzbYYaEX7va5dc6rcmfTQHVd9Cbo14f0FNH+6H1S6up7GDgc22pQ7vPSV1FNt8qvfszPNheENEMTzbXQKOpIebqYwt1M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781208863; c=relaxed/simple; bh=GUC8kvko49SeLpQio5c73u8anxlTnIalYE6ydi19kAw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=uvCTwsXwvqs15MaIzn4COk0+WlBaaLudyNNxmui/EOQ1EqzGnl7bs0N8GW1E5f63wm1n6PtPUB6x6UjfteL+221W+ow1pUmIW7Y1oVAvHqSDYEqRGeLYeEmfIZUNFa1UveyGxBUT7ovGnnLPtJe4ocCtAM5oFolpK6umDZVKFNs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=LoM+XRG8; arc=none smtp.client-ip=209.85.214.169 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="LoM+XRG8" Received: by mail-pl1-f169.google.com with SMTP id d9443c01a7336-2c0c2d8b95bso2079875ad.1 for ; Thu, 11 Jun 2026 13:14:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781208860; x=1781813660; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=yMGfGczB0NxDEd0np6M2cDGmk32GLLRpI8e709o6daA=; b=LoM+XRG8lvBBzFVFAJmFYWBzxkoQP7Sg8Zus5HBBmvJoBlIjj8NfvrsqYAlwDbslip UwUFlfV7nfb0OwHWze2ipX81Ev+St77Ukwjcib2fOC82orRbJTFQTi2oRz7maRDONgs+ CPIQnUwBdUQd9eC7qRRlVE0IE8CRxh1v+GICXJFyIhYDLAXiQrwdZrKgYkX/wyZQgYez xGXHvq8nn8PobIh5dgweUGCS1tePrK+1fMK6QutuIZ8yENzgy+OOrTP2JtHqH7i1Rv5P tEyOlpwz0WnUHucnajj2MS46n3P2BJ7F9Cf4lHjnVvacElyolHUGI4hZlGVXo/ol78C7 in/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781208860; x=1781813660; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=yMGfGczB0NxDEd0np6M2cDGmk32GLLRpI8e709o6daA=; b=maBNtls1OBPG1iK4lemjVRQsR8Zk5xbFYtO2LWaqv/g5XcrW6Eh2/U8aceS6qzQHd3 mLxVtkM0IZjnXfQYX23QPD1hhNNZ+6G94afsacJLVbwjqKiq8wOhrime7YEc1olbVeHX yYZXEsMYNszG3M39GfTAgjucvKYJnMO8riOoz/4KS1R1/ATQyTOSB1U8McXTy94Not3X oukh20a6FTOJ4CTrE7ingQIu/WAlRJ4B4TqhCI5mO/sB2j7Sa2WseErQDTNp1R0YcSpu fVdLvlvGoJmO+pbQAH0GUcmf/0q0D+WMu4iNXaGON7kQHPJnG+WC9niPOQL9GqeoAqzE bqig== X-Forwarded-Encrypted: i=1; AFNElJ9VIf/dZ14RpyjuGBj9iUE38l8SReVb2lgF8LJzEwFbI4KQIhQC6qSfgx7pl6APeKjS6drIiwTFb6YWmbk=@vger.kernel.org X-Gm-Message-State: AOJu0YzZKwEtlGw2vKxOS7lCWM+9MIdLnKCeCCdFn8YglgmZBussk5NN VsLgbtYz8th3UqDCoTlmQZmuX4Ac1ohuGH8HcU8PzXCD/2QUBXGbV21k X-Gm-Gg: Acq92OHbnahQhyoqZsr9v7bYkEXyy1Wbk9YxUQVNcchGCYpb6xCAlN6s1k8uV86zJa1 jlvXfjbOCnYenR/qeaIA9FfuOoZeZNM1WUa/JEPQaA6s6VlBqG02C5zqKSvOXeacyXUnAx6KDjt 55MOISw8QjeNk1wQ0v1JaKRxAhXdXRNHSpII1KVs3cyXJ2myu10BKzN2ySEgZy5mXjAY7+4QkFx MbkA7dFfXXuRpl0CsB2drtK039QNSV4UJTxLS91OPZNJjGqFugXQfi09bZPzi7TWDRBwryg4ixq B93jTgpAht6YzFunjH6KB4oGXZinuVDnbsyJ/HeJKTOZnwurJnrUfbZIIAQuIR8ZypJZVUDPL3D EPq2sfluvJlWiYH6tpxz0SUlQI9BIyzBRRaF7nUTC4pGIGIwFhePeKM6L0V78tWTGi/WhFZGwXg == X-Received: by 2002:a17:903:1a06:b0:2c0:e5ee:f56c with SMTP id d9443c01a7336-2c2f21a0ademr49861065ad.20.1781208860004; Thu, 11 Jun 2026 13:14:20 -0700 (PDT) Received: from [127.0.1.1] ([2a12:a305:4::302d]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c164f875casm288730475ad.22.2026.06.11.13.14.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Jun 2026 13:14:19 -0700 (PDT) From: Guodong Xu Date: Thu, 11 Jun 2026 16:12:46 -0400 Subject: [PATCH v4 09/16] riscv: Add Zic64b to cpufeature and hwprobe 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 Message-Id: <20260611-rva23u64-hwprobe-v2-v4-9-3f01a2449488@gmail.com> References: <20260611-rva23u64-hwprobe-v2-v4-0-3f01a2449488@gmail.com> In-Reply-To: <20260611-rva23u64-hwprobe-v2-v4-0-3f01a2449488@gmail.com> To: Jonathan Corbet , Shuah Khan , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Zong Li , Deepak Gupta , Anup Patel , Atish Patra , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Yixun Lan , Chen Wang , Inochi Amaoto Cc: linux-doc@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, Paul Walmsley , Conor Dooley , devicetree@vger.kernel.org, spacemit@lists.linux.dev, sophgo@lists.linux.dev, linux-kselftest@vger.kernel.org, Palmer Dabbelt , Guodong Xu , Qingwei Hu X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=5498; i=docular.xu@gmail.com; h=from:subject:message-id; bh=nGcs7EOITyjoy7uSccUTn+y3G2TeXfDwFJQsTGZZRmY=; b=owGbwMvMwCXWtEl1Z3CGpCDjabUkhixtsUPmOxf9nXjyoMnC1vs5VV/yvwq8uZhwmOPzB2/lR w8uh2z51lHKwiDGxSArpshy+GhL9tZXPtG+zzl/wMxhZQIZwsDFKQATuRHDyNC+8ZLz+e1PLxQG PeDeacx92vPirw9eCru37O0+63JQWJyD4Q+Xmn6uoIng/eC0tWdzPFyk35ySKTl26hUbx4kFh7P 8jPgA X-Developer-Key: i=docular.xu@gmail.com; a=openpgp; fpr=90B1DC3DF0BD10FD1227BD6344F254AF42F143EE From: Qingwei Hu Zic64b mandates 64-byte naturally aligned cache blocks and is a mandatory extension of the RVA22 and RVA23 profiles. Allocate a RISCV_ISA_EXT_ZIC64B id, parse "zic64b" from the ISA string with a validate callback that requires each cbom/cbop/cboz cache block size to be 64 bytes when it is present, and export it through hwprobe. Link: https://lists.riscv.org/g/tech-unprivileged/topic/question_about_zic6= 4b_and/119631059 Signed-off-by: Qingwei Hu Co-developed-by: Guodong Xu Signed-off-by: Guodong Xu Reviewed-by: Andrew Jones Reviewed-by: Conor Dooley --- v4: - Credit Qingwei Hu's earlier Zic64b cpufeature patch: set him as author, with Co-developed-by (Guodong Xu). - Validate only the cbom/cbop/cboz block sizes that are present; Zic64b does not imply the CMO extensions (Conor, Qingwei, Greg). - Add a Link: to Greg's confirmation on the tech-unprivileged list. - Add the missing blank line before the ZIC64B hwprobe.rst entry (Andrew). - Did not carry Andrew Jones's v3 Reviewed-by: the validation was rewritten (present block sizes only) and the patch is now authored by Qingwei, so it warrants a fresh review. v3: New patch. --- Documentation/arch/riscv/hwprobe.rst | 4 ++++ arch/riscv/include/asm/hwcap.h | 1 + arch/riscv/include/uapi/asm/hwprobe.h | 1 + arch/riscv/kernel/cpufeature.c | 19 +++++++++++++++++++ arch/riscv/kernel/sys_hwprobe.c | 1 + 5 files changed, 26 insertions(+) diff --git a/Documentation/arch/riscv/hwprobe.rst b/Documentation/arch/risc= v/hwprobe.rst index fc68dea397aae..32a14331eb9de 100644 --- a/Documentation/arch/riscv/hwprobe.rst +++ b/Documentation/arch/riscv/hwprobe.rst @@ -425,3 +425,7 @@ The following keys are defined: * :c:macro:`RISCV_HWPROBE_EXT_B`: The B extension is supported, as defin= ed in version 1.0 of the Bit-Manipulation ISA extensions, and implies the presence of the Zba, Zbb, and Zbs sub-extensions. + + * :c:macro:`RISCV_HWPROBE_EXT_ZIC64B`: The Zic64b extension is supported, + as defined in the RISC-V Profiles specification starting from commit + b1d80660 ("Updated to ratified state.") diff --git a/arch/riscv/include/asm/hwcap.h b/arch/riscv/include/asm/hwcap.h index 58523b3a1998a..36572c1ff438a 100644 --- a/arch/riscv/include/asm/hwcap.h +++ b/arch/riscv/include/asm/hwcap.h @@ -117,6 +117,7 @@ #define RISCV_ISA_EXT_ZICCAMOA 107 #define RISCV_ISA_EXT_ZICCIF 108 #define RISCV_ISA_EXT_ZA64RS 109 +#define RISCV_ISA_EXT_ZIC64B 110 =20 #define RISCV_ISA_EXT_XLINUXENVCFG 127 =20 diff --git a/arch/riscv/include/uapi/asm/hwprobe.h b/arch/riscv/include/uap= i/asm/hwprobe.h index 430dc49a82863..36ec8ab470423 100644 --- a/arch/riscv/include/uapi/asm/hwprobe.h +++ b/arch/riscv/include/uapi/asm/hwprobe.h @@ -122,6 +122,7 @@ struct riscv_hwprobe { #define RISCV_HWPROBE_EXT_ZICCRSE (1ULL << 4) #define RISCV_HWPROBE_EXT_ZA64RS (1ULL << 5) #define RISCV_HWPROBE_EXT_B (1ULL << 6) +#define RISCV_HWPROBE_EXT_ZIC64B (1ULL << 7) =20 /* Increase RISCV_HWPROBE_MAX_KEY when adding items. */ =20 diff --git a/arch/riscv/kernel/cpufeature.c b/arch/riscv/kernel/cpufeature.c index e0197160af6dd..29dff41313e65 100644 --- a/arch/riscv/kernel/cpufeature.c +++ b/arch/riscv/kernel/cpufeature.c @@ -154,6 +154,24 @@ static int riscv_ext_zicbop_validate(const struct risc= v_isa_ext_data *data, return 0; } =20 +static int riscv_ext_zic64b_validate(const struct riscv_isa_ext_data *data, + const unsigned long *isa_bitmap) +{ + /* + * Zic64b mandates 64-byte naturally aligned cache blocks; cross-check the + * cbom/cbop/cboz block-size (when declared) device-tree properties to + * avoid inconsistency. + */ + if ((riscv_cbom_block_size && riscv_cbom_block_size !=3D 64) || + (riscv_cbop_block_size && riscv_cbop_block_size !=3D 64) || + (riscv_cboz_block_size && riscv_cboz_block_size !=3D 64)) { + pr_err("Zic64b detected in ISA string, disabling as a CBO block size is = not 64 bytes\n"); + return -EINVAL; + } + + return 0; +} + static int riscv_ext_f_validate(const struct riscv_isa_ext_data *data, const unsigned long *isa_bitmap) { @@ -524,6 +542,7 @@ const struct riscv_isa_ext_data riscv_isa_ext[] =3D { __RISCV_ISA_EXT_SUPERSET(b, RISCV_ISA_EXT_B, riscv_b_exts), __RISCV_ISA_EXT_SUPERSET_VALIDATE(v, RISCV_ISA_EXT_V, riscv_v_exts, riscv= _ext_vector_float_validate), __RISCV_ISA_EXT_DATA(h, RISCV_ISA_EXT_H), + __RISCV_ISA_EXT_DATA_VALIDATE(zic64b, RISCV_ISA_EXT_ZIC64B, riscv_ext_zic= 64b_validate), __RISCV_ISA_EXT_SUPERSET_VALIDATE(zicbom, RISCV_ISA_EXT_ZICBOM, riscv_xli= nuxenvcfg_exts, riscv_ext_zicbom_validate), __RISCV_ISA_EXT_DATA_VALIDATE(zicbop, RISCV_ISA_EXT_ZICBOP, riscv_ext_zic= bop_validate), __RISCV_ISA_EXT_SUPERSET_VALIDATE(zicboz, RISCV_ISA_EXT_ZICBOZ, riscv_xli= nuxenvcfg_exts, riscv_ext_zicboz_validate), diff --git a/arch/riscv/kernel/sys_hwprobe.c b/arch/riscv/kernel/sys_hwprob= e.c index dcc102bf8f183..3e80e5551ae0d 100644 --- a/arch/riscv/kernel/sys_hwprobe.c +++ b/arch/riscv/kernel/sys_hwprobe.c @@ -211,6 +211,7 @@ static void hwprobe_isa_ext1(struct riscv_hwprobe *pair, EXT_KEY(isainfo->isa, ZICCRSE, pair->value, missing); EXT_KEY(isainfo->isa, ZA64RS, pair->value, missing); EXT_KEY(isainfo->isa, B, pair->value, missing); + EXT_KEY(isainfo->isa, ZIC64B, pair->value, missing); } =20 /* Now turn off reporting features if any CPU is missing it. */ --=20 2.43.0 From nobody Fri Jun 12 23:57:43 2026 Received: from mail-pl1-f175.google.com (mail-pl1-f175.google.com [209.85.214.175]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E12633A0EB3 for ; Thu, 11 Jun 2026 20:14:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781208870; cv=none; b=b4ItdLXdX51BEMa489yxwF0VorCMs+XfEtLkTr36BGN5wzNXFAHzCFHf/ZijBdx9YuGgx9IzSG+0jCrEV/kf+6M8rBUWO4KtG65Fao4V5WW1y0BA2uq+1VsxFqF9Yv6yPHqq8mTr6UuYW9Wqyb6Zo4JvwT7OUs2WIM+7n0YdH0A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781208870; c=relaxed/simple; bh=1hC6zzKA4CJjQriIWM3CQBXPR2A8kSqDWjw+47N4rD8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=X59gtGpw8ID9eMa8s4KETTqb8Y88T1hGRfMUJ7NLqYqL4P+jPAAi6MnyyxrCUJNEn0dJk2hbpkUv4K2G34UnJ+wqIaIZJd6KJ5EzcV6DeT9pF5tDb8g/1orkhhTuRmWCv/RUw4R0nbL95kyQ0/3RM1a5zjywpCTJUYbzYA8fn1o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=N2PP+4aZ; arc=none smtp.client-ip=209.85.214.175 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="N2PP+4aZ" Received: by mail-pl1-f175.google.com with SMTP id d9443c01a7336-2c0a5354da1so2950995ad.0 for ; Thu, 11 Jun 2026 13:14:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781208868; x=1781813668; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=CWGPbpmqg0lH1ng2byOCnVsoEWVWZdy1zTkLpAItnsc=; b=N2PP+4aZMd46CGWPJ1TXQT8JO2gJEEDk6vbeR3ZTTmHDr+ZwPBSOvT3KSe53htm/L0 zGyHLmXhg7XUOFcBgEGDPcUsTL79Zs/jzLB6fOzQ9mFeGQr7Hcu+V8hDtZHMkO5aNnEo kyge3/zUich7kbYmd1HWzpeWfTXF2Y01bGi9WwfqVBerNwn9V8Izy8HarkI13T97Pgg/ FnV/odCVvYu2EE7pdo9aYc6LGlXOY1sdjLkUWzt9R/iPBudUy7gUz/YKQOvcKu5D6NCB Nb5Gt0rYg3eVr8+JYXUNiVMraF1zgVtOfzYoLwDnizxc6cSqISUINmGR8nCWyJtHPc6U ttYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781208868; x=1781813668; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=CWGPbpmqg0lH1ng2byOCnVsoEWVWZdy1zTkLpAItnsc=; b=K5tTJ33YOngAGe2cpdSAosUvorMgeh6FMFbK0D7xbUUFESlV9SrgQ0l28ZQ3c+pZz8 a0YOVWoJCUnZfUjnQVWJGmdVEIrJqtWCcnRewtjx+SlddBrC2oiudB2SxbcZgL0eFoq5 /BOFqevqMmqaXCvf03E5EyomG5hkTteMHHyikeYrIrMs0q6Xh+oqX3oJI/w1rkHkT4RD rSJP3U540avJntL7YU3CFZPieQff/HnpSKD81XX53+bAczwhfhRJZ65w8thgJBTlLxXr CC55pEj6kURkQz8ZAW8bItxEQWWIlV8CV69Ln/KSq8hyUHLx+DNcnJ0nbr9Js+7QZZoD yGgA== X-Forwarded-Encrypted: i=1; AFNElJ/HwFEPolPG0a9W7ITHF0mwnn/ktcbYY29clv+8Ue2niE5Ys4RZ8oUVCq9fuRRiAQy2wjhYxUO7t5KI64U=@vger.kernel.org X-Gm-Message-State: AOJu0YxQJ9BKs4F4DdEghTBPRCUfE4mMZZ337758HDNko39Fiefsv1av Tx2+Z3qdtc1kVIvF0giX01S8eUAoRbhJsu+FCOykWpH6VJId1L2Nh9dm X-Gm-Gg: Acq92OHOuhNP2sR2z8nAcjiys1m0rW+gXEY9RixhxcMMsT67fNdV2jfBARAKHzQ/O4q 1pCKXLJeMp61nxEcilEaUEQYXosJ56qcjwLa9jHxH9oYBupU3D490zptltzt6ecL1Wf278UfAts zclvJ13KPBULESyliPCszjvwKQ0dQBXZurod0hbG0WXfwC7Zu78vznLY8k7OGxFdqPQn70NSEDj HQMDuP/RYzf3vcyhY+1jUAGwrMaawSq6A7sCQ8AgGTc71moQbkwdssQwgoKT54MmY35KSByc4M4 TWS5nXRO5MiPdzP3jOfjho1hI8RbLyfR33YbnRJoof1HiR+LbiAMcMVo7KTPDQRSCL0rZ2HtfEy Cl/FX5hTY3pqfLlLT8lfaqqA3BKJJA3nIqqmV/Trdf1YAxjDWLApCm4mucKfQZuGNY3329GxEJw == X-Received: by 2002:a17:902:d4c7:b0:2bc:977b:846d with SMTP id d9443c01a7336-2c402bddcb7mr1128965ad.5.1781208868292; Thu, 11 Jun 2026 13:14:28 -0700 (PDT) Received: from [127.0.1.1] ([2a12:a305:4::302d]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c164f875casm288730475ad.22.2026.06.11.13.14.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Jun 2026 13:14:28 -0700 (PDT) From: Guodong Xu Date: Thu, 11 Jun 2026 16:12:47 -0400 Subject: [PATCH v4 10/16] riscv: dts: spacemit: k3: Add Zic64b ISA extension 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 Message-Id: <20260611-rva23u64-hwprobe-v2-v4-10-3f01a2449488@gmail.com> References: <20260611-rva23u64-hwprobe-v2-v4-0-3f01a2449488@gmail.com> In-Reply-To: <20260611-rva23u64-hwprobe-v2-v4-0-3f01a2449488@gmail.com> To: Jonathan Corbet , Shuah Khan , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Zong Li , Deepak Gupta , Anup Patel , Atish Patra , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Yixun Lan , Chen Wang , Inochi Amaoto Cc: linux-doc@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, Paul Walmsley , Conor Dooley , devicetree@vger.kernel.org, spacemit@lists.linux.dev, sophgo@lists.linux.dev, linux-kselftest@vger.kernel.org, Palmer Dabbelt , Guodong Xu X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=6777; i=docular.xu@gmail.com; h=from:subject:message-id; bh=1hC6zzKA4CJjQriIWM3CQBXPR2A8kSqDWjw+47N4rD8=; b=owGbwMvMwCXWtEl1Z3CGpCDjabUkhixtsUNn27892F2bsvL8+ytHsyfXaLy7eWNDd+Bp1uDv4 v0m5Ud3d5SyMIhxMciKKbIcPtqSvfWVT7Tvc84fMHNYmUCGMHBxCsBEnB8z/GKa8FD2xNq8g+zz pJc+u8e88+GfZwvKUkKurollbTq5YpM6I8PSrg3tcwoOdjqtL/Ssyi3c8u3jRamnLhVXA47z79k gqs4NAA== X-Developer-Key: i=docular.xu@gmail.com; a=openpgp; fpr=90B1DC3DF0BD10FD1227BD6344F254AF42F143EE The K3 X100 cores have 64-byte cache blocks, already described by their cbom/cbop/cboz-block-size of 64, so they implement Zic64b, a mandatory RVA23 extension. Declare it in each core's riscv,isa-extensions. Signed-off-by: Guodong Xu --- v4: No change. v3: New patch. --- arch/riscv/boot/dts/spacemit/k3.dtsi | 48 ++++++++++++++++++--------------= ---- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/arch/riscv/boot/dts/spacemit/k3.dtsi b/arch/riscv/boot/dts/spa= cemit/k3.dtsi index 4ac457399b583..b5aa983f0bfa1 100644 --- a/arch/riscv/boot/dts/spacemit/k3.dtsi +++ b/arch/riscv/boot/dts/spacemit/k3.dtsi @@ -35,9 +35,9 @@ cpu_0: cpu@0 { "svinval", "svnapot", "svpbmt", "za64rs", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", "zcmop", "zfa", "zfbfmin", - "zfh", "zfhmin", "zicbom", "zicbop", "zicboz", - "ziccamoa", "ziccif", "zicclsm", "ziccrse", "zicntr", - "zicond", "zicsr", "zifencei", "zihintntl", + "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", + "zicboz", "ziccamoa", "ziccif", "zicclsm", "ziccrse", + "zicntr", "zicond", "zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", "zimop", "zkt", "zvbb", "zvbc", "zvfbfmin", "zvfbfwma", "zvfh", "zvfhmin", "zvkb", "zvkg", "zvkn", "zvknc", @@ -76,9 +76,9 @@ cpu_1: cpu@1 { "svinval", "svnapot", "svpbmt", "za64rs", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", "zcmop", "zfa", "zfbfmin", - "zfh", "zfhmin", "zicbom", "zicbop", "zicboz", - "ziccamoa", "ziccif", "zicclsm", "ziccrse", "zicntr", - "zicond", "zicsr", "zifencei", "zihintntl", + "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", + "zicboz", "ziccamoa", "ziccif", "zicclsm", "ziccrse", + "zicntr", "zicond", "zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", "zimop", "zkt", "zvbb", "zvbc", "zvfbfmin", "zvfbfwma", "zvfh", "zvfhmin", "zvkb", "zvkg", "zvkn", "zvknc", @@ -117,9 +117,9 @@ cpu_2: cpu@2 { "svinval", "svnapot", "svpbmt", "za64rs", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", "zcmop", "zfa", "zfbfmin", - "zfh", "zfhmin", "zicbom", "zicbop", "zicboz", - "ziccamoa", "ziccif", "zicclsm", "ziccrse", "zicntr", - "zicond", "zicsr", "zifencei", "zihintntl", + "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", + "zicboz", "ziccamoa", "ziccif", "zicclsm", "ziccrse", + "zicntr", "zicond", "zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", "zimop", "zkt", "zvbb", "zvbc", "zvfbfmin", "zvfbfwma", "zvfh", "zvfhmin", "zvkb", "zvkg", "zvkn", "zvknc", @@ -158,9 +158,9 @@ cpu_3: cpu@3 { "svinval", "svnapot", "svpbmt", "za64rs", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", "zcmop", "zfa", "zfbfmin", - "zfh", "zfhmin", "zicbom", "zicbop", "zicboz", - "ziccamoa", "ziccif", "zicclsm", "ziccrse", "zicntr", - "zicond", "zicsr", "zifencei", "zihintntl", + "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", + "zicboz", "ziccamoa", "ziccif", "zicclsm", "ziccrse", + "zicntr", "zicond", "zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", "zimop", "zkt", "zvbb", "zvbc", "zvfbfmin", "zvfbfwma", "zvfh", "zvfhmin", "zvkb", "zvkg", "zvkn", "zvknc", @@ -199,9 +199,9 @@ cpu_4: cpu@4 { "svinval", "svnapot", "svpbmt", "za64rs", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", "zcmop", "zfa", "zfbfmin", - "zfh", "zfhmin", "zicbom", "zicbop", "zicboz", - "ziccamoa", "ziccif", "zicclsm", "ziccrse", "zicntr", - "zicond", "zicsr", "zifencei", "zihintntl", + "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", + "zicboz", "ziccamoa", "ziccif", "zicclsm", "ziccrse", + "zicntr", "zicond", "zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", "zimop", "zkt", "zvbb", "zvbc", "zvfbfmin", "zvfbfwma", "zvfh", "zvfhmin", "zvkb", "zvkg", "zvkn", "zvknc", @@ -240,9 +240,9 @@ cpu_5: cpu@5 { "svinval", "svnapot", "svpbmt", "za64rs", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", "zcmop", "zfa", "zfbfmin", - "zfh", "zfhmin", "zicbom", "zicbop", "zicboz", - "ziccamoa", "ziccif", "zicclsm", "ziccrse", "zicntr", - "zicond", "zicsr", "zifencei", "zihintntl", + "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", + "zicboz", "ziccamoa", "ziccif", "zicclsm", "ziccrse", + "zicntr", "zicond", "zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", "zimop", "zkt", "zvbb", "zvbc", "zvfbfmin", "zvfbfwma", "zvfh", "zvfhmin", "zvkb", "zvkg", "zvkn", "zvknc", @@ -281,9 +281,9 @@ cpu_6: cpu@6 { "svinval", "svnapot", "svpbmt", "za64rs", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", "zcmop", "zfa", "zfbfmin", - "zfh", "zfhmin", "zicbom", "zicbop", "zicboz", - "ziccamoa", "ziccif", "zicclsm", "ziccrse", "zicntr", - "zicond", "zicsr", "zifencei", "zihintntl", + "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", + "zicboz", "ziccamoa", "ziccif", "zicclsm", "ziccrse", + "zicntr", "zicond", "zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", "zimop", "zkt", "zvbb", "zvbc", "zvfbfmin", "zvfbfwma", "zvfh", "zvfhmin", "zvkb", "zvkg", "zvkn", "zvknc", @@ -322,9 +322,9 @@ cpu_7: cpu@7 { "svinval", "svnapot", "svpbmt", "za64rs", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", "zcmop", "zfa", "zfbfmin", - "zfh", "zfhmin", "zicbom", "zicbop", "zicboz", - "ziccamoa", "ziccif", "zicclsm", "ziccrse", "zicntr", - "zicond", "zicsr", "zifencei", "zihintntl", + "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", + "zicboz", "ziccamoa", "ziccif", "zicclsm", "ziccrse", + "zicntr", "zicond", "zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", "zimop", "zkt", "zvbb", "zvbc", "zvfbfmin", "zvfbfwma", "zvfh", "zvfhmin", "zvkb", "zvkg", "zvkn", "zvknc", --=20 2.43.0 From nobody Fri Jun 12 23:57:43 2026 Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DD74C35CBD7 for ; Thu, 11 Jun 2026 20:14:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781208879; cv=none; b=F3zV9xeWsoqo5oq4OpuOIxopcFfiBXW/vgvQrUZDHv6NbI0GUD3Rk5DSvKpu0ArFJ7+yGHy94eC1GSg8vFqSknB+XUP1k3O68VrxNPXlNEcuJaQJp1TW/GbFCt4XiLmoMsEfOztk1QWcTdae0GXG65KgNLAwa8K4xIbXj+YDROY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781208879; c=relaxed/simple; bh=LPciPSKOjjfc8R66BCMwvv1Iz71YeE8uUZh7vlO7CUQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=lIzN43Ce1FPxxX0y9E6aQDB4r7K4E88rMb+N0aqxWw85U0PCmu7GXojkMYANAkXEI7Q9OjDOeNx1caRL/t7PLksw3XlQZ8Tv+ng1DcT2Rc7dcCXAXjCN8zI8TXhnCZCQeLLe43NwjR2lwSqNSvlmStUFf6Ya23G9cS4Ucpo4kW4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=m+RaaHbr; arc=none smtp.client-ip=209.85.214.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="m+RaaHbr" Received: by mail-pl1-f181.google.com with SMTP id d9443c01a7336-2bf20f6be6bso2088345ad.3 for ; Thu, 11 Jun 2026 13:14:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781208877; x=1781813677; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=4yhZ7YsNP2YhPGt2PkgbAxQstAuQwAb1UkgIbQNsnNM=; b=m+RaaHbrULcCH89gWqxxFAy+CqeaJ79nh3wIUq0K6UPQqNzRbbB/u2FRJiIfBBY4wy wUYJ3JgWHZzSJ7lYvX7sQFcdcfReWTgUir1fDnZLSue0XbwXrISOoN1Jd6EwgEQ3JFHZ OqTmvLOSfnebYHsn1Roog5PZyAgj1APumyzFmZa3HLSvX4RR9awTfI4y4fu2JgdHHAJC 4rk1DSNkHvfCQlLyHZlrF3xQNpG+FdWx0By7ddmn/gnZImoZHqlssdxdJcz0cwSsCKbI jXuNjpnUB7ybQ4KIwBOtOsHXDOGUjr0K28GC6HzvCXr6QzebljZEOJ3BIPkw2x9kxO/r q7OQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781208877; x=1781813677; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=4yhZ7YsNP2YhPGt2PkgbAxQstAuQwAb1UkgIbQNsnNM=; b=aHWAc0vDtJqqi09Zodrn48YTPb8mY1rrA+T2rNVGISi1Kx13dsoGi1/IoFvYAo0hjl ssAsHXfFGD3q0+sP2dTNjVvpSwyu65cfCzUr4NLVCvO2PzcY4PVypyUazdxWd0XgaGg+ 6koij86F3AtMGPDkmqyPIcT7sPetCm4aAaoLpMBlIH4Wxum0Hzsllx8A6EggmF50oh6S 2n6FLqBKpDK4071b4dJcVHcJbYxLFsPuCvZEg103XFg/A/Wh83eN8Yscm3GTOMUQOwKu 8sdu5WcfySkbhjv8EgmtxgBj17CVCVi+CZTwSsIBaxSo8rGiqGRdwre0ZY1dk/eBzC3U FPEg== X-Forwarded-Encrypted: i=1; AFNElJ+KOxddssgm6NAoB19Wt/Aoo/5kMi5ZLAe3XtR5x8iy1/u671ui7gTcmVHts0cXT4zyQ22sBgp//YP0iaI=@vger.kernel.org X-Gm-Message-State: AOJu0YwZIG7iBS5DvszsEmxlp1KEgoHGpt3sh7uJgClKqdi/bWC2X43H shkgVQz/CBPA6TiFJ2rWkdRDyhVF53yGSxdtMqMfL3NkRJxaKV4rXjxW X-Gm-Gg: Acq92OFANINLg1Ln67qQwZwOUZllc+2a1uPh4SW5nIekk7zOmhH8yOHx/0H6FGxUqao Q/XTDRtgv7o2rXHG+0r/PXOyAX/AuFEoeUNYgC3SlWS/ROA4383rMmbSYKdHaYvIIHdI9WSzSbO hhdgC7yA39kzBD/T9R2l5LRA3/z+1djNyjeCOs6L6eaEqVWtY+Yfg8ZPn0pimbP++/89XUY0ZRX v3CeuK5KxFkDytkPHYxc3gIj1Pwo5tsRoyYk18RQb14eo2pCv8Fihf6Z6hQhdKPQQwjYIRztlmZ fmFXoJNJCCGxfVNWHzxneLT6Jry5evlRc7j/AzSsF6XneCfGB0V752jTa4+sS8oAQtZD7ftfC9w tm8G5H4kqypgH+blhc56al3+DeJRZtywWLP9+J4Z2wQ8z7kwltgv0PzFDhagIDIj1XUpWO2Zm1g == X-Received: by 2002:a17:902:d583:b0:2c2:75c4:4b0f with SMTP id d9443c01a7336-2c2f0731235mr51481905ad.2.1781208877182; Thu, 11 Jun 2026 13:14:37 -0700 (PDT) Received: from [127.0.1.1] ([2a12:a305:4::302d]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c164f875casm288730475ad.22.2026.06.11.13.14.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Jun 2026 13:14:36 -0700 (PDT) From: Guodong Xu Date: Thu, 11 Jun 2026 16:12:48 -0400 Subject: [PATCH v4 11/16] riscv: dts: spacemit: k1: Add Zic64b ISA extension 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 Message-Id: <20260611-rva23u64-hwprobe-v2-v4-11-3f01a2449488@gmail.com> References: <20260611-rva23u64-hwprobe-v2-v4-0-3f01a2449488@gmail.com> In-Reply-To: <20260611-rva23u64-hwprobe-v2-v4-0-3f01a2449488@gmail.com> To: Jonathan Corbet , Shuah Khan , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Zong Li , Deepak Gupta , Anup Patel , Atish Patra , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Yixun Lan , Chen Wang , Inochi Amaoto Cc: linux-doc@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, Paul Walmsley , Conor Dooley , devicetree@vger.kernel.org, spacemit@lists.linux.dev, sophgo@lists.linux.dev, linux-kselftest@vger.kernel.org, Palmer Dabbelt , Guodong Xu X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=10090; i=docular.xu@gmail.com; h=from:subject:message-id; bh=LPciPSKOjjfc8R66BCMwvv1Iz71YeE8uUZh7vlO7CUQ=; b=owGbwMvMwCXWtEl1Z3CGpCDjabUkhixtsUNluzujmpmLJZuDbA97zE/zm1uiy5fLmrbfw+bLu dVTWk53lLIwiHExyIopshw+2pK99ZVPtO9zzh8wc1iZQIYwcHEKwETOMzAyzO0WfWatZuYW7aP0 gOOw2rSsx03W9u+zovlvb1VtCsnbwMjwZonnjIC8w22CfaaCEe5OQfMV54SwFD4RS331v2ZTx2w 2AA== X-Developer-Key: i=docular.xu@gmail.com; a=openpgp; fpr=90B1DC3DF0BD10FD1227BD6344F254AF42F143EE The K1 X60 cores have 64-byte cache blocks, described by their cbom/cbop/cboz-block-size of 64, so they implement Zic64b. Declare it in each core's riscv,isa-extensions and in the deprecated riscv,isa string. Signed-off-by: Guodong Xu --- v4: No change. v3: New patch. --- arch/riscv/boot/dts/spacemit/k1.dtsi | 80 ++++++++++++++++++--------------= ---- 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/arch/riscv/boot/dts/spacemit/k1.dtsi b/arch/riscv/boot/dts/spa= cemit/k1.dtsi index f0bad6855c970..e6fc684ad3898 100644 --- a/arch/riscv/boot/dts/spacemit/k1.dtsi +++ b/arch/riscv/boot/dts/spacemit/k1.dtsi @@ -54,12 +54,12 @@ cpu_0: cpu@0 { compatible =3D "spacemit,x60", "riscv"; device_type =3D "cpu"; reg =3D <0>; - riscv,isa =3D "rv64imafdcbv_zicbom_zicbop_zicboz_zicntr_zicond_zicsr_zi= fencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_sstc_sv= inval_svnapot_svpbmt"; + riscv,isa =3D "rv64imafdcbv_zic64b_zicbom_zicbop_zicboz_zicntr_zicond_z= icsr_zifencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_= sstc_svinval_svnapot_svpbmt"; riscv,isa-base =3D "rv64i"; - riscv,isa-extensions =3D "i", "m", "a", "f", "d", "c", "b", "v", "zicbo= m", - "zicbop", "zicboz", "zicntr", "zicond", "zicsr", - "zifencei", "zihintpause", "zihpm", "zfh", "zba", - "zbb", "zbc", "zbs", "zkt", "zvfh", "zvkt", + riscv,isa-extensions =3D "i", "m", "a", "f", "d", "c", "b", "v", "zic64= b", + "zicbom", "zicbop", "zicboz", "zicntr", "zicond", + "zicsr", "zifencei", "zihintpause", "zihpm", "zfh", + "zba", "zbb", "zbc", "zbs", "zkt", "zvfh", "zvkt", "sscofpmf", "sstc", "svinval", "svnapot", "svpbmt"; riscv,cbom-block-size =3D <64>; riscv,cbop-block-size =3D <64>; @@ -84,12 +84,12 @@ cpu_1: cpu@1 { compatible =3D "spacemit,x60", "riscv"; device_type =3D "cpu"; reg =3D <1>; - riscv,isa =3D "rv64imafdcbv_zicbom_zicbop_zicboz_zicntr_zicond_zicsr_zi= fencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_sstc_sv= inval_svnapot_svpbmt"; + riscv,isa =3D "rv64imafdcbv_zic64b_zicbom_zicbop_zicboz_zicntr_zicond_z= icsr_zifencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_= sstc_svinval_svnapot_svpbmt"; riscv,isa-base =3D "rv64i"; - riscv,isa-extensions =3D "i", "m", "a", "f", "d", "c", "b", "v", "zicbo= m", - "zicbop", "zicboz", "zicntr", "zicond", "zicsr", - "zifencei", "zihintpause", "zihpm", "zfh", "zba", - "zbb", "zbc", "zbs", "zkt", "zvfh", "zvkt", + riscv,isa-extensions =3D "i", "m", "a", "f", "d", "c", "b", "v", "zic64= b", + "zicbom", "zicbop", "zicboz", "zicntr", "zicond", + "zicsr", "zifencei", "zihintpause", "zihpm", "zfh", + "zba", "zbb", "zbc", "zbs", "zkt", "zvfh", "zvkt", "sscofpmf", "sstc", "svinval", "svnapot", "svpbmt"; riscv,cbom-block-size =3D <64>; riscv,cbop-block-size =3D <64>; @@ -114,12 +114,12 @@ cpu_2: cpu@2 { compatible =3D "spacemit,x60", "riscv"; device_type =3D "cpu"; reg =3D <2>; - riscv,isa =3D "rv64imafdcbv_zicbom_zicbop_zicboz_zicntr_zicond_zicsr_zi= fencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_sstc_sv= inval_svnapot_svpbmt"; + riscv,isa =3D "rv64imafdcbv_zic64b_zicbom_zicbop_zicboz_zicntr_zicond_z= icsr_zifencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_= sstc_svinval_svnapot_svpbmt"; riscv,isa-base =3D "rv64i"; - riscv,isa-extensions =3D "i", "m", "a", "f", "d", "c", "b", "v", "zicbo= m", - "zicbop", "zicboz", "zicntr", "zicond", "zicsr", - "zifencei", "zihintpause", "zihpm", "zfh", "zba", - "zbb", "zbc", "zbs", "zkt", "zvfh", "zvkt", + riscv,isa-extensions =3D "i", "m", "a", "f", "d", "c", "b", "v", "zic64= b", + "zicbom", "zicbop", "zicboz", "zicntr", "zicond", + "zicsr", "zifencei", "zihintpause", "zihpm", "zfh", + "zba", "zbb", "zbc", "zbs", "zkt", "zvfh", "zvkt", "sscofpmf", "sstc", "svinval", "svnapot", "svpbmt"; riscv,cbom-block-size =3D <64>; riscv,cbop-block-size =3D <64>; @@ -144,12 +144,12 @@ cpu_3: cpu@3 { compatible =3D "spacemit,x60", "riscv"; device_type =3D "cpu"; reg =3D <3>; - riscv,isa =3D "rv64imafdcbv_zicbom_zicbop_zicboz_zicntr_zicond_zicsr_zi= fencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_sstc_sv= inval_svnapot_svpbmt"; + riscv,isa =3D "rv64imafdcbv_zic64b_zicbom_zicbop_zicboz_zicntr_zicond_z= icsr_zifencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_= sstc_svinval_svnapot_svpbmt"; riscv,isa-base =3D "rv64i"; - riscv,isa-extensions =3D "i", "m", "a", "f", "d", "c", "b", "v", "zicbo= m", - "zicbop", "zicboz", "zicntr", "zicond", "zicsr", - "zifencei", "zihintpause", "zihpm", "zfh", "zba", - "zbb", "zbc", "zbs", "zkt", "zvfh", "zvkt", + riscv,isa-extensions =3D "i", "m", "a", "f", "d", "c", "b", "v", "zic64= b", + "zicbom", "zicbop", "zicboz", "zicntr", "zicond", + "zicsr", "zifencei", "zihintpause", "zihpm", "zfh", + "zba", "zbb", "zbc", "zbs", "zkt", "zvfh", "zvkt", "sscofpmf", "sstc", "svinval", "svnapot", "svpbmt"; riscv,cbom-block-size =3D <64>; riscv,cbop-block-size =3D <64>; @@ -174,12 +174,12 @@ cpu_4: cpu@4 { compatible =3D "spacemit,x60", "riscv"; device_type =3D "cpu"; reg =3D <4>; - riscv,isa =3D "rv64imafdcbv_zicbom_zicbop_zicboz_zicntr_zicond_zicsr_zi= fencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_sstc_sv= inval_svnapot_svpbmt"; + riscv,isa =3D "rv64imafdcbv_zic64b_zicbom_zicbop_zicboz_zicntr_zicond_z= icsr_zifencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_= sstc_svinval_svnapot_svpbmt"; riscv,isa-base =3D "rv64i"; - riscv,isa-extensions =3D "i", "m", "a", "f", "d", "c", "b", "v", "zicbo= m", - "zicbop", "zicboz", "zicntr", "zicond", "zicsr", - "zifencei", "zihintpause", "zihpm", "zfh", "zba", - "zbb", "zbc", "zbs", "zkt", "zvfh", "zvkt", + riscv,isa-extensions =3D "i", "m", "a", "f", "d", "c", "b", "v", "zic64= b", + "zicbom", "zicbop", "zicboz", "zicntr", "zicond", + "zicsr", "zifencei", "zihintpause", "zihpm", "zfh", + "zba", "zbb", "zbc", "zbs", "zkt", "zvfh", "zvkt", "sscofpmf", "sstc", "svinval", "svnapot", "svpbmt"; riscv,cbom-block-size =3D <64>; riscv,cbop-block-size =3D <64>; @@ -204,12 +204,12 @@ cpu_5: cpu@5 { compatible =3D "spacemit,x60", "riscv"; device_type =3D "cpu"; reg =3D <5>; - riscv,isa =3D "rv64imafdcbv_zicbom_zicbop_zicboz_zicntr_zicond_zicsr_zi= fencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_sstc_sv= inval_svnapot_svpbmt"; + riscv,isa =3D "rv64imafdcbv_zic64b_zicbom_zicbop_zicboz_zicntr_zicond_z= icsr_zifencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_= sstc_svinval_svnapot_svpbmt"; riscv,isa-base =3D "rv64i"; - riscv,isa-extensions =3D "i", "m", "a", "f", "d", "c", "b", "v", "zicbo= m", - "zicbop", "zicboz", "zicntr", "zicond", "zicsr", - "zifencei", "zihintpause", "zihpm", "zfh", "zba", - "zbb", "zbc", "zbs", "zkt", "zvfh", "zvkt", + riscv,isa-extensions =3D "i", "m", "a", "f", "d", "c", "b", "v", "zic64= b", + "zicbom", "zicbop", "zicboz", "zicntr", "zicond", + "zicsr", "zifencei", "zihintpause", "zihpm", "zfh", + "zba", "zbb", "zbc", "zbs", "zkt", "zvfh", "zvkt", "sscofpmf", "sstc", "svinval", "svnapot", "svpbmt"; riscv,cbom-block-size =3D <64>; riscv,cbop-block-size =3D <64>; @@ -234,12 +234,12 @@ cpu_6: cpu@6 { compatible =3D "spacemit,x60", "riscv"; device_type =3D "cpu"; reg =3D <6>; - riscv,isa =3D "rv64imafdcbv_zicbom_zicbop_zicboz_zicntr_zicond_zicsr_zi= fencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_sstc_sv= inval_svnapot_svpbmt"; + riscv,isa =3D "rv64imafdcbv_zic64b_zicbom_zicbop_zicboz_zicntr_zicond_z= icsr_zifencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_= sstc_svinval_svnapot_svpbmt"; riscv,isa-base =3D "rv64i"; - riscv,isa-extensions =3D "i", "m", "a", "f", "d", "c", "b", "v", "zicbo= m", - "zicbop", "zicboz", "zicntr", "zicond", "zicsr", - "zifencei", "zihintpause", "zihpm", "zfh", "zba", - "zbb", "zbc", "zbs", "zkt", "zvfh", "zvkt", + riscv,isa-extensions =3D "i", "m", "a", "f", "d", "c", "b", "v", "zic64= b", + "zicbom", "zicbop", "zicboz", "zicntr", "zicond", + "zicsr", "zifencei", "zihintpause", "zihpm", "zfh", + "zba", "zbb", "zbc", "zbs", "zkt", "zvfh", "zvkt", "sscofpmf", "sstc", "svinval", "svnapot", "svpbmt"; riscv,cbom-block-size =3D <64>; riscv,cbop-block-size =3D <64>; @@ -264,12 +264,12 @@ cpu_7: cpu@7 { compatible =3D "spacemit,x60", "riscv"; device_type =3D "cpu"; reg =3D <7>; - riscv,isa =3D "rv64imafdcbv_zicbom_zicbop_zicboz_zicntr_zicond_zicsr_zi= fencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_sstc_sv= inval_svnapot_svpbmt"; + riscv,isa =3D "rv64imafdcbv_zic64b_zicbom_zicbop_zicboz_zicntr_zicond_z= icsr_zifencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_= sstc_svinval_svnapot_svpbmt"; riscv,isa-base =3D "rv64i"; - riscv,isa-extensions =3D "i", "m", "a", "f", "d", "c", "b", "v", "zicbo= m", - "zicbop", "zicboz", "zicntr", "zicond", "zicsr", - "zifencei", "zihintpause", "zihpm", "zfh", "zba", - "zbb", "zbc", "zbs", "zkt", "zvfh", "zvkt", + riscv,isa-extensions =3D "i", "m", "a", "f", "d", "c", "b", "v", "zic64= b", + "zicbom", "zicbop", "zicboz", "zicntr", "zicond", + "zicsr", "zifencei", "zihintpause", "zihpm", "zfh", + "zba", "zbb", "zbc", "zbs", "zkt", "zvfh", "zvkt", "sscofpmf", "sstc", "svinval", "svnapot", "svpbmt"; riscv,cbom-block-size =3D <64>; riscv,cbop-block-size =3D <64>; --=20 2.43.0 From nobody Fri Jun 12 23:57:43 2026 Received: from mail-pl1-f175.google.com (mail-pl1-f175.google.com [209.85.214.175]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2EA8539A073 for ; Thu, 11 Jun 2026 20:14:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781208888; cv=none; b=EVbMhzxBL+Jirw/+YLqys/t5tuJH69TnT1EC2XdORQLT0hYDqGK0s/Z52NgomHASnJJmaNLB/PMvRuJTKcexRmHKGzH67eFdN00I65kASn28OqiK0Mu5YLz70geWX5LGkMC2VFDEmSFqeB1pgi6gWVW2FC5EZ7LIYY4AKtrhgD4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781208888; c=relaxed/simple; bh=e0n4Kew3KJiH7q4iX52gpyX9JAhyZfYP+kX31XockuI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=j3XVcaR/SrWX5wVNVX5JG1yowWx5Vb1FjgJd8PxLjMEkLbCa1+wXfq6+qrMBnqojyFKEpyEbkDndqnVgDsT9JFEkKdMHul1EimvRcl/gn8AF+qKHCu1YMOZidhC7Uz6DCIzzv6/k+vp0uz72zSPsmePVphS0PvqFnKRtbtEkDo0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=l1DHm3Iu; arc=none smtp.client-ip=209.85.214.175 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="l1DHm3Iu" Received: by mail-pl1-f175.google.com with SMTP id d9443c01a7336-2c0c35980fdso2246225ad.2 for ; Thu, 11 Jun 2026 13:14:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781208885; x=1781813685; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=pQPaDs7uB5pYxgJxz/Gbo/xGRUToQ7J9cge40D5BMIM=; b=l1DHm3IuyY5sRQ+lWzBjPpTQAdUCbFQtJ/vd6bBMiOURrgU/taxF+se0Dt3618+HNs 0wlyKfPAQlxzMK/H/dTTr+oAWQHILxkmv27IQA08tKdIwJ3hmR9ulyKhsv/BFGbdiEZT yDh9IhiyCZdIbWi2W6fErZZqhEmxlecW62UijaLH5WGuLo30eMOnR1f55ybt8L341dV8 5ynzU3nFRxqDDLxN1oczMovAH6XRB3/OJ3w7JA/dK0DW2ViictDI+gPPC+e80C+iOvte w9dt/40e5mbdtlTj2ZTrZmcjzoLcdE6BKK2iM/ND5+7M+fEUnv6D4CUVWCXn/HE2Nuvx Pq1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781208885; x=1781813685; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=pQPaDs7uB5pYxgJxz/Gbo/xGRUToQ7J9cge40D5BMIM=; b=XU27Yklh6z9Iw1rp5eGWCvYCWICJq4ov7dOssYOtFGYShea5/9R9/HN9pfJmcvf9vI T+vPhzcT/KHhc3gA8sSsL0BY4dgcahLyAYfTak7zjQOCdLQ5wccsckghE0FLcLzbZ4vm ldiileNT4fAriTXUFYvzLujgPQXd4/bgAu/8R3Adb7BjMEB/PwvWEc07XqcwuLA+LrgS w46QEuQ0VezZBtGUpLki/w8rnaOnSHUXAi87OHvRoqMQzdyZqEaAY3BGd6H+/ypp9eWX ktfdp093wUN2lBaIv9r4u2+R2M0H7y0z330sIyZjkI1Y4fPY699SY4PUFxyY/4XgO+jW OAMQ== X-Forwarded-Encrypted: i=1; AFNElJ9wQttt0l7983oogCFCr8AyOHQsj21dD5DA3nhvA3/Pl6BwoaVOVsPYkYj79O7rVF8cpm5RK2OFggSgIhk=@vger.kernel.org X-Gm-Message-State: AOJu0YwDREk2fcKrdv3wg78GxPYx+ZT1Fccr3RN9JS5hCLP5YYX72dmC v60mmB2qg0JpE0yJu4NBGKLa1iYri5Gu3op/5h0nsKO96cEqVZ1/g0ZX X-Gm-Gg: Acq92OGJ44L3jw1TZNLJP8Ghg6iWMSkU6x4/gW/XUkk3SToWLW69lR43q3Zntv/fOkt ITABhaAQDtJRGJVIegLYZUXDaWViG/yxA5G+K2J3JUq2UFhTRSpWZn0Fqn5ZD3+Napcu6ebe+X7 gQZhnF4VpgkIJIUnXZBuE85A4KxnpXWGaAmrCZY+4wohVk1xrmpypg04GyRYqMLepwLPztExYbe Z9jBnl6Qb/7tmEwYPImbYjc/HB0TG8q2d5CzNUbS7PjxvlQ5XxKStkSNXU7E4Wwx/j87IpVRTSC 6AprDUFyiUM6VzaGDMb8N7QY+1G4WE5YyWJuzmynvKNe/UYUQmhgpycSoNnCD1gG9G1OvxvC7Cb fy/6f/eD7XBA18b7xlwOmQ6mmXz2gcwy60iG8uI/Xms95X6MF9vtCpkVot2IcYOUN1l0FqHvQRQ == X-Received: by 2002:a17:903:2c0c:b0:2c1:98b7:ecf3 with SMTP id d9443c01a7336-2c2f1eba128mr47043605ad.23.1781208885467; Thu, 11 Jun 2026 13:14:45 -0700 (PDT) Received: from [127.0.1.1] ([2a12:a305:4::302d]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c164f875casm288730475ad.22.2026.06.11.13.14.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Jun 2026 13:14:45 -0700 (PDT) From: Guodong Xu Date: Thu, 11 Jun 2026 16:12:49 -0400 Subject: [PATCH v4 12/16] riscv: dts: sophgo: sg2044: Add Zic64b ISA extension 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 Message-Id: <20260611-rva23u64-hwprobe-v2-v4-12-3f01a2449488@gmail.com> References: <20260611-rva23u64-hwprobe-v2-v4-0-3f01a2449488@gmail.com> In-Reply-To: <20260611-rva23u64-hwprobe-v2-v4-0-3f01a2449488@gmail.com> To: Jonathan Corbet , Shuah Khan , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Zong Li , Deepak Gupta , Anup Patel , Atish Patra , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Yixun Lan , Chen Wang , Inochi Amaoto Cc: linux-doc@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, Paul Walmsley , Conor Dooley , devicetree@vger.kernel.org, spacemit@lists.linux.dev, sophgo@lists.linux.dev, linux-kselftest@vger.kernel.org, Palmer Dabbelt , Guodong Xu X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=28751; i=docular.xu@gmail.com; h=from:subject:message-id; bh=e0n4Kew3KJiH7q4iX52gpyX9JAhyZfYP+kX31XockuI=; b=owGbwMvMwCXWtEl1Z3CGpCDjabUkhixtscNXvdyixZZtrmc69PHmNfPdBhfe+u5L9LbdvtPOw q9tip1ORykLgxgXg6yYIsvhoy3ZW1/5RPs+5/wBM4eVCWQIAxenAExkWhojwyzRiukf0n//ufbP bLZ0jFLgzsdnzf6frTi5XvuLR/TJoCcM/6tMu/68bC02TGUx+iSolhxU8Lm3N3P1DvfGaY6zLi0 o5AYA X-Developer-Key: i=docular.xu@gmail.com; a=openpgp; fpr=90B1DC3DF0BD10FD1227BD6344F254AF42F143EE The SG2044 cores have 64-byte cache blocks, described by their cbom/cbop/cboz-block-size of 64, so they implement Zic64b. Declare it in each core's riscv,isa-extensions. Signed-off-by: Guodong Xu Acked-by: Inochi Amaoto --- v4: Add Inochi Amaoto's Acked-by. v3: New patch. --- arch/riscv/boot/dts/sophgo/sg2044-cpus.dtsi | 128 ++++++++++++++----------= ---- 1 file changed, 64 insertions(+), 64 deletions(-) diff --git a/arch/riscv/boot/dts/sophgo/sg2044-cpus.dtsi b/arch/riscv/boot/= dts/sophgo/sg2044-cpus.dtsi index 3135409c21492..2ac4a41bbc3a7 100644 --- a/arch/riscv/boot/dts/sophgo/sg2044-cpus.dtsi +++ b/arch/riscv/boot/dts/sophgo/sg2044-cpus.dtsi @@ -31,7 +31,7 @@ cpu0: cpu@0 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -67,7 +67,7 @@ cpu1: cpu@1 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -103,7 +103,7 @@ cpu2: cpu@2 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -139,7 +139,7 @@ cpu3: cpu@3 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -175,7 +175,7 @@ cpu4: cpu@4 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -211,7 +211,7 @@ cpu5: cpu@5 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -247,7 +247,7 @@ cpu6: cpu@6 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -283,7 +283,7 @@ cpu7: cpu@7 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -319,7 +319,7 @@ cpu8: cpu@8 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -355,7 +355,7 @@ cpu9: cpu@9 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -391,7 +391,7 @@ cpu10: cpu@10 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -427,7 +427,7 @@ cpu11: cpu@11 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -463,7 +463,7 @@ cpu12: cpu@12 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -499,7 +499,7 @@ cpu13: cpu@13 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -535,7 +535,7 @@ cpu14: cpu@14 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -571,7 +571,7 @@ cpu15: cpu@15 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -607,7 +607,7 @@ cpu16: cpu@16 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -643,7 +643,7 @@ cpu17: cpu@17 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -679,7 +679,7 @@ cpu18: cpu@18 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -715,7 +715,7 @@ cpu19: cpu@19 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -751,7 +751,7 @@ cpu20: cpu@20 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -787,7 +787,7 @@ cpu21: cpu@21 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -823,7 +823,7 @@ cpu22: cpu@22 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -859,7 +859,7 @@ cpu23: cpu@23 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -895,7 +895,7 @@ cpu24: cpu@24 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -931,7 +931,7 @@ cpu25: cpu@25 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -967,7 +967,7 @@ cpu26: cpu@26 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -1003,7 +1003,7 @@ cpu27: cpu@27 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -1039,7 +1039,7 @@ cpu28: cpu@28 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -1075,7 +1075,7 @@ cpu29: cpu@29 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -1111,7 +1111,7 @@ cpu30: cpu@30 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -1147,7 +1147,7 @@ cpu31: cpu@31 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -1183,7 +1183,7 @@ cpu32: cpu@32 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -1219,7 +1219,7 @@ cpu33: cpu@33 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -1255,7 +1255,7 @@ cpu34: cpu@34 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -1291,7 +1291,7 @@ cpu35: cpu@35 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -1327,7 +1327,7 @@ cpu36: cpu@36 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -1363,7 +1363,7 @@ cpu37: cpu@37 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -1399,7 +1399,7 @@ cpu38: cpu@38 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -1435,7 +1435,7 @@ cpu39: cpu@39 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -1471,7 +1471,7 @@ cpu40: cpu@40 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -1507,7 +1507,7 @@ cpu41: cpu@41 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -1543,7 +1543,7 @@ cpu42: cpu@42 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -1579,7 +1579,7 @@ cpu43: cpu@43 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -1615,7 +1615,7 @@ cpu44: cpu@44 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -1651,7 +1651,7 @@ cpu45: cpu@45 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -1687,7 +1687,7 @@ cpu46: cpu@46 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -1723,7 +1723,7 @@ cpu47: cpu@47 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -1759,7 +1759,7 @@ cpu48: cpu@48 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -1795,7 +1795,7 @@ cpu49: cpu@49 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -1831,7 +1831,7 @@ cpu50: cpu@50 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -1867,7 +1867,7 @@ cpu51: cpu@51 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -1903,7 +1903,7 @@ cpu52: cpu@52 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -1939,7 +1939,7 @@ cpu53: cpu@53 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -1975,7 +1975,7 @@ cpu54: cpu@54 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -2011,7 +2011,7 @@ cpu55: cpu@55 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -2047,7 +2047,7 @@ cpu56: cpu@56 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -2083,7 +2083,7 @@ cpu57: cpu@57 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -2119,7 +2119,7 @@ cpu58: cpu@58 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -2155,7 +2155,7 @@ cpu59: cpu@59 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -2191,7 +2191,7 @@ cpu60: cpu@60 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -2227,7 +2227,7 @@ cpu61: cpu@61 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -2263,7 +2263,7 @@ cpu62: cpu@62 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", @@ -2299,7 +2299,7 @@ cpu63: cpu@63 { "svinval", "svnapot", "svpbmt", "zawrs", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", - "zfa", "zfbfmin", "zfh", "zfhmin", + "zfa", "zfbfmin", "zfh", "zfhmin", "zic64b", "zicbom", "zicbop", "zicboz", "ziccrse", "zicntr", "zicond","zicsr", "zifencei", "zihintntl", "zihintpause", "zihpm", --=20 2.43.0 From nobody Fri Jun 12 23:57:43 2026 Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CDB1839A067 for ; Thu, 11 Jun 2026 20:14:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781208896; cv=none; b=IS8d09CpY+Fq8FYIpvnmt8k/MRriZQS1EPYOTodHy/vU7vx3aSKW2ljO5GjJaquNXekU3txeZcb1E12GG6Pd5I1IrdTh8DrasdYki3KgFBnn/QkRFu6brlRyEK5bgs9jKI2SVEzPuxRvh0kU+JEvGCfd/JbYm5XaHxGcYCWPgyc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781208896; c=relaxed/simple; bh=KC+KeP2JowBZu3gamRptd0wuDLOAfNANiP0q+wCsnA8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=EjP1RmQOeQDF4qVEaLw8fiIRr617y9VmN6CUnUOIYX0qjnoJmvXXULUqspDMUqKofagFPa9HCrI+HtXzWUNsK3X7ssWM+HgA80VrbIZN8WInqhQXeAhiLlkbbYerStm0HBoHiwPlGQbWqqCdvCzBFvmBFkJhsaHHxtn5HlsP9Jk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=R25zVrp1; arc=none smtp.client-ip=209.85.214.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="R25zVrp1" Received: by mail-pl1-f172.google.com with SMTP id d9443c01a7336-2bf18c30bb2so2485315ad.0 for ; Thu, 11 Jun 2026 13:14:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781208894; x=1781813694; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=1EvRjKx0eOYE4LeiPY86wRBYHx+SwyyhRAbMXyCGdk8=; b=R25zVrp17BCEqRvVoxi8QbpyhsuYRx2YZ5r//Ak6kUxL8XdBJ89lQ2egfQBazBcsZx NYwe7G6qlbQ0Dqz5qIPzI384UCHCMGgEpC+KJlAC/R3Xj8TIMME2ogeNhavkjQc5ReAy iStnfY/NuPdbhI02oJIey+HkAavNudVe3hwMSFEhpfDuZXDjH06e+9aWhuTXMDQ27U0d vhsGGSI23PRlsWFuQxmcCI9XmCORFP/+rc1FVKeWI7sWDi8WrKX7sn2nBR3xuRj0ZOOg f42hjcv9cxahcgR9XXgOYOsZcnwe6+Fjk82B2QY6gY+NoRyNEqqpDxADygBntVRSExj4 4OIw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781208894; x=1781813694; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=1EvRjKx0eOYE4LeiPY86wRBYHx+SwyyhRAbMXyCGdk8=; b=T9v12YfWUe7kJzq6auc1HAMIvI58+hOvQDg/tzZ1zcQjYT8KqHWN+v5Jg7upljChZL 8ijXW7jvBtV41tItQYbk0mdTC7utNquf5fH6ZPNg9Ribe2tzSgGv8s/gTJCI06R5b6xc NZ1U6ZRygkgvbJF2eab4xhYbPN3CjqhZQT2KOYa71JqA93sMPkUv6bZP2Ww3EekcrGot dv/0Lq51ofP88H9d+xeoECWjzo+6DGrzI3xrTG7avd+e+y+VW4RuBGn5+W3rBqI13frU 0Y/JwZkNLezaE6inLj+psKGbJ7PXNj56VpdQFS6pZSWjLoz3H3gZ20zvt1clKg5owhfM n3jA== X-Forwarded-Encrypted: i=1; AFNElJ9DAOLcdisAzFrG4Cp/PAzwBQd9OHZCtzlpk0MAjXPdiA/QPtaAoDiJ6NWvoHPdNFsytRy70Mpl3NkDSsU=@vger.kernel.org X-Gm-Message-State: AOJu0Yzx2wq5+XNMiX2KuaX8Q6aZfvPp8jGMnGtEez1D8oVmUE1QzXdW xJD9CWtOhZ1DOGvXB5LjN6hmGyWiZAkGKA+UPrRbrjLNIknPT0zuaxF8 X-Gm-Gg: Acq92OHkQPMI/UsMdo84AYXnUMG8aVToEkyCHXqqizoNW5Pwhj8Pvo0JuXbcrDwcbSI +nbRF/l54dMZSu2EzgzvWwuTBrWVI467LZw7JXwQJ3QjN8Dkkr7VbytKvnqHXmCTNi9JC8pjhBa Ql5ZLzwveBrY+9mjMu2dijIiN6uYjg72acyg4CAke09fN9YH3DHQbLKLjLMtO5sBB0DxmTSpoiM ep1DeQK+iNrLx4U56ZPDqrO4wE6z5R8Wjw4PMMbmYrBFjh5EzgLRknfxli3xy1d7qpG1diBoCKT DJ/a+6X/gH7dsTTVKdrimm5IjtJfRThYyAL63VD1mDSHNLVI8nfx/gDDJxnI52WXiLPaUxQdj8j 0h23G72tQpnVPi+Wrq3NEQZjj1xeZUVwjdoyzQRxyJx+QDsr7AM6CGGTkPurEW19SvBixehKYVg == X-Received: by 2002:a17:902:e78b:b0:2bd:2de3:5181 with SMTP id d9443c01a7336-2c2f092ad9dmr52178155ad.9.1781208894311; Thu, 11 Jun 2026 13:14:54 -0700 (PDT) Received: from [127.0.1.1] ([2a12:a305:4::302d]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c164f875casm288730475ad.22.2026.06.11.13.14.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Jun 2026 13:14:54 -0700 (PDT) From: Guodong Xu Date: Thu, 11 Jun 2026 16:12:50 -0400 Subject: [PATCH v4 13/16] riscv: Add a getter for user PMLEN support 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 Message-Id: <20260611-rva23u64-hwprobe-v2-v4-13-3f01a2449488@gmail.com> References: <20260611-rva23u64-hwprobe-v2-v4-0-3f01a2449488@gmail.com> In-Reply-To: <20260611-rva23u64-hwprobe-v2-v4-0-3f01a2449488@gmail.com> To: Jonathan Corbet , Shuah Khan , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Zong Li , Deepak Gupta , Anup Patel , Atish Patra , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Yixun Lan , Chen Wang , Inochi Amaoto Cc: linux-doc@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, Paul Walmsley , Conor Dooley , devicetree@vger.kernel.org, spacemit@lists.linux.dev, sophgo@lists.linux.dev, linux-kselftest@vger.kernel.org, Palmer Dabbelt , Guodong Xu , Andrew Jones X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=1927; i=docular.xu@gmail.com; h=from:subject:message-id; bh=aIDENBFY4Tz1hqn0W61EOefEH19QM+HExbm6+TQTBeI=; b=owGbwMvMwCXWtEl1Z3CGpCDjabUkhixtscO7srcsmPNoumimeNn3glenWfu11coN68yXLxOYZ /5uzdfPHaUsDGJcDLJiiiyHj7Zkb33lE+37nPMHzBxWJpAhDFycAjAReV6G/yUubxnmvF/+6MZL l8/SJWbvGHYUuhnHuDRumFUzqUhm+xuG/wlJztWWR8uzsl2qWjYVRu3cF/DJ6M3TP4cnOldPNJr zmx0A X-Developer-Key: i=docular.xu@gmail.com; a=openpgp; fpr=90B1DC3DF0BD10FD1227BD6344F254AF42F143EE From: Andrew Jones Querying whether a given user PMLEN is supported is needed for RVA23U64 base detection from outside arch/riscv/kernel/process.c. Add riscv_have_user_pmlen() to expose this. Link: https://lore.kernel.org/linux-riscv/rfuwa7a3ebe76udmnwyrssjy7shkkgxnt= vhwzn6oquysj4tuyp@xzvpylcfhz53/ Signed-off-by: Andrew Jones [Guodong: replace exported booleans with getter per Andrew's suggestion] Signed-off-by: Guodong Xu --- v4: No change. v3: No change. v2: Add a getter for user PMLEN. --- arch/riscv/include/asm/processor.h | 4 ++++ arch/riscv/kernel/process.c | 12 ++++++++++++ 2 files changed, 16 insertions(+) diff --git a/arch/riscv/include/asm/processor.h b/arch/riscv/include/asm/pr= ocessor.h index 812517b2cec13..febf51e127f70 100644 --- a/arch/riscv/include/asm/processor.h +++ b/arch/riscv/include/asm/processor.h @@ -214,6 +214,10 @@ long set_tagged_addr_ctrl(struct task_struct *task, un= signed long arg); long get_tagged_addr_ctrl(struct task_struct *task); #define SET_TAGGED_ADDR_CTRL(arg) set_tagged_addr_ctrl(current, arg) #define GET_TAGGED_ADDR_CTRL() get_tagged_addr_ctrl(current) + +bool riscv_have_user_pmlen(u8 len); +#else +static inline bool riscv_have_user_pmlen(u8 len) { return false; } #endif =20 #endif /* __ASSEMBLER__ */ diff --git a/arch/riscv/kernel/process.c b/arch/riscv/kernel/process.c index b2df7f72241a5..5d9cb108a6232 100644 --- a/arch/riscv/kernel/process.c +++ b/arch/riscv/kernel/process.c @@ -302,6 +302,18 @@ enum { static bool have_user_pmlen_7; static bool have_user_pmlen_16; =20 +bool riscv_have_user_pmlen(u8 len) +{ + switch (len) { + case PMLEN_7: + return have_user_pmlen_7; + case PMLEN_16: + return have_user_pmlen_16; + default: + return false; + } +} + /* * Control the relaxed ABI allowing tagged user addresses into the kernel. */ --=20 2.43.0 From nobody Fri Jun 12 23:57:43 2026 Received: from mail-pl1-f169.google.com (mail-pl1-f169.google.com [209.85.214.169]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5E49539A067 for ; Thu, 11 Jun 2026 20:15:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781208904; cv=none; b=etu7ZZm7E6rtTdLTD6cD4/JP3ggaJdD8eJobQ0T6T6ws9zik3QfZ89plCqwTXtd58vREMXo7r1CJa1ounk/YB1rZV6SdLcm+Bg01g6fjg8oRM+Kvv4izdDdHvtavsPZwV2zFfTU2bvZc0vfN5mVpwFRwqMV+SaXR/yr3ny52jSk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781208904; c=relaxed/simple; bh=+1K8HjOxwjdseUWVMoSCopnAlKQBo2zmzrHNNQ7s1Xo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=O9R5Qjc6iv7x2pcDSbRkxikDavxD2YSh0noyS6LYpd8tmbMW0o5s/+ueoNJXpy17+PC2WVebAzvJnmvNZNiBlndY2qDTvnsQAI1CMORCkAolvGP7gN3S7YtMciCkirUe08PnA1qXrdmmkncmq3D3/qaX8LafP0Nm4T2Qn9kAcQI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=UIKN8Igz; arc=none smtp.client-ip=209.85.214.169 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="UIKN8Igz" Received: by mail-pl1-f169.google.com with SMTP id d9443c01a7336-2bf77d4a4e2so7899325ad.1 for ; Thu, 11 Jun 2026 13:15:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781208903; x=1781813703; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=s33xvqRXSwYW5aY762y7SoN6oHtyGwi5/WijbbVgfN0=; b=UIKN8Igzugx4QyPIhdxYULIEA4ejOY0AIoucE6fOPO8+ehhYOOrjUbXMQzGDTxmpbI +kf4hegtJlzRHTbAqYJhvgpoiSGLGwZlEzOVulIt/si5oYGrXpz56eMAcqWeJKNekVq8 i3k4PKOb+GWjt4SNa3/A3Ft63gHMP6vACvdDELHYNdODQOjtrUztuX8w4bcylRNX5thw CpgfrVM8XiJOwUbwP9oQYsITvcZyhYDhId15MUxKYQSLHzFh74afzR9cY+C0/THdjPus Qg0xkqo7dkxetdAEH7JCTUVxRrppwAkpMavYZYy2O3nSAL6PAm2XeA+4eDVGHu55nbWj IWwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781208903; x=1781813703; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=s33xvqRXSwYW5aY762y7SoN6oHtyGwi5/WijbbVgfN0=; b=eE1StPicb0waHt6Wl2sP1LZxgsHdVVooODFkQRPXuDzcqgrt9K6ZLbWHHjPzguLayj 3Q6qTPw36C3Np94NRWm//82kF0DQcXE+Qea1X3fVHsWCKb2dkxHk/fe87Rj8jPdMdQB6 ltzjbwlSoe3QIB2oSTYUieqmOo675xuH7uWtOsAYDfMab4/Swtxp79KUydvXhy4xmsN3 ujO03XHPupw98Y0Xu97esxJQlkdFMBCdFmog7ikI2xB+ZV+/8SOa/85+X+NUm45gmbBW T+bh9AdG/T/x3zo89sL1gjzCHNDm1vHzEkkGmvwXZHOuRU1SDaWQGSUYCPudVqhWTCtg /POg== X-Forwarded-Encrypted: i=1; AFNElJ9xp5gBVjyP0OZwWZ5+8vzUGtnyrJ6reQEWVq979PcJ8cFh0dVXeqEmKuazB9JMqFEq8N0nAaGC2O8mHag=@vger.kernel.org X-Gm-Message-State: AOJu0YyZncPCp2HO8CcAPleRPjFdpYT1HFDCgiFTcMBrMzZyRZ9Pbzuu Ksbup1G1B5iVLJfAbhVLWMcaeAKTUEKhy7J334KcabYVRbq9ehgC0rAP X-Gm-Gg: Acq92OF5zRNj5OdIDyHGqfy/0lcykutFvI+0jxV3DMwhTEz7mpZGuqRDVY+ZHDKpZSd Tq9+1+tYcdR7efmQIsiwdjghQEIzx0Mp52cwGGE5NrgXCXOY/0Z51tjaCQA2erNnStOy/W1+SEN Ulcfo58S2zSV53hOzJLtA1Cum1MT/y7VEI/ySire8y2WQIJkIrj8krIZs8jwj/IiCCbj0fs5ZCA RkiHiL5Pd5ZN6ScuscRdxrlJZz0P9Om44i2YvEt3nZ7C2onbkUQyecfZLdY4Th4haC2I0tS/m+z iylDRRz3PRcm8dBdQqkiUCjJZ11hU6N8XfShwnqVhh+v1SMyS/YhKiahcY5AECMrQ9GPi+1/wnB /OFBUPYGg64p1/hQuadvWPcmmhv2vkpcQP8PF3XLHKF63HzvmvaY0SBxPCpM8z2lWnkgs3y2GbQ == X-Received: by 2002:a17:903:b84:b0:2bf:2d0:8877 with SMTP id d9443c01a7336-2c3fd41e1f5mr1612815ad.23.1781208902702; Thu, 11 Jun 2026 13:15:02 -0700 (PDT) Received: from [127.0.1.1] ([2a12:a305:4::302d]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c164f875casm288730475ad.22.2026.06.11.13.14.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Jun 2026 13:15:02 -0700 (PDT) From: Guodong Xu Date: Thu, 11 Jun 2026 16:12:51 -0400 Subject: [PATCH v4 14/16] riscv: cpufeature: Introduce ISA bases bitmap and rva23u64 detection 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 Message-Id: <20260611-rva23u64-hwprobe-v2-v4-14-3f01a2449488@gmail.com> References: <20260611-rva23u64-hwprobe-v2-v4-0-3f01a2449488@gmail.com> In-Reply-To: <20260611-rva23u64-hwprobe-v2-v4-0-3f01a2449488@gmail.com> To: Jonathan Corbet , Shuah Khan , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Zong Li , Deepak Gupta , Anup Patel , Atish Patra , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Yixun Lan , Chen Wang , Inochi Amaoto Cc: linux-doc@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, Paul Walmsley , Conor Dooley , devicetree@vger.kernel.org, spacemit@lists.linux.dev, sophgo@lists.linux.dev, linux-kselftest@vger.kernel.org, Palmer Dabbelt , Guodong Xu , Andrew Jones X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=6000; i=docular.xu@gmail.com; h=from:subject:message-id; bh=+1K8HjOxwjdseUWVMoSCopnAlKQBo2zmzrHNNQ7s1Xo=; b=owGbwMvMwCXWtEl1Z3CGpCDjabUkhixtscOzr95dJX3uK+uZfXLXn+jMKJk7SzTMIV37tC2f2 Lf795/86ihlYRDjYpAVU2Q5fLQle+srn2jf55w/YOawMoEMYeDiFICJhNUx/Hd0vOzi//H9M8EF LjaN3xmirjVFPz97kL+7JG6roNiP6FWMDP+mPoqw+blKN8VgScEVjn/PanjK+ZxN3gXO295ZyqW 8nRkA X-Developer-Key: i=docular.xu@gmail.com; a=openpgp; fpr=90B1DC3DF0BD10FD1227BD6344F254AF42F143EE Introduce a per-hart and host-wide bitmap of conformant ISA "bases" (named profile-class sets such as IMA and RVA23U64), computed at init time by riscv_init_isa_bases(). Register riscv_init_isa_bases() as a subsys_initcall so it executes after core_initcall(tagged_addr_init), which probes senvcfg.PMM and populates have_user_pmlen_*. Without that ordering, riscv_have_user_pmlen(7) would still return its default false and the RVA23U64 detection path would always bail. Consider this as the cache that subsequent consumers (hwprobe's RVA23U64 base behavior bit, /proc/cpuinfo's "isa bases" lines, etc.) can read without recomputing. System-wide consistency are ensured. Signed-off-by: Andrew Jones Signed-off-by: Guodong Xu --- v4: - In riscv_set_isa_base(), reorder those __setbit(RISCV_ISA_EXT_X,m) lines to make them conform to the order they appear in the RVA23 1.0 Profile. v3: - Add a blank line before the subsys_initcall() registration (Andrew). - Set the local ext_mask with __set_bit() and test the mandate set with !bitmap_subset() (Sashiko). - Require the Zic64b ISA extension in the RVA23U64 mask, instead of open-coded cache block-size check. (New, thoughts from Andrew) v2: - Implement riscv_init_isa_bases() that runs at system init time, after tagged_addr_init() populates have_user_pmlen_*. - Split RVA23S64 placeholder into a future patch. --- arch/riscv/include/asm/cpufeature.h | 14 ++++++ arch/riscv/kernel/cpufeature.c | 90 +++++++++++++++++++++++++++++++++= ++++ 2 files changed, 104 insertions(+) diff --git a/arch/riscv/include/asm/cpufeature.h b/arch/riscv/include/asm/c= pufeature.h index 739fcc84bf7b2..facc31b2960c6 100644 --- a/arch/riscv/include/asm/cpufeature.h +++ b/arch/riscv/include/asm/cpufeature.h @@ -25,10 +25,24 @@ struct riscv_cpuinfo { unsigned long mimpid; }; =20 +enum { + RISCV_ISA_BASE_IMA, + RISCV_ISA_BASE_RVA23U64, + RISCV_NR_ISA_BASES, +}; + +/** + * struct riscv_isainfo - per-hart ISA state + * @isa: bitmap of ISA extensions this hart implements + * @isa_bases: bitmap of profile bases this hart conforms to + */ struct riscv_isainfo { DECLARE_BITMAP(isa, RISCV_ISA_EXT_MAX); + DECLARE_BITMAP(isa_bases, RISCV_NR_ISA_BASES); }; =20 +extern unsigned long riscv_isa_bases[BITS_TO_LONGS(RISCV_NR_ISA_BASES)]; + DECLARE_PER_CPU(struct riscv_cpuinfo, riscv_cpuinfo); =20 extern const struct seq_operations cpuinfo_op; diff --git a/arch/riscv/kernel/cpufeature.c b/arch/riscv/kernel/cpufeature.c index 29dff41313e65..f398e522a71d2 100644 --- a/arch/riscv/kernel/cpufeature.c +++ b/arch/riscv/kernel/cpufeature.c @@ -41,6 +41,9 @@ unsigned long elf_hwcap __read_mostly; /* Host ISA bitmap */ static DECLARE_BITMAP(riscv_isa, RISCV_ISA_EXT_MAX) __read_mostly; =20 +/* Host ISA bases bitmap */ +DECLARE_BITMAP(riscv_isa_bases, RISCV_NR_ISA_BASES) __read_mostly; + /* Per-cpu ISA extensions. */ struct riscv_isainfo hart_isa[NR_CPUS]; =20 @@ -1322,3 +1325,90 @@ void __init_or_module riscv_cpufeature_patch_func(st= ruct alt_entry *begin, } } #endif + +/* + * Compute the set of profile bases (IMA, RVA23U64, ...) a hart + * conforms to, given its resolved ISA bitmap. + * + * If @isa_bitmap is NULL, the host ISA bitmap (the AND across all harts) = is + * used. + */ +static void riscv_set_isa_bases(unsigned long *bases, const unsigned long = *isa_bitmap) +{ + const unsigned long *isa =3D isa_bitmap ? isa_bitmap : riscv_isa; + DECLARE_BITMAP(ext_mask, RISCV_ISA_EXT_MAX) =3D { 0 }; + + /* IMA */ + __set_bit(RISCV_ISA_EXT_I, ext_mask); + __set_bit(RISCV_ISA_EXT_M, ext_mask); + __set_bit(RISCV_ISA_EXT_A, ext_mask); + + if (!bitmap_subset(ext_mask, isa, RISCV_ISA_EXT_MAX)) + return; + + set_bit(RISCV_ISA_BASE_IMA, bases); + + /* RVA23U64 */ + + /* Supm with PMLEN=3D7 */ + if (!riscv_have_user_pmlen(7)) + return; + + __set_bit(RISCV_ISA_EXT_F, ext_mask); + __set_bit(RISCV_ISA_EXT_D, ext_mask); + __set_bit(RISCV_ISA_EXT_C, ext_mask); + __set_bit(RISCV_ISA_EXT_B, ext_mask); + __set_bit(RISCV_ISA_EXT_ZICSR, ext_mask); + __set_bit(RISCV_ISA_EXT_ZICNTR, ext_mask); + __set_bit(RISCV_ISA_EXT_ZIHPM, ext_mask); + __set_bit(RISCV_ISA_EXT_ZICCIF, ext_mask); + __set_bit(RISCV_ISA_EXT_ZICCRSE, ext_mask); + __set_bit(RISCV_ISA_EXT_ZICCAMOA, ext_mask); + __set_bit(RISCV_ISA_EXT_ZICCLSM, ext_mask); + __set_bit(RISCV_ISA_EXT_ZA64RS, ext_mask); + __set_bit(RISCV_ISA_EXT_ZIHINTPAUSE, ext_mask); + __set_bit(RISCV_ISA_EXT_ZIC64B, ext_mask); + __set_bit(RISCV_ISA_EXT_ZICBOM, ext_mask); + __set_bit(RISCV_ISA_EXT_ZICBOP, ext_mask); + __set_bit(RISCV_ISA_EXT_ZICBOZ, ext_mask); + __set_bit(RISCV_ISA_EXT_ZFHMIN, ext_mask); + __set_bit(RISCV_ISA_EXT_ZKT, ext_mask); + __set_bit(RISCV_ISA_EXT_V, ext_mask); + __set_bit(RISCV_ISA_EXT_ZVFHMIN, ext_mask); + __set_bit(RISCV_ISA_EXT_ZVBB, ext_mask); + __set_bit(RISCV_ISA_EXT_ZVKT, ext_mask); + __set_bit(RISCV_ISA_EXT_ZIHINTNTL, ext_mask); + __set_bit(RISCV_ISA_EXT_ZICOND, ext_mask); + __set_bit(RISCV_ISA_EXT_ZIMOP, ext_mask); + __set_bit(RISCV_ISA_EXT_ZCMOP, ext_mask); + __set_bit(RISCV_ISA_EXT_ZCB, ext_mask); + __set_bit(RISCV_ISA_EXT_ZFA, ext_mask); + __set_bit(RISCV_ISA_EXT_ZAWRS, ext_mask); + __set_bit(RISCV_ISA_EXT_SUPM, ext_mask); + + if (!bitmap_subset(ext_mask, isa, RISCV_ISA_EXT_MAX)) + return; + + set_bit(RISCV_ISA_BASE_RVA23U64, bases); +} + +/* + * Populate the host ISA bases bitmap (riscv_isa_bases) and each + * hart's per-cpu isa_bases. + */ +static int __init riscv_init_isa_bases(void) +{ + int cpu; + + for_each_possible_cpu(cpu) + riscv_set_isa_bases(hart_isa[cpu].isa_bases, hart_isa[cpu].isa); + + riscv_set_isa_bases(riscv_isa_bases, NULL); + return 0; +} + +/* + * Registered as subsys_initcall so it runs after + * core_initcall(tagged_addr_init) populates have_user_pmlen_*. + */ +subsys_initcall(riscv_init_isa_bases); --=20 2.43.0 From nobody Fri Jun 12 23:57:43 2026 Received: from mail-pl1-f175.google.com (mail-pl1-f175.google.com [209.85.214.175]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F36C43A3E98 for ; Thu, 11 Jun 2026 20:15:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781208913; cv=none; b=pNfcwccNchhK0sOj7ea+S9Z0rm/SdwBipQBDYpJ88YPXnNIdTy8W0qaKv1NZ/M2uL/QHdY5EslALTEpgWSsmdawQLFIPL/gnT/tzSlpGYa45waoGoIY0CiThYrOeCDFeWFfgv8HVq1FxZXp3p1ole7vXeA7JAMj2Bob1n6ebBKI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781208913; c=relaxed/simple; bh=6uRwmcArNmpcYHUxfVzJ1KUTNe7nDEt3Iouczp4pFJc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=gYOIjaTs0qoF/PaLJYviSL9BcrT/XnVEXRThlGcB8MEqQ7jZDAfqSeEBXp2DX61GOm9Q1jte0ZWQ3S2nE/FO8z5D84EFWH0Z8+B0vqC+dHF0BAa35MZb7Yzb1MN23W4uj5HAORT5rlh9mtqKUE4vd4uXJ+xg0P0+lRgzIvpRKaw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=ZAEMLVPV; arc=none smtp.client-ip=209.85.214.175 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ZAEMLVPV" Received: by mail-pl1-f175.google.com with SMTP id d9443c01a7336-2c0bb4a94b8so2260325ad.2 for ; Thu, 11 Jun 2026 13:15:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781208911; x=1781813711; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=m265EV302HRo7Gs5HUB3XDJdYi9da1UqwB9AyAJDJRw=; b=ZAEMLVPV0UlbRsLIzNXCpfzYOHCBmWjUbVCtnKbKfqxxDwn8qqBrMmrXJVK7BoPQBk 0Tt5vB20QtCmRMKcUNrhM6rjwlD+4hSSNQBQXnG6cxNmZ78g6fH8Z1nbLTFlSBdFjdtv cfiC5srGizBLOJ4FMgJvls1gubOw/ZUzRbwDL1XJrQtbjsaNjqvv2YQ2gtvihVrdWfax smVgQKX9TOn1EBd0HUpUD9sOCxGlHBf76hwfeleg+izX3pFrjyCEczXCdRPlJbh55hcN mu5ITCrANYOZ1eWgkO/RoLqDl+9QjKGxZgbpqrbqhL6Tj6bCi9O0gSZ46OOJGNavm/V5 /jvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781208911; x=1781813711; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=m265EV302HRo7Gs5HUB3XDJdYi9da1UqwB9AyAJDJRw=; b=jQKSmBqB9Iz6ctSJv9E9fv4jn94xZVDgpsXZF1o1BtYtczZ5HR0x6qy6mRMOWeNWRi tTn/VTB2zuhHc6qSpkj2xheSIVjCEB4X/KdmCkNvN1CY16BLY6+1umBXIzuYOVO/xJpa 45Pia1IdESyPVTd3WN9cK4qNha014dmDTAeF2y1d0N2Ev75oBQhpscJfPQ3nP2D0E2kN LeJsabEKrI0okFkTMvqeT8h6wCNB6IhCQJimW84qn18zrDTSFQcON58T64Yjn2RAtCqT VtDQ4W19CAk0SdtDJounFZxt7YtP7ah0gpepzYiPKCgStFb2ysBJjS1UpgiNX27h7vQ2 eRtQ== X-Forwarded-Encrypted: i=1; AFNElJ/ulVtWHD0gUqTBevn6As/YVsA3zz6LvKMy4ydW7cRyamgeDgFa5ag0WNhAL+eVuDl6ulajh1e5MWhJExs=@vger.kernel.org X-Gm-Message-State: AOJu0Yxw2LUsdqXN2xKu/JGlp2csD5eZ4Tnj7LW4wcHbZH44I/90F1bG DxYLOso9JLmj+b3jNAOBhgZZ8VSRynuOUYl9FYgVYv9HWFYA81jemLsu X-Gm-Gg: Acq92OEYyxIHqg6i0L82uezpvEK/UBbsOE4P/qyGEX55qTH2UJDy+H/J8AlNPJLiqBX aLzS8btX6WodU8So4s/UXHhXSmHOVckg1nybxai6/FPPigZSN4MhlTau82Bn2bm0rttn9tiVBu/ M3TEihB1Jj/LdxUH+lhw2eXQvaX8+HKJ6ljI1VB3Tt93cfZ8zNDTsVNgV9vjpknUZCRDuq6JFxu oGMpNI6QMFr7DcryTsP/iwVQhb7qb9tr3GSvVRbk3p8UE04LGmjxgUh/WVszys1Bh0xXruYEIBd mdbjK+eyhXha6ejBdUyT+w/nkLDBrgpMa1/P2CaCNEvC/AwWnGEl+gD2VlR2Lm/0YzEWOMAGgXT pn2GoiQv6o05ZmPjBQAQ3/TryyVptZ0HTrQvRr6HDE33H4Mi4m7nrqU4riAhb9i04Iec9+qRK9g == X-Received: by 2002:a17:902:ebc6:b0:2c0:c940:dc1e with SMTP id d9443c01a7336-2c2f2c64838mr48032165ad.20.1781208911134; Thu, 11 Jun 2026 13:15:11 -0700 (PDT) Received: from [127.0.1.1] ([2a12:a305:4::302d]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c164f875casm288730475ad.22.2026.06.11.13.15.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Jun 2026 13:15:10 -0700 (PDT) From: Guodong Xu Date: Thu, 11 Jun 2026 16:12:52 -0400 Subject: [PATCH v4 15/16] riscv: cpu: Output isa bases lines in cpuinfo 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 Message-Id: <20260611-rva23u64-hwprobe-v2-v4-15-3f01a2449488@gmail.com> References: <20260611-rva23u64-hwprobe-v2-v4-0-3f01a2449488@gmail.com> In-Reply-To: <20260611-rva23u64-hwprobe-v2-v4-0-3f01a2449488@gmail.com> To: Jonathan Corbet , Shuah Khan , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Zong Li , Deepak Gupta , Anup Patel , Atish Patra , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Yixun Lan , Chen Wang , Inochi Amaoto Cc: linux-doc@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, Paul Walmsley , Conor Dooley , devicetree@vger.kernel.org, spacemit@lists.linux.dev, sophgo@lists.linux.dev, linux-kselftest@vger.kernel.org, Palmer Dabbelt , Guodong Xu , Andrew Jones X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=2817; i=docular.xu@gmail.com; h=from:subject:message-id; bh=6uRwmcArNmpcYHUxfVzJ1KUTNe7nDEt3Iouczp4pFJc=; b=owGbwMvMwCXWtEl1Z3CGpCDjabUkhixtscP8W/I7a44KTu7eNGUm/x/V9O7U55x9jvfX8IaI1 ssc8jHtKGVhEONikBVTZDl8tCV76yufaN/nnD9g5rAygQxh4OIUgIloMTD8T3wWVc9/4Hm9Y7yr eVbGq8q1TtuvXvyga7K41THqj6TMdYb/nt9nPzbeIJA1uXnNe+Wgo6cy8mddueVw6fH5C27BBTP 2cwAA X-Developer-Key: i=docular.xu@gmail.com; a=openpgp; fpr=90B1DC3DF0BD10FD1227BD6344F254AF42F143EE Output two new lines per processor in /proc/cpuinfo: isa bases : hart isa bases : These read directly from the cached riscv_isa_bases and hart_isa[cpu].isa_bases bitmaps populated at boot by riscv_init_isa_bases(). Example output on qemu booted with -cpu rva23s64,sv39=3Don,pmp=3Don (showing only the new lines plus their neighbors for context): processor : 0 hart : 4 isa bases : rv64ima rva23u64 isa : rv64imafdcbvh_zicbom_zicbop_... mmu : sv39 ... mimpid : 0x0 hart isa bases : rv64ima rva23u64 hart isa : rv64imafdcbvh_zicbom_zicbop_... Signed-off-by: Andrew Jones Signed-off-by: Guodong Xu --- v4: No change. v3: No change. v2: - Read from the cached riscv_isa_bases and hart_isa[cpu_id].isa_bases bitmaps populated by riscv_init_isa_bases() at init time. --- arch/riscv/kernel/cpu.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/arch/riscv/kernel/cpu.c b/arch/riscv/kernel/cpu.c index 3dbc8cc557dd1..31e2857dcdcf1 100644 --- a/arch/riscv/kernel/cpu.c +++ b/arch/riscv/kernel/cpu.c @@ -305,6 +305,26 @@ static void print_mmu(struct seq_file *f) seq_printf(f, "mmu\t\t: %s\n", sv_type); } =20 +static const char * const riscv_isa_base_names[] =3D { +#ifdef CONFIG_32BIT + [RISCV_ISA_BASE_IMA] =3D "rv32ima", +#else + [RISCV_ISA_BASE_IMA] =3D "rv64ima", +#endif + [RISCV_ISA_BASE_RVA23U64] =3D "rva23u64", +}; + +static void print_isa_bases(struct seq_file *m, const unsigned long *isa_b= ases) +{ + unsigned int i; + + for (i =3D 0; i < RISCV_NR_ISA_BASES; i++) { + if (test_bit(i, isa_bases)) + seq_printf(m, " %s", riscv_isa_base_names[i]); + } + seq_puts(m, "\n"); +} + static void *c_start(struct seq_file *m, loff_t *pos) { if (*pos =3D=3D nr_cpu_ids) @@ -336,6 +356,9 @@ static int c_show(struct seq_file *m, void *v) seq_printf(m, "processor\t: %lu\n", cpu_id); seq_printf(m, "hart\t\t: %lu\n", cpuid_to_hartid_map(cpu_id)); =20 + seq_puts(m, "isa bases\t:"); + print_isa_bases(m, riscv_isa_bases); + /* * For historical raisins, the isa: line is limited to the lowest common * denominator of extensions supported across all harts. A true list of @@ -360,6 +383,9 @@ static int c_show(struct seq_file *m, void *v) seq_printf(m, "marchid\t\t: 0x%lx\n", ci->marchid); seq_printf(m, "mimpid\t\t: 0x%lx\n", ci->mimpid); =20 + seq_puts(m, "hart isa bases\t:"); + print_isa_bases(m, hart_isa[cpu_id].isa_bases); + /* * Print the ISA extensions specific to this hart, which may show * additional extensions not present across all harts. --=20 2.43.0 From nobody Fri Jun 12 23:57:43 2026 Received: from mail-pj1-f41.google.com (mail-pj1-f41.google.com [209.85.216.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 25EC83A6B66 for ; Thu, 11 Jun 2026 20:15:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781208921; cv=none; b=qG4bbh9YEKM4/rvN7bbGJaFf4ALlTVurE3oWCrz4tIhoPF4ZXmnF14RgD15i4c+wfrsLvIgF3Lsej/QQd/Te/LzjxZcEmNOgAAV6Yjtv1m6Ua2UMg5Fo+O67JCNd+ArJFGPszNHH3QGk4T2tNuVYjK5c7kwRmoi+0uo16fslrio= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781208921; c=relaxed/simple; bh=ztCzluR5K1LOfYvJO2M/7Jb0AjscEHQ8dyRN17VY1U0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=W2alsCzF64+99Qvv8kiFUiTT540uVeaa7PDdTheB5hRDarl5Gi3hmlMwiYgLp3k6D4UFEHLSIIRBGwqmH7KLCXzKwRE8WRhfydS3MRxEoXhnIEFdMWyY2cWIeGxsQ+QK8cfxz9iz1BM6DZYJL/i2rblB46Z87NQzgX89VqML0C4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=cwYKRP7H; arc=none smtp.client-ip=209.85.216.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="cwYKRP7H" Received: by mail-pj1-f41.google.com with SMTP id 98e67ed59e1d1-36d5b11201aso239373a91.2 for ; Thu, 11 Jun 2026 13:15:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781208919; x=1781813719; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=SXkT6PmbtXC0d/wtet81Vb0IYNXQoXYAymVUyoGXQ78=; b=cwYKRP7H0hMspF2eflJUOVW/ASjUQVltymU6Ucn7ZhbPsEcfM7MZ2EHpEyOHRwiXLB av4+wGegLgIE/8oyiGzhmO3Ujl1bNC5eN+dYKLZnO/+jKAEtFm90u2S2vTb9xWkGvL9k VORd676sMF5oH0b+wVVh48CX//QrU5qGjwFZzwF409sgK2WNXjls1NdUZ0Xl1qBtbsMX vwqu6BZoIw67aJ8Bs+aKEAFfxAiNg4Lrzmf7o1NCqHbr59jTLYufLPlOJEnViSgefpze yvHsNWgG4BKnlVTa7DitJPu+gJqrrKGe1TgGpwP0M+5OZ5t6SiC0e08ZMLIXjqBoSkg/ yH5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781208919; x=1781813719; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=SXkT6PmbtXC0d/wtet81Vb0IYNXQoXYAymVUyoGXQ78=; b=FEDvy3Kk0nbMuSZzxkxg0cW/7loVT6/TTIfSXj37Qsj5ixyrQxxsr/eLmPou5ezv1d dhxayeytxbXF9hxVLj+VpSl1T7oLlcqm9/xhYogLtgqrEpg87eCMBhIefYRcUhwqtZ8m CnDHafDMBQXbD3FhwffR7zatMby3POQSzdirzl3V2k4It5ASj/8YVDBl/jmcTwIatvG/ NjQ93Plryrvpk2+y+ki8Oi4WQZDPkeLmkIGHJx7lzYBlU7y5HDsKziX9pycicNI36z8B KHTsPCtD7Cdf6atwvJo1KtEiVCYJFfkA1hzyTvAkOYfVU0gtyYo3YDKX600m64/igZti Za7w== X-Forwarded-Encrypted: i=1; AFNElJ9UgL4emhJr4UDZ+Th1BysziI2Uic/NgHLr8UxPly6TaEdhl5Y29fQZa0FsICA4UiXyLjeuID2KAm93XrI=@vger.kernel.org X-Gm-Message-State: AOJu0YzbK1ZhZB+cuPhQggnAGSYHNQvhew8WRK2bRebJJxupea/6d9wU sRV8kGCtm3Pf2hERrmtwFBWdAgmilmmH2Zzc0fpaZ1SyJGr6Wd68kj4J X-Gm-Gg: Acq92OFf0f5xTAylt5AVlMVKX4j+tkrJPWJwk6niHdhnHY+5vBnIMN3wn7sk5AyqCGm B1I3uSwFAgKsEQfYmj9hUdZrc/iSKCWupMAptPvvNrWq1/oOFuoSMs2RfxokETHKjEL+dcfhpnd sHLxKnhCwFlh0F5OB36rBEzqR94/XxsK31UwEXLeYk0sqmG8uPthBTOGc4A+r6rnP+Ci95mbS65 JUbqM77a3LO8TxR9cMLWtzBhrSmCr81HJ/JysRVZndzOGR9lFr8l4PoPa6AsArG/b5pubTUQrxC 4+Ey8uzlqYT3Wmp67hkqoz8KFF87JbVE3fclNu8IO87JQxIajm4sptJGHGbAn6KLlnqwwNIl/gH oN+pEjqUVRP0r6LZ7joNnj0gkcBH31g1t23JkyX3rGPwdMWvBqUp3T6SC7fyr4FL1nyULAArVKA == X-Received: by 2002:a17:903:41cf:b0:2b4:656b:aeb0 with SMTP id d9443c01a7336-2c2f4fd8bbemr50216465ad.35.1781208919538; Thu, 11 Jun 2026 13:15:19 -0700 (PDT) Received: from [127.0.1.1] ([2a12:a305:4::302d]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c164f875casm288730475ad.22.2026.06.11.13.15.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Jun 2026 13:15:19 -0700 (PDT) From: Guodong Xu Date: Thu, 11 Jun 2026 16:12:53 -0400 Subject: [PATCH v4 16/16] riscv: hwprobe: Introduce rva23u64 base behavior 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 Message-Id: <20260611-rva23u64-hwprobe-v2-v4-16-3f01a2449488@gmail.com> References: <20260611-rva23u64-hwprobe-v2-v4-0-3f01a2449488@gmail.com> In-Reply-To: <20260611-rva23u64-hwprobe-v2-v4-0-3f01a2449488@gmail.com> To: Jonathan Corbet , Shuah Khan , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Zong Li , Deepak Gupta , Anup Patel , Atish Patra , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Yixun Lan , Chen Wang , Inochi Amaoto Cc: linux-doc@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, Paul Walmsley , Conor Dooley , devicetree@vger.kernel.org, spacemit@lists.linux.dev, sophgo@lists.linux.dev, linux-kselftest@vger.kernel.org, Palmer Dabbelt , Guodong Xu , Andrew Jones X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=4843; i=docular.xu@gmail.com; h=from:subject:message-id; bh=ztCzluR5K1LOfYvJO2M/7Jb0AjscEHQ8dyRN17VY1U0=; b=owGbwMvMwCXWtEl1Z3CGpCDjabUkhixtsSM//PujPG/o5C1988NFUFrlz3OZHb+sFHZukhbJ4 gmQWDGzo5SFQYyLQVZMkeXw0Zbsra98on2fc/6AmcPKBDKEgYtTACZyvoWR4Yvq2kdr86/OeP4u qMp8S+LZV3N353cxPzBS0t6YmX07+h0jw50MkaNquufeZAvdUuY5IyOsvCP6GE9UwXfZPrNulv3 drAA= X-Developer-Key: i=docular.xu@gmail.com; a=openpgp; fpr=90B1DC3DF0BD10FD1227BD6344F254AF42F143EE Provide a hwprobe base-behavior bit so userspace can check RVA23U64 support in one call. Without it, a consumer needs five hwprobe calls and four prctl calls, which is error-prone to require of every caller. Most software treats RVA23U64 as a new base anyway, so expose it directly. Signed-off-by: Andrew Jones Signed-off-by: Guodong Xu --- v4: No change. v3: No change. v2: - Detect RVA23U64 by reading from the cached hart_isa[].isa_bases bitmap populated by riscv_init_isa_bases() at init time, sharing one source of truth with /proc/cpuinfo. --- Documentation/arch/riscv/hwprobe.rst | 8 ++++++++ arch/riscv/include/uapi/asm/hwprobe.h | 3 ++- arch/riscv/kernel/sys_hwprobe.c | 23 +++++++++++++++---= ---- tools/testing/selftests/riscv/hwprobe/which-cpus.c | 2 +- 4 files changed, 27 insertions(+), 9 deletions(-) diff --git a/Documentation/arch/riscv/hwprobe.rst b/Documentation/arch/risc= v/hwprobe.rst index 32a14331eb9de..dc70470093b1b 100644 --- a/Documentation/arch/riscv/hwprobe.rst +++ b/Documentation/arch/riscv/hwprobe.rst @@ -67,6 +67,14 @@ The following keys are defined: programs (it may still be executed in userspace via a kernel-controlled mechanism such as the vDSO). =20 + * :c:macro:`RISCV_HWPROBE_BASE_BEHAVIOR_RVA23U64`: Support for all manda= tory + extensions of RVA23U64, as defined in the RISC-V Profiles specification + starting from commit 0273f3c921b6 ("rva23/rvb23 ratified"). + + The RVA23U64 base is based upon the IMA base and therefore IMA extensi= on + keys (e.g. :c:macro:`RISCV_HWPROBE_KEY_IMA_EXT_0`:) may be used to pro= be + optional extensions. + * :c:macro:`RISCV_HWPROBE_KEY_IMA_EXT_0`: A bitmask containing extensions that are compatible with the :c:macro:`RISCV_HWPROBE_BASE_BEHAVIOR_IMA`: base system behavior. diff --git a/arch/riscv/include/uapi/asm/hwprobe.h b/arch/riscv/include/uap= i/asm/hwprobe.h index 36ec8ab470423..50733d3db7633 100644 --- a/arch/riscv/include/uapi/asm/hwprobe.h +++ b/arch/riscv/include/uapi/asm/hwprobe.h @@ -21,7 +21,8 @@ struct riscv_hwprobe { #define RISCV_HWPROBE_KEY_MARCHID 1 #define RISCV_HWPROBE_KEY_MIMPID 2 #define RISCV_HWPROBE_KEY_BASE_BEHAVIOR 3 -#define RISCV_HWPROBE_BASE_BEHAVIOR_IMA (1 << 0) +#define RISCV_HWPROBE_BASE_BEHAVIOR_IMA (1 << 0) +#define RISCV_HWPROBE_BASE_BEHAVIOR_RVA23U64 (1 << 1) #define RISCV_HWPROBE_KEY_IMA_EXT_0 4 #define RISCV_HWPROBE_IMA_FD (1 << 0) #define RISCV_HWPROBE_IMA_C (1 << 1) diff --git a/arch/riscv/kernel/sys_hwprobe.c b/arch/riscv/kernel/sys_hwprob= e.c index 3e80e5551ae0d..3f66f2e99d41a 100644 --- a/arch/riscv/kernel/sys_hwprobe.c +++ b/arch/riscv/kernel/sys_hwprobe.c @@ -226,6 +226,17 @@ static bool hwprobe_ext0_has(const struct cpumask *cpu= s, u64 ext) return (pair.value & ext); } =20 +static bool hwprobe_has_isa_base(const struct cpumask *cpus, unsigned int = base) +{ + int cpu; + + for_each_cpu(cpu, cpus) { + if (!test_bit(base, hart_isa[cpu].isa_bases)) + return false; + } + return true; +} + #if defined(CONFIG_RISCV_PROBE_UNALIGNED_ACCESS) static u64 hwprobe_misaligned(const struct cpumask *cpus) { @@ -308,14 +319,12 @@ static void hwprobe_one_pair(struct riscv_hwprobe *pa= ir, case RISCV_HWPROBE_KEY_MIMPID: hwprobe_arch_id(pair, cpus); break; - /* - * The kernel already assumes that the base single-letter ISA - * extensions are supported on all harts, and only supports the - * IMA base, so just cheat a bit here and tell that to - * userspace. - */ case RISCV_HWPROBE_KEY_BASE_BEHAVIOR: - pair->value =3D RISCV_HWPROBE_BASE_BEHAVIOR_IMA; + pair->value =3D 0; + if (hwprobe_has_isa_base(cpus, RISCV_ISA_BASE_IMA)) + pair->value |=3D RISCV_HWPROBE_BASE_BEHAVIOR_IMA; + if (hwprobe_has_isa_base(cpus, RISCV_ISA_BASE_RVA23U64)) + pair->value |=3D RISCV_HWPROBE_BASE_BEHAVIOR_RVA23U64; break; =20 case RISCV_HWPROBE_KEY_IMA_EXT_0: diff --git a/tools/testing/selftests/riscv/hwprobe/which-cpus.c b/tools/tes= ting/selftests/riscv/hwprobe/which-cpus.c index 587feb198c049..f8c797b1d0fd9 100644 --- a/tools/testing/selftests/riscv/hwprobe/which-cpus.c +++ b/tools/testing/selftests/riscv/hwprobe/which-cpus.c @@ -105,7 +105,7 @@ int main(int argc, char **argv) pairs[0] =3D (struct riscv_hwprobe){ .key =3D RISCV_HWPROBE_KEY_BASE_BEHA= VIOR, }; rc =3D riscv_hwprobe(pairs, 1, 0, NULL, 0); assert(rc =3D=3D 0 && pairs[0].key =3D=3D RISCV_HWPROBE_KEY_BASE_BEHAVIOR= && - pairs[0].value =3D=3D RISCV_HWPROBE_BASE_BEHAVIOR_IMA); + (pairs[0].value & RISCV_HWPROBE_BASE_BEHAVIOR_IMA)); =20 pairs[0] =3D (struct riscv_hwprobe){ .key =3D RISCV_HWPROBE_KEY_IMA_EXT_0= , }; rc =3D riscv_hwprobe(pairs, 1, 0, NULL, 0); --=20 2.43.0