[U-Boot] Ping failure

Hi,
I'm trying to get an olinuxino-a64 board to boot using bootp but it failed to send any DHCP packets so I reduced the problem to trying to get it to ping another host but that fails as well.
I tried it both with 2018.09 and then the head of master given there were some recent commits to the net area to fix handling asynchronous responses.
I'm testing this by having the board ethernet connected to a switch and another port of the switch to a host running wireshark snooping packets in promiscuous mode.
If I let the board boot completely (ie start the kernel) and configure the interface I can ping the host without any issues, so I assume the dtb is ok.
However, if I interrupt the boot and try to ping tho host from within u-boot I get:
U-Boot SPL 2018.11-rc3-g5ef76e5 (Nov 05 2018 - 16:39:47 +0000) DRAM: 1024 MiB Trying to boot from MMC1
U-Boot 2018.11-rc3-g5ef76e5 (Nov 05 2018 - 16:39:47 +0000) Allwinner Technology
CPU: Allwinner A64 (SUN50I) Model: Olimex A64-Olinuxino DRAM: 1 GiB MMC: SUNXI SD/MMC: 0, SUNXI SD/MMC: 1 Loading Environment from FAT... *** Warning - bad CRC, using default environment
In: serial Out: serial Err: serial Net: phy interface7 eth0: ethernet@1c30000 starting USB... No controllers found Hit any key to stop autoboot: 0 => setenv ipaddr 192.168.0.2 => log level 10 => setenv netmask 255.255.255.0 _do_env_set() Initial value for argc=3 _do_env_set() Final value for argc=3 => ping 192.168.0.1 net_loop() --- net_loop Entry net_set_udp_handler() --- net_loop UDP handler set (0000000000000000) net_set_arp_handler() --- net_loop ARP handler set (0000000000000000) net_set_timeout_handler() --- net_loop timeout handler cancelled _do_env_set() Initial value for argc=3 _do_env_set() Final value for argc=3 eth_init() Trying ethernet@1c30000 net_set_state() --- NetState set to 0 net_loop() --- net_loop Init Using ethernet@1c30000 device net_set_timeout_handler() --- net_loop timeout handler set (000000007dfa4cf0) ping_send() sending ARP for 192.168.0.1 arp_raw_request() ARP broadcast 1 arp_raw_request() ARP broadcast 2 arp_raw_request() ARP broadcast 3 arp_raw_request() ARP broadcast 4
ARP Retry count exceeded; starting again net_set_state() --- NetState set to 3 net_set_state() --- NetState set to 3 net_set_udp_handler() --- net_loop UDP handler set (0000000000000000) net_set_arp_handler() --- net_loop ARP handler set (0000000000000000) net_set_timeout_handler() --- net_loop timeout handler cancelled net_loop() --- net_loop Fail! net_set_state() --- NetState set to 0 ping failed; host 192.168.0.1 is not alive cmd_call() Command failed, result=1 =>
The lines: net_set_udp_handler() --- net_loop UDP handler set (0000000000000000) net_set_arp_handler() --- net_loop ARP handler set (0000000000000000)
seem a bit odd to me but they may be correct.
I'm stuck and don't really know how to proceed. Any suggestions please?
Thanks

I forgot to add that the ethernet socket shows a green light and when u-boot sends packets the other led flashes amber...
This puzzles me because wireshark doesn't capture any packets.
On Mon, Nov 5, 2018 at 5:07 PM Paul Nader paul.nader@gmail.com wrote:
Hi,
I'm trying to get an olinuxino-a64 board to boot using bootp but it failed to send any DHCP packets so I reduced the problem to trying to get it to ping another host but that fails as well.
I tried it both with 2018.09 and then the head of master given there were some recent commits to the net area to fix handling asynchronous responses.
I'm testing this by having the board ethernet connected to a switch and another port of the switch to a host running wireshark snooping packets in promiscuous mode.
If I let the board boot completely (ie start the kernel) and configure the interface I can ping the host without any issues, so I assume the dtb is ok.
However, if I interrupt the boot and try to ping tho host from within u-boot I get:
U-Boot SPL 2018.11-rc3-g5ef76e5 (Nov 05 2018 - 16:39:47 +0000) DRAM: 1024 MiB Trying to boot from MMC1
U-Boot 2018.11-rc3-g5ef76e5 (Nov 05 2018 - 16:39:47 +0000) Allwinner Technology
CPU: Allwinner A64 (SUN50I) Model: Olimex A64-Olinuxino DRAM: 1 GiB MMC: SUNXI SD/MMC: 0, SUNXI SD/MMC: 1 Loading Environment from FAT... *** Warning - bad CRC, using default environment
In: serial Out: serial Err: serial Net: phy interface7 eth0: ethernet@1c30000 starting USB... No controllers found Hit any key to stop autoboot: 0 => setenv ipaddr 192.168.0.2 => log level 10 => setenv netmask 255.255.255.0 _do_env_set() Initial value for argc=3 _do_env_set() Final value for argc=3 => ping 192.168.0.1 net_loop() --- net_loop Entry net_set_udp_handler() --- net_loop UDP handler set (0000000000000000) net_set_arp_handler() --- net_loop ARP handler set (0000000000000000) net_set_timeout_handler() --- net_loop timeout handler cancelled _do_env_set() Initial value for argc=3 _do_env_set() Final value for argc=3 eth_init() Trying ethernet@1c30000 net_set_state() --- NetState set to 0 net_loop() --- net_loop Init Using ethernet@1c30000 device net_set_timeout_handler() --- net_loop timeout handler set (000000007dfa4cf0) ping_send() sending ARP for 192.168.0.1 arp_raw_request() ARP broadcast 1 arp_raw_request() ARP broadcast 2 arp_raw_request() ARP broadcast 3 arp_raw_request() ARP broadcast 4
ARP Retry count exceeded; starting again net_set_state() --- NetState set to 3 net_set_state() --- NetState set to 3 net_set_udp_handler() --- net_loop UDP handler set (0000000000000000) net_set_arp_handler() --- net_loop ARP handler set (0000000000000000) net_set_timeout_handler() --- net_loop timeout handler cancelled net_loop() --- net_loop Fail! net_set_state() --- NetState set to 0 ping failed; host 192.168.0.1 is not alive cmd_call() Command failed, result=1 =>
The lines: net_set_udp_handler() --- net_loop UDP handler set (0000000000000000) net_set_arp_handler() --- net_loop ARP handler set (0000000000000000)
seem a bit odd to me but they may be correct.
I'm stuck and don't really know how to proceed. Any suggestions please?
Thanks

On Tue, 6 Nov 2018, 6:09 AM Paul Nader <paul.nader@gmail.com wrote:
Hi,
I'm trying to get an olinuxino-a64 board to boot using bootp but it failed to send any DHCP packets so I reduced the problem to trying to get it to ping another host but that fails as well.
I tried it both with 2018.09 and then the head of master given there were some recent commits to the net area to fix handling asynchronous responses.
I'm testing this by having the board ethernet connected to a switch and another port of the switch to a host running wireshark snooping packets in promiscuous mode.
Could the switch be dropping the packets? Are the ports in the same vlan? Is your monitoring host the same host you're trying to ping? (if not you'll need to configure your switch for mirroring)
If I let the board boot completely (ie start the kernel) and configure the interface I can ping the host without any issues, so I assume the dtb is ok.
However, if I interrupt the boot and try to ping tho host from within u-boot I get:
U-Boot SPL 2018.11-rc3-g5ef76e5 (Nov 05 2018 - 16:39:47 +0000) DRAM: 1024 MiB Trying to boot from MMC1
U-Boot 2018.11-rc3-g5ef76e5 (Nov 05 2018 - 16:39:47 +0000) Allwinner Technology
CPU: Allwinner A64 (SUN50I) Model: Olimex A64-Olinuxino DRAM: 1 GiB MMC: SUNXI SD/MMC: 0, SUNXI SD/MMC: 1 Loading Environment from FAT... *** Warning - bad CRC, using default environment
In: serial Out: serial Err: serial Net: phy interface7 eth0: ethernet@1c30000 starting USB... No controllers found Hit any key to stop autoboot: 0 => setenv ipaddr 192.168.0.2 => log level 10 => setenv netmask 255.255.255.0
What do you end up with for a mac address? I'm not familiar with the olinuxino hardware does it have an eeprom for the mac or does it just come from the environment.
_do_env_set() Initial value for argc=3
_do_env_set() Final value for argc=3 => ping 192.168.0.1 net_loop() --- net_loop Entry net_set_udp_handler() --- net_loop UDP handler set (0000000000000000) net_set_arp_handler() --- net_loop ARP handler set (0000000000000000) net_set_timeout_handler() --- net_loop timeout handler cancelled _do_env_set() Initial value for argc=3 _do_env_set() Final value for argc=3 eth_init() Trying ethernet@1c30000 net_set_state() --- NetState set to 0 net_loop() --- net_loop Init Using ethernet@1c30000 device net_set_timeout_handler() --- net_loop timeout handler set (000000007dfa4cf0) ping_send() sending ARP for 192.168.0.1 arp_raw_request() ARP broadcast 1 arp_raw_request() ARP broadcast 2 arp_raw_request() ARP broadcast 3 arp_raw_request() ARP broadcast 4
ARP Retry count exceeded; starting again net_set_state() --- NetState set to 3 net_set_state() --- NetState set to 3 net_set_udp_handler() --- net_loop UDP handler set (0000000000000000) net_set_arp_handler() --- net_loop ARP handler set (0000000000000000) net_set_timeout_handler() --- net_loop timeout handler cancelled net_loop() --- net_loop Fail! net_set_state() --- NetState set to 0 ping failed; host 192.168.0.1 is not alive cmd_call() Command failed, result=1 =>
The lines: net_set_udp_handler() --- net_loop UDP handler set (0000000000000000) net_set_arp_handler() --- net_loop ARP handler set (0000000000000000)
seem a bit odd to me but they may be correct.
I'm stuck and don't really know how to proceed. Any suggestions please?
Thanks _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
participants (2)
-
Chris Packham
-
Paul Nader