virt.mk 3.8 KB

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