xref: /kvmtool/arm/include/arm-common/kvm-config-arch.h (revision 43d2781c273192b678b090f3e3c31edfbaeca54d)
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 	unsigned int	force_cntfrq;
9 	bool		virtio_trans_pci;
10 	bool		aarch32_guest;
11 	enum irqchip_type irqchip;
12 };
13 
14 int irqchip_parser(const struct option *opt, const char *arg, int unset);
15 
16 #define OPT_ARCH_RUN(pfx, cfg)							\
17 	pfx,									\
18 	ARM_OPT_ARCH_RUN(cfg)							\
19 	OPT_STRING('\0', "dump-dtb", &(cfg)->dump_dtb_filename,			\
20 		   ".dtb file", "Dump generated .dtb to specified file"),	\
21 	OPT_UINTEGER('\0', "override-bad-firmware-cntfrq", &(cfg)->force_cntfrq,\
22 		     "Specify Generic Timer frequency in guest DT to "		\
23 		     "work around buggy secure firmware *Firmware should be "	\
24 		     "updated to program CNTFRQ correctly*"),			\
25 	OPT_BOOLEAN('\0', "force-pci", &(cfg)->virtio_trans_pci,		\
26 		    "Force virtio devices to use PCI as their default "		\
27 		    "transport"),						\
28         OPT_CALLBACK('\0', "irqchip", &(cfg)->irqchip,				\
29 		     "[gicv2|gicv3]",					\
30 		     "Type of interrupt controller to emulate in the guest",	\
31 		     irqchip_parser, NULL),
32 
33 #endif /* ARM_COMMON__KVM_CONFIG_ARCH_H */
34