]> Git Repo - linux.git/commitdiff
Merge tag 'kvm-riscv-6.13-2' of https://github.com/kvm-riscv/linux into HEAD
authorPaolo Bonzini <[email protected]>
Wed, 27 Nov 2024 17:00:28 +0000 (12:00 -0500)
committerPaolo Bonzini <[email protected]>
Wed, 27 Nov 2024 17:00:28 +0000 (12:00 -0500)
KVM/riscv changes for 6.13 part #2

- Svade and Svadu extension support for Host and Guest/VM

1  2 
Documentation/devicetree/bindings/riscv/extensions.yaml
arch/riscv/Kconfig
arch/riscv/include/asm/csr.h
arch/riscv/include/asm/hwcap.h
arch/riscv/include/uapi/asm/kvm.h
arch/riscv/kernel/cpufeature.c
arch/riscv/kvm/vcpu_onereg.c
tools/testing/selftests/kvm/riscv/get-reg-list.c

Simple merge
index fe5d4eb9adea1d4e3065a4d6e2ff361a52aecc44,524cd4131c713d46200c1859d1c403a0c4c802a0..37bdea65bbd8a1a313cc7ba00b80fc5071b9809a
  /* xENVCFG flags */
  #define ENVCFG_STCE                   (_AC(1, ULL) << 63)
  #define ENVCFG_PBMTE                  (_AC(1, ULL) << 62)
+ #define ENVCFG_ADUE                   (_AC(1, ULL) << 61)
 +#define ENVCFG_PMM                    (_AC(0x3, ULL) << 32)
 +#define ENVCFG_PMM_PMLEN_0            (_AC(0x0, ULL) << 32)
 +#define ENVCFG_PMM_PMLEN_7            (_AC(0x2, ULL) << 32)
 +#define ENVCFG_PMM_PMLEN_16           (_AC(0x3, ULL) << 32)
  #define ENVCFG_CBZE                   (_AC(1, UL) << 7)
  #define ENVCFG_CBCFE                  (_AC(1, UL) << 6)
  #define ENVCFG_CBIE_SHIFT             4
index 08d2a5697466d07fe2319a2423f04657177db37f,7f72789ba3d5daec2414faefea38f52efb9145f1..869da082252a460559c9beea3829cc90860d6e9a
  #define RISCV_ISA_EXT_ZCMOP           84
  #define RISCV_ISA_EXT_ZAWRS           85
  #define RISCV_ISA_EXT_SVVPTC          86
 -#define RISCV_ISA_EXT_SVADE           87
 -#define RISCV_ISA_EXT_SVADU           88
 +#define RISCV_ISA_EXT_SMMPM           87
 +#define RISCV_ISA_EXT_SMNPM           88
 +#define RISCV_ISA_EXT_SSNPM           89
 +#define RISCV_ISA_EXT_ZABHA           90
 +#define RISCV_ISA_EXT_ZICCRSE         91
++#define RISCV_ISA_EXT_SVADE           92
++#define RISCV_ISA_EXT_SVADU           93
  
  #define RISCV_ISA_EXT_XLINUXENVCFG    127
  
index 4f24201376b17215315cf1fb8888d0a562dc76ac,85bbc472989dffe73c5a96716397002ebef40596..3482c9a73d1b644385182436192914f34b50b997
@@@ -175,8 -175,8 +175,10 @@@ enum KVM_RISCV_ISA_EXT_ID 
        KVM_RISCV_ISA_EXT_ZCF,
        KVM_RISCV_ISA_EXT_ZCMOP,
        KVM_RISCV_ISA_EXT_ZAWRS,
 +      KVM_RISCV_ISA_EXT_SMNPM,
 +      KVM_RISCV_ISA_EXT_SSNPM,
+       KVM_RISCV_ISA_EXT_SVADE,
+       KVM_RISCV_ISA_EXT_SVADU,
        KVM_RISCV_ISA_EXT_MAX,
  };
  
index eb904ca64ad03565c6d521350f5e6b4c5cb9c6d9,06ca264d481012669c50f582b8f8a63d48ab9724..c92bd6a36887e25a75baaf29c9c728344a1c5335
@@@ -384,8 -387,9 +394,10 @@@ const struct riscv_isa_ext_data riscv_i
        __RISCV_ISA_EXT_DATA(smstateen, RISCV_ISA_EXT_SMSTATEEN),
        __RISCV_ISA_EXT_DATA(ssaia, RISCV_ISA_EXT_SSAIA),
        __RISCV_ISA_EXT_DATA(sscofpmf, RISCV_ISA_EXT_SSCOFPMF),
 +      __RISCV_ISA_EXT_SUPERSET(ssnpm, RISCV_ISA_EXT_SSNPM, riscv_xlinuxenvcfg_exts),
        __RISCV_ISA_EXT_DATA(sstc, RISCV_ISA_EXT_SSTC),
+       __RISCV_ISA_EXT_DATA(svade, RISCV_ISA_EXT_SVADE),
+       __RISCV_ISA_EXT_DATA_VALIDATE(svadu, RISCV_ISA_EXT_SVADU, riscv_ext_svadu_validate),
        __RISCV_ISA_EXT_DATA(svinval, RISCV_ISA_EXT_SVINVAL),
        __RISCV_ISA_EXT_DATA(svnapot, RISCV_ISA_EXT_SVNAPOT),
        __RISCV_ISA_EXT_DATA(svpbmt, RISCV_ISA_EXT_SVPBMT),
index 5b68490ad9b75fef6a18289d8c5cf9291594e01e,b3f58908902a7487114b5d2acbd6ac99bc61769d..753f66c8b70a72e76210075b4e07849741f614d4
@@@ -38,8 -38,9 +39,10 @@@ static const unsigned long kvm_isa_ext_
        KVM_ISA_EXT_ARR(SMSTATEEN),
        KVM_ISA_EXT_ARR(SSAIA),
        KVM_ISA_EXT_ARR(SSCOFPMF),
 +      KVM_ISA_EXT_ARR(SSNPM),
        KVM_ISA_EXT_ARR(SSTC),
+       KVM_ISA_EXT_ARR(SVADE),
+       KVM_ISA_EXT_ARR(SVADU),
        KVM_ISA_EXT_ARR(SVINVAL),
        KVM_ISA_EXT_ARR(SVNAPOT),
        KVM_ISA_EXT_ARR(SVPBMT),
index 54ab484d0000646ee526a6017d097ea728eb44ba,aac40652e181738dc00f260679bf0ab11dd6e9cf..4bc1051848e58340199c8a01af8889803a4fe72d
@@@ -45,8 -44,9 +45,10 @@@ bool filter_reg(__u64 reg
        case KVM_REG_RISCV_ISA_EXT | KVM_REG_RISCV_ISA_SINGLE | KVM_RISCV_ISA_EXT_SMSTATEEN:
        case KVM_REG_RISCV_ISA_EXT | KVM_REG_RISCV_ISA_SINGLE | KVM_RISCV_ISA_EXT_SSAIA:
        case KVM_REG_RISCV_ISA_EXT | KVM_REG_RISCV_ISA_SINGLE | KVM_RISCV_ISA_EXT_SSCOFPMF:
 +      case KVM_REG_RISCV_ISA_EXT | KVM_REG_RISCV_ISA_SINGLE | KVM_RISCV_ISA_EXT_SSNPM:
        case KVM_REG_RISCV_ISA_EXT | KVM_REG_RISCV_ISA_SINGLE | KVM_RISCV_ISA_EXT_SSTC:
+       case KVM_REG_RISCV_ISA_EXT | KVM_REG_RISCV_ISA_SINGLE | KVM_RISCV_ISA_EXT_SVADE:
+       case KVM_REG_RISCV_ISA_EXT | KVM_REG_RISCV_ISA_SINGLE | KVM_RISCV_ISA_EXT_SVADU:
        case KVM_REG_RISCV_ISA_EXT | KVM_REG_RISCV_ISA_SINGLE | KVM_RISCV_ISA_EXT_SVINVAL:
        case KVM_REG_RISCV_ISA_EXT | KVM_REG_RISCV_ISA_SINGLE | KVM_RISCV_ISA_EXT_SVNAPOT:
        case KVM_REG_RISCV_ISA_EXT | KVM_REG_RISCV_ISA_SINGLE | KVM_RISCV_ISA_EXT_SVPBMT:
@@@ -420,8 -419,9 +422,10 @@@ static const char *isa_ext_single_id_to
                KVM_ISA_EXT_ARR(SMSTATEEN),
                KVM_ISA_EXT_ARR(SSAIA),
                KVM_ISA_EXT_ARR(SSCOFPMF),
 +              KVM_ISA_EXT_ARR(SSNPM),
                KVM_ISA_EXT_ARR(SSTC),
+               KVM_ISA_EXT_ARR(SVADE),
+               KVM_ISA_EXT_ARR(SVADU),
                KVM_ISA_EXT_ARR(SVINVAL),
                KVM_ISA_EXT_ARR(SVNAPOT),
                KVM_ISA_EXT_ARR(SVPBMT),
@@@ -950,11 -950,11 +954,13 @@@ KVM_ISA_EXT_SUBLIST_CONFIG(aia, AIA)
  KVM_ISA_EXT_SUBLIST_CONFIG(fp_f, FP_F);
  KVM_ISA_EXT_SUBLIST_CONFIG(fp_d, FP_D);
  KVM_ISA_EXT_SIMPLE_CONFIG(h, H);
 +KVM_ISA_EXT_SIMPLE_CONFIG(smnpm, SMNPM);
  KVM_ISA_EXT_SUBLIST_CONFIG(smstateen, SMSTATEEN);
  KVM_ISA_EXT_SIMPLE_CONFIG(sscofpmf, SSCOFPMF);
 +KVM_ISA_EXT_SIMPLE_CONFIG(ssnpm, SSNPM);
  KVM_ISA_EXT_SIMPLE_CONFIG(sstc, SSTC);
+ KVM_ISA_EXT_SIMPLE_CONFIG(svade, SVADE);
+ KVM_ISA_EXT_SIMPLE_CONFIG(svadu, SVADU);
  KVM_ISA_EXT_SIMPLE_CONFIG(svinval, SVINVAL);
  KVM_ISA_EXT_SIMPLE_CONFIG(svnapot, SVNAPOT);
  KVM_ISA_EXT_SIMPLE_CONFIG(svpbmt, SVPBMT);
@@@ -1015,11 -1015,11 +1021,13 @@@ struct vcpu_reg_list *vcpu_configs[] = 
        &config_fp_f,
        &config_fp_d,
        &config_h,
 +      &config_smnpm,
        &config_smstateen,
        &config_sscofpmf,
 +      &config_ssnpm,
        &config_sstc,
+       &config_svade,
+       &config_svadu,
        &config_svinval,
        &config_svnapot,
        &config_svpbmt,
This page took 0.116675 seconds and 4 git commands to generate.