diff --git a/configs/AM62PX/AM62PX_linux_toc.txt b/configs/AM62PX/AM62PX_linux_toc.txt index 3126f5dec..6873c192c 100644 --- a/configs/AM62PX/AM62PX_linux_toc.txt +++ b/configs/AM62PX/AM62PX_linux_toc.txt @@ -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 diff --git a/source/linux/Foundational_Components/Kernel/Kernel_Drivers/Network/CPSW-Ethernet.rst b/source/linux/Foundational_Components/Kernel/Kernel_Drivers/Network/CPSW-Ethernet.rst index 06f658e56..7f9a7fed7 100644 --- a/source/linux/Foundational_Components/Kernel/Kernel_Drivers/Network/CPSW-Ethernet.rst +++ b/source/linux/Foundational_Components/Kernel/Kernel_Drivers/Network/CPSW-Ethernet.rst @@ -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 @@ -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 """""""""""""""""""""""""""""" @@ -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` diff --git a/source/linux/Foundational_Components/Kernel/Kernel_Drivers/Network/CPSW-Proxy-Client.rst b/source/linux/Foundational_Components/Kernel/Kernel_Drivers/Network/CPSW-Proxy-Client.rst index 3934549e3..a569dffdd 100644 --- a/source/linux/Foundational_Components/Kernel/Kernel_Drivers/Network/CPSW-Proxy-Client.rst +++ b/source/linux/Foundational_Components/Kernel/Kernel_Drivers/Network/CPSW-Proxy-Client.rst @@ -12,8 +12,8 @@ Introduction 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 +the driver corresponding to it located at: drivers/net/ethernet/ti/cpsw-proxy-client.c in the SDK's Linux Source. @@ -89,23 +89,29 @@ overlay at U-Boot prompt. 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:: @@ -140,14 +146,14 @@ Interpreting the boot logs 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 @@ -168,13 +174,13 @@ Fetching/Setting IP Address 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 Or it can be assigned a Static IP address manually using the command: -.. code-block:: bash +.. code-block:: console ifconfig @@ -183,7 +189,7 @@ Setting MAC Address MAC Address can be assigned to interfaces using the commands: -.. code-block:: bash +.. code-block:: console ifconfig down ifconfig hw ether @@ -221,7 +227,7 @@ by EthFw. Multicast MAC addresses can be added/deleted using the *ip maddr* command: -.. code-block:: bash +.. code-block:: console # Add Multicast address ip maddr add dev @@ -260,7 +266,7 @@ Consider the example of the interface eth1 having 2 TX DMA Channels. For the map 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 diff --git a/source/linux/Foundational_Components/Kernel/Kernel_Drivers/Network/CPSWng.rst b/source/linux/Foundational_Components/Kernel/Kernel_Drivers/Network/CPSWng.rst index b1b8b1ec1..1343441e5 100644 --- a/source/linux/Foundational_Components/Kernel/Kernel_Drivers/Network/CPSWng.rst +++ b/source/linux/Foundational_Components/Kernel/Kernel_Drivers/Network/CPSWng.rst @@ -24,15 +24,25 @@ 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) | -+-----------+----------------+-----------------------------------+ +.. 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: @@ -44,11 +54,23 @@ configurations: 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 + | 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 """"""""""""""""" @@ -73,7 +95,13 @@ with other cores. 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: