From nobody Sun Feb 8 18:30:30 2026 Received: from mail-pg1-f174.google.com (mail-pg1-f174.google.com [209.85.215.174]) (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 045F433B6CA for ; Sat, 7 Feb 2026 10:28:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770460124; cv=none; b=rNTUBAGW6LPiLIjAxS22zrH2QLdpG7ZxdFSlXUY9WUmMjsJqjJH/V1YoAz3epxBqrDyYRAVafYd4Os7X+u85BPQvRgHuKhdvo9qTVjzCgDs+20WdJ5i96837ghKRFZ8mCrNszeJLXozqiYeMmU7hgzmq7uu2GWp1/frkxvGQqC0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770460124; c=relaxed/simple; bh=xMuXYybQ3qwdlXyIpDdaaE2++R43obocwS91t/TkUwQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=CkJlshPUfdXRKxmANSYGgzfX1Irxe+uC7qhMN9wkmUwz0VsczxoSxgOfnwa6mO+22FovvydyV1A9GszLa/1AnHzllvl7GKxFxM4HZ9ZAwLTCk+fKE1/xzxtE/7vbcQDVS402s9TK2GjEHEUEqjhySNUU1m/DO0P/sUsoUWgJ1Mw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com; spf=pass smtp.mailfrom=riscstar.com; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b=foc6JIwR; arc=none smtp.client-ip=209.85.215.174 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=riscstar.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b="foc6JIwR" Received: by mail-pg1-f174.google.com with SMTP id 41be03b00d2f7-c648bc907ebso1877290a12.3 for ; Sat, 07 Feb 2026 02:28:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1770460123; x=1771064923; 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=fDg5moTLZBDcuSKrclVF6M9QumyUxl2nytvSuElrSC0=; b=foc6JIwRuUoUwJP3fqNeXnUA2N7a9TE/w2SIx87NTd24zlgO56ZStH6PJFEl8FsNW8 vIcqZlivH3p40M7cQTLe5kkUGxQYt52O4GTQZKu+yG3AcMqVwud0YkPW+aEu3i0Ybp8s gJ32DWZuj0zeVMxO1TfVd06sEAazUUWNo43Ndn2MkuiR8Eb4NPNKW55j1i+tVumVcqc4 C8R+H+qvnnGJ+DA8scZ0lU4P9HZwRtEoHpMLeKX3KWyy6VT+PxCzGiXWe2pP3UIp1dgk 5S7dP6sJ5geCaK1QISpyZdVrINnU2rS2GlA0yI+vtr10GrXfXPRzJ/5MOfw/jPUWCFNd G6gw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770460123; x=1771064923; 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=fDg5moTLZBDcuSKrclVF6M9QumyUxl2nytvSuElrSC0=; b=jmylhsQpSM+68FtODIF+HUt2REgUg+BFdSrj30k9sjw/jEeeodUrv9tV1oNR2J9YiX Kq2YBsl2qmgbwtylWLC4Rr9jKNNNV0M/poBN63zwBnFkQQ1X3eEBSewO+3DRyntkXfi/ PIUR3rgivAmGK9H2Qt7yLfzt94M8huD/8Hr/vw1EduHtmtOMJx6npxZEuayB/UlZw9KL 4mlvj/kn1OLjawTNdUSrwwnotW5sBTPAbBfrUo8IWyLFc/536BpjffH0gcxlVSJ/d98X qSk1uP71KD97ripYJRAyg7XfIvuoX8g8pFntfoVxAkG0LTuufhBYVakzy26gIDwHS6Mg zGYg== X-Forwarded-Encrypted: i=1; AJvYcCVB306RotEqRf3pbN6FTe8ZkkTFXlgDEuDhFNLMSHlpfmVbd6GSnxdaaEr61IxG/+wKrb1DWv5t4zn1c4o=@vger.kernel.org X-Gm-Message-State: AOJu0YzP88wNwiPeLl0nr4oRyg0k/tviSQir6+eNWX+Dg5oLLa3UBb3G mwO0RRcCKwyV2+UzDPJ9jRpCdCOrX9G7qwMf4iFC+l0CDMsVDG1/8hFksWSrWpRCPwUEpaZulYD m7Ndu990= X-Gm-Gg: AZuq6aKdFHtJJUezyL0Nq4j8n8yRa5lXPmMv/JmlZ1VQtBNgsyKLpoxSdQ89wICXM7o cOIhg4GyrTx/h3TGeXYP1Jmz+FNi7rv08hORTCGmQNurG8cBdYM0BWKM50/cVyM1XJ5GGh+NrYM xg+FhmsQ2lg40joOjdyFJTQi6Xf2zqygD+WwbGh155kYUWe1bJz/6gtKiXrovQxyDH34xB614jx RV3fCv9oZIpM47fnVO1eKda6Svad02tVn5UE0RIM5Z23K+HHnosgFiKpsSYaMALTwGuD3aXnh0P mw4hjwOKs6lpHGAJN6l5FRzPW3btoyvDuTIagJ3znrDBPiDHTEOLHrb1sqLUR6x2xL/gQ7K3QFV nr4I9GRqh4DJPArw83R+rgyW3kgZEwVHAr9ztBArTSYQ+Lhffs4OsmxMlHhmevlAQ5jppHqxdU0 zaN8oqDF8uqTCu9eFd3wQAeFPHnBMsxrkHnfuvlhxV8ngwOyjtIaqyew== X-Received: by 2002:a05:6a21:a98:b0:38f:df47:87a0 with SMTP id adf61e73a8af0-393ad386587mr6157848637.61.1770460123273; Sat, 07 Feb 2026 02:28:43 -0800 (PST) Received: from [127.0.1.1] ([45.8.220.216]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2a951a638a1sm46516555ad.17.2026.02.07.02.28.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 07 Feb 2026 02:28:42 -0800 (PST) From: Guodong Xu Date: Sat, 07 Feb 2026 18:28:02 +0800 Subject: [PATCH 8/8] riscv: cpufeature: Add parsing for Sha and its comprised extensions 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: <20260207-isa-ext-parse-export-v1-8-a64d3a8bc20a@riscstar.com> References: <20260207-isa-ext-parse-export-v1-0-a64d3a8bc20a@riscstar.com> In-Reply-To: <20260207-isa-ext-parse-export-v1-0-a64d3a8bc20a@riscstar.com> To: Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Jonathan Corbet , Shuah Khan , Conor Dooley Cc: linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, Guodong Xu X-Mailer: b4 0.14.2 Sha is a profile-defined extension introduced in RVA23 Profiles Version 1.0 that captures the full set of features mandated to be supported along with the H extension. The augmented hypervisor extension was optional in RVA22 and mandatory in RVA23. Sha comprises: H, Shcounterenw, Shgatpa, Shtvala, Shvsatpa, Shvstvala, Shvstvecd, and Ssstateen. Add Sha as a superset extension so that when "sha" is encountered in the ISA string, its sub-extensions are automatically enabled. Also add individual parsing for each of the comprised extensions. Signed-off-by: Guodong Xu --- arch/riscv/include/asm/hwcap.h | 8 ++++++++ arch/riscv/kernel/cpufeature.c | 24 ++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/arch/riscv/include/asm/hwcap.h b/arch/riscv/include/asm/hwcap.h index 75f64f5b7355db6ea5218f544ceda3be9619a58a..8cc1d47b1068637fabb94a3f8de= fb1d6fe3bc180 100644 --- a/arch/riscv/include/asm/hwcap.h +++ b/arch/riscv/include/asm/hwcap.h @@ -123,6 +123,14 @@ #define RISCV_ISA_EXT_SSTVALA 113 #define RISCV_ISA_EXT_SSTVECD 114 #define RISCV_ISA_EXT_SSU64XL 115 +#define RISCV_ISA_EXT_SHA 116 +#define RISCV_ISA_EXT_SHCOUNTERENW 117 +#define RISCV_ISA_EXT_SHGATPA 118 +#define RISCV_ISA_EXT_SHTVALA 119 +#define RISCV_ISA_EXT_SHVSATPA 120 +#define RISCV_ISA_EXT_SHVSTVALA 121 +#define RISCV_ISA_EXT_SHVSTVECD 122 +#define RISCV_ISA_EXT_SSSTATEEN 123 =20 #define RISCV_ISA_EXT_XLINUXENVCFG 127 =20 diff --git a/arch/riscv/kernel/cpufeature.c b/arch/riscv/kernel/cpufeature.c index fff35a3e85db70f5610df2667f2b4f45f091cb2b..13fa5dd555c4cb40831f75c3a0e= 0c4c5b518864b 100644 --- a/arch/riscv/kernel/cpufeature.c +++ b/arch/riscv/kernel/cpufeature.c @@ -498,6 +498,22 @@ static const unsigned int riscv_supm_exts[] =3D { RISCV_ISA_EXT_SUPM }; =20 +/* + * The Sha extension captures the full set of features mandated along with= the + * H extension. Sha comprises: H, Shcounterenw, Shgatpa, Shtvala, Shvsatpa, + * Shvstvala, Shvstvecd, and Ssstateen. + */ +static const unsigned int riscv_sha_exts[] =3D { + RISCV_ISA_EXT_h, + RISCV_ISA_EXT_SHCOUNTERENW, + RISCV_ISA_EXT_SHGATPA, + RISCV_ISA_EXT_SHTVALA, + RISCV_ISA_EXT_SHVSATPA, + RISCV_ISA_EXT_SHVSTVALA, + RISCV_ISA_EXT_SHVSTVECD, + RISCV_ISA_EXT_SSSTATEEN, +}; + /* * The B extension comprises Zba, Zbb, and Zbs. */ @@ -638,6 +654,13 @@ const struct riscv_isa_ext_data riscv_isa_ext[] =3D { __RISCV_ISA_EXT_DATA_VALIDATE(zvksh, RISCV_ISA_EXT_ZVKSH, riscv_ext_vecto= r_crypto_validate), __RISCV_ISA_EXT_BUNDLE_VALIDATE(zvksg, riscv_zvksg_bundled_exts, riscv_ex= t_vector_crypto_validate), __RISCV_ISA_EXT_DATA_VALIDATE(zvkt, RISCV_ISA_EXT_ZVKT, riscv_ext_vector_= crypto_validate), + __RISCV_ISA_EXT_SUPERSET(sha, RISCV_ISA_EXT_SHA, riscv_sha_exts), + __RISCV_ISA_EXT_DATA(shcounterenw, RISCV_ISA_EXT_SHCOUNTERENW), + __RISCV_ISA_EXT_DATA(shgatpa, RISCV_ISA_EXT_SHGATPA), + __RISCV_ISA_EXT_DATA(shtvala, RISCV_ISA_EXT_SHTVALA), + __RISCV_ISA_EXT_DATA(shvsatpa, RISCV_ISA_EXT_SHVSATPA), + __RISCV_ISA_EXT_DATA(shvstvala, RISCV_ISA_EXT_SHVSTVALA), + __RISCV_ISA_EXT_DATA(shvstvecd, RISCV_ISA_EXT_SHVSTVECD), __RISCV_ISA_EXT_DATA(smaia, RISCV_ISA_EXT_SMAIA), __RISCV_ISA_EXT_DATA(smmpm, RISCV_ISA_EXT_SMMPM), __RISCV_ISA_EXT_SUPERSET(smnpm, RISCV_ISA_EXT_SMNPM, riscv_supm_exts), @@ -647,6 +670,7 @@ const struct riscv_isa_ext_data riscv_isa_ext[] =3D { __RISCV_ISA_EXT_DATA(sscofpmf, RISCV_ISA_EXT_SSCOFPMF), __RISCV_ISA_EXT_DATA(sscounterenw, RISCV_ISA_EXT_SSCOUNTERENW), __RISCV_ISA_EXT_SUPERSET(ssnpm, RISCV_ISA_EXT_SSNPM, riscv_supm_exts), + __RISCV_ISA_EXT_DATA(ssstateen, RISCV_ISA_EXT_SSSTATEEN), __RISCV_ISA_EXT_DATA(sstc, RISCV_ISA_EXT_SSTC), __RISCV_ISA_EXT_DATA(sstvala, RISCV_ISA_EXT_SSTVALA), __RISCV_ISA_EXT_DATA(sstvecd, RISCV_ISA_EXT_SSTVECD), --=20 2.43.0