Hi all,
We have an RMII ethernet interface connected to an AM3352 chip. We're aware of the clock errata, and have the PHY providing the clock. After some initial difficulties getting our MDIO working, we now have an ethernet device showing up in Linux.
When we use the route command, we see sensible output (see attached).
When we try to send any data, whether via ping, netcat, or any other tool, we see no activity on our TX lines to the PHY, and no packets are sent. We've verified the pin-muxing of the TX lines by looking at the processor registers. Our RX lines do show traffic, but even when we specifically direct traffic to the board, we see no indication that the board has received it.
One interesting behavior is that when we attempt to send a packet, we do not see the TX or RX count increment on eth0. However, we do see the lo interface increment both TX and RX packets by 1 (see second attachment). However, when we try to send data to 'localhost' with a corresponding receive process, the connect fails, and it indicates 'no route to host' (see third attachment).
I've tried everything I can think of: instrumenting the TCP framework, double-checking our pin muxing, verifying that we have devices for the PHYs, MDIO, etc - what could be causing our board to not be able to use the Ethernet interface?
~ # ifconfig eth0 Link encap:Ethernet HWaddr 12:34:56:78:90:12 inet addr:192.168.0.2 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::1034:56ff:fe78:9012/64 Scope:Link UP 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) Interrupt:40 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:16436 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) ~ # route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.0.0 * 255.255.255.0 U 0 0 0 eth0
~ # ifconfig eth0 Link encap:Ethernet HWaddr 12:34:56:78:90:12 inet addr:192.168.0.20 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::1034:56ff:fe78:9012/64 Scope:Link UP 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) Interrupt:40 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:16436 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) ~ # ping -4 -c 1 192.168.0.1 PING 192.168.0.1 (192.168.0.1): 56 data bytes --- 192.168.0.1 ping statistics --- 1 packets transmitted, 0 packets received, 100% packet loss ~ # ifconfig eth0 Link encap:Ethernet HWaddr 12:34:56:78:90:12 inet addr:192.168.0.20 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::1034:56ff:fe78:9012/64 Scope:Link UP 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) Interrupt:40 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:16436 Metric:1 RX packets:1 errors:0 dropped:0 overruns:0 frame:0 TX packets:1 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:112 (112.0 B) TX bytes:112 (112.0 B) ~ # ifconfig eth0 Link encap:Ethernet HWaddr 12:34:56:78:90:12 inet addr:192.168.0.20 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::1034:56ff:fe78:9012/64 Scope:Link UP 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) Interrupt:40 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:16436 Metric:1 RX packets:1 errors:0 dropped:0 overruns:0 frame:0 TX packets:1 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:112 (112.0 B) TX bytes:112 (112.0 B) ~ # ping -4 -c 1 192.168.0.1 PING 192.168.0.1 (192.168.0.1): 56 data bytes --- 192.168.0.1 ping statistics --- 1 packets transmitted, 0 packets received, 100% packet loss ~ # ifconfig eth0 Link encap:Ethernet HWaddr 12:34:56:78:90:12 inet addr:192.168.0.20 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::1034:56ff:fe78:9012/64 Scope:Link UP 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) Interrupt:40 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:16436 Metric:1 RX packets:2 errors:0 dropped:0 overruns:0 frame:0 TX packets:2 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:224 (224.0 B) TX bytes:224 (224.0 B) ~ # ifconfig eth0 Link encap:Ethernet HWaddr 12:34:56:78:90:12 inet addr:192.168.0.20 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::1034:56ff:fe78:9012/64 Scope:Link UP 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) Interrupt:40 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:16436 Metric:1 RX packets:2 errors:0 dropped:0 overruns:0 frame:0 TX packets:2 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:224 (224.0 B) TX bytes:224 (224.0 B)
~ # nc -l 12345 & ~ # echo "Hello World" | nc localhost 12345 nc: can't connect to remote host (127.0.0.1): Connection refused ~ # ps PID USER VSZ STAT COMMAND 1 root 2880 S init 2 root 0 SW [kthreadd] 3 root 0 SW [ksoftirqd/0] <snip> 1166 root 2880 S nc -l 12345
Thanks,
Ben