I'm using the i.mx6q sabresd board, and the the u-boot cannot ping it self. Following is the environment of uboot. The ping prints:
=> ping 10.10.70.102
FEC Waiting for PHY auto negotiation to complete......... TIMEOUT !
Using FEC device
ARP Retry count exceeded; starting again
ping failed; host 10.10.70.102 is not alive
----------------------------------------------uboot environments------------------------------------------
U-Boot 2016.03 (Aug 22 2017 - 08:44:18 +0800)
CPU: Freescale i.MX6D rev1.2 996 MHz (running at 792 MHz)
CPU: Extended Commercial temperature grade (-20C to 105C) at 33C
Reset cause: POR
Board: MX6-SabreSD
I2C: ready
DRAM: 992 MiB
PMIC: PFUZE100 ID=0x10
MMC: FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2
No panel detected: default to Hannstar-XGA
Display: Hannstar-XGA (1024x768)
In: serial
Out: serial
Err: serial
switch to partitions #0, OK
mmc1 is current device
Net: FEC [PRIME]
Normal Boot
Hit any key to stop autoboot: 0
=> printenv
baudrate=115200
board_name=SABRESD
board_rev=MX6Q
boot_fdt=try
bootcmd=run findfdt;mmc dev ${mmcdev};if mmc rescan; then if run loadbootscript; then run bootscript; else if run
loadimage; then run mmcboot; else run netboot; fi; fi; else run netboot; fi
bootcmd_mfg=run mfgtool_args;bootz ${loadaddr} ${initrd_addr} ${fdt_addr};
bootdelay=3
bootscript=echo Running bootscript from mmc ...; source
console=ttymxc0
dfu_alt_info=spl raw 0x400
dfu_alt_info_img=u-boot raw 0x10000
dfu_alt_info_spl=spl raw 0x400
dfuspi=dfu 0 sf 0:0:10000000:0
emmcdev=2
epdc_waveform=epdc_splash.bin
ethact=FEC
ethaddr=00:04:9f:03:ef:78
ethprime=FEC
fdt_addr=0x18000000
fdt_file=undefined
fdt_high=0xffffffff
findfdt=if test $fdt_file = undefined; then if test $board_name = SABREAUTO && test $board_rev = MX6QP; then setenv
fdt_file imx6qp-sabreauto.dtb; fi; if test $board_name = SABREAUTO && test $board_rev = MX6Q; then setenv fdt_file
imx6q-sabreauto.dtb; fi; if test $board_name = SABREAUTO && test $board_rev = MX6DL; then setenv fdt_file imx6dl-
sabreauto.dtb; fi; if test $board_name = SABRESD && test $board_rev = MX6QP; then setenv fdt_file imx6qp-
sabresd.dtb; fi; if test $board_name = SABRESD && test $board_rev = MX6Q; then setenv fdt_file imx6q-sabresd.dtb;
fi; if test $board_name = SABRESD && test $board_rev = MX6DL; then setenv fdt_file imx6dl-sabresd.dtb; fi; if test
$fdt_file = undefined; then echo WARNING: Could not determine dtb to use; fi; fi;
image=zImage
initrd_addr=0x12C00000
initrd_high=0xffffffff
ip_dyn=yes
ipaddr=10.10.70.102
loadaddr=0x12000000
loadbootscript=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};
loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}
loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}
mfgtool_args=setenv bootargs console=ttymxc0,115200 rdinit=/linuxrc g_mass_storage.stall=0
g_mass_storage.removable=1 g_mass_storage.file=/fat g_mass_storage.ro=1 g_mass_storage.idVendor=0x066F
g_mass_storage.idProduct=0x37FF g_mass_storage.iSerialNumber="" enable_wait_mode=off
mmcargs=setenv bootargs console=${console},${baudrate} ${smp} root=${mmcroot}
mmcautodetect=yes
mmcboot=echo Booting from mmc ...; run mmcargs; if test ${boot_fdt} = yes || test ${boot_fdt} = try; then if run
loadfdt; then bootz ${loadaddr} - ${fdt_addr}; else if test ${boot_fdt} = try; then bootz; else echo WARN: Cannot
load the DT; fi; fi; else bootz; fi;
mmcdev=1
mmcpart=1
mmcroot=/dev/mmcblk2p2 rootwait rw
netargs=setenv bootargs console=${console},${baudrate} ${smp} root=/dev/nfs ip=dhcp nfsroot=${serverip}:
${nfsroot},v3,tcp
netboot=echo Booting from net ...; run netargs; if test ${ip_dyn} = yes; then setenv get_cmd dhcp; else setenv
get_cmd tftp; fi; ${get_cmd} ${image}; if test ${boot_fdt} = yes || test ${boot_fdt} = try; then if ${get_cmd}
${fdt_addr} ${fdt_file}; then bootz ${loadaddr} - ${fdt_addr}; else if test ${boot_fdt} = try; then bootz; else
echo WARN: Cannot load the DT; fi; fi; else bootz; fi;
script=boot.scr
serverip=10.10.70.101
update_emmc_firmware=if test ${ip_dyn} = yes; then setenv get_cmd dhcp; else setenv get_cmd tftp; fi; if ${get_cmd}
${update_sd_firmware_filename}; then if mmc dev ${emmcdev} 1; then setexpr fw_sz ${filesize} / 0x200; setexpr fw_sz
${fw_sz} + 1; mmc write ${loadaddr} 0x2 ${fw_sz}; fi; fi
update_sd_firmware=if test ${ip_dyn} = yes; then setenv get_cmd dhcp; else setenv get_cmd tftp; fi; if mmc dev
${mmcdev}; then if ${get_cmd} ${update_sd_firmware_filename}; then setexpr fw_sz ${filesize} / 0x200; setexpr fw_sz
${fw_sz} + 1; mmc write ${loadaddr} 0x2 ${fw_sz}; fi; fi
Environment size: 3661/8188 bytes
=> ping 10.10.70.102
FEC Waiting for PHY auto negotiation to complete......... TIMEOUT !
Using FEC device
ARP Retry count exceeded; starting again
ping failed; host 10.10.70.102 is not alive
=>
已解决! 转到解答。
Hi,
Finally I find the reason. It is the physical cable. The cable works well for i.mx6q sabrelite board, but does not work for i.mx6q sabre sd board.
Pinging from uboot to a PC is possible as long as you ensure you have a valid IP address set.
However the u-boot IP stack is limited, so uboot does not respond to ping.
Look at the following page about ping response:
https://lists.denx.de/pipermail/u-boot/2016-September/265408.html
Have a great day,
Pavel Chubakov
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi,
I ping from the u-boot to the host, and it still does not work. But I can use the network from Linux.
The result is:
=> ping 10.10.70.101
FEC Waiting for PHY auto negotiation to complete......... TIMEOUT !
Using FEC device
ARP Retry count exceeded; starting again
ping failed; host 10.10.70.101 is not alive
Hi shijun zhao,
In Imx8mq evk I am able to ping ubuntu pc IP but I am not able to ping board itself. What is the reason behind.
Please find my logs below :
Board IP addrs:
-------------------
u-boot=> ping 192.168.0.120
Using ethernet@30be0000 device
ARP Retry count exceeded; starting again
ping failed; host 169.254.33.229 is not alive
Ubuntu PC IP addrs:
-----------------------------
u-boot=> ping 192.168.0.180
Using ethernet@30be0000 device
host 192.168.0.180 is alive
Regards,
Santosh