2019-05-19 13:07:45 +01:00
# SPDX-License-Identifier: GPL-2.0-only
2011-04-07 06:03:04 -07:00
#
# Broadcom device configuration
#
config NET_VENDOR_BROADCOM
bool "Broadcom devices"
2011-08-23 01:29:52 -07:00
default y
2011-04-07 06:03:04 -07:00
depends on (SSB_POSSIBLE && HAS_DMA) || PCI || BCM63XX || \
SIBYTE_SB1xxx_SOC
2020-06-14 01:50:22 +09:00
help
2011-04-07 06:03:04 -07:00
If you have a network (Ethernet) chipset belonging to this class,
say Y.
Note that the answer to this question does not directly affect
2019-07-31 15:22:12 +02:00
the kernel: saying N will just cause the configurator to skip all
the questions regarding Broadcom chipsets. If you say Y, you will
be asked for your specific chipset/driver in the following questions.
2011-04-07 06:03:04 -07:00
if NET_VENDOR_BROADCOM
config B44
tristate "Broadcom 440x/47xx ethernet support"
depends on SSB_POSSIBLE && HAS_DMA
select SSB
select MII
2013-12-20 02:16:10 +01:00
select PHYLIB
2020-06-14 01:50:22 +09:00
help
2011-04-07 06:03:04 -07:00
If you have a network (Ethernet) controller of this type, say Y
2015-06-21 16:28:02 -04:00
or M here.
2011-04-07 06:03:04 -07:00
To compile this driver as a module, choose M here. The module
will be called b44.
# Auto-select SSB PCI-HOST support, if possible
config B44_PCI_AUTOSELECT
bool
depends on B44 && SSB_PCIHOST_POSSIBLE
select SSB_PCIHOST
default y
# Auto-select SSB PCICORE driver, if possible
config B44_PCICORE_AUTOSELECT
bool
depends on B44 && SSB_DRIVER_PCICORE_POSSIBLE
select SSB_DRIVER_PCICORE
default y
config B44_PCI
bool
depends on B44_PCI_AUTOSELECT && B44_PCICORE_AUTOSELECT
default y
2021-02-11 13:12:34 +01:00
config BCM4908_ENET
2021-02-07 23:26:32 +01:00
tristate "Broadcom BCM4908 internal mac support"
2022-08-03 10:54:52 -07:00
depends on ARCH_BCMBCA || COMPILE_TEST
default y if ARCH_BCMBCA
2021-02-07 23:26:32 +01:00
help
This driver supports Ethernet controller integrated into Broadcom
BCM4908 family SoCs.
2011-04-07 06:03:04 -07:00
config BCM63XX_ENET
tristate "Broadcom 63xx internal mac support"
depends on BCM63XX
select MII
select PHYLIB
help
This driver supports the ethernet MACs in the Broadcom 63xx
MIPS chipset family (BCM63XX).
2014-02-13 16:08:49 -08:00
config BCMGENET
tristate "Broadcom GENET internal MAC support"
2018-07-17 08:42:05 -07:00
depends on HAS_IOMEM
2022-11-25 19:50:03 +08:00
depends on PTP_1588_CLOCK_OPTIONAL || !ARCH_BCM2835
2014-02-13 16:08:49 -08:00
select MII
select PHYLIB
2014-12-15 09:57:13 -08:00
select FIXED_PHY
2014-02-13 16:08:49 -08:00
select BCM7XXX_PHY
2017-07-31 12:04:26 -07:00
select MDIO_BCM_UNIMAC
2019-10-11 21:03:33 -07:00
select DIMLIB
2022-11-25 19:50:03 +08:00
select BROADCOM_PHY if ARCH_BCM2835
2014-02-13 16:08:49 -08:00
help
This driver supports the built-in Ethernet MACs found in the
Broadcom BCM7xxx Set Top Box family chipset.
2011-04-07 06:03:04 -07:00
config BNX2
2015-02-17 19:26:18 -05:00
tristate "QLogic bnx2 support"
2011-04-07 06:03:04 -07:00
depends on PCI
select CRC32
select FW_LOADER
2020-06-14 01:50:22 +09:00
help
2015-02-17 19:26:18 -05:00
This driver supports QLogic bnx2 gigabit Ethernet cards.
2011-04-07 06:03:04 -07:00
To compile this driver as a module, choose M here: the module
will be called bnx2. This is recommended.
config CNIC
2014-06-23 15:10:34 -04:00
tristate "QLogic CNIC support"
2014-09-04 17:12:57 -07:00
depends on PCI && (IPV6 || IPV6=n)
2020-11-28 23:08:43 -08:00
depends on MMU
2011-04-07 06:03:04 -07:00
select BNX2
select UIO
2020-06-14 01:50:22 +09:00
help
2015-02-17 19:26:18 -05:00
This driver supports offload features of QLogic bnx2 gigabit
Ethernet cards.
2011-04-07 06:03:04 -07:00
To compile this driver as a module, choose M here: the module
will be called cnic. This is recommended.
config SB1250_MAC
tristate "SB1250 Gigabit Ethernet support"
depends on SIBYTE_SB1xxx_SOC
select PHYLIB
2020-06-14 01:50:22 +09:00
help
2011-04-07 06:03:04 -07:00
This driver supports Gigabit Ethernet interfaces based on the
Broadcom SiByte family of System-On-a-Chip parts. They include
the BCM1120, BCM1125, BCM1125H, BCM1250, BCM1255, BCM1280, BCM1455
and BCM1480 chips.
To compile this driver as a module, choose M here: the module
will be called sb1250-mac.
config TIGON3
tristate "Broadcom Tigon3 support"
depends on PCI
ethernet: fix PTP_1588_CLOCK dependencies
The 'imply' keyword does not do what most people think it does, it only
politely asks Kconfig to turn on another symbol, but does not prevent
it from being disabled manually or built as a loadable module when the
user is built-in. In the ICE driver, the latter now causes a link failure:
aarch64-linux-ld: drivers/net/ethernet/intel/ice/ice_main.o: in function `ice_eth_ioctl':
ice_main.c:(.text+0x13b0): undefined reference to `ice_ptp_get_ts_config'
ice_main.c:(.text+0x13b0): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `ice_ptp_get_ts_config'
aarch64-linux-ld: ice_main.c:(.text+0x13bc): undefined reference to `ice_ptp_set_ts_config'
ice_main.c:(.text+0x13bc): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `ice_ptp_set_ts_config'
aarch64-linux-ld: drivers/net/ethernet/intel/ice/ice_main.o: in function `ice_prepare_for_reset':
ice_main.c:(.text+0x31fc): undefined reference to `ice_ptp_release'
ice_main.c:(.text+0x31fc): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `ice_ptp_release'
aarch64-linux-ld: drivers/net/ethernet/intel/ice/ice_main.o: in function `ice_rebuild':
This is a recurring problem in many drivers, and we have discussed
it several times befores, without reaching a consensus. I'm providing
a link to the previous email thread for reference, which discusses
some related problems.
To solve the dependency issue better than the 'imply' keyword, introduce a
separate Kconfig symbol "CONFIG_PTP_1588_CLOCK_OPTIONAL" that any driver
can depend on if it is able to use PTP support when available, but works
fine without it. Whenever CONFIG_PTP_1588_CLOCK=m, those drivers are
then prevented from being built-in, the same way as with a 'depends on
PTP_1588_CLOCK || !PTP_1588_CLOCK' dependency that does the same trick,
but that can be rather confusing when you first see it.
Since this should cover the dependencies correctly, the IS_REACHABLE()
hack in the header is no longer needed now, and can be turned back
into a normal IS_ENABLED() check. Any driver that gets the dependency
wrong will now cause a link time failure rather than being unable to use
PTP support when that is in a loadable module.
However, the two recently added ptp_get_vclocks_index() and
ptp_convert_timestamp() interfaces are only called from builtin code with
ethtool and socket timestamps, so keep the current behavior by stubbing
those out completely when PTP is in a loadable module. This should be
addressed properly in a follow-up.
As Richard suggested, we may want to actually turn PTP support into a
'bool' option later on, preventing it from being a loadable module
altogether, which would be one way to solve the problem with the ethtool
interface.
Fixes: 06c16d89d2cb ("ice: register 1588 PTP clock device object for E810 devices")
Link: https://lore.kernel.org/netdev/20210804121318.337276-1-arnd@kernel.org/
Link: https://lore.kernel.org/netdev/CAK8P3a06enZOf=XyZ+zcAwBczv41UuCTz+=0FMf2gBz1_cOnZQ@mail.gmail.com/
Link: https://lore.kernel.org/netdev/CAK8P3a3=eOxE-K25754+fB_-i_0BZzf9a9RfPTX3ppSwu9WZXw@mail.gmail.com/
Link: https://lore.kernel.org/netdev/20210726084540.3282344-1-arnd@kernel.org/
Acked-by: Shannon Nelson <snelson@pensando.io>
Acked-by: Jacob Keller <jacob.e.keller@intel.com>
Acked-by: Richard Cochran <richardcochran@gmail.com>
Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Link: https://lore.kernel.org/r/20210812183509.1362782-1-arnd@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2021-08-12 20:33:58 +02:00
depends on PTP_1588_CLOCK_OPTIONAL
2011-04-07 06:03:04 -07:00
select PHYLIB
2020-06-14 01:50:22 +09:00
help
2011-04-07 06:03:04 -07:00
This driver supports Broadcom Tigon3 based gigabit Ethernet cards.
To compile this driver as a module, choose M here: the module
will be called tg3. This is recommended.
2017-03-06 12:56:02 -08:00
config TIGON3_HWMON
bool "Broadcom Tigon3 HWMON support"
default y
depends on TIGON3 && HWMON && !(TIGON3=y && HWMON=m)
2020-06-14 01:50:22 +09:00
help
2017-03-06 12:56:02 -08:00
Say Y if you want to expose the thermal sensor on Tigon3 devices.
2011-04-07 06:03:04 -07:00
config BNX2X
tristate "Broadcom NetXtremeII 10Gb support"
depends on PCI
ethernet: fix PTP_1588_CLOCK dependencies
The 'imply' keyword does not do what most people think it does, it only
politely asks Kconfig to turn on another symbol, but does not prevent
it from being disabled manually or built as a loadable module when the
user is built-in. In the ICE driver, the latter now causes a link failure:
aarch64-linux-ld: drivers/net/ethernet/intel/ice/ice_main.o: in function `ice_eth_ioctl':
ice_main.c:(.text+0x13b0): undefined reference to `ice_ptp_get_ts_config'
ice_main.c:(.text+0x13b0): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `ice_ptp_get_ts_config'
aarch64-linux-ld: ice_main.c:(.text+0x13bc): undefined reference to `ice_ptp_set_ts_config'
ice_main.c:(.text+0x13bc): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `ice_ptp_set_ts_config'
aarch64-linux-ld: drivers/net/ethernet/intel/ice/ice_main.o: in function `ice_prepare_for_reset':
ice_main.c:(.text+0x31fc): undefined reference to `ice_ptp_release'
ice_main.c:(.text+0x31fc): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `ice_ptp_release'
aarch64-linux-ld: drivers/net/ethernet/intel/ice/ice_main.o: in function `ice_rebuild':
This is a recurring problem in many drivers, and we have discussed
it several times befores, without reaching a consensus. I'm providing
a link to the previous email thread for reference, which discusses
some related problems.
To solve the dependency issue better than the 'imply' keyword, introduce a
separate Kconfig symbol "CONFIG_PTP_1588_CLOCK_OPTIONAL" that any driver
can depend on if it is able to use PTP support when available, but works
fine without it. Whenever CONFIG_PTP_1588_CLOCK=m, those drivers are
then prevented from being built-in, the same way as with a 'depends on
PTP_1588_CLOCK || !PTP_1588_CLOCK' dependency that does the same trick,
but that can be rather confusing when you first see it.
Since this should cover the dependencies correctly, the IS_REACHABLE()
hack in the header is no longer needed now, and can be turned back
into a normal IS_ENABLED() check. Any driver that gets the dependency
wrong will now cause a link time failure rather than being unable to use
PTP support when that is in a loadable module.
However, the two recently added ptp_get_vclocks_index() and
ptp_convert_timestamp() interfaces are only called from builtin code with
ethtool and socket timestamps, so keep the current behavior by stubbing
those out completely when PTP is in a loadable module. This should be
addressed properly in a follow-up.
As Richard suggested, we may want to actually turn PTP support into a
'bool' option later on, preventing it from being a loadable module
altogether, which would be one way to solve the problem with the ethtool
interface.
Fixes: 06c16d89d2cb ("ice: register 1588 PTP clock device object for E810 devices")
Link: https://lore.kernel.org/netdev/20210804121318.337276-1-arnd@kernel.org/
Link: https://lore.kernel.org/netdev/CAK8P3a06enZOf=XyZ+zcAwBczv41UuCTz+=0FMf2gBz1_cOnZQ@mail.gmail.com/
Link: https://lore.kernel.org/netdev/CAK8P3a3=eOxE-K25754+fB_-i_0BZzf9a9RfPTX3ppSwu9WZXw@mail.gmail.com/
Link: https://lore.kernel.org/netdev/20210726084540.3282344-1-arnd@kernel.org/
Acked-by: Shannon Nelson <snelson@pensando.io>
Acked-by: Jacob Keller <jacob.e.keller@intel.com>
Acked-by: Richard Cochran <richardcochran@gmail.com>
Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Link: https://lore.kernel.org/r/20210812183509.1362782-1-arnd@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2021-08-12 20:33:58 +02:00
depends on PTP_1588_CLOCK_OPTIONAL
2011-04-07 06:03:04 -07:00
select FW_LOADER
select ZLIB_INFLATE
select LIBCRC32C
select MDIO
2020-06-14 01:50:22 +09:00
help
2011-04-07 06:03:04 -07:00
This driver supports Broadcom NetXtremeII 10 gigabit Ethernet cards.
To compile this driver as a module, choose M here: the module
will be called bnx2x. This is recommended.
2013-01-07 00:50:23 +00:00
config BNX2X_SRIOV
bool "Broadcom 578xx and 57712 SR-IOV support"
depends on BNX2X && PCI_IOV
default y
2020-06-14 01:50:22 +09:00
help
2013-01-07 00:50:23 +00:00
This configuration parameter enables Single Root Input Output
Virtualization support in the 578xx and 57712 products. This
allows for virtual function acceleration in virtual environments.
2013-01-08 20:06:23 +00:00
config BGMAC
2016-07-07 19:08:57 -04:00
tristate
help
This enables the integrated ethernet controller support for many
Broadcom (mostly iProc) SoCs. An appropriate bus interface driver
needs to be enabled to select this.
config BGMAC_BCMA
tristate "Broadcom iProc GBit BCMA support"
2016-01-29 12:39:12 +01:00
depends on BCMA && BCMA_HOST_SOC
depends on BCM47XX || ARCH_BCM_5301X || COMPILE_TEST
2016-07-07 19:08:57 -04:00
select BGMAC
2013-07-15 13:26:27 +02:00
select PHYLIB
2016-01-29 12:39:12 +01:00
select FIXED_PHY
2020-06-14 01:50:22 +09:00
help
2013-01-08 20:06:23 +00:00
This driver supports GBit MAC and BCM4706 GBit MAC cores on BCMA bus.
They can be found on BCM47xx SoCs and provide gigabit ethernet.
In case of using this driver on BCM4706 it's also requires to enable
BCMA_DRIVER_GMAC_CMN to make it work.
2016-07-07 19:08:57 -04:00
config BGMAC_PLATFORM
tristate "Broadcom iProc GBit platform support"
depends on ARCH_BCM_IPROC || COMPILE_TEST
select BGMAC
select PHYLIB
select FIXED_PHY
default ARCH_BCM_IPROC
2020-06-14 01:50:22 +09:00
help
2016-07-07 19:08:57 -04:00
Say Y here if you want to use the Broadcom iProc Gigabit Ethernet
controller through the generic platform interface
2014-04-24 18:08:59 -07:00
config SYSTEMPORT
tristate "Broadcom SYSTEMPORT internal MAC support"
2018-07-17 08:42:05 -07:00
depends on HAS_IOMEM
2017-10-16 13:32:36 +02:00
depends on NET_DSA || !NET_DSA
2014-04-24 18:08:59 -07:00
select MII
select PHYLIB
2014-12-15 09:57:14 -08:00
select FIXED_PHY
2019-10-11 21:03:33 -07:00
select DIMLIB
2014-04-24 18:08:59 -07:00
help
This driver supports the built-in Ethernet MACs found in the
Broadcom BCM7xxx Set Top Box family chipset using an internal
Ethernet switch.
2015-10-22 16:01:17 -04:00
config BNXT
tristate "Broadcom NetXtreme-C/E support"
depends on PCI
ethernet: fix PTP_1588_CLOCK dependencies
The 'imply' keyword does not do what most people think it does, it only
politely asks Kconfig to turn on another symbol, but does not prevent
it from being disabled manually or built as a loadable module when the
user is built-in. In the ICE driver, the latter now causes a link failure:
aarch64-linux-ld: drivers/net/ethernet/intel/ice/ice_main.o: in function `ice_eth_ioctl':
ice_main.c:(.text+0x13b0): undefined reference to `ice_ptp_get_ts_config'
ice_main.c:(.text+0x13b0): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `ice_ptp_get_ts_config'
aarch64-linux-ld: ice_main.c:(.text+0x13bc): undefined reference to `ice_ptp_set_ts_config'
ice_main.c:(.text+0x13bc): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `ice_ptp_set_ts_config'
aarch64-linux-ld: drivers/net/ethernet/intel/ice/ice_main.o: in function `ice_prepare_for_reset':
ice_main.c:(.text+0x31fc): undefined reference to `ice_ptp_release'
ice_main.c:(.text+0x31fc): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `ice_ptp_release'
aarch64-linux-ld: drivers/net/ethernet/intel/ice/ice_main.o: in function `ice_rebuild':
This is a recurring problem in many drivers, and we have discussed
it several times befores, without reaching a consensus. I'm providing
a link to the previous email thread for reference, which discusses
some related problems.
To solve the dependency issue better than the 'imply' keyword, introduce a
separate Kconfig symbol "CONFIG_PTP_1588_CLOCK_OPTIONAL" that any driver
can depend on if it is able to use PTP support when available, but works
fine without it. Whenever CONFIG_PTP_1588_CLOCK=m, those drivers are
then prevented from being built-in, the same way as with a 'depends on
PTP_1588_CLOCK || !PTP_1588_CLOCK' dependency that does the same trick,
but that can be rather confusing when you first see it.
Since this should cover the dependencies correctly, the IS_REACHABLE()
hack in the header is no longer needed now, and can be turned back
into a normal IS_ENABLED() check. Any driver that gets the dependency
wrong will now cause a link time failure rather than being unable to use
PTP support when that is in a loadable module.
However, the two recently added ptp_get_vclocks_index() and
ptp_convert_timestamp() interfaces are only called from builtin code with
ethtool and socket timestamps, so keep the current behavior by stubbing
those out completely when PTP is in a loadable module. This should be
addressed properly in a follow-up.
As Richard suggested, we may want to actually turn PTP support into a
'bool' option later on, preventing it from being a loadable module
altogether, which would be one way to solve the problem with the ethtool
interface.
Fixes: 06c16d89d2cb ("ice: register 1588 PTP clock device object for E810 devices")
Link: https://lore.kernel.org/netdev/20210804121318.337276-1-arnd@kernel.org/
Link: https://lore.kernel.org/netdev/CAK8P3a06enZOf=XyZ+zcAwBczv41UuCTz+=0FMf2gBz1_cOnZQ@mail.gmail.com/
Link: https://lore.kernel.org/netdev/CAK8P3a3=eOxE-K25754+fB_-i_0BZzf9a9RfPTX3ppSwu9WZXw@mail.gmail.com/
Link: https://lore.kernel.org/netdev/20210726084540.3282344-1-arnd@kernel.org/
Acked-by: Shannon Nelson <snelson@pensando.io>
Acked-by: Jacob Keller <jacob.e.keller@intel.com>
Acked-by: Richard Cochran <richardcochran@gmail.com>
Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Link: https://lore.kernel.org/r/20210812183509.1362782-1-arnd@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2021-08-12 20:33:58 +02:00
depends on PTP_1588_CLOCK_OPTIONAL
2015-10-22 16:01:17 -04:00
select FW_LOADER
select LIBCRC32C
2019-03-24 11:14:38 +01:00
select NET_DEVLINK
2019-07-08 17:53:04 -04:00
select PAGE_POOL
2019-10-11 21:03:33 -07:00
select DIMLIB
2020-06-14 01:50:22 +09:00
help
2015-10-22 16:01:17 -04:00
This driver supports Broadcom NetXtreme-C/E 10/25/40/50 gigabit
Ethernet cards. To compile this driver as a module, choose M here:
the module will be called bnxt_en. This is recommended.
config BNXT_SRIOV
bool "Broadcom NetXtreme-C/E SR-IOV support"
depends on BNXT && PCI_IOV
default y
2020-06-14 01:50:22 +09:00
help
2015-10-22 16:01:17 -04:00
This configuration parameter enables Single Root Input Output
Virtualization support in the NetXtreme-C/E products. This
allows for virtual function acceleration in virtual environments.
2017-08-28 13:40:33 -04:00
config BNXT_FLOWER_OFFLOAD
bool "TC Flower offload support for NetXtreme-C/E"
depends on BNXT
default y
2020-06-14 01:50:22 +09:00
help
2017-08-28 13:40:33 -04:00
This configuration parameter enables TC Flower packet classifier
offload for eswitch. This option enables SR-IOV switchdev eswitch
offload.
2016-12-02 21:17:17 -05:00
config BNXT_DCB
bool "Data Center Bridging (DCB) Support"
default n
depends on BNXT && DCB
2020-06-14 01:50:22 +09:00
help
2016-12-02 21:17:17 -05:00
Say Y here if you want to use Data Center Bridging (DCB) in the
driver.
If unsure, say N.
2018-08-05 16:51:56 -04:00
config BNXT_HWMON
bool "Broadcom NetXtreme-C/E HWMON support"
default y
depends on BNXT && HWMON && !(BNXT=y && HWMON=m)
2020-06-14 01:50:22 +09:00
help
2018-08-05 16:51:56 -04:00
Say Y if you want to expose the thermal sensor data on NetXtreme-C/E
devices, via the hwmon sysfs interface.
2011-04-07 06:03:04 -07:00
endif # NET_VENDOR_BROADCOM