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