e654b85a69
Add the PRUeth driver for the ICSSG subsystem found in AM65x SR1.0 devices. The main differences that set SR1.0 and SR2.0 apart are the missing TXPRU core in SR1.0, two extra DMA channels for management purposes and different firmware that needs to be configured accordingly. Based on the work of Roger Quadros, Vignesh Raghavendra and Grygorii Strashko in TI's 5.10 SDK [1]. [1]: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/?h=ti-linux-5.10.y Co-developed-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Diogo Ivo <diogo.ivo@siemens.com> Reviewed-by: MD Danish Anwar <danishanwar@ti.com> Signed-off-by: Paolo Abeni <pabeni@redhat.com>
229 lines
7.4 KiB
Plaintext
229 lines
7.4 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 || 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
|
|
select MDIO_BITBANG
|
|
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
|
|
depends on TI_CPTS || !TI_CPTS
|
|
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
|
|
depends on TI_CPTS || !TI_CPTS
|
|
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
|
|
tristate "TI Common Platform Time Sync (CPTS) Support"
|
|
depends on ARCH_OMAP2PLUS || ARCH_KEYSTONE || COMPILE_TEST
|
|
depends on COMMON_CLK
|
|
depends on PTP_1588_CLOCK
|
|
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_K3_CPPI_DESC_POOL
|
|
tristate
|
|
|
|
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 NET_DEVLINK
|
|
select TI_DAVINCI_MDIO
|
|
select PHYLINK
|
|
select TI_K3_CPPI_DESC_POOL
|
|
imply PHY_TI_GMII_SEL
|
|
depends on TI_K3_AM65_CPTS || !TI_K3_AM65_CPTS
|
|
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_K3_AM65_CPSW_SWITCHDEV
|
|
bool "TI K3 AM654x/J721E CPSW Switch mode support"
|
|
depends on TI_K3_AM65_CPSW_NUSS
|
|
depends on NET_SWITCHDEV
|
|
help
|
|
This enables switchdev support for TI K3 CPSWxG Ethernet
|
|
Switch. Enable this driver to support hardware switch support for AM65
|
|
CPSW NUSS driver.
|
|
|
|
config TI_K3_AM65_CPTS
|
|
tristate "TI K3 AM65x CPTS"
|
|
depends on ARCH_K3 && OF
|
|
depends on PTP_1588_CLOCK
|
|
help
|
|
Say y here to support the TI K3 AM65x CPTS with 1588 features such as
|
|
PTP hardware clock for each CPTS device and network packets
|
|
timestamping where applicable.
|
|
Depending on integration CPTS blocks enable compliance with
|
|
the IEEE 1588-2008 standard for a precision clock synchronization
|
|
protocol, Ethernet Enhanced Scheduled Traffic Operations (CPTS_ESTFn)
|
|
and PCIe Subsystem Precision Time Measurement (PTM).
|
|
|
|
config TI_AM65_CPSW_QOS
|
|
bool "Enable QoS offload features in AM65 CPSW"
|
|
depends on TI_K3_AM65_CPSW_NUSS && NET_SCH_TAPRIO && TI_K3_AM65_CPTS
|
|
help
|
|
This option enables QoS offload features in AM65 CPSW like
|
|
Time Aware Shaper (TAS) / Enhanced Scheduled Traffic (EST),
|
|
MQPRIO qdisc offload and Frame-Preemption MAC Merge / Interspersing
|
|
Express Traffic (IET).
|
|
The EST scheduler runs on CPTS and the TAS/EST schedule is
|
|
updated in the Fetch RAM memory of the CPSW.
|
|
|
|
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
|
|
depends on TI_CPTS || !TI_CPTS
|
|
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) && HAS_IOPORT
|
|
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/ethernet/ti/tlan.rst>
|
|
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 TI_ICSSG_PRUETH
|
|
tristate "TI Gigabit PRU Ethernet driver"
|
|
select PHYLIB
|
|
select TI_ICSS_IEP
|
|
select TI_K3_CPPI_DESC_POOL
|
|
depends on PRU_REMOTEPROC
|
|
depends on ARCH_K3 && OF && TI_K3_UDMA_GLUE_LAYER
|
|
depends on PTP_1588_CLOCK_OPTIONAL
|
|
help
|
|
Support dual Gigabit Ethernet ports over the ICSSG PRU Subsystem.
|
|
This subsystem is available starting with the AM65 platform.
|
|
|
|
This driver requires firmware binaries which will run on the PRUs
|
|
to support the Ethernet operation. Currently, it supports Ethernet
|
|
with 1G and 100M link speed.
|
|
|
|
config TI_ICSSG_PRUETH_SR1
|
|
tristate "TI Gigabit PRU SR1.0 Ethernet driver"
|
|
select PHYLIB
|
|
select TI_ICSS_IEP
|
|
select TI_K3_CPPI_DESC_POOL
|
|
depends on PRU_REMOTEPROC
|
|
depends on ARCH_K3 && OF && TI_K3_UDMA_GLUE_LAYER
|
|
help
|
|
Support dual Gigabit Ethernet ports over the ICSSG PRU Subsystem.
|
|
This subsystem is available on the AM65 SR1.0 platform.
|
|
|
|
This driver requires firmware binaries which will run on the PRUs
|
|
to support the Ethernet operation. Currently, it supports Ethernet
|
|
with 1G, 100M and 10M link speed.
|
|
|
|
config TI_ICSS_IEP
|
|
tristate "TI PRU ICSS IEP driver"
|
|
depends on PTP_1588_CLOCK_OPTIONAL
|
|
depends on TI_PRUSS
|
|
default TI_PRUSS
|
|
help
|
|
This driver enables support for the PRU-ICSS Industrial Ethernet
|
|
Peripheral within a PRU-ICSS subsystem present on various TI SoCs.
|
|
|
|
To compile this driver as a module, choose M here. The module
|
|
will be called icss_iep.
|
|
|
|
endif # NET_VENDOR_TI
|