This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TCI6638K2K: NETCP in single-interface mode

Part Number: TCI6638K2K

Hello

Is it possible to configure 10G NETCP in a single interface mode? The idea is to have CPSW to bechave like a simple 3-port switch and have only one network interface in Linux, for example named "ethx0"

--

Regards

Sergiy

  • I am sorry, we no longer have technical support for this device on the TI forum. For more information please see this post:

    e2e.ti.com/.../809582

  • Hardware wise the answer is Yes.

    There are some support functions that services the external ports for linking and such.

    We need somebody who understands the SW NDK for how to bind the Host port to eth0.

     

  • Hi

    I'll try add some comments here which potentially can help:

    • by default NETCP Linux driver started in multi-mac mode without switching between ports
    • there is should DT property "enable-ale" which, when added, will enable ALE functionality and will stop using directed packets
    • after this sysfs interface "/sys/devices/platform/soc/2620110.netcp/ale_*" can be used for ALE/NETCP configuration
    • Only one nedev (ethX) could be better to use for communication, as there is no HW offload from Linux Bridge is supported

    And Yes 10G support was terminated few years already.

  • Hello

    ALE is already in use.

    Current problem is that with having only one netdev (ethX) in Linux, it is not able to receive frames addressed to Linux and received on port CPSW-2

    It looks like there are some DMA Rx channels mapped to receive queues of CPSW ports. I am not able to identify the one mapped to CPSW-0

    --

    Regards

    Sergiy

  • What are the values of CPSW.ALE.CONTROL and CPSW.ALE.PORTCTRL[0..2]?

    If the DMA is programed to use the FLOW ID from the CPSW to route to particular queues, you may need to disable that function.

  • Some registers values

    ALE_IDVER: 0x00290903
    ALE CONTROL: 0x80000044
    ALE_PORTCTL0: 0x0000000F
    ALE_PORTCTL1: 0x0000000F
    ALE_PORTCTL2: 0x0000000F

    CPSW_FLOW_CONTROL: 0x00000001

    How to check if DMA is programmed to use FLOW ID? Is it part of PKTDMA module configuration or NETCP/CPSW?

  • Control look OK for normal operations

    Px_VID_INGRESS_CHECK  means if the port is not a member of the VLAN, the traffic will be dropped. Need to ensure both ports are members.

    Px_DROP_UN_TAGGED  Means that only VLAN tagged packets are forwarded.

  • Yes, this is expected behavior, tagged traffic is being sent, all 3 ports are members of VLAN

    From 10 Gigabit Ethernet Switch Subsystem User guide, sphuhj5:

    PKTDMA defines RX 16 channels, channel 0 is corresponds to priority 0 on port 1, channel 8 corresponds to priority 0 on port 2.

    When I had 2 netdev devices in Linux both RX channels were in use, and were able to receive traffic from both ports.

    After removal of second netdev, RX channel 8 gone, it is no longer used by any of the netdev. Linux is not able to receive traffic coming from port 2

    Is there a way  to assign several RX channels to a single netdev?

  • There is a flow table, need one of the SW folks to chime in.

    In this table it specified the DMA and queue that flow indexes are assigned.

    The defaults they had setup on Kepler was that each port and each priority have independent queues, but you can specify the different flows to use the same queue.

    The hardware system is very configurable, so it is just a SW change that needs to occur.