@@ -83,6 +83,7 @@ bool filter_reg(__u64 reg)
8383 case KVM_REG_RISCV_ISA_EXT | KVM_REG_RISCV_ISA_SINGLE | KVM_RISCV_ISA_EXT_ZFH :
8484 case KVM_REG_RISCV_ISA_EXT | KVM_REG_RISCV_ISA_SINGLE | KVM_RISCV_ISA_EXT_ZFHMIN :
8585 case KVM_REG_RISCV_ISA_EXT | KVM_REG_RISCV_ISA_SINGLE | KVM_RISCV_ISA_EXT_ZICBOM :
86+ case KVM_REG_RISCV_ISA_EXT | KVM_REG_RISCV_ISA_SINGLE | KVM_RISCV_ISA_EXT_ZICBOP :
8687 case KVM_REG_RISCV_ISA_EXT | KVM_REG_RISCV_ISA_SINGLE | KVM_RISCV_ISA_EXT_ZICBOZ :
8788 case KVM_REG_RISCV_ISA_EXT | KVM_REG_RISCV_ISA_SINGLE | KVM_RISCV_ISA_EXT_ZICCRSE :
8889 case KVM_REG_RISCV_ISA_EXT | KVM_REG_RISCV_ISA_SINGLE | KVM_RISCV_ISA_EXT_ZICNTR :
@@ -255,6 +256,8 @@ static const char *config_id_to_str(const char *prefix, __u64 id)
255256 return "KVM_REG_RISCV_CONFIG_REG(zicbom_block_size)" ;
256257 case KVM_REG_RISCV_CONFIG_REG (zicboz_block_size ):
257258 return "KVM_REG_RISCV_CONFIG_REG(zicboz_block_size)" ;
259+ case KVM_REG_RISCV_CONFIG_REG (zicbop_block_size ):
260+ return "KVM_REG_RISCV_CONFIG_REG(zicbop_block_size)" ;
258261 case KVM_REG_RISCV_CONFIG_REG (mvendorid ):
259262 return "KVM_REG_RISCV_CONFIG_REG(mvendorid)" ;
260263 case KVM_REG_RISCV_CONFIG_REG (marchid ):
@@ -535,6 +538,7 @@ static const char *isa_ext_single_id_to_str(__u64 reg_off)
535538 KVM_ISA_EXT_ARR (ZFH ),
536539 KVM_ISA_EXT_ARR (ZFHMIN ),
537540 KVM_ISA_EXT_ARR (ZICBOM ),
541+ KVM_ISA_EXT_ARR (ZICBOP ),
538542 KVM_ISA_EXT_ARR (ZICBOZ ),
539543 KVM_ISA_EXT_ARR (ZICCRSE ),
540544 KVM_ISA_EXT_ARR (ZICNTR ),
@@ -780,10 +784,13 @@ void print_reg(const char *prefix, __u64 id)
780784 */
781785static __u64 base_regs [] = {
782786 KVM_REG_RISCV | KVM_REG_SIZE_ULONG | KVM_REG_RISCV_CONFIG | KVM_REG_RISCV_CONFIG_REG (isa ),
787+ KVM_REG_RISCV | KVM_REG_SIZE_ULONG | KVM_REG_RISCV_CONFIG | KVM_REG_RISCV_CONFIG_REG (zicbom_block_size ),
783788 KVM_REG_RISCV | KVM_REG_SIZE_ULONG | KVM_REG_RISCV_CONFIG | KVM_REG_RISCV_CONFIG_REG (mvendorid ),
784789 KVM_REG_RISCV | KVM_REG_SIZE_ULONG | KVM_REG_RISCV_CONFIG | KVM_REG_RISCV_CONFIG_REG (marchid ),
785790 KVM_REG_RISCV | KVM_REG_SIZE_ULONG | KVM_REG_RISCV_CONFIG | KVM_REG_RISCV_CONFIG_REG (mimpid ),
791+ KVM_REG_RISCV | KVM_REG_SIZE_ULONG | KVM_REG_RISCV_CONFIG | KVM_REG_RISCV_CONFIG_REG (zicboz_block_size ),
786792 KVM_REG_RISCV | KVM_REG_SIZE_ULONG | KVM_REG_RISCV_CONFIG | KVM_REG_RISCV_CONFIG_REG (satp_mode ),
793+ KVM_REG_RISCV | KVM_REG_SIZE_ULONG | KVM_REG_RISCV_CONFIG | KVM_REG_RISCV_CONFIG_REG (zicbop_block_size ),
787794 KVM_REG_RISCV | KVM_REG_SIZE_ULONG | KVM_REG_RISCV_CORE | KVM_REG_RISCV_CORE_REG (regs .pc ),
788795 KVM_REG_RISCV | KVM_REG_SIZE_ULONG | KVM_REG_RISCV_CORE | KVM_REG_RISCV_CORE_REG (regs .ra ),
789796 KVM_REG_RISCV | KVM_REG_SIZE_ULONG | KVM_REG_RISCV_CORE | KVM_REG_RISCV_CORE_REG (regs .sp ),
@@ -864,6 +871,11 @@ static __u64 zicbom_regs[] = {
864871 KVM_REG_RISCV | KVM_REG_SIZE_ULONG | KVM_REG_RISCV_ISA_EXT | KVM_REG_RISCV_ISA_SINGLE | KVM_RISCV_ISA_EXT_ZICBOM ,
865872};
866873
874+ static __u64 zicbop_regs [] = {
875+ KVM_REG_RISCV | KVM_REG_SIZE_ULONG | KVM_REG_RISCV_CONFIG | KVM_REG_RISCV_CONFIG_REG (zicbop_block_size ),
876+ KVM_REG_RISCV | KVM_REG_SIZE_ULONG | KVM_REG_RISCV_ISA_EXT | KVM_REG_RISCV_ISA_SINGLE | KVM_RISCV_ISA_EXT_ZICBOP ,
877+ };
878+
867879static __u64 zicboz_regs [] = {
868880 KVM_REG_RISCV | KVM_REG_SIZE_ULONG | KVM_REG_RISCV_CONFIG | KVM_REG_RISCV_CONFIG_REG (zicboz_block_size ),
869881 KVM_REG_RISCV | KVM_REG_SIZE_ULONG | KVM_REG_RISCV_ISA_EXT | KVM_REG_RISCV_ISA_SINGLE | KVM_RISCV_ISA_EXT_ZICBOZ ,
@@ -1012,6 +1024,8 @@ static __u64 vector_regs[] = {
10121024 .regs = sbi_sta_regs, .regs_n = ARRAY_SIZE(sbi_sta_regs),}
10131025#define SUBLIST_ZICBOM \
10141026 {"zicbom", .feature = KVM_RISCV_ISA_EXT_ZICBOM, .regs = zicbom_regs, .regs_n = ARRAY_SIZE(zicbom_regs),}
1027+ #define SUBLIST_ZICBOP \
1028+ {"zicbop", .feature = KVM_RISCV_ISA_EXT_ZICBOP, .regs = zicbop_regs, .regs_n = ARRAY_SIZE(zicbop_regs),}
10151029#define SUBLIST_ZICBOZ \
10161030 {"zicboz", .feature = KVM_RISCV_ISA_EXT_ZICBOZ, .regs = zicboz_regs, .regs_n = ARRAY_SIZE(zicboz_regs),}
10171031#define SUBLIST_AIA \
@@ -1130,6 +1144,7 @@ KVM_ISA_EXT_SIMPLE_CONFIG(zfa, ZFA);
11301144KVM_ISA_EXT_SIMPLE_CONFIG (zfh , ZFH );
11311145KVM_ISA_EXT_SIMPLE_CONFIG (zfhmin , ZFHMIN );
11321146KVM_ISA_EXT_SUBLIST_CONFIG (zicbom , ZICBOM );
1147+ KVM_ISA_EXT_SUBLIST_CONFIG (zicbop , ZICBOP );
11331148KVM_ISA_EXT_SUBLIST_CONFIG (zicboz , ZICBOZ );
11341149KVM_ISA_EXT_SIMPLE_CONFIG (ziccrse , ZICCRSE );
11351150KVM_ISA_EXT_SIMPLE_CONFIG (zicntr , ZICNTR );
@@ -1204,6 +1219,7 @@ struct vcpu_reg_list *vcpu_configs[] = {
12041219 & config_zfh ,
12051220 & config_zfhmin ,
12061221 & config_zicbom ,
1222+ & config_zicbop ,
12071223 & config_zicboz ,
12081224 & config_ziccrse ,
12091225 & config_zicntr ,
0 commit comments