riscv: hwprobe: export Zicond extension
authorClément Léger <cleger@rivosinc.com>
Wed, 20 Dec 2023 15:57:22 +0000 (16:57 +0100)
committerPalmer Dabbelt <palmer@rivosinc.com>
Wed, 10 Jan 2024 04:12:30 +0000 (20:12 -0800)
Export the zicond extension to userspace using hwprobe.

Signed-off-by: Clément Léger <cleger@rivosinc.com>
Link: https://lore.kernel.org/r/20231220155723.684081-7-cleger@rivosinc.com
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
Documentation/arch/riscv/hwprobe.rst
arch/riscv/include/uapi/asm/hwprobe.h
arch/riscv/kernel/sys_riscv.c

index bff68004ad43d2b69a94c74a96d1d107fee030b3..ee320fe7581b233fe965b227e5b6654058e18d60 100644 (file)
@@ -169,6 +169,11 @@ The following keys are defined:
        defined in the Atomic Compare-and-Swap (CAS) instructions manual starting
        from commit 5059e0ca641c ("update to ratified").
 
+  * :c:macro:`RISCV_HWPROBE_EXT_ZICOND`: The Zicond extension is supported as
+       defined in the RISC-V Integer Conditional (Zicond) operations extension
+       manual starting from commit 95cf1f9 ("Add changes requested by Ved
+       during signoff")
+
 * :c:macro:`RISCV_HWPROBE_KEY_CPUPERF_0`: A bitmask that contains performance
   information about the selected set of processors.
 
index ac65bb43c8e723f8b226ff25c737845208cac086..fd7af0dddb12b8b3e143eaacd50cfc66ee0fa9bf 100644 (file)
@@ -58,6 +58,7 @@ struct riscv_hwprobe {
 #define                RISCV_HWPROBE_EXT_ZFA           (1ULL << 32)
 #define                RISCV_HWPROBE_EXT_ZTSO          (1ULL << 33)
 #define                RISCV_HWPROBE_EXT_ZACAS         (1ULL << 34)
+#define                RISCV_HWPROBE_EXT_ZICOND        (1ULL << 35)
 #define RISCV_HWPROBE_KEY_CPUPERF_0    5
 #define                RISCV_HWPROBE_MISALIGNED_UNKNOWN        (0 << 0)
 #define                RISCV_HWPROBE_MISALIGNED_EMULATED       (1 << 0)
index 6c680c75ac0d44e48b6917afc8d615a73d35471a..cca9b1e356470210e23f321e0c74cce07cf7bd08 100644 (file)
@@ -176,6 +176,7 @@ static void hwprobe_isa_ext0(struct riscv_hwprobe *pair,
                EXT_KEY(ZIHINTNTL);
                EXT_KEY(ZTSO);
                EXT_KEY(ZACAS);
+               EXT_KEY(ZICOND);
 
                if (has_vector()) {
                        EXT_KEY(ZVBB);