]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
RISC-V: KVM: Allow bfloat16 extension for Guest/VM
authorQuan Zhou <zhouquan@iscas.ac.cn>
Fri, 8 Aug 2025 10:18:51 +0000 (18:18 +0800)
committerAnup Patel <anup@brainfault.org>
Tue, 16 Sep 2025 05:23:43 +0000 (10:53 +0530)
Extend the KVM ISA extension ONE_REG interface to allow KVM user space
to detect and enable Zfbfmin/Zvfbfmin/Zvfbfwma extension for Guest/VM.

Signed-off-by: Quan Zhou <zhouquan@iscas.ac.cn>
Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Reviewed-by: Nutty Liu <nutty.liu@hotmail.com>
Reviewed-by: Nutty Liu <liujingqi@lanxincomputing.com>
Link: https://lore.kernel.org/r/f846cecd330ab9fc88211c55bc73126f903f8713.1754646071.git.zhouquan@iscas.ac.cn
Signed-off-by: Anup Patel <anup@brainfault.org>
arch/riscv/include/uapi/asm/kvm.h
arch/riscv/kvm/vcpu_onereg.c

index 821b008654969d98764a96cf634b87f1786ec3f3..d2ebc4d0be4b608e341c6c239e6bcd582925ae18 100644 (file)
@@ -187,6 +187,9 @@ enum KVM_RISCV_ISA_EXT_ID {
        KVM_RISCV_ISA_EXT_ZAAMO,
        KVM_RISCV_ISA_EXT_ZALRSC,
        KVM_RISCV_ISA_EXT_ZICBOP,
+       KVM_RISCV_ISA_EXT_ZFBFMIN,
+       KVM_RISCV_ISA_EXT_ZVFBFMIN,
+       KVM_RISCV_ISA_EXT_ZVFBFWMA,
        KVM_RISCV_ISA_EXT_MAX,
 };
 
index eefacf780970835d9ade55580a67dda2160c1cf0..9f8b196e76979cc90ee796a8ed78da5bf0298d7d 100644 (file)
@@ -65,6 +65,7 @@ static const unsigned long kvm_isa_ext_arr[] = {
        KVM_ISA_EXT_ARR(ZCF),
        KVM_ISA_EXT_ARR(ZCMOP),
        KVM_ISA_EXT_ARR(ZFA),
+       KVM_ISA_EXT_ARR(ZFBFMIN),
        KVM_ISA_EXT_ARR(ZFH),
        KVM_ISA_EXT_ARR(ZFHMIN),
        KVM_ISA_EXT_ARR(ZICBOM),
@@ -89,6 +90,8 @@ static const unsigned long kvm_isa_ext_arr[] = {
        KVM_ISA_EXT_ARR(ZTSO),
        KVM_ISA_EXT_ARR(ZVBB),
        KVM_ISA_EXT_ARR(ZVBC),
+       KVM_ISA_EXT_ARR(ZVFBFMIN),
+       KVM_ISA_EXT_ARR(ZVFBFWMA),
        KVM_ISA_EXT_ARR(ZVFH),
        KVM_ISA_EXT_ARR(ZVFHMIN),
        KVM_ISA_EXT_ARR(ZVKB),
@@ -199,6 +202,7 @@ static bool kvm_riscv_vcpu_isa_disable_allowed(unsigned long ext)
        case KVM_RISCV_ISA_EXT_ZCF:
        case KVM_RISCV_ISA_EXT_ZCMOP:
        case KVM_RISCV_ISA_EXT_ZFA:
+       case KVM_RISCV_ISA_EXT_ZFBFMIN:
        case KVM_RISCV_ISA_EXT_ZFH:
        case KVM_RISCV_ISA_EXT_ZFHMIN:
        case KVM_RISCV_ISA_EXT_ZICBOP:
@@ -221,6 +225,8 @@ static bool kvm_riscv_vcpu_isa_disable_allowed(unsigned long ext)
        case KVM_RISCV_ISA_EXT_ZTSO:
        case KVM_RISCV_ISA_EXT_ZVBB:
        case KVM_RISCV_ISA_EXT_ZVBC:
+       case KVM_RISCV_ISA_EXT_ZVFBFMIN:
+       case KVM_RISCV_ISA_EXT_ZVFBFWMA:
        case KVM_RISCV_ISA_EXT_ZVFH:
        case KVM_RISCV_ISA_EXT_ZVFHMIN:
        case KVM_RISCV_ISA_EXT_ZVKB: