blob: fb811d5877bdac631d2c7f8ee72ff08992dfc4c7 [file] [log] [blame]
b.liue9582032025-04-17 19:18:16 +08001#
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#
7define 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)
14endef
15$(eval $(call KernelPackage,irqbypass))
16
17
18define 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)
29endef
30
31define 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.
39endef
40
41$(eval $(call KernelPackage,kvm-x86))
42
43
44define 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)
51endef
52
53define KernelPackage/kvm-intel/description
54 Provides support for KVM on Intel processors equipped with the VT
55 extensions.
56endef
57
58$(eval $(call KernelPackage,kvm-intel))
59
60
61define 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)
68endef
69
70define KernelPackage/kvm-amd/description
71 Provides support for KVM on AMD processors equipped with the AMD-V
72 (SVM) extensions.
73endef
74
75$(eval $(call KernelPackage,kvm-amd))
76
77
78define KernelPackage/vfio
79 SUBMENU:=Virtualization
80 TITLE:=VFIO Non-Privileged userspace driver framework
81 DEPENDS:=@TARGET_x86_64||TARGET_armvirt_64
82 KCONFIG:= \
83 CONFIG_VFIO \
84 CONFIG_VFIO_NOIOMMU=n \
85 CONFIG_VFIO_MDEV=n
86 MODPARAMS.vfio:=enable_unsafe_noiommu_mode=n
87 FILES:= \
88 $(LINUX_DIR)/drivers/vfio/vfio.ko \
89 $(LINUX_DIR)/drivers/vfio/vfio_virqfd.ko@lt6.2 \
90 $(LINUX_DIR)/drivers/vfio/vfio_iommu_type1.ko
91 AUTOLOAD:=$(call AutoProbe,vfio vfio_iommu_type1 vfio_virqfd)
92endef
93
94define KernelPackage/vfio/description
95 VFIO provides a framework for secure userspace device drivers.
96endef
97
98$(eval $(call KernelPackage,vfio))
99
100
101define KernelPackage/vfio-pci
102 SUBMENU:=Virtualization
103 TITLE:=Generic VFIO support for any PCI device
104 DEPENDS:=@TARGET_x86_64 @PCI_SUPPORT +kmod-vfio +kmod-irqbypass
105 KCONFIG:= \
106 CONFIG_VFIO_PCI \
107 CONFIG_VFIO_PCI_IGD=n
108 FILES:= \
109 $(LINUX_DIR)/drivers/vfio/pci/vfio-pci-core.ko \
110 $(LINUX_DIR)/drivers/vfio/pci/vfio-pci.ko
111 AUTOLOAD:=$(call AutoProbe,vfio-pci)
112endef
113
114define KernelPackage/vfio-pci/description
115 Support for the generic PCI VFIO bus driver which can connect any PCI
116 device to the VFIO framework.
117endef
118
119$(eval $(call KernelPackage,vfio-pci))
120
121
122define KernelPackage/vhost
123 SUBMENU:=Virtualization
124 TITLE:=Host kernel accelerator for virtio (base)
125 KCONFIG:=CONFIG_VHOST
126 FILES:=$(LINUX_DIR)/drivers/vhost/vhost.ko \
127 $(LINUX_DIR)/drivers/vhost/vhost_iotlb.ko
128 AUTOLOAD:=$(call AutoProbe,vhost vhost_iotlb)
129endef
130
131$(eval $(call KernelPackage,vhost))
132
133
134define KernelPackage/vhost-net
135 SUBMENU:=Virtualization
136 TITLE:=Host kernel accelerator for virtio-net
137 DEPENDS:=+kmod-tun +kmod-vhost
138 KCONFIG:=CONFIG_VHOST_NET
139 FILES:=$(LINUX_DIR)/drivers/vhost/vhost_net.ko
140 AUTOLOAD:=$(call AutoProbe,vhost_net)
141endef
142
143$(eval $(call KernelPackage,vhost-net))