[U-Boot] Ping failure

Paul Nader paul.nader at gmail.com
Mon Nov 5 17:07:20 UTC 2018


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 at 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 at 1c30000
net_set_state() --- NetState set to 0
net_loop() --- net_loop Init
Using ethernet at 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


More information about the U-Boot mailing list