@@ -48,6 +48,7 @@ bool filter_reg(__u64 reg)
48
48
case KVM_REG_RISCV_ISA_EXT | KVM_RISCV_ISA_EXT_ZICBOM :
49
49
case KVM_REG_RISCV_ISA_EXT | KVM_RISCV_ISA_EXT_ZICBOZ :
50
50
case KVM_REG_RISCV_ISA_EXT | KVM_RISCV_ISA_EXT_ZICNTR :
51
+ case KVM_REG_RISCV_ISA_EXT | KVM_RISCV_ISA_EXT_ZICOND :
51
52
case KVM_REG_RISCV_ISA_EXT | KVM_RISCV_ISA_EXT_ZICSR :
52
53
case KVM_REG_RISCV_ISA_EXT | KVM_RISCV_ISA_EXT_ZIFENCEI :
53
54
case KVM_REG_RISCV_ISA_EXT | KVM_RISCV_ISA_EXT_ZIHINTPAUSE :
@@ -361,6 +362,7 @@ static const char *isa_ext_id_to_str(__u64 id)
361
362
KVM_ISA_EXT_ARR (ZICBOM ),
362
363
KVM_ISA_EXT_ARR (ZICBOZ ),
363
364
KVM_ISA_EXT_ARR (ZICNTR ),
365
+ KVM_ISA_EXT_ARR (ZICOND ),
364
366
KVM_ISA_EXT_ARR (ZICSR ),
365
367
KVM_ISA_EXT_ARR (ZIFENCEI ),
366
368
KVM_ISA_EXT_ARR (ZIHINTPAUSE ),
@@ -632,6 +634,10 @@ static __u64 zicntr_regs[] = {
632
634
KVM_REG_RISCV | KVM_REG_SIZE_ULONG | KVM_REG_RISCV_ISA_EXT | KVM_RISCV_ISA_EXT_ZICNTR ,
633
635
};
634
636
637
+ static __u64 zicond_regs [] = {
638
+ KVM_REG_RISCV | KVM_REG_SIZE_ULONG | KVM_REG_RISCV_ISA_EXT | KVM_RISCV_ISA_EXT_ZICOND ,
639
+ };
640
+
635
641
static __u64 zicsr_regs [] = {
636
642
KVM_REG_RISCV | KVM_REG_SIZE_ULONG | KVM_REG_RISCV_ISA_EXT | KVM_RISCV_ISA_EXT_ZICSR ,
637
643
};
@@ -759,6 +765,8 @@ static __u64 fp_d_regs[] = {
759
765
{"zbs", .feature = KVM_RISCV_ISA_EXT_ZBS, .regs = zbs_regs, .regs_n = ARRAY_SIZE(zbs_regs),}
760
766
#define ZICNTR_REGS_SUBLIST \
761
767
{"zicntr", .feature = KVM_RISCV_ISA_EXT_ZICNTR, .regs = zicntr_regs, .regs_n = ARRAY_SIZE(zicntr_regs),}
768
+ #define ZICOND_REGS_SUBLIST \
769
+ {"zicond", .feature = KVM_RISCV_ISA_EXT_ZICOND, .regs = zicond_regs, .regs_n = ARRAY_SIZE(zicond_regs),}
762
770
#define ZICSR_REGS_SUBLIST \
763
771
{"zicsr", .feature = KVM_RISCV_ISA_EXT_ZICSR, .regs = zicsr_regs, .regs_n = ARRAY_SIZE(zicsr_regs),}
764
772
#define ZIFENCEI_REGS_SUBLIST \
@@ -864,6 +872,14 @@ static struct vcpu_reg_list zicntr_config = {
864
872
},
865
873
};
866
874
875
+ static struct vcpu_reg_list zicond_config = {
876
+ .sublists = {
877
+ BASE_SUBLIST ,
878
+ ZICOND_REGS_SUBLIST ,
879
+ {0 },
880
+ },
881
+ };
882
+
867
883
static struct vcpu_reg_list zicsr_config = {
868
884
.sublists = {
869
885
BASE_SUBLIST ,
@@ -932,6 +948,7 @@ struct vcpu_reg_list *vcpu_configs[] = {
932
948
& zbb_config ,
933
949
& zbs_config ,
934
950
& zicntr_config ,
951
+ & zicond_config ,
935
952
& zicsr_config ,
936
953
& zifencei_config ,
937
954
& zihpm_config ,
0 commit comments