aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnup Patel <apatel@ventanamicro.com>2024-03-25 21:01:36 +0530
committerWill Deacon <will@kernel.org>2024-04-09 16:01:58 +0100
commit65b58f723ec3898a36a37a60449b2cad22360fa5 (patch)
tree9d9199a05a390e6961b1fe8895cb1cf29c18479d
parentd9052a965a22a3a2b96668222e384fb5d1747664 (diff)
downloadkvmtool-65b58f723ec3898a36a37a60449b2cad22360fa5.tar.gz
riscv: Add vector crypto extensions support
When the vector extensions are available expose them to the guest via device tree so that guest can use it. This includes extensions Zvbb, Zvbc, Zvkb, Zvkg, Zvkned, Zvknha, Zvknhb, Zvksed, Zvksh, and Zvkt. Signed-off-by: Anup Patel <apatel@ventanamicro.com> Reviewed-by: Andrew Jones <ajones@ventanamicro.com> Link: https://lore.kernel.org/r/20240325153141.6816-6-apatel@ventanamicro.com Signed-off-by: Will Deacon <will@kernel.org>
-rw-r--r--riscv/fdt.c10
-rw-r--r--riscv/include/kvm/kvm-config-arch.h30
2 files changed, 40 insertions, 0 deletions
diff --git a/riscv/fdt.c b/riscv/fdt.c
index be87e9a1..44058dc9 100644
--- a/riscv/fdt.c
+++ b/riscv/fdt.c
@@ -44,6 +44,16 @@ struct isa_ext_info isa_info_arr[] = {
{"zksed", KVM_RISCV_ISA_EXT_ZKSED},
{"zksh", KVM_RISCV_ISA_EXT_ZKSH},
{"zkt", KVM_RISCV_ISA_EXT_ZKT},
+ {"zvbb", KVM_RISCV_ISA_EXT_ZVBB},
+ {"zvbc", KVM_RISCV_ISA_EXT_ZVBC},
+ {"zvkb", KVM_RISCV_ISA_EXT_ZVKB},
+ {"zvkg", KVM_RISCV_ISA_EXT_ZVKG},
+ {"zvkned", KVM_RISCV_ISA_EXT_ZVKNED},
+ {"zvknha", KVM_RISCV_ISA_EXT_ZVKNHA},
+ {"zvknhb", KVM_RISCV_ISA_EXT_ZVKNHB},
+ {"zvksed", KVM_RISCV_ISA_EXT_ZVKSED},
+ {"zvksh", KVM_RISCV_ISA_EXT_ZVKSH},
+ {"zvkt", KVM_RISCV_ISA_EXT_ZVKT},
};
static void dump_fdt(const char *dtb_file, void *fdt)
diff --git a/riscv/include/kvm/kvm-config-arch.h b/riscv/include/kvm/kvm-config-arch.h
index 3764d7ce..ae648ce4 100644
--- a/riscv/include/kvm/kvm-config-arch.h
+++ b/riscv/include/kvm/kvm-config-arch.h
@@ -109,6 +109,36 @@ struct kvm_config_arch {
OPT_BOOLEAN('\0', "disable-zkt", \
&(cfg)->ext_disabled[KVM_RISCV_ISA_EXT_ZKT], \
"Disable Zkt Extension"), \
+ OPT_BOOLEAN('\0', "disable-zvbb", \
+ &(cfg)->ext_disabled[KVM_RISCV_ISA_EXT_ZVBB], \
+ "Disable Zvbb Extension"), \
+ OPT_BOOLEAN('\0', "disable-zvbc", \
+ &(cfg)->ext_disabled[KVM_RISCV_ISA_EXT_ZVBC], \
+ "Disable Zvbc Extension"), \
+ OPT_BOOLEAN('\0', "disable-zvkb", \
+ &(cfg)->ext_disabled[KVM_RISCV_ISA_EXT_ZVKB], \
+ "Disable Zvkb Extension"), \
+ OPT_BOOLEAN('\0', "disable-zvkg", \
+ &(cfg)->ext_disabled[KVM_RISCV_ISA_EXT_ZVKG], \
+ "Disable Zvkg Extension"), \
+ OPT_BOOLEAN('\0', "disable-zvkned", \
+ &(cfg)->ext_disabled[KVM_RISCV_ISA_EXT_ZVKNED], \
+ "Disable Zvkned Extension"), \
+ OPT_BOOLEAN('\0', "disable-zvknha", \
+ &(cfg)->ext_disabled[KVM_RISCV_ISA_EXT_ZVKNHA], \
+ "Disable Zvknha Extension"), \
+ OPT_BOOLEAN('\0', "disable-zvknhb", \
+ &(cfg)->ext_disabled[KVM_RISCV_ISA_EXT_ZVKNHB], \
+ "Disable Zvknhb Extension"), \
+ OPT_BOOLEAN('\0', "disable-zvksed", \
+ &(cfg)->ext_disabled[KVM_RISCV_ISA_EXT_ZVKSED], \
+ "Disable Zvksed Extension"), \
+ OPT_BOOLEAN('\0', "disable-zvksh", \
+ &(cfg)->ext_disabled[KVM_RISCV_ISA_EXT_ZVKSH], \
+ "Disable Zvksh Extension"), \
+ OPT_BOOLEAN('\0', "disable-zvkt", \
+ &(cfg)->ext_disabled[KVM_RISCV_ISA_EXT_ZVKT], \
+ "Disable Zvkt Extension"), \
OPT_BOOLEAN('\0', "disable-sbi-legacy", \
&(cfg)->sbi_ext_disabled[KVM_RISCV_SBI_EXT_V01], \
"Disable SBI Legacy Extensions"), \