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.

PROCESSOR-SDK-J784S4: Enable both ethernet ports on EVM

Part Number: PROCESSOR-SDK-J784S4

Tool/software:

The EVM has two ethernet port. The prebuilt image enables one of the ethernet port (driven from MCU). The other is not enabled. We would appreciate any advice on any method to enable both either ports, ideally support 1Gbps, either through rebuilding image, or device tree, or some other ways. 

Thanks.

shige

  • Hi,

    Both the RJ45 ethernet ports are enabled by default in the SDKs from linux. You should be able to see both eth0 and eth1. Is that not the case? can you share the bootlogs in that case.

    Please also share output of "ethtool -i <$IF_NAME>" to see driver details and see which interface belongs to which port.

    Regards,
    Tanmay

  • Thanks Tammay. 

    While the ethtool did show both ethernet interfaces, only 1 (labeled as MCU RGMII) is reachable/functioning. The other one (labeled as RGMII, with a sticker on the port 70FF761EC017) is not reachable. 

    Here is my setup:

         Host 1 (192.168.1.100) ---- RJ45 cable ----------- MCU RGMII (eth0: 192.168.1.11)

         Host 2 (192.168.1.101) ---- RJ45 cable ------------RGMII (eth1: 192.168.1.12)  

    With this configuration, I expected to Host 1 can reach EVM throught EVM eth0, and Host 2 through EVM eth1. However, the behavior was odd: Host 1 can reach to both eth0 and eth1 (tested with ping, ssh), and none can be reached from Host 2. Then I swapped the cable. Then both can be reached from Host 2 but none from Host 1. 

    Here is EVM ethtool -i output:  

    --------------------------------------------------

    root@j784s4-evm:~# ethtool -i eth0
    driver: am65-cpsw-nuss
    version: 6.1.80-ti-g2e423244f8c0
    firmware-version:
    expansion-rom-version:
    bus-info: 46000000.ethernet
    supports-statistics: yes
    supports-test: no
    supports-eeprom-access: no
    supports-register-dump: yes
    supports-priv-flags: yes

    root@j784s4-evm:~# ethtool -i eth1
    driver: am65-cpsw-nuss
    version: 6.1.80-ti-g2e423244f8c0
    firmware-version:
    expansion-rom-version:
    bus-info: c200000.ethernet
    supports-statistics: yes
    supports-test: no
    supports-eeprom-access: no
    supports-register-dump: yes
    supports-priv-flags: yes

    ---------------------------------------------------

    Here is the output from ifconfig

    ---------------------------------------------------

    root@j784s4-evm:~# ifconfig
    docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
    inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255
    ether 02:42:2a:5b:7f:e2 txqueuelen 0 (Ethernet)
    RX packets 0 bytes 0 (0.0 B)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 0 bytes 0 (0.0 B)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

    eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
    inet 192.168.1.11 netmask 255.255.255.0 broadcast 192.168.1.255
    inet6 fe80::6ae7:4aff:fe08:be20 prefixlen 64 scopeid 0x20<link>
    ether 68:e7:4a:08:be:20 txqueuelen 1000 (Ethernet)
    RX packets 805 bytes 82978 (81.0 KiB)
    RX errors 0 dropped 3 overruns 0 frame 0
    TX packets 467 bytes 65224 (63.6 KiB)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

    eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
    inet 192.168.1.12 netmask 255.255.255.0 broadcast 192.168.1.255
    inet6 fe80::2c94:faff:feed:a38f prefixlen 64 scopeid 0x20<link>
    ether 2e:94:fa:ed:a3:8f txqueuelen 1000 (Ethernet)
    RX packets 1622 bytes 137101 (133.8 KiB)
    RX errors 0 dropped 2 overruns 0 frame 0
    TX packets 121 bytes 23386 (22.8 KiB)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

    lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
    inet 127.0.0.1 netmask 255.0.0.0
    inet6 ::1 prefixlen 128 scopeid 0x10<host>
    loop txqueuelen 1000 (Local Loopback)
    RX packets 111 bytes 9326 (9.1 KiB)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 111 bytes 9326 (9.1 KiB)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

    --------------------------------------------------------------------

    It seems that only the driver for MCU works, assuming the port labeled as RGMII driven by the A72 not functioning. Don't know what the sticker on the port RGMII is - looks like a MAC address, but it is different from what the software detected. 

    The kernel version:

    root@j784s4-evm:~# uname -a
    Linux j784s4-evm 6.1.80-ti-g2e423244f8c0 #1 SMP PREEMPT Wed Mar 20 14:43:33 UTC 2024 aarch64 aarch64 aarch64 GNU/Linux

    It is prebuild image from SDK 9.02. 

  • Hi,

    This is because you are having all the interfaces on same subnet.

    If you change the subnet for host2 and eth1 (host2 :192.168.2.101 and eth1:192.168.2.12), you should be able to ping host1 to eth0 and host2 to eth1.

    Regards,
    Tanmay

  • Thanks, Tanmay. 

    Although there is a case that the two ports may have to run on the same subnet (e.g. the board connected to two image radars on the same subnet, and the EVM receives only UDP packages), I will address it outside this ask. 

    So I set them in different subnets. Now it works for SDK 11 and 9 -- both ports and connections functioned as expected. For SDK 10 (10.01 release Dec 2024), only MCU RGMII port worked, but never RGMII. It showed eth1 is up, and the port at the other end always get cable unplugged status  

    Any advise?

    shige

  • Hi,

    Can you share the bootlogs in case of SDK 10?

    Regards,
    Tanmay