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