mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
93a7653031
The TI AM65x/J721E SoCs Gigabit Ethernet Switch subsystem (CPSW2G NUSS) has two ports - One Ethernet port (port 1) with selectable RGMII and RMII interfaces and an internal Communications Port Programming Interface (CPPI) port (Host port 0) and with ALE in between. It also contains - Management Data Input/Output (MDIO) interface for physical layer device (PHY) management; - Updated Address Lookup Engine (ALE) module; - (TBD) New version of Common platform time sync (CPTS) module. On the TI am65x/J721E SoCs CPSW NUSS Ethernet subsystem into device MCU domain named MCU_CPSW0. Host Port 0 CPPI Packet Streaming Interface interface supports 8 TX channels and one RX channels operating by TI am654 NAVSS Unified DMA Peripheral Root Complex (UDMA-P) controller. Introduced driver provides standard Linux net_device to user space and supports: - ifconfig up/down - MAC address configuration - ethtool operation: --driver --change --register-dump --negotiate phy --statistics --set-eee phy --show-ring --show-channels --set-channels - net_device ioctl mii-control - promisc mode - rx checksum offload for non-fragmented IPv4/IPv6 TCP/UDP packets. The CPSW NUSS can verify IPv4/IPv6 TCP/UDP packets checksum and fills csum information for each packet in psdata[2] word: - BIT(16) CHECKSUM_ERROR - indicates csum error - BIT(17) FRAGMENT - indicates fragmented packet - BIT(18) TCP_UDP_N - Indicates TCP packet was detected - BIT(19) IPV6_VALID, BIT(20) IPV4_VALID - indicates IPv6/IPv4 packet - BIT(15, 0) CHECKSUM_ADD - This is the value that was summed during the checksum computation. This value is FFFFh for non fragmented IPV4/6 UDP/TCP packets with no checksum error. RX csum offload can be disabled: ethtool -K <dev> rx-checksum on|off - tx checksum offload support for IPv4/IPv6 TCP/UDP packets (J721E only). TX csum HW offload can be enabled/disabled: ethtool -K <dev> tx-checksum-ip-generic on|off - multiq and switch between round robin/prio modes for cppi tx queues by using Netdev private flag "p0-rx-ptype-rrobin" to switch between Round Robin and Fixed priority modes: # ethtool --show-priv-flags eth0 Private flags for eth0: p0-rx-ptype-rrobin: on # ethtool --set-priv-flags eth0 p0-rx-ptype-rrobin off Number of TX DMA channels can be changed using "ethtool -L eth0 tx <N>". - GRO support: the napi_gro_receive() and napi_complete_done() are used. Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com> Tested-by: Murali Karicheri <m-karicheri2@ti.com> Tested-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: David S. Miller <davem@davemloft.net>
157 lines
4.7 KiB
Plaintext
157 lines
4.7 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-only
|
|
#
|
|
# TI device configuration
|
|
#
|
|
|
|
config NET_VENDOR_TI
|
|
bool "Texas Instruments (TI) devices"
|
|
default y
|
|
depends on PCI || EISA || AR7 || ARCH_DAVINCI || ARCH_OMAP2PLUS || ARCH_KEYSTONE || ARCH_K3
|
|
---help---
|
|
If you have a network (Ethernet) card belonging to this class, say Y.
|
|
|
|
Note that the answer to this question doesn't directly affect the
|
|
kernel: saying N will just cause the configurator to skip all
|
|
the questions about TI devices. If you say Y, you will be asked for
|
|
your specific card in the following questions.
|
|
|
|
if NET_VENDOR_TI
|
|
|
|
config TI_DAVINCI_EMAC
|
|
tristate "TI DaVinci EMAC Support"
|
|
depends on ARM && ( ARCH_DAVINCI || ARCH_OMAP3 ) || COMPILE_TEST
|
|
select TI_DAVINCI_MDIO
|
|
select PHYLIB
|
|
select GENERIC_ALLOCATOR
|
|
---help---
|
|
This driver supports TI's DaVinci Ethernet .
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called davinci_emac_driver. This is recommended.
|
|
|
|
config TI_DAVINCI_MDIO
|
|
tristate "TI DaVinci MDIO Support"
|
|
depends on ARCH_DAVINCI || ARCH_OMAP2PLUS || ARCH_KEYSTONE || ARCH_K3 || COMPILE_TEST
|
|
select PHYLIB
|
|
---help---
|
|
This driver supports TI's DaVinci MDIO module.
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called davinci_mdio. This is recommended.
|
|
|
|
config TI_CPSW_PHY_SEL
|
|
bool "TI CPSW Phy mode Selection (DEPRECATED)"
|
|
default n
|
|
---help---
|
|
This driver supports configuring of the phy mode connected to
|
|
the CPSW. DEPRECATED: use PHY_TI_GMII_SEL.
|
|
|
|
config TI_CPSW
|
|
tristate "TI CPSW Switch Support"
|
|
depends on ARCH_DAVINCI || ARCH_OMAP2PLUS || COMPILE_TEST
|
|
select TI_DAVINCI_MDIO
|
|
select MFD_SYSCON
|
|
select PAGE_POOL
|
|
select REGMAP
|
|
imply PHY_TI_GMII_SEL
|
|
---help---
|
|
This driver supports TI's CPSW Ethernet Switch.
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called cpsw.
|
|
|
|
config TI_CPSW_SWITCHDEV
|
|
tristate "TI CPSW Switch Support with switchdev"
|
|
depends on ARCH_DAVINCI || ARCH_OMAP2PLUS || COMPILE_TEST
|
|
depends on NET_SWITCHDEV
|
|
select PAGE_POOL
|
|
select TI_DAVINCI_MDIO
|
|
select MFD_SYSCON
|
|
select REGMAP
|
|
select NET_DEVLINK
|
|
imply PHY_TI_GMII_SEL
|
|
help
|
|
This driver supports TI's CPSW Ethernet Switch.
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called cpsw_new.
|
|
|
|
config TI_CPTS
|
|
bool "TI Common Platform Time Sync (CPTS) Support"
|
|
depends on TI_CPSW || TI_KEYSTONE_NETCP || TI_CPSW_SWITCHDEV || COMPILE_TEST
|
|
depends on COMMON_CLK
|
|
depends on POSIX_TIMERS
|
|
---help---
|
|
This driver supports the Common Platform Time Sync unit of
|
|
the CPSW Ethernet Switch and Keystone 2 1g/10g Switch Subsystem.
|
|
The unit can time stamp PTP UDP/IPv4 and Layer 2 packets, and the
|
|
driver offers a PTP Hardware Clock.
|
|
|
|
config TI_CPTS_MOD
|
|
tristate
|
|
depends on TI_CPTS
|
|
default y if TI_CPSW=y || TI_KEYSTONE_NETCP=y || TI_CPSW_SWITCHDEV=y
|
|
select NET_PTP_CLASSIFY
|
|
imply PTP_1588_CLOCK
|
|
default m
|
|
|
|
config TI_K3_AM65_CPSW_NUSS
|
|
tristate "TI K3 AM654x/J721E CPSW Ethernet driver"
|
|
depends on ARCH_K3 && OF && TI_K3_UDMA_GLUE_LAYER
|
|
select TI_DAVINCI_MDIO
|
|
imply PHY_TI_GMII_SEL
|
|
help
|
|
This driver supports TI K3 AM654/J721E CPSW2G Ethernet SubSystem.
|
|
The two-port Gigabit Ethernet MAC (MCU_CPSW0) subsystem provides
|
|
Ethernet packet communication for the device: One Ethernet port
|
|
(port 1) with selectable RGMII and RMII interfaces and an internal
|
|
Communications Port Programming Interface (CPPI) port (port 0).
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called ti-am65-cpsw-nuss.
|
|
|
|
config TI_KEYSTONE_NETCP
|
|
tristate "TI Keystone NETCP Core Support"
|
|
select TI_DAVINCI_MDIO
|
|
depends on OF
|
|
depends on KEYSTONE_NAVIGATOR_DMA && KEYSTONE_NAVIGATOR_QMSS
|
|
---help---
|
|
This driver supports TI's Keystone NETCP Core.
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called keystone_netcp.
|
|
|
|
config TI_KEYSTONE_NETCP_ETHSS
|
|
depends on TI_KEYSTONE_NETCP
|
|
tristate "TI Keystone NETCP Ethernet subsystem Support"
|
|
---help---
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called keystone_netcp_ethss.
|
|
|
|
config TLAN
|
|
tristate "TI ThunderLAN support"
|
|
depends on (PCI || EISA)
|
|
---help---
|
|
If you have a PCI Ethernet network card based on the ThunderLAN chip
|
|
which is supported by this driver, say Y here.
|
|
|
|
Devices currently supported by this driver are Compaq Netelligent,
|
|
Compaq NetFlex and Olicom cards. Please read the file
|
|
<file:Documentation/networking/device_drivers/ti/tlan.txt>
|
|
for more details.
|
|
|
|
To compile this driver as a module, choose M here. The module
|
|
will be called tlan.
|
|
|
|
Please email feedback to <torben.mathiasen@compaq.com>.
|
|
|
|
config CPMAC
|
|
tristate "TI AR7 CPMAC Ethernet support"
|
|
depends on AR7
|
|
select PHYLIB
|
|
---help---
|
|
TI AR7 CPMAC Ethernet support
|
|
|
|
endif # NET_VENDOR_TI
|