Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions configs/AM62PX/AM62PX_linux_toc.txt
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,8 @@ linux/Foundational_Components/Kernel/Kernel_Drivers/MCAN
linux/Foundational_Components/Kernel/Kernel_Drivers/MCRC64
linux/Foundational_Components/Kernel/Kernel_Drivers/Network/CPSW-Ethernet
linux/Foundational_Components/Kernel/Kernel_Drivers/Network/CPSW3g
linux/Foundational_Components/Kernel/Kernel_Drivers/Network/CPSWng
linux/Foundational_Components/Kernel/Kernel_Drivers/Network/CPSW-Proxy-Client
linux/Foundational_Components/Kernel/Kernel_Drivers/Network/CPSW-TSN
linux/Foundational_Components/Kernel/Kernel_Drivers/Network/CPSW-PTP
linux/Foundational_Components/Kernel/Kernel_Drivers/Network/CPSW-EST
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ The CPSW Ethernet Subsystem is capable of supporting MAC mode, Switch mode, VLAN
standard TSN features such as PTP, EST, CBS and IET.

.. note::

To operate in switch mode, at least two external ports are required.

Instances of the CPSW Subsystem
Expand All @@ -29,24 +30,35 @@ of the CPSW Ethernet Subsystem:

.. ifconfig:: CONFIG_part_family in ('J7_family')

The CPSW2g instance is controlled by the am65-cpsw-nuss driver in Linux.
For further details regarding the CPSW2g instance, refer :ref:`cpsw2g`
The CPSW2g instance is controlled by the am65-cpsw-nuss driver in Linux.
For further details regarding the CPSW2g instance, refer :ref:`cpsw2g`

.. ifconfig:: CONFIG_part_variant in ('J721E','J7200','J784S4','J742S2')

The CPSWng instance can be configured to operate in two ways:
#. CPSWng Virtual Client
#. CPSWng Native Ethernet
The CPSWng instance can be configured to operate in two ways:
#. CPSWng Virtual Client
#. CPSWng Native Ethernet

For further details regarding the CPSWng instance, refer :ref:`cpswng`
For further details regarding the CPSWng instance, refer :ref:`cpswng`

.. ifconfig:: CONFIG_part_family in ('AM62X_family','AM62AX_family','AM64X_family','AM62PX_family','AM62LX_family')
.. ifconfig:: CONFIG_part_family in ('AM62X_family','AM62AX_family','AM64X_family','AM62LX_family')

CPSW3g

The CPSW3g instance is a part of the Main domain and is controlled by the am65-cpsw-nuss
driver in Linux.
For further details regarding the CPSW3g instance, refer :ref:`cpsw3g`
The CPSW3g instance is a part of the Main domain and is controlled by the am65-cpsw-nuss
driver in Linux.
For further details regarding the CPSW3g instance, refer :ref:`cpsw3g`

.. ifconfig:: CONFIG_part_family in ('AM62PX_family')

CPSW3g

The CPSW3g instance can be configured to operate in two ways:
#. CPSW3g Virtual Client
#. CPSW3g Native Ethernet

To generalize, CPSW3g instance can be referred to as CPSWng with 'n' being '3'.
For further details regarding the CPSW3g instance, refer :ref:`cpswng`

TSN Documentation and Testing
""""""""""""""""""""""""""""""
Expand All @@ -60,11 +72,11 @@ The CPSW Ethernet Subsystem supports TSN features in the following configuration
.. ifconfig:: CONFIG_part_variant in ('J721E','J7200','J784S4','J742S2')

2. The CPSWng Native Ethernet configuration of the CPSWng instance supports both MAC mode
and Switch mode TSN features.
and Switch mode TSN features with Linux.

.. ifconfig:: CONFIG_part_family in ('AM62X_family','AM62AX_family','AM64X_family','AM62PX_family','AM62LX_family')

The CPSW3g instance supports MAC mode and Switch mode TSN features.
The CPSW3g instance supports MAC mode and Switch mode TSN features with Linux.

For further details regarding the TSN features and testing, refer :ref:`tsn_with_cpsw`

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
The CPSW Proxy Client driver in Linux interfaces with Ethernet Switch Firmware (EthFw)
via RPMsg using the Linux Remoteproc framework. The CPSW Ethernet Switch on the SoC
is configured by EthFw which acts as the Server and provides services to Clients on
remote cores with the Linux Client on A72 core being the CPSW Proxy Client and the
driver corresponding to it located at:
remote cores with the Linux Client on A53 / A72 core being the CPSW Proxy Client and

Check warning on line 15 in source/linux/Foundational_Components/Kernel/Kernel_Drivers/Network/CPSW-Proxy-Client.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.Definitions] Define acronyms and abbreviations (such as 'CPSW') on first occurrence if they're likely to be unfamiliar. Raw Output: {"message": "[RedHat.Definitions] Define acronyms and abbreviations (such as 'CPSW') on first occurrence if they're likely to be unfamiliar.", "location": {"path": "source/linux/Foundational_Components/Kernel/Kernel_Drivers/Network/CPSW-Proxy-Client.rst", "range": {"start": {"line": 15, "column": 64}}}, "severity": "INFO"}
the driver corresponding to it located at:
drivers/net/ethernet/ti/cpsw-proxy-client.c
in the SDK's Linux Source.

Expand Down Expand Up @@ -89,23 +89,29 @@

To enable Linux CPSW Proxy Client functionality, save the following command in uEnv.txt:

.. ifconfig:: CONFIG_part_variant in ('AM62PX')

.. code-block:: text

name_overlays="ti/k3-am62p5-sk-ethfw.dtbo"

.. ifconfig:: CONFIG_part_variant in ('J721E')

.. code-block:: text
.. code-block:: text

name_overlays="ti/k3-j721e-evm-ethfw.dtbo"
name_overlays="ti/k3-j721e-evm-ethfw.dtbo"

.. ifconfig:: CONFIG_part_variant in ('J7200')

.. code-block:: text
.. code-block:: text

name_overlays="ti/k3-j7200-evm-ethfw.dtbo"
name_overlays="ti/k3-j7200-evm-ethfw.dtbo"

.. ifconfig:: CONFIG_part_variant in ('J784S4','J742S2')

.. code-block:: text
.. code-block:: text

name_overlays="ti/k3-j784s4-evm-ethfw.dtbo"
name_overlays="ti/k3-j784s4-evm-ethfw.dtbo"

.. note::

Expand Down Expand Up @@ -140,14 +146,14 @@

The CPSW Proxy Client driver logs can be filtered using the command:

.. code-block:: bash
.. code-block:: console

dmesg | grep ti_cpsw_proxy_client

If the driver is probed successfully, something similar to the following content will show up in the filtered logs
based on the configuration performed on EthFw for the allocation of Virtual Ports to the Linux Client:

.. code-block:: bash
.. code-block:: console

ti_cpsw_proxy_client virtio2.ti.ethfw.ethdevice.-1.101: 1 Virtual Switch Port(s), 1 Virtual MAC Only P
ti_cpsw_proxy_client virtio2.ti.ethfw.ethdevice.-1.101: Virt Port: 0, Type: Switch Port, Iface: eth1, Num TX: 2, Num RX: 1, Token: 0
Expand All @@ -168,13 +174,13 @@

Each interface can either get an IP address dynamically allocated to it by a DHCP server using the command:

.. code-block:: bash
.. code-block:: console

udhcpc -i <ethX>

Or it can be assigned a Static IP address manually using the command:

.. code-block:: bash
.. code-block:: console

ifconfig <ethX> <IP-Address>

Expand All @@ -183,7 +189,7 @@

MAC Address can be assigned to interfaces using the commands:

.. code-block:: bash
.. code-block:: console

ifconfig <ethX> down
ifconfig <ethX> hw ether <MAC-Address>
Expand Down Expand Up @@ -221,7 +227,7 @@

Multicast MAC addresses can be added/deleted using the *ip maddr* command:

.. code-block:: bash
.. code-block:: console

# Add Multicast address <Multicast-Address>
ip maddr add <Multicast-Address> dev <ethX>
Expand Down Expand Up @@ -260,7 +266,7 @@

the corresponding "tc" command to be run in userspace is:

.. code-block:: bash
.. code-block:: console

tc qdisc add dev eth1 handle 100: parent root mqprio num_tc 2 \
map 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 queues 1@0 1@1 hw 0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,25 @@

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) |
+-----------+----------------+-----------------------------------+
.. ifconfig:: CONFIG_part_family in ('J7_family')

+-----------+----------------+-----------------------------------+
| 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) |
+-----------+----------------+-----------------------------------+

.. ifconfig:: CONFIG_part_family in ('AM62PX_family')

+-----------+----------------+-----------------------------------+
| SoC | n in CPSWng | Number of Ports |
+===========+================+===================================+
| AM62P | n = 3 (CPSW3g) | 3 (1 host port, 2 external ports) |
+-----------+----------------+-----------------------------------+

The SDK provides support to use the CPSWng ports in two different
configurations:
Expand All @@ -44,11 +54,23 @@
The two configurations are mutually exclusive. Only one of the two
can be enabled for a build.

.. note::
| Enabling the CPSW Proxy Client configuration or the CPSWng Native Ethernet configuration
| requires applying a Linux device-tree overlay at U-Boot using the **name_overlays** U-Boot environment variable.
| For details regarding applying CPSW Proxy Client overlay, refer :ref:`cpsw_proxy_client_enable`.
| For details regarding applying CPSWng Native Ethernet overlay, refer :ref:`cpswng_native_eth_overlays`.
.. ifconfig:: CONFIG_part_family in ('J7_family')

.. note::

| Enabling the CPSW Proxy Client configuration or the CPSWng Native Ethernet configuration

Check warning on line 61 in source/linux/Foundational_Components/Kernel/Kernel_Drivers/Network/CPSWng.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.Headings] Use sentence-style capitalization in 'CPSW Proxy Client'. Raw Output: {"message": "[RedHat.Headings] Use sentence-style capitalization in 'CPSW Proxy Client'.", "location": {"path": "source/linux/Foundational_Components/Kernel/Kernel_Drivers/Network/CPSWng.rst", "range": {"start": {"line": 61, "column": 22}}}, "severity": "INFO"}

Check warning on line 61 in source/linux/Foundational_Components/Kernel/Kernel_Drivers/Network/CPSWng.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.Definitions] Define acronyms and abbreviations (such as 'CPSW') on first occurrence if they're likely to be unfamiliar. Raw Output: {"message": "[RedHat.Definitions] Define acronyms and abbreviations (such as 'CPSW') on first occurrence if they're likely to be unfamiliar.", "location": {"path": "source/linux/Foundational_Components/Kernel/Kernel_Drivers/Network/CPSWng.rst", "range": {"start": {"line": 61, "column": 22}}}, "severity": "INFO"}
| requires applying a Linux device-tree overlay at U-Boot using the **name_overlays** U-Boot environment variable.
| For details regarding applying CPSW Proxy Client overlay, refer :ref:`cpsw_proxy_client_enable`.
| For details regarding applying CPSWng Native Ethernet overlay, refer :ref:`cpswng_native_eth_overlays`.

.. ifconfig:: CONFIG_part_family in ('AM62PX_family')

.. note::

| Enabling the CPSW Proxy Client configuration requires applying a Linux device-tree overlay
| at U-Boot using the **name_overlays** U-Boot environment variable.
| For details regarding applying CPSW Proxy Client overlay, refer :ref:`cpsw_proxy_client_enable`.
CPSW Proxy Client
"""""""""""""""""
Expand All @@ -73,7 +95,13 @@

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

For further details, refer :ref:`cpswng_native_ethernet`
.. ifconfig:: CONFIG_part_family in ('J7_family')

For further details, refer :ref:`cpswng_native_ethernet`

.. ifconfig:: CONFIG_part_family in ('AM62PX_family')

For further details, refer :ref:`cpsw3g`

.. toctree::
:hidden:
Expand Down