xref: /linux/drivers/net/ethernet/freescale/enetc/Kconfig (revision 60675d4ca1ef0857e44eba5849b74a3a998d0c0f)
1d4fd0404SClaudiu Manoil# SPDX-License-Identifier: GPL-2.0
2e3972399SVladimir Olteanconfig FSL_ENETC_CORE
3e3972399SVladimir Oltean	tristate
4e3972399SVladimir Oltean	help
5e3972399SVladimir Oltean	  This module supports common functionality between the PF and VF
6e3972399SVladimir Oltean	  drivers for the NXP ENETC controller.
7e3972399SVladimir Oltean
8e3972399SVladimir Oltean	  If compiled as module (M), the module name is fsl-enetc-core.
9e3972399SVladimir Oltean
103774409fSWei Fangconfig NXP_ENETC_PF_COMMON
113774409fSWei Fang	tristate
123774409fSWei Fang	help
133774409fSWei Fang	  This module supports common functionality between drivers of
143774409fSWei Fang	  different versions of NXP ENETC PF controllers.
153774409fSWei Fang
163774409fSWei Fang	  If compiled as module (M), the module name is nxp-enetc-pf-common.
173774409fSWei Fang
18d4fd0404SClaudiu Manoilconfig FSL_ENETC
19d4fd0404SClaudiu Manoil	tristate "ENETC PF driver"
205bee990fSLukas Bulwahn	depends on PCI_MSI
2137f9b2a6SAndrew Lunn	select MDIO_DEVRES
22e3972399SVladimir Oltean	select FSL_ENETC_CORE
231b8caefaSMichael Walle	select FSL_ENETC_IERB
246517798dSClaudiu Manoil	select FSL_ENETC_MDIO
253774409fSWei Fang	select NXP_ENETC_PF_COMMON
2671b77a7aSClaudiu Manoil	select PHYLINK
2771b77a7aSClaudiu Manoil	select PCS_LYNX
28ae0e6a5dSClaudiu Manoil	select DIMLIB
29d4fd0404SClaudiu Manoil	help
30d4fd0404SClaudiu Manoil	  This driver supports NXP ENETC gigabit ethernet controller PCIe
31d4fd0404SClaudiu Manoil	  physical function (PF) devices, managing ENETC Ports at a privileged
32d4fd0404SClaudiu Manoil	  level.
33d4fd0404SClaudiu Manoil
34d4fd0404SClaudiu Manoil	  If compiled as module (M), the module name is fsl-enetc.
35d4fd0404SClaudiu Manoil
36*99100d0dSWei Fangconfig NXP_ENETC4
37*99100d0dSWei Fang	tristate "ENETC4 PF driver"
38*99100d0dSWei Fang	depends on PCI_MSI
39*99100d0dSWei Fang	select MDIO_DEVRES
40*99100d0dSWei Fang	select FSL_ENETC_CORE
41*99100d0dSWei Fang	select FSL_ENETC_MDIO
42*99100d0dSWei Fang	select NXP_ENETC_PF_COMMON
43*99100d0dSWei Fang	select PHYLINK
44*99100d0dSWei Fang	select DIMLIB
45*99100d0dSWei Fang	help
46*99100d0dSWei Fang	  This driver supports NXP ENETC devices with major revision 4. ENETC is
47*99100d0dSWei Fang	  as the NIC functionality in NETC, it supports virtualization/isolation
48*99100d0dSWei Fang	  based on PCIe Single Root IO Virtualization (SR-IOV) and a full range
49*99100d0dSWei Fang	  of TSN standards and NIC offload capabilities.
50*99100d0dSWei Fang
51*99100d0dSWei Fang	  If compiled as module (M), the module name is nxp-enetc4.
52*99100d0dSWei Fang
53d4fd0404SClaudiu Manoilconfig FSL_ENETC_VF
54d4fd0404SClaudiu Manoil	tristate "ENETC VF driver"
555bee990fSLukas Bulwahn	depends on PCI_MSI
56e3972399SVladimir Oltean	select FSL_ENETC_CORE
57fd5736bfSAlex Marginean	select FSL_ENETC_MDIO
5871b77a7aSClaudiu Manoil	select PHYLINK
59ae0e6a5dSClaudiu Manoil	select DIMLIB
60d4fd0404SClaudiu Manoil	help
61d4fd0404SClaudiu Manoil	  This driver supports NXP ENETC gigabit ethernet controller PCIe
62d4fd0404SClaudiu Manoil	  virtual function (VF) devices enabled by the ENETC PF driver.
63d4fd0404SClaudiu Manoil
64d4fd0404SClaudiu Manoil	  If compiled as module (M), the module name is fsl-enetc-vf.
6519971f5eSYangbo Lu
66e7d48e5fSVladimir Olteanconfig FSL_ENETC_IERB
67e7d48e5fSVladimir Oltean	tristate "ENETC IERB driver"
68e7d48e5fSVladimir Oltean	help
69e7d48e5fSVladimir Oltean	  This driver configures the Integrated Endpoint Register Block on NXP
70e7d48e5fSVladimir Oltean	  LS1028A.
71e7d48e5fSVladimir Oltean
72e7d48e5fSVladimir Oltean	  If compiled as module (M), the module name is fsl-enetc-ierb.
73e7d48e5fSVladimir Oltean
74231ece36SClaudiu Manoilconfig FSL_ENETC_MDIO
75231ece36SClaudiu Manoil	tristate "ENETC MDIO driver"
76e185ea30STong Zhang	depends on PCI && MDIO_DEVRES && MDIO_BUS
77231ece36SClaudiu Manoil	help
78231ece36SClaudiu Manoil	  This driver supports NXP ENETC Central MDIO controller as a PCIe
79231ece36SClaudiu Manoil	  physical function (PF) device.
80231ece36SClaudiu Manoil
81231ece36SClaudiu Manoil	  If compiled as module (M), the module name is fsl-enetc-mdio.
82231ece36SClaudiu Manoil
8319971f5eSYangbo Luconfig FSL_ENETC_PTP_CLOCK
8419971f5eSYangbo Lu	tristate "ENETC PTP clock driver"
8519971f5eSYangbo Lu	depends on PTP_1588_CLOCK_QORIQ && (FSL_ENETC || FSL_ENETC_VF)
8619971f5eSYangbo Lu	default y
8719971f5eSYangbo Lu	help
8819971f5eSYangbo Lu	  This driver adds support for using the ENETC 1588 timer
8919971f5eSYangbo Lu	  as a PTP clock. This clock is only useful if your PTP
9019971f5eSYangbo Lu	  programs are getting hardware time stamps on the PTP Ethernet
9119971f5eSYangbo Lu	  packets using the SO_TIMESTAMPING API.
9219971f5eSYangbo Lu
9319971f5eSYangbo Lu	  If compiled as module (M), the module name is fsl-enetc-ptp.
94d3982312SY.b. Lu
9534c6adf1SPo Liuconfig FSL_ENETC_QOS
9634c6adf1SPo Liu	bool "ENETC hardware Time-sensitive Network support"
97c431047cSPo Liu	depends on (FSL_ENETC || FSL_ENETC_VF) && (NET_SCH_TAPRIO || NET_SCH_CBS)
9834c6adf1SPo Liu	help
9934c6adf1SPo Liu	  There are Time-Sensitive Network(TSN) capabilities(802.1Qbv/802.1Qci
10034c6adf1SPo Liu	  /802.1Qbu etc.) supported by ENETC. These TSN capabilities can be set
10134c6adf1SPo Liu	  enable/disable from user space via Qos commands(tc). In the kernel
10234c6adf1SPo Liu	  side, it can be loaded by Qos driver. Currently, it is only support
103c431047cSPo Liu	  taprio(802.1Qbv) and Credit Based Shaper(802.1Qbu).
104fe5ba6bfSWei Fang
105fe5ba6bfSWei Fangconfig NXP_NETC_BLK_CTRL
106fe5ba6bfSWei Fang	tristate "NETC blocks control driver"
107fe5ba6bfSWei Fang	help
108fe5ba6bfSWei Fang	  This driver configures Integrated Endpoint Register Block (IERB) and
109fe5ba6bfSWei Fang	  Privileged Register Block (PRB) of NETC. For i.MX platforms, it also
110fe5ba6bfSWei Fang	  includes the configuration of NETCMIX block.
111fe5ba6bfSWei Fang	  The IERB contains registers that are used for pre-boot initialization,
112fe5ba6bfSWei Fang	  debug, and non-customer configuration. The PRB controls global reset
113fe5ba6bfSWei Fang	  and global error handling for NETC. The NETCMIX block is mainly used
114fe5ba6bfSWei Fang	  to set MII protocol and PCS protocol of the links, it also contains
115fe5ba6bfSWei Fang	  settings for some other functions.
116fe5ba6bfSWei Fang
117fe5ba6bfSWei Fang	  If compiled as module (M), the module name is nxp-netc-blk-ctrl.
118