virt.mk 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. #
  2. # Copyright (C) 2016 Yousong Zhou <[email protected]>
  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. define KernelPackage/kvm-x86
  17. SUBMENU:=Virtualization
  18. TITLE:=Kernel-based Virtual Machine (KVM) support
  19. DEPENDS:=@TARGET_x86_generic||TARGET_x86_64 +kmod-irqbypass
  20. KCONFIG:=\
  21. CONFIG_KVM \
  22. CONFIG_KVM_MMU_AUDIT=n \
  23. [email protected] \
  24. CONFIG_VIRTUALIZATION=y
  25. FILES:= $(LINUX_DIR)/arch/$(LINUX_KARCH)/kvm/kvm.ko
  26. AUTOLOAD:=$(call AutoProbe,kvm.ko)
  27. endef
  28. define KernelPackage/kvm-x86/description
  29. Support hosting fully virtualized guest machines using hardware
  30. virtualization extensions. You will need a fairly recent
  31. processor equipped with virtualization extensions. You will also
  32. need to select one or more of the processor modules.
  33. This module provides access to the hardware capabilities through
  34. a character device node named /dev/kvm.
  35. endef
  36. $(eval $(call KernelPackage,kvm-x86))
  37. define KernelPackage/kvm-intel
  38. SUBMENU:=Virtualization
  39. TITLE:=KVM for Intel processors support
  40. DEPENDS:=+kmod-kvm-x86
  41. KCONFIG:=CONFIG_KVM_INTEL
  42. FILES:= $(LINUX_DIR)/arch/$(LINUX_KARCH)/kvm/kvm-intel.ko
  43. AUTOLOAD:=$(call AutoProbe,kvm-intel.ko)
  44. endef
  45. define KernelPackage/kvm-intel/description
  46. Provides support for KVM on Intel processors equipped with the VT
  47. extensions.
  48. endef
  49. $(eval $(call KernelPackage,kvm-intel))
  50. define KernelPackage/kvm-amd
  51. SUBMENU:=Virtualization
  52. TITLE:=KVM for AMD processors support
  53. DEPENDS:=+kmod-kvm-x86
  54. KCONFIG:=CONFIG_KVM_AMD
  55. FILES:= $(LINUX_DIR)/arch/$(LINUX_KARCH)/kvm/kvm-amd.ko
  56. AUTOLOAD:=$(call AutoProbe,kvm-amd.ko)
  57. endef
  58. define KernelPackage/kvm-amd/description
  59. Provides support for KVM on AMD processors equipped with the AMD-V
  60. (SVM) extensions.
  61. endef
  62. $(eval $(call KernelPackage,kvm-amd))
  63. define KernelPackage/vfio
  64. SUBMENU:=Virtualization
  65. TITLE:=VFIO Non-Privileged userspace driver framework
  66. DEPENDS:=@TARGET_x86_64||TARGET_armsr_armv8
  67. KCONFIG:= \
  68. CONFIG_VFIO \
  69. CONFIG_VFIO_NOIOMMU=n \
  70. CONFIG_VFIO_MDEV=n
  71. FILES:= \
  72. $(LINUX_DIR)/drivers/vfio/vfio.ko \
  73. $(LINUX_DIR)/drivers/vfio/[email protected] \
  74. $(LINUX_DIR)/drivers/vfio/vfio_iommu_type1.ko
  75. AUTOLOAD:=$(call AutoProbe,vfio vfio_iommu_type1 +LINUX_6_1:vfio_virqfd)
  76. endef
  77. define KernelPackage/vfio/description
  78. VFIO provides a framework for secure userspace device drivers.
  79. endef
  80. $(eval $(call KernelPackage,vfio))
  81. define KernelPackage/vfio-pci
  82. SUBMENU:=Virtualization
  83. TITLE:=Generic VFIO support for any PCI device
  84. DEPENDS:=@TARGET_x86_64||TARGET_armsr_armv8 @PCI_SUPPORT +kmod-vfio +kmod-irqbypass
  85. KCONFIG:= \
  86. CONFIG_VFIO_PCI \
  87. CONFIG_VFIO_PCI_IGD=n
  88. FILES:= \
  89. $(LINUX_DIR)/drivers/vfio/pci/vfio-pci-core.ko \
  90. $(LINUX_DIR)/drivers/vfio/pci/vfio-pci.ko
  91. AUTOLOAD:=$(call AutoProbe,vfio-pci)
  92. endef
  93. define KernelPackage/vfio-pci/description
  94. Support for the generic PCI VFIO bus driver which can connect any PCI
  95. device to the VFIO framework.
  96. endef
  97. $(eval $(call KernelPackage,vfio-pci))
  98. define KernelPackage/vhost
  99. SUBMENU:=Virtualization
  100. TITLE:=Host kernel accelerator for virtio (base)
  101. KCONFIG:=CONFIG_VHOST
  102. FILES:=$(LINUX_DIR)/drivers/vhost/vhost.ko \
  103. $(LINUX_DIR)/drivers/vhost/vhost_iotlb.ko
  104. AUTOLOAD:=$(call AutoProbe,vhost vhost_iotlb)
  105. endef
  106. $(eval $(call KernelPackage,vhost))
  107. define KernelPackage/vhost-net
  108. SUBMENU:=Virtualization
  109. TITLE:=Host kernel accelerator for virtio-net
  110. DEPENDS:=+kmod-tun +kmod-vhost
  111. KCONFIG:=CONFIG_VHOST_NET
  112. FILES:=$(LINUX_DIR)/drivers/vhost/vhost_net.ko
  113. AUTOLOAD:=$(call AutoProbe,vhost_net)
  114. endef
  115. $(eval $(call KernelPackage,vhost-net))