#
# Intel network device configuration
#

config NET_VENDOR_INTEL
	bool "Intel devices"
	default y
	depends on PCI || PCI_MSI || ISA || ISA_DMA_API || ARM || \
		   ARCH_ACORN || MCA || MCA_LEGACY || SNI_RM || SUN3 || \
		   GSC || BVME6000 || MVME16x || \
		   (ARM && ARCH_IXP4XX && IXP4XX_NPE && IXP4XX_QMGR) || \
		   EXPERIMENTAL
	---help---
	  If you have a network (Ethernet) card belonging to this class, say Y
	  and read the Ethernet-HOWTO, available from
	  <http://www.tldp.org/docs.html#howto>.

	  Note that the answer to this question doesn't directly affect the
	  kernel: saying N will just cause the configurator to skip all
	  the questions about Intel cards. If you say Y, you will be asked for
	  your specific card in the following questions.

if NET_VENDOR_INTEL

config E100
	tristate "Intel(R) PRO/100+ support"
	depends on PCI
	select NET_CORE
	select MII
	---help---
	  This driver supports Intel(R) PRO/100 family of adapters.
	  To verify that your adapter is supported, find the board ID number
	  on the adapter. Look for a label that has a barcode and a number
	  in the format 123456-001 (six digits hyphen three digits).

	  Use the above information and the Adapter & Driver ID Guide at:

	  <http://support.intel.com/support/network/adapter/pro100/21397.htm>

	  to identify the adapter.

	  For the latest Intel PRO/100 network driver for Linux, see:

	  <http://www.intel.com/p/en_US/support/highlights/network/pro100plus>

	  More specific information on configuring the driver is in
	  <file:Documentation/networking/e100.txt>.

	  To compile this driver as a module, choose M here. The module
	  will be called e100.

config E1000
	tristate "Intel(R) PRO/1000 Gigabit Ethernet support"
	depends on PCI
	---help---
	  This driver supports Intel(R) PRO/1000 gigabit ethernet family of
	  adapters.  For more information on how to identify your adapter, go
	  to the Adapter & Driver ID Guide at:

	  <http://support.intel.com/support/network/adapter/pro100/21397.htm>

	  For general information and support, go to the Intel support
	  website at:

	  <http://support.intel.com>

	  More specific information on configuring the driver is in
	  <file:Documentation/networking/e1000.txt>.

	  To compile this driver as a module, choose M here. The module
	  will be called e1000.

config E1000E
	tristate "Intel(R) PRO/1000 PCI-Express Gigabit Ethernet support"
	depends on PCI && (!SPARC32 || BROKEN)
	select CRC32
	---help---
	  This driver supports the PCI-Express Intel(R) PRO/1000 gigabit
	  ethernet family of adapters. For PCI or PCI-X e1000 adapters,
	  use the regular e1000 driver For more information on how to
	  identify your adapter, go to the Adapter & Driver ID Guide at:

	  <http://support.intel.com/support/network/adapter/pro100/21397.htm>

	  For general information and support, go to the Intel support
	  website at:

	  <http://support.intel.com>

	  To compile this driver as a module, choose M here. The module
	  will be called e1000e.

config IGB
	tristate "Intel(R) 82575/82576 PCI-Express Gigabit Ethernet support"
	depends on PCI
	---help---
	  This driver supports Intel(R) 82575/82576 gigabit ethernet family of
	  adapters.  For more information on how to identify your adapter, go
	  to the Adapter & Driver ID Guide at:

	  <http://support.intel.com/support/network/adapter/pro100/21397.htm>

	  For general information and support, go to the Intel support
	  website at:

	  <http://support.intel.com>

	  More specific information on configuring the driver is in
	  <file:Documentation/networking/e1000.txt>.

	  To compile this driver as a module, choose M here. The module
	  will be called igb.

config IGB_DCA
	bool "Direct Cache Access (DCA) Support"
	default y
	depends on IGB && DCA && !(IGB=y && DCA=m)
	---help---
	  Say Y here if you want to use Direct Cache Access (DCA) in the
	  driver.  DCA is a method for warming the CPU cache before data
	  is used, with the intent of lessening the impact of cache misses.

config IGB_PTP
	bool "PTP Hardware Clock (PHC)"
	default n
	depends on IGB && EXPERIMENTAL
	select PPS
	select PTP_1588_CLOCK
	---help---
	  Say Y here if you want to use PTP Hardware Clock (PHC) in the
	  driver.  Only the basic clock operations have been implemented.

	  Every timestamp and clock read operations must consult the
	  overflow counter to form a correct time value.

config IGBVF
	tristate "Intel(R) 82576 Virtual Function Ethernet support"
	depends on PCI
	---help---
	  This driver supports Intel(R) 82576 virtual functions.  For more
	  information on how to identify your adapter, go to the Adapter &
	  Driver ID Guide at:

	  <http://support.intel.com/support/network/adapter/pro100/21397.htm>

	  For general information and support, go to the Intel support
	  website at:

	  <http://support.intel.com>

	  More specific information on configuring the driver is in
	  <file:Documentation/networking/e1000.txt>.

	  To compile this driver as a module, choose M here. The module
	  will be called igbvf.

config IXGB
	tristate "Intel(R) PRO/10GbE support"
	depends on PCI
	---help---
	  This driver supports Intel(R) PRO/10GbE family of adapters for
	  PCI-X type cards. For PCI-E type cards, use the "ixgbe" driver
	  instead. For more information on how to identify your adapter, go
	  to the Adapter & Driver ID Guide at:

	  <http://support.intel.com/support/network/adapter/pro100/21397.htm>

	  For general information and support, go to the Intel support
	  website at:

	  <http://support.intel.com>

	  More specific information on configuring the driver is in
	  <file:Documentation/networking/ixgb.txt>.

	  To compile this driver as a module, choose M here. The module
	  will be called ixgb.

config IXGBE
	tristate "Intel(R) 10GbE PCI Express adapters support"
	depends on PCI && INET
	select MDIO
	---help---
	  This driver supports Intel(R) 10GbE PCI Express family of
	  adapters.  For more information on how to identify your adapter, go
	  to the Adapter & Driver ID Guide at:

	  <http://support.intel.com/support/network/adapter/pro100/21397.htm>

	  For general information and support, go to the Intel support
	  website at:

	  <http://support.intel.com>

	  To compile this driver as a module, choose M here. The module
	  will be called ixgbe.

config IXGBE_HWMON
	bool "Intel(R) 10GbE PCI Express adapters HWMON support"
	default y
	depends on IXGBE && HWMON && !(IXGBE=y && HWMON=m)
	---help---
	  Say Y if you want to expose the thermal sensor data on some of
	  our cards, via a hwmon sysfs interface.

config IXGBE_DCA
	bool "Direct Cache Access (DCA) Support"
	default y
	depends on IXGBE && DCA && !(IXGBE=y && DCA=m)
	---help---
	  Say Y here if you want to use Direct Cache Access (DCA) in the
	  driver.  DCA is a method for warming the CPU cache before data
	  is used, with the intent of lessening the impact of cache misses.

config IXGBE_DCB
	bool "Data Center Bridging (DCB) Support"
	default n
	depends on IXGBE && DCB
	---help---
	  Say Y here if you want to use Data Center Bridging (DCB) in the
	  driver.

	  If unsure, say N.

config IXGBE_PTP
	bool "PTP Clock Support"
	default n
	depends on IXGBE && EXPERIMENTAL
	select PPS
	select PTP_1588_CLOCK
	---help---
	  Say Y here if you want support for 1588 Timestamping with a
	  PHC device, using the PTP 1588 Clock support. This is
	  required to enable timestamping support for the device.

	  If unsure, say N.

config IXGBEVF
	tristate "Intel(R) 82599 Virtual Function Ethernet support"
	depends on PCI_MSI
	---help---
	  This driver supports Intel(R) 82599 virtual functions.  For more
	  information on how to identify your adapter, go to the Adapter &
	  Driver ID Guide at:

	  <http://support.intel.com/support/network/sb/CS-008441.htm>

	  For general information and support, go to the Intel support
	  website at:

	  <http://support.intel.com>

	  More specific information on configuring the driver is in
	  <file:Documentation/networking/ixgbevf.txt>.

	  To compile this driver as a module, choose M here. The module
	  will be called ixgbevf.  MSI-X interrupt support is required
	  for this driver to work correctly.

endif # NET_VENDOR_INTEL
