1 #ifndef KVM__KVM_CONFIG_ARCH_H 2 #define KVM__KVM_CONFIG_ARCH_H 3 4 #include "kvm/parse-options.h" 5 6 struct kvm_config_arch { 7 const char *dump_dtb_filename; 8 u64 custom_mvendorid; 9 u64 custom_marchid; 10 u64 custom_mimpid; 11 bool ext_disabled[KVM_RISCV_ISA_EXT_MAX]; 12 bool sbi_ext_disabled[KVM_RISCV_SBI_EXT_MAX]; 13 }; 14 15 #define OPT_ARCH_RUN(pfx, cfg) \ 16 pfx, \ 17 OPT_STRING('\0', "dump-dtb", &(cfg)->dump_dtb_filename, \ 18 ".dtb file", "Dump generated .dtb to specified file"),\ 19 OPT_U64('\0', "custom-mvendorid", \ 20 &(cfg)->custom_mvendorid, \ 21 "Show custom mvendorid to Guest VCPU"), \ 22 OPT_U64('\0', "custom-marchid", \ 23 &(cfg)->custom_marchid, \ 24 "Show custom marchid to Guest VCPU"), \ 25 OPT_U64('\0', "custom-mimpid", \ 26 &(cfg)->custom_mimpid, \ 27 "Show custom mimpid to Guest VCPU"), \ 28 OPT_BOOLEAN('\0', "disable-sstc", \ 29 &(cfg)->ext_disabled[KVM_RISCV_ISA_EXT_SSTC], \ 30 "Disable Sstc Extension"), \ 31 OPT_BOOLEAN('\0', "disable-svinval", \ 32 &(cfg)->ext_disabled[KVM_RISCV_ISA_EXT_SVINVAL], \ 33 "Disable Svinval Extension"), \ 34 OPT_BOOLEAN('\0', "disable-svpbmt", \ 35 &(cfg)->ext_disabled[KVM_RISCV_ISA_EXT_SVPBMT], \ 36 "Disable Svpbmt Extension"), \ 37 OPT_BOOLEAN('\0', "disable-zicbom", \ 38 &(cfg)->ext_disabled[KVM_RISCV_ISA_EXT_ZICBOM], \ 39 "Disable Zicbom Extension"), \ 40 OPT_BOOLEAN('\0', "disable-zihintpause", \ 41 &(cfg)->ext_disabled[KVM_RISCV_ISA_EXT_ZIHINTPAUSE],\ 42 "Disable Zihintpause Extension"), \ 43 OPT_BOOLEAN('\0', "disable-sbi-legacy", \ 44 &(cfg)->sbi_ext_disabled[KVM_RISCV_SBI_EXT_V01], \ 45 "Disable SBI Legacy Extensions"), \ 46 OPT_BOOLEAN('\0', "disable-sbi-time", \ 47 &(cfg)->sbi_ext_disabled[KVM_RISCV_SBI_EXT_TIME], \ 48 "Disable SBI Time Extension"), \ 49 OPT_BOOLEAN('\0', "disable-sbi-ipi", \ 50 &(cfg)->sbi_ext_disabled[KVM_RISCV_SBI_EXT_IPI], \ 51 "Disable SBI IPI Extension"), \ 52 OPT_BOOLEAN('\0', "disable-sbi-rfence", \ 53 &(cfg)->sbi_ext_disabled[KVM_RISCV_SBI_EXT_RFENCE], \ 54 "Disable SBI RFence Extension"), \ 55 OPT_BOOLEAN('\0', "disable-sbi-srst", \ 56 &(cfg)->sbi_ext_disabled[KVM_RISCV_SBI_EXT_SRST], \ 57 "Disable SBI SRST Extension"), \ 58 OPT_BOOLEAN('\0', "disable-sbi-hsm", \ 59 &(cfg)->sbi_ext_disabled[KVM_RISCV_SBI_EXT_HSM], \ 60 "Disable SBI HSM Extension"), \ 61 OPT_BOOLEAN('\0', "disable-sbi-pmu", \ 62 &(cfg)->sbi_ext_disabled[KVM_RISCV_SBI_EXT_PMU], \ 63 "Disable SBI PMU Extension"), \ 64 OPT_BOOLEAN('\0', "disable-sbi-experimental", \ 65 &(cfg)->sbi_ext_disabled[KVM_RISCV_SBI_EXT_EXPERIMENTAL],\ 66 "Disable SBI Experimental Extensions"), \ 67 OPT_BOOLEAN('\0', "disable-sbi-vendor", \ 68 &(cfg)->sbi_ext_disabled[KVM_RISCV_SBI_EXT_VENDOR], \ 69 "Disable SBI Vendor Extensions"), 70 71 #endif /* KVM__KVM_CONFIG_ARCH_H */ 72