x86: 6.6: enable System Management Mode emulation on KVM
[openwrt/openwrt.git] / package / kernel / linux / modules / virt.mk
1 #
2 # Copyright (C) 2016 Yousong Zhou <yszhou4tech@gmail.com>
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7 define KernelPackage/irqbypass
8 SUBMENU:=Virtualization
9 TITLE:=IRQ offload/bypass manager
10 KCONFIG:=CONFIG_IRQ_BYPASS_MANAGER
11 HIDDEN:=1
12 FILES:= $(LINUX_DIR)/virt/lib/irqbypass.ko
13 AUTOLOAD:=$(call AutoProbe,irqbypass.ko)
14 endef
15 $(eval $(call KernelPackage,irqbypass))
16
17
18 define KernelPackage/kvm-x86
19 SUBMENU:=Virtualization
20 TITLE:=Kernel-based Virtual Machine (KVM) support
21 DEPENDS:=@TARGET_x86_generic||TARGET_x86_64 +kmod-irqbypass
22 KCONFIG:=\
23 CONFIG_KVM \
24 CONFIG_KVM_MMU_AUDIT=n \
25 CONFIG_KVM_SMM=y@ge6.6 \
26 CONFIG_VIRTUALIZATION=y
27 FILES:= $(LINUX_DIR)/arch/$(LINUX_KARCH)/kvm/kvm.ko
28 AUTOLOAD:=$(call AutoProbe,kvm.ko)
29 endef
30
31 define KernelPackage/kvm-x86/description
32 Support hosting fully virtualized guest machines using hardware
33 virtualization extensions. You will need a fairly recent
34 processor equipped with virtualization extensions. You will also
35 need to select one or more of the processor modules.
36
37 This module provides access to the hardware capabilities through
38 a character device node named /dev/kvm.
39 endef
40
41 $(eval $(call KernelPackage,kvm-x86))
42
43
44 define KernelPackage/kvm-intel
45 SUBMENU:=Virtualization
46 TITLE:=KVM for Intel processors support
47 DEPENDS:=+kmod-kvm-x86
48 KCONFIG:=CONFIG_KVM_INTEL
49 FILES:= $(LINUX_DIR)/arch/$(LINUX_KARCH)/kvm/kvm-intel.ko
50 AUTOLOAD:=$(call AutoProbe,kvm-intel.ko)
51 endef
52
53 define KernelPackage/kvm-intel/description
54 Provides support for KVM on Intel processors equipped with the VT
55 extensions.
56 endef
57
58 $(eval $(call KernelPackage,kvm-intel))
59
60
61 define KernelPackage/kvm-amd
62 SUBMENU:=Virtualization
63 TITLE:=KVM for AMD processors support
64 DEPENDS:=+kmod-kvm-x86
65 KCONFIG:=CONFIG_KVM_AMD
66 FILES:= $(LINUX_DIR)/arch/$(LINUX_KARCH)/kvm/kvm-amd.ko
67 AUTOLOAD:=$(call AutoProbe,kvm-amd.ko)
68 endef
69
70 define KernelPackage/kvm-amd/description
71 Provides support for KVM on AMD processors equipped with the AMD-V
72 (SVM) extensions.
73 endef
74
75 $(eval $(call KernelPackage,kvm-amd))
76
77
78 define KernelPackage/vfio
79 SUBMENU:=Virtualization
80 TITLE:=VFIO Non-Privileged userspace driver framework
81 DEPENDS:=@TARGET_x86_64||TARGET_armsr_armv8
82 KCONFIG:= \
83 CONFIG_VFIO \
84 CONFIG_VFIO_NOIOMMU=n \
85 CONFIG_VFIO_MDEV=n
86 FILES:= \
87 $(LINUX_DIR)/drivers/vfio/vfio.ko \
88 $(LINUX_DIR)/drivers/vfio/vfio_virqfd.ko@lt6.2 \
89 $(LINUX_DIR)/drivers/vfio/vfio_iommu_type1.ko
90 AUTOLOAD:=$(call AutoProbe,vfio vfio_iommu_type1 +LINUX_6_1:vfio_virqfd)
91 endef
92
93 define KernelPackage/vfio/description
94 VFIO provides a framework for secure userspace device drivers.
95 endef
96
97 $(eval $(call KernelPackage,vfio))
98
99
100 define KernelPackage/vfio-pci
101 SUBMENU:=Virtualization
102 TITLE:=Generic VFIO support for any PCI device
103 DEPENDS:=@TARGET_x86_64||TARGET_armsr_armv8 @PCI_SUPPORT +kmod-vfio +kmod-irqbypass
104 KCONFIG:= \
105 CONFIG_VFIO_PCI \
106 CONFIG_VFIO_PCI_IGD=n
107 FILES:= \
108 $(LINUX_DIR)/drivers/vfio/pci/vfio-pci-core.ko \
109 $(LINUX_DIR)/drivers/vfio/pci/vfio-pci.ko
110 AUTOLOAD:=$(call AutoProbe,vfio-pci)
111 endef
112
113 define KernelPackage/vfio-pci/description
114 Support for the generic PCI VFIO bus driver which can connect any PCI
115 device to the VFIO framework.
116 endef
117
118 $(eval $(call KernelPackage,vfio-pci))
119
120
121 define KernelPackage/vhost
122 SUBMENU:=Virtualization
123 TITLE:=Host kernel accelerator for virtio (base)
124 KCONFIG:=CONFIG_VHOST
125 FILES:=$(LINUX_DIR)/drivers/vhost/vhost.ko \
126 $(LINUX_DIR)/drivers/vhost/vhost_iotlb.ko
127 AUTOLOAD:=$(call AutoProbe,vhost vhost_iotlb)
128 endef
129
130 $(eval $(call KernelPackage,vhost))
131
132
133 define KernelPackage/vhost-net
134 SUBMENU:=Virtualization
135 TITLE:=Host kernel accelerator for virtio-net
136 DEPENDS:=+kmod-tun +kmod-vhost
137 KCONFIG:=CONFIG_VHOST_NET
138 FILES:=$(LINUX_DIR)/drivers/vhost/vhost_net.ko
139 AUTOLOAD:=$(call AutoProbe,vhost_net)
140 endef
141
142 $(eval $(call KernelPackage,vhost-net))