menu "Intel MIC & related support"

comment "Intel MIC Bus Driver"

config INTEL_MIC_BUS
	tristate "Intel MIC Bus Driver"
	depends on 64BIT && PCI && X86 && X86_DEV_DMA_OPS
	help
	  This option is selected by any driver which registers a
	  device or driver on the MIC Bus, such as CONFIG_INTEL_MIC_HOST,
	  CONFIG_INTEL_MIC_CARD, CONFIG_INTEL_MIC_X100_DMA etc.

	  If you are building a host/card kernel with an Intel MIC device
	  then say M (recommended) or Y, else say N. If unsure say N.

	  More information about the Intel MIC family as well as the Linux
	  OS and tools for MIC to use with this driver are available from
	  <http://software.intel.com/en-us/mic-developer>.

comment "SCIF Bus Driver"

config SCIF_BUS
	tristate "SCIF Bus Driver"
	depends on 64BIT && PCI && X86 && X86_DEV_DMA_OPS
	help
	  This option is selected by any driver which registers a
	  device or driver on the SCIF Bus, such as CONFIG_INTEL_MIC_HOST
	  and CONFIG_INTEL_MIC_CARD.

	  If you are building a host/card kernel with an Intel MIC device
	  then say M (recommended) or Y, else say N. If unsure say N.

	  More information about the Intel MIC family as well as the Linux
	  OS and tools for MIC to use with this driver are available from
	  <http://software.intel.com/en-us/mic-developer>.

comment "VOP Bus Driver"

config VOP_BUS
	tristate "VOP Bus Driver"
	depends on 64BIT && PCI && X86 && X86_DEV_DMA_OPS
	help
	  This option is selected by any driver which registers a
	  device or driver on the VOP Bus, such as CONFIG_INTEL_MIC_HOST
	  and CONFIG_INTEL_MIC_CARD.

	  If you are building a host/card kernel with an Intel MIC device
	  then say M (recommended) or Y, else say N. If unsure say N.

	  More information about the Intel MIC family as well as the Linux
	  OS and tools for MIC to use with this driver are available from
	  <http://software.intel.com/en-us/mic-developer>.

comment "Intel MIC Host Driver"

config INTEL_MIC_HOST
	tristate "Intel MIC Host Driver"
	depends on 64BIT && PCI && X86
	depends on INTEL_MIC_BUS && SCIF_BUS && MIC_COSM && VOP_BUS
	help
	  This enables Host Driver support for the Intel Many Integrated
	  Core (MIC) family of PCIe form factor coprocessor devices that
	  run a 64 bit Linux OS. The driver manages card OS state and
	  enables communication between host and card. Intel MIC X100
	  devices are currently supported.

	  If you are building a host kernel with an Intel MIC device then
	  say M (recommended) or Y, else say N. If unsure say N.

	  More information about the Intel MIC family as well as the Linux
	  OS and tools for MIC to use with this driver are available from
	  <http://software.intel.com/en-us/mic-developer>.

comment "Intel MIC Card Driver"

config INTEL_MIC_CARD
	tristate "Intel MIC Card Driver"
	depends on 64BIT && X86
	depends on INTEL_MIC_BUS && SCIF_BUS && MIC_COSM && VOP_BUS
	select VIRTIO
	help
	  This enables card driver support for the Intel Many Integrated
	  Core (MIC) device family. The card driver communicates shutdown/
	  crash events to the host and allows registration/configuration of
	  virtio devices. Intel MIC X100 devices are currently supported.

	  If you are building a card kernel for an Intel MIC device then
	  say M (recommended) or Y, else say N. If unsure say N.

	  For more information see
	  <http://software.intel.com/en-us/mic-developer>.

comment "SCIF Driver"

config SCIF
	tristate "SCIF Driver"
	depends on 64BIT && PCI && X86 && SCIF_BUS && IOMMU_SUPPORT
	select IOMMU_IOVA
	help
	  This enables SCIF Driver support for the Intel Many Integrated
	  Core (MIC) family of PCIe form factor coprocessor devices that
	  run a 64 bit Linux OS. The Symmetric Communication Interface
	  (SCIF (pronounced as skiff)) is a low level communications API
	  across PCIe currently implemented for MIC.

	  If you are building a host kernel with an Intel MIC device then
	  say M (recommended) or Y, else say N. If unsure say N.

	  More information about the Intel MIC family as well as the Linux
	  OS and tools for MIC to use with this driver are available from
	  <http://software.intel.com/en-us/mic-developer>.

comment "Intel MIC Coprocessor State Management (COSM) Drivers"

config MIC_COSM
	tristate "Intel MIC Coprocessor State Management (COSM) Drivers"
	depends on 64BIT && PCI && X86 && SCIF
	help
	  This enables COSM driver support for the Intel Many
	  Integrated Core (MIC) family of PCIe form factor coprocessor
	  devices. COSM drivers implement functions such as boot,
	  shutdown, reset and reboot of MIC devices.

	  If you are building a host kernel with an Intel MIC device then
	  say M (recommended) or Y, else say N. If unsure say N.

	  More information about the Intel MIC family as well as the Linux
	  OS and tools for MIC to use with this driver are available from
	  <http://software.intel.com/en-us/mic-developer>.

comment "VOP Driver"

config VOP
	tristate "VOP Driver"
	depends on 64BIT && PCI && X86 && VOP_BUS
	select VHOST_RING
	select VIRTIO
	help
	  This enables VOP (Virtio over PCIe) Driver support for the Intel
	  Many Integrated Core (MIC) family of PCIe form factor coprocessor
	  devices. The VOP driver allows virtio drivers, e.g. net, console
	  and block drivers, on the card connect to user space virtio
	  devices on the host.

	  If you are building a host kernel with an Intel MIC device then
	  say M (recommended) or Y, else say N. If unsure say N.

	  More information about the Intel MIC family as well as the Linux
	  OS and tools for MIC to use with this driver are available from
	  <http://software.intel.com/en-us/mic-developer>.

if VOP
source "drivers/vhost/Kconfig.vringh"
endif

endmenu
