xref: /linux/drivers/net/ethernet/freescale/enetc/Kconfig (revision 27605c8c0f69e319df156b471974e4e223035378)
1d4fd0404SClaudiu Manoil# SPDX-License-Identifier: GPL-2.0
2e3972399SVladimir Olteanconfig FSL_ENETC_CORE
3e3972399SVladimir Oltean	tristate
4*82cbd06fSWei 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
26*82cbd06fSWei Fangconfig NXP_NTMP
27*82cbd06fSWei Fang	bool
28*82cbd06fSWei Fang
29d4fd0404SClaudiu Manoilconfig FSL_ENETC
30d4fd0404SClaudiu Manoil	tristate "ENETC PF driver"
315bee990fSLukas Bulwahn	depends on PCI_MSI
32e3972399SVladimir Oltean	select FSL_ENETC_CORE
331b8caefaSMichael Walle	select FSL_ENETC_IERB
346517798dSClaudiu Manoil	select FSL_ENETC_MDIO
353774409fSWei Fang	select NXP_ENETC_PF_COMMON
3671b77a7aSClaudiu Manoil	select PHYLINK
3771b77a7aSClaudiu Manoil	select PCS_LYNX
38ae0e6a5dSClaudiu Manoil	select DIMLIB
39d4fd0404SClaudiu Manoil	help
40d4fd0404SClaudiu Manoil	  This driver supports NXP ENETC gigabit ethernet controller PCIe
41d4fd0404SClaudiu Manoil	  physical function (PF) devices, managing ENETC Ports at a privileged
42d4fd0404SClaudiu Manoil	  level.
43d4fd0404SClaudiu Manoil
44d4fd0404SClaudiu Manoil	  If compiled as module (M), the module name is fsl-enetc.
45d4fd0404SClaudiu Manoil
4699100d0dSWei Fangconfig NXP_ENETC4
4799100d0dSWei Fang	tristate "ENETC4 PF driver"
4899100d0dSWei Fang	depends on PCI_MSI
4999100d0dSWei Fang	select FSL_ENETC_CORE
5099100d0dSWei Fang	select FSL_ENETC_MDIO
5199100d0dSWei Fang	select NXP_ENETC_PF_COMMON
52*82cbd06fSWei Fang	select NXP_NTMP
5399100d0dSWei Fang	select PHYLINK
5499100d0dSWei Fang	select DIMLIB
5599100d0dSWei Fang	help
5699100d0dSWei Fang	  This driver supports NXP ENETC devices with major revision 4. ENETC is
5799100d0dSWei Fang	  as the NIC functionality in NETC, it supports virtualization/isolation
5899100d0dSWei Fang	  based on PCIe Single Root IO Virtualization (SR-IOV) and a full range
5999100d0dSWei Fang	  of TSN standards and NIC offload capabilities.
6099100d0dSWei Fang
6199100d0dSWei Fang	  If compiled as module (M), the module name is nxp-enetc4.
6299100d0dSWei Fang
63d4fd0404SClaudiu Manoilconfig FSL_ENETC_VF
64d4fd0404SClaudiu Manoil	tristate "ENETC VF driver"
655bee990fSLukas Bulwahn	depends on PCI_MSI
66e3972399SVladimir Oltean	select FSL_ENETC_CORE
67fd5736bfSAlex Marginean	select FSL_ENETC_MDIO
6871b77a7aSClaudiu Manoil	select PHYLINK
69ae0e6a5dSClaudiu Manoil	select DIMLIB
70d4fd0404SClaudiu Manoil	help
71d4fd0404SClaudiu Manoil	  This driver supports NXP ENETC gigabit ethernet controller PCIe
72d4fd0404SClaudiu Manoil	  virtual function (VF) devices enabled by the ENETC PF driver.
73d4fd0404SClaudiu Manoil
74d4fd0404SClaudiu Manoil	  If compiled as module (M), the module name is fsl-enetc-vf.
7519971f5eSYangbo Lu
76e7d48e5fSVladimir Olteanconfig FSL_ENETC_IERB
77e7d48e5fSVladimir Oltean	tristate "ENETC IERB driver"
78e7d48e5fSVladimir Oltean	help
79e7d48e5fSVladimir Oltean	  This driver configures the Integrated Endpoint Register Block on NXP
80e7d48e5fSVladimir Oltean	  LS1028A.
81e7d48e5fSVladimir Oltean
82e7d48e5fSVladimir Oltean	  If compiled as module (M), the module name is fsl-enetc-ierb.
83e7d48e5fSVladimir Oltean
84231ece36SClaudiu Manoilconfig FSL_ENETC_MDIO
85231ece36SClaudiu Manoil	tristate "ENETC MDIO driver"
86a3e1c0adSHeiner Kallweit	depends on PCI && PHYLIB
87231ece36SClaudiu Manoil	help
88231ece36SClaudiu Manoil	  This driver supports NXP ENETC Central MDIO controller as a PCIe
89231ece36SClaudiu Manoil	  physical function (PF) device.
90231ece36SClaudiu Manoil
91231ece36SClaudiu Manoil	  If compiled as module (M), the module name is fsl-enetc-mdio.
92231ece36SClaudiu Manoil
9319971f5eSYangbo Luconfig FSL_ENETC_PTP_CLOCK
9419971f5eSYangbo Lu	tristate "ENETC PTP clock driver"
9519971f5eSYangbo Lu	depends on PTP_1588_CLOCK_QORIQ && (FSL_ENETC || FSL_ENETC_VF)
9619971f5eSYangbo Lu	default y
9719971f5eSYangbo Lu	help
9819971f5eSYangbo Lu	  This driver adds support for using the ENETC 1588 timer
9919971f5eSYangbo Lu	  as a PTP clock. This clock is only useful if your PTP
10019971f5eSYangbo Lu	  programs are getting hardware time stamps on the PTP Ethernet
10119971f5eSYangbo Lu	  packets using the SO_TIMESTAMPING API.
10219971f5eSYangbo Lu
10319971f5eSYangbo Lu	  If compiled as module (M), the module name is fsl-enetc-ptp.
104d3982312SY.b. Lu
10534c6adf1SPo Liuconfig FSL_ENETC_QOS
10634c6adf1SPo Liu	bool "ENETC hardware Time-sensitive Network support"
107c431047cSPo Liu	depends on (FSL_ENETC || FSL_ENETC_VF) && (NET_SCH_TAPRIO || NET_SCH_CBS)
10834c6adf1SPo Liu	help
10934c6adf1SPo Liu	  There are Time-Sensitive Network(TSN) capabilities(802.1Qbv/802.1Qci
11034c6adf1SPo Liu	  /802.1Qbu etc.) supported by ENETC. These TSN capabilities can be set
11134c6adf1SPo Liu	  enable/disable from user space via Qos commands(tc). In the kernel
11234c6adf1SPo Liu	  side, it can be loaded by Qos driver. Currently, it is only support
113c431047cSPo Liu	  taprio(802.1Qbv) and Credit Based Shaper(802.1Qbu).
114fe5ba6bfSWei Fang
115fe5ba6bfSWei Fangconfig NXP_NETC_BLK_CTRL
116fe5ba6bfSWei Fang	tristate "NETC blocks control driver"
117fe5ba6bfSWei Fang	help
118fe5ba6bfSWei Fang	  This driver configures Integrated Endpoint Register Block (IERB) and
119fe5ba6bfSWei Fang	  Privileged Register Block (PRB) of NETC. For i.MX platforms, it also
120fe5ba6bfSWei Fang	  includes the configuration of NETCMIX block.
121fe5ba6bfSWei Fang	  The IERB contains registers that are used for pre-boot initialization,
122fe5ba6bfSWei Fang	  debug, and non-customer configuration. The PRB controls global reset
123fe5ba6bfSWei Fang	  and global error handling for NETC. The NETCMIX block is mainly used
124fe5ba6bfSWei Fang	  to set MII protocol and PCS protocol of the links, it also contains
125fe5ba6bfSWei Fang	  settings for some other functions.
126fe5ba6bfSWei Fang
127fe5ba6bfSWei Fang	  If compiled as module (M), the module name is nxp-netc-blk-ctrl.
128