Unverified Commit 0ad70db5 authored by Clément Léger's avatar Clément Léger Committed by Palmer Dabbelt
Browse files

riscv: hwprobe: export Zca, Zcf, Zcd and Zcb ISA extensions



Export Zca, Zcf, Zcd and Zcb ISA extension through hwprobe.

Signed-off-by: default avatarClément Léger <cleger@rivosinc.com>
Reviewed-by: default avatarCharlie Jenkins <charlie@rivosinc.com>
Link: https://lore.kernel.org/r/20240619113529.676940-10-cleger@rivosinc.com


Signed-off-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
parent ba4cd855
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -211,6 +211,26 @@ The following keys are defined:
       supported as defined in the RISC-V ISA manual starting from commit
       58220614a5f ("Zimop is ratified/1.0").

  * :c:macro:`RISCV_HWPROBE_EXT_ZCA`: The Zca extension part of Zc* standard
       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.

  * :c:macro:`RISCV_HWPROBE_EXT_ZCB`: The Zcb extension part of Zc* standard
       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.

  * :c:macro:`RISCV_HWPROBE_EXT_ZCD`: The Zcd extension part of Zc* standard
       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.

  * :c:macro:`RISCV_HWPROBE_EXT_ZCF`: The Zcf extension part of Zc* standard
       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.

* :c:macro:`RISCV_HWPROBE_KEY_CPUPERF_0`: A bitmask that contains performance
  information about the selected set of processors.

+4 −0
Original line number Diff line number Diff line
@@ -66,6 +66,10 @@ struct riscv_hwprobe {
#define		RISCV_HWPROBE_EXT_ZVE64F	(1ULL << 40)
#define		RISCV_HWPROBE_EXT_ZVE64D	(1ULL << 41)
#define		RISCV_HWPROBE_EXT_ZIMOP		(1ULL << 42)
#define		RISCV_HWPROBE_EXT_ZCA		(1ULL << 43)
#define		RISCV_HWPROBE_EXT_ZCB		(1ULL << 44)
#define		RISCV_HWPROBE_EXT_ZCD		(1ULL << 45)
#define		RISCV_HWPROBE_EXT_ZCF		(1ULL << 46)
#define RISCV_HWPROBE_KEY_CPUPERF_0	5
#define		RISCV_HWPROBE_MISALIGNED_UNKNOWN	(0 << 0)
#define		RISCV_HWPROBE_MISALIGNED_EMULATED	(1 << 0)
+4 −0
Original line number Diff line number Diff line
@@ -113,6 +113,8 @@ static void hwprobe_isa_ext0(struct riscv_hwprobe *pair,
		EXT_KEY(ZICOND);
		EXT_KEY(ZIHINTPAUSE);
		EXT_KEY(ZIMOP);
		EXT_KEY(ZCA);
		EXT_KEY(ZCB);

		/*
		 * All the following extensions must depend on the kernel
@@ -142,6 +144,8 @@ static void hwprobe_isa_ext0(struct riscv_hwprobe *pair,
			EXT_KEY(ZFH);
			EXT_KEY(ZFHMIN);
			EXT_KEY(ZFA);
			EXT_KEY(ZCD);
			EXT_KEY(ZCF);
		}
#undef EXT_KEY
	}