3.2.2.10.3.2. CPSWng Ethernet

3.2.2.10.3.2.1. Introduction

The TI J721E family of devices have Multi Port Gigabit Ethernet Switch Subsystem CPSWng. SoCs may have more than 4 external ports with selectable RGMII, QSGMII and SGMII interfaces and an internal Communications Port Programming Interface (CPPI) port (Host port 0). Host Port 0 CPPI Packet Streaming Interface interface supports 8 TX channels and one RX channel DMA channel.

Multi port Gigabit Ethernet Switch Subsystem CPSWng supports both independent MAC mode of operation supporting multiple independent Ethernet interfaces with complete isolation (no packet switching between external ports), or can be configured in Switch mode with IEEE 802.1Q HW bridge in managed or learning mode between each of the individual MAC ports.

Depending on the SoC, the value of n in CPSWng varies as follows:

SoC n in CPSWng Number of Ports
J7200 n = 5 (CPSW5g) 5 (1 host port, 4 external ports)
J721e n = 9 (CPSW9g) 9 (1 host port, 8 external ports)
J784S4 n = 9 (CPSW9g) 9 (1 host port, 8 external ports)

The SDK provides support to use the CPSWng ports in two different configurations:

  1. CPSWng Virtual Client
  2. CPSWng Native Ethernet Switch

Caution

The two configurations are mutually exclusive. Only one of the two can be enabled for a build.

Note

By default, the SDK works with the CPSWng Virtual Client configuration.

3.2.2.10.3.2.2. CPSWng Virtual Client

In this configuration, the EthSwitch firmware running on one of the R5F cores controls access to the CPSWng subsystem. The other cores have thin client drivers running on them to receive data from the EthSwitch firmware. On the A core running Linux, the virt-mac driver is responsible for the interaction with the EthSwitch firmware.

This configuration allows multiple cores to share the CPSWng ethernet subsystem.

For further details, refer CPSWng virtual MAC (remoteproc)

3.2.2.10.3.2.3. CPSWng Native Ethernet Switch

In this configuration, the am65-cpsw-nuss driver in Linux, takes complete control of the CPSWng subsystem, allowing Linux to utilize all the external ports of the CPSWng subsystem. Linux does not share any of the network traffic with other cores.

This configuration supports MAC mode, Switch mode and TSN features on Linux.

For further details, refer CPSWng Native Ethernet