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