Xavier NX, custom bosrd. Network card extended from PCIE, can not get ip address even in static IP mode

Hi:
1: For xavier nx In our custom board, NIC extended from PCIE1, Schematic diagram is as follows
image

2: RTL8111G driver is NX primary driver. After open C4 Controller and commnet nvidia,enable-power-down ,

lspci -vvv

0004:00:00.0 PCI bridge: NVIDIA Corporation Device 1ad1 (rev a1) (prog-if 00 [Normal decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 33
Bus: primary=00, secondary=01, subordinate=ff, sec-latency=0
I/O behind bridge: 0000f000-00000fff
Memory behind bridge: fff00000-000fffff
Prefetchable memory behind bridge: 00000000fff00000-00000000000fffff
Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- Reset- FastB2B-
PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
Capabilities:
Kernel driver in use: pcieport
0004:01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 0c)
Subsystem: Realtek Semiconductor Co., Ltd. RTL8111/8168 PCI Express Gigabit Ethernet controller
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 555
Region 0: I/O ports at 1000 [size=256]
Region 2: Memory at 1740000000 (64-bit, non-prefetchable) [size=4K]
Region 4: Memory at 1400000000 (64-bit, prefetchable) [size=16K]
Capabilities:
Kernel driver in use: r8168
0005:00:00.0 PCI bridge: NVIDIA Corporation Device 1ad0 (rev a1) (prog-if 00 [Normal decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 35
Bus: primary=00, secondary=01, subordinate=ff, sec-latency=0
I/O behind bridge: 0000f000-00000fff
Memory behind bridge: fff00000-000fffff
Prefetchable memory behind bridge: 00000000fff00000-00000000000fffff
Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- Reset- FastB2B-
PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
Capabilities:
Kernel driver in use: pcieport

3:But eth1 cann`t get ip address. Analyze dmesg, no error or warning message. IRQ is unique, and even if close aspm, the problem is not getting better

dmesg

[ 94.934121] r8168 0004:01:00.0: enabling device (0000 -> 0003)
[ 94.934247] r8168 Gigabit Ethernet driver 8.045.08-NAPI loaded
[ 94.934527] unknown chip version (7c800000)
[ 94.976649] r8168 0004:01:00.0 (unnamed net_device) (uninitialized): Invalid ethernet address ff:ff:ff:ff:ff:ff, trying device tree node
[ 94.976759] r8168 0004:01:00.0 (unnamed net_device) (uninitialized): bad mac address at /chosen/nvidia,ethernet-mac: missing.
[ 94.977027] r8168 0004:01:00.0 (unnamed net_device) (uninitialized): Assigning random ethernet address 7e:52:e9:a0:cc:0d
[ 94.979196] r8168: This product is covered by one or more of the following patents: US6,570,884, US6,115,776, and US6,327,625.
[ 94.979240] r8168 Copyright © 2017 Realtek NIC software team nicfae@realtek.com
This program comes with ABSOLUTELY NO WARRANTY; for details, please see http://www.gnu.org/licenses/.
This is free software, and you are welcome to redistribute it under certain conditions; see http://www.gnu.org/licenses/.
[ 95.038345] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
[ 95.040563] eth1: 0xffffff800d30d000, aa:97:a0:b6:ae:97, IRQ 555
[ 97.962651] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
[ 98.977017] r8168: eth1: link up
[ 98.977096] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready

ethtool eth1

Settings for eth1:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
MDI-X: Unknown
Cannot get wake-on-lan settings: Operation not permitted
Current message level: 0x00000033 (51)
drv probe ifdown ifup
Link detected: yes

4: else, we find a stange phenomenon, RTL8111 have two interface : wired connection1 and wired connection2 as follow

5.1: We have update RTL8111G driver, but seem that driver is normally from dmesg. and use static IP without any help.

Why eth1 cann`t get ip address? How to fix this problem? Thanks very much.

I probably can’t answer, but it might be useful to see statistics from “ifconfig eth1”, both before and after trying to get an address (using only “after” works if this is all you can get).

1 Like

Is the device able to work if you assign static IP?

Could you past the full dmesg instead of a partial one?

1 Like

dmesg : dmesg.log (64.8 KB)

sudo ip address add 192.168.1.201 dev eth1
ifconfig

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.201 netmask 255.255.255.0 broadcast 0.0.0.0
inet6 fe80::dee2:478b:7bc4:3282 prefixlen 64 scopeid 0x20
ether aa:97:a0:b6:ae:97 txqueuelen 1000 (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
device interrupt 43 base 0x2000

I don’t see any RX TX packets there.
Could you try to direct connect another host and ping each other to verify the function?

1 Like

1: I closed eqos_ether, so eth0 now is rtl8111G network interface.

ifconfig eth0

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.201 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::fcb6:c51c:79e9:a445 prefixlen 64 scopeid 0x20
ether aa:97:a0:b6:ae:97 txqueuelen 1000 (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 1007 overruns 0 carrier 0 collisions 0
device interrupt 33 base 0x1000

ping 192.168.1.199

PING 192.168.1.199 (192.168.1.199) 56(84) bytes of data.
From 192.168.1.201 icmp_seq=1 Destination Host Unreachable
From 192.168.1.201 icmp_seq=2 Destination Host Unreachable
From 192.168.1.201 icmp_seq=5 Destination Host Unreachable
From 192.168.1.201 icmp_seq=6 Destination Host Unreachable
From 192.168.1.201 icmp_seq=7 Destination Host Unreachable
From 192.168.1.201 icmp_seq=8 Destination Host Unreachable
From 192.168.1.201 icmp_seq=9 Destination Host Unreachable

2: PC ip is 192.168.1.199

Could you check the syslog and see if we can find the reason why DHCP cannot work?

How to get syslog about network?

No special rules. You have to tell it by yourself.

hi 848145724:
since eth0 has already got IP:192.168.1.201, seems driver is OK.
could you connect device to anther PC to test point2point test first via Ethernet?

1: the IP is static ip not dhcp, and cann`t ping.
2: Both PC computers and routers tested at least two which directed connected to NX.

cat /var/log/syslog |grep error, could you find some errors special for network card?

FYI, since there are no packets at all, then not even a DHCP request went out. You might want to also add to the thread what you see from the “route” command, along with the full “ifconfig” (that way we could see what routes go with which interface).

syslog_error.log (9.0 KB)

Hi,

Don’t found helpful clue in your syslog. Could you upload the full syslog without grep?

Thank you very much, this is full log file:
syslog.txt (714.7 KB)

Hi,

Jan 29 00:04:12 ec-desktop NetworkManager[4997]: [1517155452.1019] dhcp4 (eth0): request timed out
Jan 29 00:04:12 ec-desktop NetworkManager[4997]: [1517155452.1021] dhcp4 (eth0): state changed unknown -> timeout
Jan 29 00:04:12 ec-desktop NetworkManager[4997]: [1517155452.1197] dhcp4 (eth0): canceled DHCP transaction, DHCP client pid 19719
Jan 29 00:04:12 ec-desktop NetworkManager[4997]: [1517155452.1198] dhcp4 (eth0): state changed timeout -> done

Looks like dhcp gets no response.

Is this NIC able to test on NX devkit?

How to test NIC on NX devkit?

What interface is this NIC board using? Is there any available port you could use on devkit?

We have 1 M.2 key E slot on devkit, does your NIC have m.2 interface?

1: what`s mean devkit? We use custom.
2: the chip is attached directly to the bottom plate as I described at the beginning.
3: There is no m.2 interface for NIC.