mirror of
https://github.com/torvalds/linux.git
synced 2026-05-03 22:12:32 -04:00
The i.MX95 ENETC has been upgraded to revision 4.1, which is different from the LS1028A ENETC (revision 1.0) except for the SI part. Therefore, the fsl-enetc driver is incompatible with i.MX95 ENETC PF. So add new nxp-enetc4 driver to support i.MX95 ENETC PF, and this driver will be used to support the ENETC PF with major revision 4 for other SoCs in the future. Currently, the nxp-enetc4 driver only supports basic transmission feature for i.MX95 ENETC PF, the more basic and advanced features will be added in the subsequent patches. In addition, PCS support has not been added yet, so 10G ENETC (ENETC instance 2) is not supported now. Signed-off-by: Wei Fang <wei.fang@nxp.com> Reviewed-by: Frank Li <Frank.Li@nxp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
118 lines
3.8 KiB
Plaintext
118 lines
3.8 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0
|
|
config FSL_ENETC_CORE
|
|
tristate
|
|
help
|
|
This module supports common functionality between the PF and VF
|
|
drivers for the NXP ENETC controller.
|
|
|
|
If compiled as module (M), the module name is fsl-enetc-core.
|
|
|
|
config NXP_ENETC_PF_COMMON
|
|
tristate
|
|
help
|
|
This module supports common functionality between drivers of
|
|
different versions of NXP ENETC PF controllers.
|
|
|
|
If compiled as module (M), the module name is nxp-enetc-pf-common.
|
|
|
|
config FSL_ENETC
|
|
tristate "ENETC PF driver"
|
|
depends on PCI_MSI
|
|
select MDIO_DEVRES
|
|
select FSL_ENETC_CORE
|
|
select FSL_ENETC_IERB
|
|
select FSL_ENETC_MDIO
|
|
select NXP_ENETC_PF_COMMON
|
|
select PHYLINK
|
|
select PCS_LYNX
|
|
select DIMLIB
|
|
help
|
|
This driver supports NXP ENETC gigabit ethernet controller PCIe
|
|
physical function (PF) devices, managing ENETC Ports at a privileged
|
|
level.
|
|
|
|
If compiled as module (M), the module name is fsl-enetc.
|
|
|
|
config NXP_ENETC4
|
|
tristate "ENETC4 PF driver"
|
|
depends on PCI_MSI
|
|
select MDIO_DEVRES
|
|
select FSL_ENETC_CORE
|
|
select FSL_ENETC_MDIO
|
|
select NXP_ENETC_PF_COMMON
|
|
select PHYLINK
|
|
select DIMLIB
|
|
help
|
|
This driver supports NXP ENETC devices with major revision 4. ENETC is
|
|
as the NIC functionality in NETC, it supports virtualization/isolation
|
|
based on PCIe Single Root IO Virtualization (SR-IOV) and a full range
|
|
of TSN standards and NIC offload capabilities.
|
|
|
|
If compiled as module (M), the module name is nxp-enetc4.
|
|
|
|
config FSL_ENETC_VF
|
|
tristate "ENETC VF driver"
|
|
depends on PCI_MSI
|
|
select FSL_ENETC_CORE
|
|
select FSL_ENETC_MDIO
|
|
select PHYLINK
|
|
select DIMLIB
|
|
help
|
|
This driver supports NXP ENETC gigabit ethernet controller PCIe
|
|
virtual function (VF) devices enabled by the ENETC PF driver.
|
|
|
|
If compiled as module (M), the module name is fsl-enetc-vf.
|
|
|
|
config FSL_ENETC_IERB
|
|
tristate "ENETC IERB driver"
|
|
help
|
|
This driver configures the Integrated Endpoint Register Block on NXP
|
|
LS1028A.
|
|
|
|
If compiled as module (M), the module name is fsl-enetc-ierb.
|
|
|
|
config FSL_ENETC_MDIO
|
|
tristate "ENETC MDIO driver"
|
|
depends on PCI && MDIO_DEVRES && MDIO_BUS
|
|
help
|
|
This driver supports NXP ENETC Central MDIO controller as a PCIe
|
|
physical function (PF) device.
|
|
|
|
If compiled as module (M), the module name is fsl-enetc-mdio.
|
|
|
|
config FSL_ENETC_PTP_CLOCK
|
|
tristate "ENETC PTP clock driver"
|
|
depends on PTP_1588_CLOCK_QORIQ && (FSL_ENETC || FSL_ENETC_VF)
|
|
default y
|
|
help
|
|
This driver adds support for using the ENETC 1588 timer
|
|
as a PTP clock. This clock is only useful if your PTP
|
|
programs are getting hardware time stamps on the PTP Ethernet
|
|
packets using the SO_TIMESTAMPING API.
|
|
|
|
If compiled as module (M), the module name is fsl-enetc-ptp.
|
|
|
|
config FSL_ENETC_QOS
|
|
bool "ENETC hardware Time-sensitive Network support"
|
|
depends on (FSL_ENETC || FSL_ENETC_VF) && (NET_SCH_TAPRIO || NET_SCH_CBS)
|
|
help
|
|
There are Time-Sensitive Network(TSN) capabilities(802.1Qbv/802.1Qci
|
|
/802.1Qbu etc.) supported by ENETC. These TSN capabilities can be set
|
|
enable/disable from user space via Qos commands(tc). In the kernel
|
|
side, it can be loaded by Qos driver. Currently, it is only support
|
|
taprio(802.1Qbv) and Credit Based Shaper(802.1Qbu).
|
|
|
|
config NXP_NETC_BLK_CTRL
|
|
tristate "NETC blocks control driver"
|
|
help
|
|
This driver configures Integrated Endpoint Register Block (IERB) and
|
|
Privileged Register Block (PRB) of NETC. For i.MX platforms, it also
|
|
includes the configuration of NETCMIX block.
|
|
The IERB contains registers that are used for pre-boot initialization,
|
|
debug, and non-customer configuration. The PRB controls global reset
|
|
and global error handling for NETC. The NETCMIX block is mainly used
|
|
to set MII protocol and PCS protocol of the links, it also contains
|
|
settings for some other functions.
|
|
|
|
If compiled as module (M), the module name is nxp-netc-blk-ctrl.
|