本技术博客介绍了在ZYNQ7010开发板上实现PL端以太网初始化的两种方法。第一种基于Petalinux图形界面,详细说明了工程创建、硬件配置、设备树修改及编译流程。第二种通过U-Boot源码实现,包括defconfig配置、设备树修改、初始化流程分析及编译步骤。两种方法均提供了完整的源码和测试验证步骤,包括网络设备检测、PHY通信测试和ping测试。技术要点涉及Petalinux工程配置、U-Boot设备驱动匹配、AXI以太网初始化流程等,最终成功实现PL端以太网功能验证。。
目录
一、基于petaliunxu图形化配置界面
1.创建petalinux工程
2.硬件描述符配置
3.更改设备树文件
4.编译工程
5.生成BOOT.bin文件
6、板卡运行
二、基于uboot源码
1.deconfig文件配置
1)以太网相关配置
2)配置.dtb文件
3)其他可选配置(用于调试)
2.设备树更改
1)宏定义
2)ethernet0属性配置
3)gem0节点属性
4)拷贝.dtsi文件至uboot工程中
3.uboot下以太网初始化流程
4.编译uboot源码生成uboot.elf文件
5.编译生成BOOT.bin文件
6.板卡运行
7.源文件
一、基于petaliunxu图形化配置界面
1.创建petalinux工程
在用户目录下创建petalinux文件夹,打开终端,执行:
petalinux-create -t project --template zynq -n ALIENTEK-ZYNQ注:创建之前需要在ubantu下安装petalinux
2.硬件描述符配置
将vivado2018.3中生成的硬件描述文件 system.hdf 导入新建的petalinux2018工程目录下(或vivado2020.1中生成的硬件描述文件 system.xsa 导入新建的petalinux2020工程目录下),并执行:
#配置petaliunx环境变量 source /opt/pkg/petalinux/2020.2/settings.sh #导入硬件描述符 petalinux-config --get-hw-description=.打开配置界面如图所示:进入 Subsystem AUTO Hardware Settings。
进入Ethernet Settings
进入Primary Ethernet,设置为axi_ethernet_0
在Ethernet Settings下取消勾选 Obtain IP address automatically 选项,将以太网IP改为静态IP,配置IP地址、子网掩码、以及网关IP。
之后返回到主界面,选择save,回车
选择 ok,回车,摁两次ESC键完成配置。
3.更改设备树文件
在petalinux工程中的路径 project-spec/meta user/recipes-bsp/device-tree/files/ 下 编辑system-user.dtsi文件,添加完下述内容后保存。
/include/ "system-conf.dtsi" / { }; &axi_ethernet_0{ local-mac-address = [00 0a 35 00 03 22]; phy-handle = <&phy1>; xlnx,has-mdio = <0x1>; phy-mode = "mii"; mdio{ #address-cells = <1>; #size-cells = <0>; phy1:phy@1{ compatible = "realtek,rtl8201","ethernet-phy-id001c.c816"; device_type = "ethernet-phy"; reg = <0>; }; }; };4.编译工程
petalinux-build生成的文件在image/liunx路径下
5.生成BOOT.bin文件
所用到的文件有:u-boot.elf、
source /opt/pkg/petalinux/2020.2/settings.sh #或者sptl petalinux-package --boot --fsbl --fpga --u-boot --forc6、板卡运行
将BOOT.bin文件拷贝至SD卡中,上电运行:
在 U-Boot 命令行中测试:验证网卡是否可用
# 查看网络设备 dm tree # 测试 PHY 通信 mii info # 测试网络连通性 setenv ipaddr 192.168.1.100 setenv serverip 192.168.1.1 ping $serverip可见,板卡PL端以太网已配置成功。
二、基于uboot源码
1.deconfig文件配置
文件路径:configs/atk_7010_defconfig
1)以太网相关配置
# Basic network stack support CONFIG_NET=y CONFIG_NETDEVICES=y CONFIG_PHYLIB=y CONFIG_MII=y CONFIG_DM_ETH=y CONFIG_XILINX_AXIEMAC=y