取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
zhouyong
Visitor
Visitor
1,048 次查看
注册日期: ‎07-28-2020

u-boot启动后,网络ping不通问题。

移植了一个u-boot-xlnx-xilinx-v2018.3,启动后网络ping不通,通过mdio list能够查看到PHY的型号,都是在同一网段。

uboot启动后,ping不通网络uboot启动后,ping不通网络

0 项奖励
11 回复数
chaoz
Xilinx Employee
Xilinx Employee
1,001 次查看
注册日期: ‎09-14-2018

Hi @zhouyong 

1. 你是u-boot ping主机还是主机ping u-boot(理论上u-boot可以ping 外部,但是不会响应外部的ping)?

2. 试下上电启动后再软起动(u-boot reset命令)一次?

供参考。

----------------------------------------------------------------------------------------------
如果帖子有帮助,别忘“接受为解决方案”或“奖励”。谢谢!
Don't forget to "Accept as solution" or "Kudo" if it helps. Thanks!
----------------------------------------------------------------------------------------------

 

0 项奖励
zhouyong
Visitor
Visitor
976 次查看
注册日期: ‎07-28-2020

uboot ping主机和主机ping uboot都不通,uboot ping自己的ip都不通。

请问有没有zynq的uboot移植教程,特别是对于涉及到网路部分的修改。已经卡在这里几天了。

 

print打印的信息如下:

Zynq> print
arch=arm
baudrate=115200
bitstream_image=system.bit.bin
board=zynq
board_name=zynq
boot_a_script=load ${devtype} ${devnum}:${distro_bootpart} ${scriptaddr} ${prefix}${script}; source ${scriptaddr}
boot_efi_binary=if fdt addr ${fdt_addr_r}; then bootefi bootmgr ${fdt_addr_r};else bootefi bootmgr ${fdtcontroladdr};fi;load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} efi/boot/bootarm.efi; if fdt addr ${fdt_addr_r}; then bootefi ${kernel_addr_r} ${fdt_addr_r};else bootefi ${kernel_addr_r} ${fdtcontroladdr};fi
boot_extlinux=sysboot ${devtype} ${devnum}:${distro_bootpart} any ${scriptaddr} ${prefix}extlinux/extlinux.conf
boot_image=BOOT.bin
boot_net_usb_start=usb start
boot_prefixes=/ /boot/
boot_script_dhcp=boot.scr.uimg
boot_scripts=boot.scr.uimg boot.scr
boot_size=0xF00000
boot_targets=usb0 pxe dhcp
bootcmd=run $modeboot || run distro_bootcmd
bootcmd_dhcp=run boot_net_usb_start; if dhcp ${scriptaddr} ${boot_script_dhcp}; then source ${scriptaddr}; fi;setenv efi_fdtfile ${fdtfile}; if test -z "${fdtfile}" -a -n "${soc}"; then setenv efi_fdtfile ${soc}-${board}${boardver}.dtb; fi; setenv efi_old_vci ${bootp_vci};setenv efi_old_arch ${bootp_arch};setenv bootp_vci PXEClient:Arch:00010:UNDI:003000;setenv bootp_arch 0xa;if dhcp ${kernel_addr_r}; then tftpboot ${fdt_addr_r} dtb/${efi_fdtfile};if fdt addr ${fdt_addr_r}; then bootefi ${kernel_addr_r} ${fdt_addr_r}; else bootefi ${kernel_addr_r} ${fdtcontroladdr};fi;fi;setenv bootp_vci ${efi_old_vci};setenv bootp_arch ${efi_old_arch};setenv efi_fdtfile;setenv efi_old_arch;setenv efi_old_vci;
bootcmd_pxe=run boot_net_usb_start; dhcp; if pxe get; then pxe boot; fi
bootcmd_usb0=setenv devnum 0; run usb_boot
bootdelay=2
bootenv=uEnv.txt
cpu=armv7
devicetree_image=devicetree.dtb
devicetree_load_address=0x2000000
devicetree_size=0x20000
devnum=0
dfu_ram=run dfu_ram_info && dfu 0 ram 0
dfu_ram_info=set dfu_alt_info ${kernel_image} ram 0x3000000 0x500000\\;${devicetree_image} ram 0x2A00000 0x20000\\;${ramdisk_image} ram 0x2000000 0x600000
distro_bootcmd=for target in ${boot_targets}; do run bootcmd_${target}; done
efi_dtb_prefixes=/ /dtb/ /dtb/current/
ethact=ethernet@e000b000
ethaddr=00:0a:35:00:01:22
fdt_high=0x20000000
fdtcontroladdr=3ffa11d0
gatewayip=192.168.31.1
importbootenv=echo Importing environment from SD ...; env import -t ${loadbootenv_addr} 

希望能有一个具体的移植文档,特别是关于uboot的网络移植部分需要注意哪些?希望能有一个具体的移植文档,特别是关于uboot的网络移植部分需要注意哪些?

0 项奖励
chaoz
Xilinx Employee
Xilinx Employee
963 次查看
注册日期: ‎09-14-2018

@zhouyong 

1. 自己ping自己时,因为u-boot不会响应ping, 所以不通可以理解。

2. 我看了你打印的env, 里面没有ipaddr. 你是怎么确定板子的IP地址的?

----------------------------------------------------------------------------------------------
如果帖子有帮助,别忘“接受为解决方案”或“奖励”。谢谢!
Don't forget to "Accept as solution" or "Kudo" if it helps. Thanks!
----------------------------------------------------------------------------------------------

0 项奖励
zhouyong
Visitor
Visitor
874 次查看
注册日期: ‎07-28-2020

ip地址是在include/configs/zynq-common.h文件中,在#define CONFIG_EXTRA_ENV_SETTINGS 宏中添加了ip地址、网关,netmask,以及服务器的ip地址。自己在uboot下,也通过set ipaddr设置ip地址,然后saveenv设置ip地址,但是板卡上电后,ip地址会恢复成#define CONFIG_EXTRA_ENV_SETTINGS宏中的ip地址(因为感觉自己的uboot的nandflash有问题,打印的信息中也有提示NAND: zynq_nand_init: Unable detect NAND based on MIO settings
ZYNQ NAND init failed)

uboot的nandflash有问题uboot的nandflash有问题

0 项奖励
zhouyong
Visitor
Visitor
870 次查看
注册日期: ‎07-28-2020

nandflash问题已经没有打印了,自己在uboot配置中去掉了nand配置。主要还是网络ping不通,板卡和pc的网口灯都一直没亮过(没有link),板卡硬件网络部分之前验证了的,网络是正常的。

0 项奖励
chaoz
Xilinx Employee
Xilinx Employee
844 次查看
注册日期: ‎09-14-2018

@zhouyong 

1. Xilinx u-boot build参考见下面wiki, 基本上不需要移植工作。

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841973/Build+U-Boot

2. u-boot下mii info能看到什么信息?

3. “板卡和pc的网口灯都一直没亮过(没有link),板卡硬件网络部分之前验证了的,网络是正常的” -- 可以再double check下吗? 我理解灯都不亮物理层不通的可能性很大。确定同一块板卡在Linux下是通的?

 

 

0 项奖励
zhouyong
Visitor
Visitor
840 次查看
注册日期: ‎07-28-2020

Zynq> mii info
PHY 0x01: OUI = 0x5043, Model = 0x0C, Rev = 0x02, 10baseT, HDX

 


Zynq> mdio read 1 1
1 is not a known ethernet
Reading from bus eth0
PHY at address 1:
1 - 0x7949
Zynq> mdio read 1 11
1 is not a known ethernet
Reading from bus eth0
PHY at address 1:
17 - 0x8140

之前一直跑的VxWorks,没有跑linux。板卡跑VxWorks系统网络都是好的,又下载了一个VxWorks的boot,网口马上就能link(网口灯亮)。

0 项奖励
zhouyong
Visitor
Visitor
838 次查看
注册日期: ‎07-28-2020

请问调试跟踪u-boot网络部分的源码,主要需要注意哪些地方哪?

0 项奖励
chaoz
Xilinx Employee
Xilinx Employee
828 次查看
注册日期: ‎09-14-2018

u-boot启动后会自行搬运到高地址运行(relocation),普通的单步调试无法适用,可参考下

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842557/Debug+U-boot

0 项奖励
zhouyong
Visitor
Visitor
733 次查看
注册日期: ‎07-28-2020

非常感谢您,排查了一天的硬件,终于可以link了,在PHY_INIT函数里面对phy的复位引脚进行了硬复位。通过tftp烧写了内核等,现在linux系统已经起来了,非常感谢!

0 项奖励
Shaun
Visitor
Visitor
131 次查看
注册日期: ‎03-31-2021

您好,我也遇到了这个问题,看了您的回答,还是有些没太懂怎么改,可以详细的说一下嘛?如果方便的话,可以加个QQ嘛,这个问题已经困扰了我一周多,实在没办法了,万分感谢

 

0 项奖励