xref: /kvmtool/riscv/include/kvm/kvm-config-arch.h (revision 56e2d678f578ae2ae093dd623ff1a76c1b9dde94)
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-ssaia",				\
29 		    &(cfg)->ext_disabled[KVM_RISCV_ISA_EXT_SSAIA],	\
30 		    "Disable Ssaia Extension"),				\
31 	OPT_BOOLEAN('\0', "disable-sstc",				\
32 		    &(cfg)->ext_disabled[KVM_RISCV_ISA_EXT_SSTC],	\
33 		    "Disable Sstc Extension"),				\
34 	OPT_BOOLEAN('\0', "disable-svinval",				\
35 		    &(cfg)->ext_disabled[KVM_RISCV_ISA_EXT_SVINVAL],	\
36 		    "Disable Svinval Extension"),			\
37 	OPT_BOOLEAN('\0', "disable-svnapot",				\
38 		    &(cfg)->ext_disabled[KVM_RISCV_ISA_EXT_SVNAPOT],	\
39 		    "Disable Svnapot Extension"),			\
40 	OPT_BOOLEAN('\0', "disable-svpbmt",				\
41 		    &(cfg)->ext_disabled[KVM_RISCV_ISA_EXT_SVPBMT],	\
42 		    "Disable Svpbmt Extension"),			\
43 	OPT_BOOLEAN('\0', "disable-zbb",				\
44 		    &(cfg)->ext_disabled[KVM_RISCV_ISA_EXT_ZBB],	\
45 		    "Disable Zbb Extension"),				\
46 	OPT_BOOLEAN('\0', "disable-zicbom",				\
47 		    &(cfg)->ext_disabled[KVM_RISCV_ISA_EXT_ZICBOM],	\
48 		    "Disable Zicbom Extension"),			\
49 	OPT_BOOLEAN('\0', "disable-zicboz",				\
50 		    &(cfg)->ext_disabled[KVM_RISCV_ISA_EXT_ZICBOZ],	\
51 		    "Disable Zicboz Extension"),			\
52 	OPT_BOOLEAN('\0', "disable-zihintpause",			\
53 		    &(cfg)->ext_disabled[KVM_RISCV_ISA_EXT_ZIHINTPAUSE],\
54 		    "Disable Zihintpause Extension"),			\
55 	OPT_BOOLEAN('\0', "disable-sbi-legacy",				\
56 		    &(cfg)->sbi_ext_disabled[KVM_RISCV_SBI_EXT_V01],	\
57 		    "Disable SBI Legacy Extensions"),			\
58 	OPT_BOOLEAN('\0', "disable-sbi-time",				\
59 		    &(cfg)->sbi_ext_disabled[KVM_RISCV_SBI_EXT_TIME],	\
60 		    "Disable SBI Time Extension"),			\
61 	OPT_BOOLEAN('\0', "disable-sbi-ipi",				\
62 		    &(cfg)->sbi_ext_disabled[KVM_RISCV_SBI_EXT_IPI],	\
63 		    "Disable SBI IPI Extension"),			\
64 	OPT_BOOLEAN('\0', "disable-sbi-rfence",				\
65 		    &(cfg)->sbi_ext_disabled[KVM_RISCV_SBI_EXT_RFENCE],	\
66 		    "Disable SBI RFence Extension"),			\
67 	OPT_BOOLEAN('\0', "disable-sbi-srst",				\
68 		    &(cfg)->sbi_ext_disabled[KVM_RISCV_SBI_EXT_SRST],	\
69 		    "Disable SBI SRST Extension"),			\
70 	OPT_BOOLEAN('\0', "disable-sbi-hsm",				\
71 		    &(cfg)->sbi_ext_disabled[KVM_RISCV_SBI_EXT_HSM],	\
72 		    "Disable SBI HSM Extension"),			\
73 	OPT_BOOLEAN('\0', "disable-sbi-pmu",				\
74 		    &(cfg)->sbi_ext_disabled[KVM_RISCV_SBI_EXT_PMU],	\
75 		    "Disable SBI PMU Extension"),			\
76 	OPT_BOOLEAN('\0', "disable-sbi-experimental",			\
77 		    &(cfg)->sbi_ext_disabled[KVM_RISCV_SBI_EXT_EXPERIMENTAL],\
78 		    "Disable SBI Experimental Extensions"),		\
79 	OPT_BOOLEAN('\0', "disable-sbi-vendor",				\
80 		    &(cfg)->sbi_ext_disabled[KVM_RISCV_SBI_EXT_VENDOR],	\
81 		    "Disable SBI Vendor Extensions"),
82 
83 #endif /* KVM__KVM_CONFIG_ARCH_H */
84