xref: /linux/drivers/net/ethernet/freescale/enetc/Kconfig (revision 4f38da1f027ea2c9f01bb71daa7a299c191b6940)
1d4fd0404SClaudiu Manoil# SPDX-License-Identifier: GPL-2.0
2e3972399SVladimir Olteanconfig FSL_ENETC_CORE
3e3972399SVladimir Oltean	tristate
482cbd06fSWei Fang	select NXP_NETC_LIB if NXP_NTMP
5e3972399SVladimir Oltean	help
6e3972399SVladimir Oltean	  This module supports common functionality between the PF and VF
7e3972399SVladimir Oltean	  drivers for the NXP ENETC controller.
8e3972399SVladimir Oltean
9e3972399SVladimir Oltean	  If compiled as module (M), the module name is fsl-enetc-core.
10e3972399SVladimir Oltean
113774409fSWei Fangconfig NXP_ENETC_PF_COMMON
123774409fSWei Fang	tristate
133774409fSWei Fang	help
143774409fSWei Fang	  This module supports common functionality between drivers of
153774409fSWei Fang	  different versions of NXP ENETC PF controllers.
163774409fSWei Fang
173774409fSWei Fang	  If compiled as module (M), the module name is nxp-enetc-pf-common.
183774409fSWei Fang
194701073cSWei Fangconfig NXP_NETC_LIB
204701073cSWei Fang	tristate
214701073cSWei Fang	help
224701073cSWei Fang	  This module provides common functionalities for both ENETC and NETC
234701073cSWei Fang	  Switch, such as NETC Table Management Protocol (NTMP) 2.0, common tc
244701073cSWei Fang	  flower and debugfs interfaces and so on.
254701073cSWei Fang
2682cbd06fSWei Fangconfig NXP_NTMP
2782cbd06fSWei Fang	bool
2882cbd06fSWei Fang
29d4fd0404SClaudiu Manoilconfig FSL_ENETC
30d4fd0404SClaudiu Manoil	tristate "ENETC PF driver"
31*f5b9a1cdSWei Fang	depends on PTP_1588_CLOCK_OPTIONAL
325bee990fSLukas Bulwahn	depends on PCI_MSI
33e3972399SVladimir Oltean	select FSL_ENETC_CORE
341b8caefaSMichael Walle	select FSL_ENETC_IERB
356517798dSClaudiu Manoil	select FSL_ENETC_MDIO
363774409fSWei Fang	select NXP_ENETC_PF_COMMON
3771b77a7aSClaudiu Manoil	select PHYLINK
3871b77a7aSClaudiu Manoil	select PCS_LYNX
39ae0e6a5dSClaudiu Manoil	select DIMLIB
40d4fd0404SClaudiu Manoil	help
41d4fd0404SClaudiu Manoil	  This driver supports NXP ENETC gigabit ethernet controller PCIe
42d4fd0404SClaudiu Manoil	  physical function (PF) devices, managing ENETC Ports at a privileged
43d4fd0404SClaudiu Manoil	  level.
44d4fd0404SClaudiu Manoil
45d4fd0404SClaudiu Manoil	  If compiled as module (M), the module name is fsl-enetc.
46d4fd0404SClaudiu Manoil
4799100d0dSWei Fangconfig NXP_ENETC4
4899100d0dSWei Fang	tristate "ENETC4 PF driver"
49*f5b9a1cdSWei Fang	depends on PTP_1588_CLOCK_OPTIONAL
5099100d0dSWei Fang	depends on PCI_MSI
5199100d0dSWei Fang	select FSL_ENETC_CORE
5299100d0dSWei Fang	select FSL_ENETC_MDIO
5399100d0dSWei Fang	select NXP_ENETC_PF_COMMON
5482cbd06fSWei Fang	select NXP_NTMP
5599100d0dSWei Fang	select PHYLINK
5699100d0dSWei Fang	select DIMLIB
5799100d0dSWei Fang	help
5899100d0dSWei Fang	  This driver supports NXP ENETC devices with major revision 4. ENETC is
5999100d0dSWei Fang	  as the NIC functionality in NETC, it supports virtualization/isolation
6099100d0dSWei Fang	  based on PCIe Single Root IO Virtualization (SR-IOV) and a full range
6199100d0dSWei Fang	  of TSN standards and NIC offload capabilities.
6299100d0dSWei Fang
6399100d0dSWei Fang	  If compiled as module (M), the module name is nxp-enetc4.
6499100d0dSWei Fang
65d4fd0404SClaudiu Manoilconfig FSL_ENETC_VF
66d4fd0404SClaudiu Manoil	tristate "ENETC VF driver"
67*f5b9a1cdSWei Fang	depends on PTP_1588_CLOCK_OPTIONAL
685bee990fSLukas Bulwahn	depends on PCI_MSI
69e3972399SVladimir Oltean	select FSL_ENETC_CORE
70fd5736bfSAlex Marginean	select FSL_ENETC_MDIO
7171b77a7aSClaudiu Manoil	select PHYLINK
72ae0e6a5dSClaudiu Manoil	select DIMLIB
73d4fd0404SClaudiu Manoil	help
74d4fd0404SClaudiu Manoil	  This driver supports NXP ENETC gigabit ethernet controller PCIe
75d4fd0404SClaudiu Manoil	  virtual function (VF) devices enabled by the ENETC PF driver.
76d4fd0404SClaudiu Manoil
77d4fd0404SClaudiu Manoil	  If compiled as module (M), the module name is fsl-enetc-vf.
7819971f5eSYangbo Lu
79e7d48e5fSVladimir Olteanconfig FSL_ENETC_IERB
80e7d48e5fSVladimir Oltean	tristate "ENETC IERB driver"
81e7d48e5fSVladimir Oltean	help
82e7d48e5fSVladimir Oltean	  This driver configures the Integrated Endpoint Register Block on NXP
83e7d48e5fSVladimir Oltean	  LS1028A.
84e7d48e5fSVladimir Oltean
85e7d48e5fSVladimir Oltean	  If compiled as module (M), the module name is fsl-enetc-ierb.
86e7d48e5fSVladimir Oltean
87231ece36SClaudiu Manoilconfig FSL_ENETC_MDIO
88231ece36SClaudiu Manoil	tristate "ENETC MDIO driver"
89a3e1c0adSHeiner Kallweit	depends on PCI && PHYLIB
90231ece36SClaudiu Manoil	help
91231ece36SClaudiu Manoil	  This driver supports NXP ENETC Central MDIO controller as a PCIe
92231ece36SClaudiu Manoil	  physical function (PF) device.
93231ece36SClaudiu Manoil
94231ece36SClaudiu Manoil	  If compiled as module (M), the module name is fsl-enetc-mdio.
95231ece36SClaudiu Manoil
9619971f5eSYangbo Luconfig FSL_ENETC_PTP_CLOCK
9719971f5eSYangbo Lu	tristate "ENETC PTP clock driver"
9819971f5eSYangbo Lu	depends on PTP_1588_CLOCK_QORIQ && (FSL_ENETC || FSL_ENETC_VF)
9919971f5eSYangbo Lu	default y
10019971f5eSYangbo Lu	help
10119971f5eSYangbo Lu	  This driver adds support for using the ENETC 1588 timer
10219971f5eSYangbo Lu	  as a PTP clock. This clock is only useful if your PTP
10319971f5eSYangbo Lu	  programs are getting hardware time stamps on the PTP Ethernet
10419971f5eSYangbo Lu	  packets using the SO_TIMESTAMPING API.
10519971f5eSYangbo Lu
10619971f5eSYangbo Lu	  If compiled as module (M), the module name is fsl-enetc-ptp.
107d3982312SY.b. Lu
10834c6adf1SPo Liuconfig FSL_ENETC_QOS
10934c6adf1SPo Liu	bool "ENETC hardware Time-sensitive Network support"
110c431047cSPo Liu	depends on (FSL_ENETC || FSL_ENETC_VF) && (NET_SCH_TAPRIO || NET_SCH_CBS)
11134c6adf1SPo Liu	help
11234c6adf1SPo Liu	  There are Time-Sensitive Network(TSN) capabilities(802.1Qbv/802.1Qci
11334c6adf1SPo Liu	  /802.1Qbu etc.) supported by ENETC. These TSN capabilities can be set
11434c6adf1SPo Liu	  enable/disable from user space via Qos commands(tc). In the kernel
11534c6adf1SPo Liu	  side, it can be loaded by Qos driver. Currently, it is only support
116c431047cSPo Liu	  taprio(802.1Qbv) and Credit Based Shaper(802.1Qbu).
117fe5ba6bfSWei Fang
118fe5ba6bfSWei Fangconfig NXP_NETC_BLK_CTRL
119fe5ba6bfSWei Fang	tristate "NETC blocks control driver"
120fe5ba6bfSWei Fang	help
121fe5ba6bfSWei Fang	  This driver configures Integrated Endpoint Register Block (IERB) and
122fe5ba6bfSWei Fang	  Privileged Register Block (PRB) of NETC. For i.MX platforms, it also
123fe5ba6bfSWei Fang	  includes the configuration of NETCMIX block.
124fe5ba6bfSWei Fang	  The IERB contains registers that are used for pre-boot initialization,
125fe5ba6bfSWei Fang	  debug, and non-customer configuration. The PRB controls global reset
126fe5ba6bfSWei Fang	  and global error handling for NETC. The NETCMIX block is mainly used
127fe5ba6bfSWei Fang	  to set MII protocol and PCS protocol of the links, it also contains
128fe5ba6bfSWei Fang	  settings for some other functions.
129fe5ba6bfSWei Fang
130fe5ba6bfSWei Fang	  If compiled as module (M), the module name is nxp-netc-blk-ctrl.
131