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.

10 G Ethernet Driver for Keystone II (Processor SDK)



Dear community,

we are using the K2K evm board at our department and want to use 10 G Ethernet with that.

Currently, we are using the Open Embedded environment to build our own Processor SDK with the 4.1.8 Linux kernel.

I know there are instructions for the MCSDK under:

http://processors.wiki.ti.com/index.php/MCSDK_UG_Chapter_Exploring#10Gig_Ethernet_Driver

While in the latest MCSDK the keystone2_defconfig is already changed to support 10 G Ethernet (CONFIG_TI_KEYSTONE_XGE=y), I am missing that for the Processor SDK.

Moreover, there does not exist that kernel option!

The given fdt settings in U-Boot are only partly working, because the device tree has changed.

dmesg gives me:

netcp: module(netcp-xgbe) not used for device


Please I need your with that.

Kind regards,

Tobias Jaeuthe

  • Dear Tobias Jaeuthe,
    Yes, you are right.
    I have also checked that MCSDK has support for 10GbE but not in Processor SDK (make menuconfig)
    I checked drivers too, not able to find.
    drivers/net/ethernet/ti/

    Will check with internal team for that.
    Thanks for your patience.
  • Hi, Tobias,

    The XGE support is in ProcSDK. However, the architecture has been changed and there isn't a separate xgess.c. XGE is part of ethss.c now. You can enable XGE in the k2hk-netcp.dtsi by changing the status to "ok" for xgbe_subsys, xgbe_pcsr, xgbe_serdes, and netcpx nodes.

    Once the kernel boots up, you should see 4 interfaces instead of 2, and eth2 and eth3 are the XGE ports. These 2 ports will not be shown if XGE is not enabled. Please see the logs below from the EVM which it has XGE connection to my PC at 192.168.1.44. One note to make is that u-boot, file system, kernel, etc. are from ProcSDK 2.0.2, and dtb is rebuilt from the same release. Please don't mixmatch any images with MCSDK release.


    k2hk-evm login: root
    root@k2hk-evm:~# ifconfig eth2 192.168.1.22
    [   26.034471] netcp-1.0 soc:netcp@2f00000 eth2: Link is Up
    [   26.040126] pps pps1: new PPS source ptp1
    [   26.044175] cpts rftclk: sel(1),rate(400000000 HZ),mult(2560),shift(10),div(1)
    root@k2hk-evm:~# ifconfig -a
    eth0      Link encap:Ethernet  HWaddr B4:99:4C:9F:7F:90
              inet addr:158.218.109.217  Bcast:158.218.109.255  Mask:255.255.255.0
              inet6 addr: fe80::b699:4cff:fe9f:7f90/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:19528 errors:0 dropped:15 overruns:0 frame:0
              TX packets:18252 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:17285030 (16.4 MiB)  TX bytes:2838965 (2.7 MiB)

    eth1      Link encap:Ethernet  HWaddr 02:18:31:7E:3E:6F
              BROADCAST MULTICAST  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

    eth2      Link encap:Ethernet  HWaddr 5A:E5:42:00:51:F2
              inet addr:192.168.1.22  Bcast:192.168.1.255  Mask:255.255.255.0
              inet6 addr: fe80::58e5:42ff:fe00:51f2/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:0 (0.0 B)  TX bytes:1098 (1.0 KiB)

    eth3      Link encap:Ethernet  HWaddr 66:C9:BC:66:05:0D
              BROADCAST MULTICAST  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

    lo        Link encap:Local Loopback
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:65536  Metric:1
              RX packets:10 errors:0 dropped:0 overruns:0 frame:0
              TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:700 (700.0 B)  TX bytes:700 (700.0 B)

    tunl0     Link encap:UNSPEC  HWaddr 00-00-00-00-31-00-00-5A-00-00-00-00-00-00-00-00
              NOARP  MTU:1480  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

    root@k2hk-evm:~# ping 192.168.1.44
    PING 192.168.1.44 (192.168.1.44): 56 data bytes
    64 bytes from 192.168.1.44: seq=0 ttl=64 time=0.149 ms
    64 bytes from 192.168.1.44: seq=1 ttl=64 time=0.068 ms
    64 bytes from 192.168.1.44: seq=2 ttl=64 time=0.074 ms
    64 bytes from 192.168.1.44: seq=3 ttl=64 time=0.067 ms
    ^C
    --- 192.168.1.44 ping statistics ---
    4 packets transmitted, 4 packets received, 0% packet loss
    round-trip min/avg/max = 0.067/0.089/0.149 ms
    root@k2hk-evm:~#

    Rex

  • Dear Rex,

    fortunately you are showing that it should work with Procsdk.

    When I am using the breakout board the eth0 link will be down after several seconds. Before that happens I can connect over ssh to the board as usual.

    Are you configuring the U-boot environment variables in addition to the device tree?

    Could you please paste your u-boot and boot log here?

    Tobias

  • Hi Tobias,

    > When I am using the breakout board the eth0 link will be down after several seconds.
    > Before that happens I can connect over ssh to the board as usual.
    I had a similar problem. (K2EVM-HK Rev3.0 + Mistral RTM_BOC RevC + ProcSDK Linux v3)
    I applied two workaround.

    1.
    In my environment, following messages were found in booting.
    [ 12.937404] keystone-navigator-qmss soc:qmss@2a40000: out of descs in region(12) for pool(tx-pool-0-eth0)
    [ 12.947038] net eth0: Couldn't create tx-pool-0-eth0 tx pool 0

    So, I increased the qmss region-spac. (11264 -> 16384)
    I added the following to keystone-k2hk-evm.dts.

    &qmss {
    descriptor-regions {
    region-12 {
    region-spec = <16384 128>; /* num_desc desc_size */
    };
    };
    };

    2.
    After debugging about it, I found that the register value read using MDIO bus is incorrect.
    And, The MDC/MDIO signal condition seen in the oscilloscope were very bad.

    So, I removed R171 and R177 resistors on the Mistral RTM_BOC.

    When I am using the Mistral RTM_BOC, eth0(eth1) on K2EVM-HK will be working normally by it.

    Best Regards,
    Yasunori