Skip to content

Commit 128d587

Browse files
Roger Quadrosdavem330
authored andcommitted
net: ti: icssg-prueth: Add ICSSG ethernet driver
This is the Ethernet driver for TI AM654 Silicon rev. 2 with the ICSSG PRU Sub-system running dual-EMAC firmware. The Programmable Real-time Unit and Industrial Communication Subsystem Gigabit (PRU_ICSSG) is a low-latency microcontroller subsystem in the TI SoCs. This subsystem is provided for the use cases like implementation of custom peripheral interfaces, offloading of tasks from the other processor cores of the SoC, etc. Every ICSSG core has two Programmable Real-Time Unit(PRUs), two auxiliary Real-Time Transfer Unit (RT_PRUs), and two Transmit Real-Time Transfer Units (TX_PRUs). Each one of these runs its own firmware. Every ICSSG core has two MII ports connect to these PRUs and also a MDIO port. The cores can run different firmwares to support different protocols and features like switch-dev, timestamping, etc. It uses System DMA to transfer and receive packets and shared memory register emulation between the firmware and driver for control and configuration. This patch adds support for basic EMAC functionality with 1Gbps and 100Mbps link speed. 10M and half duplex mode are not supported currently as they require IEP, the support for which will be added later. Support for switch-dev, timestamp, etc. will be added later by subsequent patch series. Signed-off-by: Roger Quadros <[email protected]> Signed-off-by: Vignesh Raghavendra <[email protected]> Signed-off-by: Grygorii Strashko <[email protected]> Reviewed-by: Andrew Lunn <[email protected]> Signed-off-by: MD Danish Anwar <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 172e604 commit 128d587

File tree

4 files changed

+1862
-0
lines changed

4 files changed

+1862
-0
lines changed

drivers/net/ethernet/ti/Kconfig

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,4 +183,17 @@ config CPMAC
183183
help
184184
TI AR7 CPMAC Ethernet support
185185

186+
config TI_ICSSG_PRUETH
187+
tristate "TI Gigabit PRU Ethernet driver"
188+
select PHYLIB
189+
depends on PRU_REMOTEPROC
190+
depends on ARCH_K3 && OF && TI_K3_UDMA_GLUE_LAYER
191+
help
192+
Support dual Gigabit Ethernet ports over the ICSSG PRU Subsystem.
193+
This subsystem is available starting with the AM65 platform.
194+
195+
This driver requires firmware binaries which will run on the PRUs
196+
to support the Ethernet operation. Currently, it supports Ethernet
197+
with 1G and 100M link speed.
198+
186199
endif # NET_VENDOR_TI

drivers/net/ethernet/ti/Makefile

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,11 @@ obj-$(CONFIG_TI_K3_AM65_CPSW_NUSS) += ti-am65-cpsw-nuss.o
2828
ti-am65-cpsw-nuss-y := am65-cpsw-nuss.o cpsw_sl.o am65-cpsw-ethtool.o cpsw_ale.o k3-cppi-desc-pool.o am65-cpsw-qos.o
2929
ti-am65-cpsw-nuss-$(CONFIG_TI_K3_AM65_CPSW_SWITCHDEV) += am65-cpsw-switchdev.o
3030
obj-$(CONFIG_TI_K3_AM65_CPTS) += am65-cpts.o
31+
32+
obj-$(CONFIG_TI_ICSSG_PRUETH) += icssg-prueth.o
33+
icssg-prueth-y := k3-cppi-desc-pool.o \
34+
icssg/icssg_prueth.o \
35+
icssg/icssg_classifier.o \
36+
icssg/icssg_queues.o \
37+
icssg/icssg_config.o \
38+
icssg/icssg_mii_cfg.o \

0 commit comments

Comments
 (0)