# SPDX-License-Identifier: GPL-2.0-only
#
# Solarflare device configuration
#

config NET_VENDOR_SOLARFLARE
	bool "Solarflare devices"
	default y
	help
	  If you have a network (Ethernet) card belonging to this class, say Y.

	  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 Solarflare devices. If you say Y, you will be asked
	  for your specific card in the following questions.

if NET_VENDOR_SOLARFLARE

config SFC
	tristate "Solarflare SFC9100/EF100-family support"
	depends on PCI
	depends on PTP_1588_CLOCK_OPTIONAL
	select MDIO
	select CRC32
	select NET_DEVLINK
	help
	  This driver supports 10/40-gigabit Ethernet cards based on
	  the Solarflare SFC9100-family controllers.

	  It also supports 10/25/40/100-gigabit Ethernet cards based
	  on the Solarflare EF100 networking IP in Xilinx FPGAs.

	  To compile this driver as a module, choose M here.  The module
	  will be called sfc.
config SFC_MTD
	bool "Solarflare SFC9100-family MTD support"
	depends on SFC && MTD && !(SFC=y && MTD=m)
	default y
	help
	  This exposes the on-board flash and/or EEPROM as MTD devices
	  (e.g. /dev/mtd1).  This is required to update the firmware or
	  the boot configuration under Linux.
config SFC_MCDI_MON
	bool "Solarflare SFC9100-family hwmon support"
	depends on SFC && HWMON && !(SFC=y && HWMON=m)
	default y
	help
	  This exposes the on-board firmware-managed sensors as a
	  hardware monitor device.
config SFC_SRIOV
	bool "Solarflare SFC9100-family SR-IOV support"
	depends on SFC && PCI_IOV
	depends on INET
	default y
	help
	  This enables support for the Single Root I/O Virtualization
	  features, allowing accelerated network performance in
	  virtualized environments.
config SFC_MCDI_LOGGING
	bool "Solarflare SFC9100-family MCDI logging support"
	depends on SFC
	default y
	help
	  This enables support for tracing of MCDI (Management-Controller-to-
	  Driver-Interface) commands and responses, allowing debugging of
	  driver/firmware interaction.  The tracing is actually enabled by
	  a sysfs file 'mcdi_logging' under the PCI device.

source "drivers/net/ethernet/sfc/falcon/Kconfig"
source "drivers/net/ethernet/sfc/siena/Kconfig"

endif # NET_VENDOR_SOLARFLARE
