xref: /kvmtool/arm/include/arm-common/kvm-config-arch.h (revision ca31abf5d9c3453c852b263ccb451751b29b944b)
1 #ifndef ARM_COMMON__KVM_CONFIG_ARCH_H
2 #define ARM_COMMON__KVM_CONFIG_ARCH_H
3 
4 #include "kvm/parse-options.h"
5 
6 struct kvm_config_arch {
7 	const char	*dump_dtb_filename;
8 	const char	*vcpu_affinity;
9 	unsigned int	force_cntfrq;
10 	bool		aarch32_guest;
11 	bool		has_pmuv3;
12 	bool		mte_disabled;
13 	u64		kaslr_seed;
14 	enum irqchip_type irqchip;
15 	u64		fw_addr;
16 	unsigned int	sve_max_vq;
17 	bool		no_pvtime;
18 };
19 
20 int irqchip_parser(const struct option *opt, const char *arg, int unset);
21 
22 #define OPT_ARCH_RUN(pfx, cfg)							\
23 	pfx,									\
24 	ARM_OPT_ARCH_RUN(cfg)							\
25 	OPT_STRING('\0', "dump-dtb", &(cfg)->dump_dtb_filename,			\
26 		   ".dtb file", "Dump generated .dtb to specified file"),	\
27 	OPT_UINTEGER('\0', "override-bad-firmware-cntfrq", &(cfg)->force_cntfrq,\
28 		     "Specify Generic Timer frequency in guest DT to "		\
29 		     "work around buggy secure firmware *Firmware should be "	\
30 		     "updated to program CNTFRQ correctly*"),			\
31 	OPT_CALLBACK_NOOPT('\0', "force-pci", NULL, "",			\
32 			   "Force virtio devices to use PCI as their default "	\
33 			   "transport (Deprecated: Use --virtio-transport "	\
34 			   "option instead)", virtio_transport_parser, kvm),	\
35         OPT_CALLBACK('\0', "irqchip", &(cfg)->irqchip,				\
36 		     "[gicv2|gicv2m|gicv3|gicv3-its]",				\
37 		     "Type of interrupt controller to emulate in the guest",	\
38 		     irqchip_parser, NULL),					\
39 	OPT_U64('\0', "firmware-address", &(cfg)->fw_addr,			\
40 		"Address where firmware should be loaded"),
41 
42 #endif /* ARM_COMMON__KVM_CONFIG_ARCH_H */
43