summaryrefslogtreecommitdiffstats
path: root/arch/riscv/include/uapi/asm/kvm.h
diff options
context:
space:
mode:
authorMayuresh Chitale <mchitale@ventanamicro.com>2023-09-13 22:09:05 +0530
committerAnup Patel <anup@brainfault.org>2023-10-12 18:44:13 +0530
commitc04913f2b54ee86be34d1a1e9df7b7876b12b8c0 (patch)
treea94f8b9f05755e3c510e5e32230183faa27d6564 /arch/riscv/include/uapi/asm/kvm.h
parent81f0f314fec92a69d6c4951b9d9db21d37419669 (diff)
downloadlinux-stable-c04913f2b54ee86be34d1a1e9df7b7876b12b8c0.tar.gz
linux-stable-c04913f2b54ee86be34d1a1e9df7b7876b12b8c0.tar.bz2
linux-stable-c04913f2b54ee86be34d1a1e9df7b7876b12b8c0.zip
RISCV: KVM: Add sstateen0 to ONE_REG
Add support for sstateen0 CSR to the ONE_REG interface to allow its access from user space. Signed-off-by: Mayuresh Chitale <mchitale@ventanamicro.com> Reviewed-by: Andrew Jones <ajones@ventanamicro.com> Signed-off-by: Anup Patel <anup@brainfault.org>
Diffstat (limited to 'arch/riscv/include/uapi/asm/kvm.h')
-rw-r--r--arch/riscv/include/uapi/asm/kvm.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/riscv/include/uapi/asm/kvm.h b/arch/riscv/include/uapi/asm/kvm.h
index c161791f55cb..b1baf6f096a3 100644
--- a/arch/riscv/include/uapi/asm/kvm.h
+++ b/arch/riscv/include/uapi/asm/kvm.h
@@ -94,6 +94,11 @@ struct kvm_riscv_aia_csr {
unsigned long iprio2h;
};
+/* Smstateen CSR for KVM_GET_ONE_REG and KVM_SET_ONE_REG */
+struct kvm_riscv_smstateen_csr {
+ unsigned long sstateen0;
+};
+
/* TIMER registers for KVM_GET_ONE_REG and KVM_SET_ONE_REG */
struct kvm_riscv_timer {
__u64 frequency;
@@ -180,10 +185,13 @@ enum KVM_RISCV_SBI_EXT_ID {
#define KVM_REG_RISCV_CSR (0x03 << KVM_REG_RISCV_TYPE_SHIFT)
#define KVM_REG_RISCV_CSR_GENERAL (0x0 << KVM_REG_RISCV_SUBTYPE_SHIFT)
#define KVM_REG_RISCV_CSR_AIA (0x1 << KVM_REG_RISCV_SUBTYPE_SHIFT)
+#define KVM_REG_RISCV_CSR_SMSTATEEN (0x2 << KVM_REG_RISCV_SUBTYPE_SHIFT)
#define KVM_REG_RISCV_CSR_REG(name) \
(offsetof(struct kvm_riscv_csr, name) / sizeof(unsigned long))
#define KVM_REG_RISCV_CSR_AIA_REG(name) \
(offsetof(struct kvm_riscv_aia_csr, name) / sizeof(unsigned long))
+#define KVM_REG_RISCV_CSR_SMSTATEEN_REG(name) \
+ (offsetof(struct kvm_riscv_smstateen_csr, name) / sizeof(unsigned long))
/* Timer registers are mapped as type 4 */
#define KVM_REG_RISCV_TIMER (0x04 << KVM_REG_RISCV_TYPE_SHIFT)