[PULL v2 16/96] target/riscv: Add Zicclsm CPU option and enable it for the eligible CPUs
[email protected] Mon, 24 Aug 2026 15:46:46 +1000
Newsgroups
org.nongnu.qemu-devel
Message-ID
<[email protected] >
From: Frank Chang <[email protected] >
Add Zicclsm CPU option and enable it for the following eligible CPUs:
- Base 32 CPU (to be backward compatible)
- Base 64 CPU (to be backward compatible)
- XuanTie (T-Head) C908
- Tenstorrent Ascalon
- Ventana Veyron V1
- XiangShan Kunminghu
- MIPS P8700 (ISA doesn't include Zicclsm, but their datasheet claims that
it has unaligned load/store support in hardware)
Signed-off-by: Frank Chang <[email protected] >
Reviewed-by: Max Chou <[email protected] >
Acked-by: Alistair Francis <[email protected] >
Reviewed-by: Daniel Henrique Barboza <[email protected] >
Message-ID: <[email protected] >
Signed-off-by: Alistair Francis <[email protected] >
---
target/riscv/cpu_cfg_fields.h.inc | 2 ++
target/riscv/cpu.c | 7 +++++++
2 files changed, 9 insertions(+)
diff --git a/target/riscv/cpu_cfg_fields.h.inc b/target/riscv/cpu_cfg_fields.h.inc
index 9eb47af0a7..f8c27a574f 100644
--- a/target/riscv/cpu_cfg_fields.h.inc
+++ b/target/riscv/cpu_cfg_fields.h.inc
@@ -139,6 +139,8 @@ BOOL_FIELD(has_priv_1_11)
/* Always enabled for TCG if has_priv_1_11 */
BOOL_FIELD(ext_ziccrse)
+BOOL_FIELD(ext_zicclsm)
+
/* Vendor-specific custom extensions */
BOOL_FIELD(ext_xtheadba)
BOOL_FIELD(ext_xtheadbb)
diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c
index e73ff53159..b2693f4c20 100644
--- a/target/riscv/cpu.c
+++ b/target/riscv/cpu.c
@@ -3347,6 +3347,7 @@ static const TypeInfo riscv_cpu_type_infos[] = {
.cfg.ext_zicbom = true,
.cfg.ext_zicbop = true,
.cfg.ext_zicboz = true,
+ .cfg.ext_zicclsm = true,
.cfg.ext_zicntr = true,
.cfg.ext_zicsr = true,
.cfg.ext_zifencei = true,
@@ -3419,6 +3420,7 @@ static const TypeInfo riscv_cpu_type_infos[] = {
.cfg.ext_zicbom = true,
.cfg.ext_zicbop = true,
.cfg.ext_zicboz = true,
+ .cfg.ext_zicclsm = true,
.cfg.ext_zicntr = true,
.cfg.ext_zicsr = true,
.cfg.ext_zifencei = true,
@@ -3505,6 +3507,7 @@ static const TypeInfo riscv_cpu_type_infos[] = {
.cfg.ext_zbs = true,
.cfg.ext_zkt = true,
.cfg.ext_zbkc = true,
+ .cfg.ext_zicclsm = true,
.cfg.ext_zicsr = true,
.cfg.ext_zifencei = true,
.cfg.ext_zihintpause = true,
@@ -3548,6 +3551,7 @@ static const TypeInfo riscv_cpu_type_infos[] = {
.cfg.ext_zicbom = true,
.cfg.ext_zicbop = true,
.cfg.ext_zicboz = true,
+ .cfg.ext_zicclsm = true,
.cfg.ext_zicntr = true,
.cfg.ext_zicond = true,
.cfg.ext_zicsr = true,
@@ -3597,6 +3601,7 @@ static const TypeInfo riscv_cpu_type_infos[] = {
/* ISA extensions */
.cfg.mmu = true,
+ .cfg.ext_zicclsm = true,
.cfg.ext_zifencei = true,
.cfg.ext_zicsr = true,
.cfg.pmp = true,
@@ -3656,6 +3661,7 @@ static const TypeInfo riscv_cpu_type_infos[] = {
* The RISC-V Instruction Set Manual: Volume I
* Unprivileged Architecture
*/
+ .cfg.ext_zicclsm = true,
.cfg.ext_zicntr = true,
.cfg.ext_zihpm = true,
.cfg.ext_zihintntl = true,
@@ -3712,6 +3718,7 @@ static const TypeInfo riscv_cpu_type_infos[] = {
.misa_ext = RVI | RVM | RVA | RVF | RVD | RVC | RVS | RVU,
.priv_spec = PRIV_VERSION_1_12_0,
.cfg.max_satp_mode = VM_1_10_SV48,
+ .cfg.ext_zicclsm = true,
.cfg.ext_zifencei = true,
.cfg.ext_zicsr = true,
.cfg.mmu = true,
--
2.54.0