Devkit Ethernet interface kompatibility issue with 100Mbit enviroment

Hello nVidia,

I’m trying to interfacing Xavier AGX through its adapter board (Stock board from devkit) to a 100Mbit Ethernet.

In order to meet the need of the industry-standard we are working in. We are trying to build a adapter like This One (Datasheet) to conver a RJ45 Ethernet Interface to 4-Pol M12 Connector.

Our final Ethernet Adapter Prototype is some how like: on one side is a RJ45 male-plug connects to Xavier, on the other side is a M12 Socket, which will connect to other devices on ethernet.

The Problem is: This adapter works well with some switch (Netgear GS108, and 3 other switches). But it can not work with a Netgear GS108PE or even the company switch.

How can this happens, and how to deal with it. Is there some compatibility issue there?

P.s.:
I’ve tried to connecting a Crossover adapter into the test stil without luck.

I believe current status is not clear. Not sure if this is hardware or software issue. Please share the working and not working log to check.

Logs with a working Switch:

Through command

ethtool eth0

I got the following output:

Settings for eth0:
        Supported ports: [ TP MII ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Half 1000baseT/Full
        Supported pause frame use: Symmetric Receive-only
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Half 1000baseT/Full
        Advertised pause frame use: Symmetric Receive-only
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Link partner advertised link modes:  10baseT/Half 10baseT/Full
                                             100baseT/Half 100baseT/Full
                                             1000baseT/Half 1000baseT/Full
        Link partner advertised pause frame use: Symmetric Receive-only
        Link partner advertised auto-negotiation: Yes
        Link partner advertised FEC modes: Not reported
        Speed: 1000Mb/s
        Duplex: Full
        Port: MII
        PHYAD: 0
        Transceiver: external
        Auto-negotiation: on
        Supports Wake-on: g
        Wake-on: d
        Link detected: yes

Through command

dmesg | grep "eth0"

I got the following log:

[   11.695768] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[   11.769350] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[   24.791618] eqos 2490000.ether_qos eth0: Link is Up - 100Mbps/Full - flow control rx/tx
[   24.792335] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

The Error log with not working Switches will be postet later. Thank you again.

Logs with a none-working switch

ethtool eth0

return:

Settings for eth0:
        Supported ports: [ TP MII ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Half 1000baseT/Full
        Supported pause frame use: Symmetric Receive-only
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Half 1000baseT/Full
        Advertised pause frame use: Symmetric Receive-only
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Speed: 1000Mb/s
        Duplex: Half
        Port: MII
        PHYAD: 0
        Transceiver: external
        Auto-negotiation: on
        Supports Wake-on: g
        Wake-on: d
        Link detected: no

And through this command:

dmesg | grep eth0

returns:

[149092.771742] eqos 2490000.ether_qos eth0: Link is Up - 1Gbps/Full                                                                                                                               - flow control rx/tx
[154661.534223] eqos 2490000.ether_qos eth0: Link is Down

It looks for my human eyes that the PHY has this hardware setup as “1Gbit/s, half duplex” identified. And This is surely not the correct one it is.

BTW: Belonge these “autodetection” job to PHY Chip or by other part of Xavier? Can these model been suppressed?

Cheer

Su

I don’t understand your problem. The speed seems correct because you turn the auto negotiation on.

Do you want to point out the disconnection?

I think what it comes down to is that the PHY thinks it is standard, but really is not (one wire pair is missing…the PHY does not know this and software is trying to be too smart). To work correctly the PHY has to be told to hold back its speed to a lower 100Mbit/s as if it is not standard, but some form of auto detect is getting in the way. The real answer would be to provide all of the ethernet wires, but barring that any method of forcing 100Mbit/s with auto negotiation disabled would work.

Hi Linuxdev,

I’m back. Thank you for your “100Mbit/s Forcing” suggestion. It looks for me also kinda failure from auto-negotiation. I will investegate time on this possible solution.

Thank you again & cheers

Gfast2

Hi guys,

We’ve solve this problem, The reason of this small error is only caused by the auto-negotiation of PHY. It works not promising as always.

ethtool -s eth0 speed 100 duplex full autoneg off