赞
踩
由于元器件国产化大环境的需要,目前项目中采用国产ZYNQ替换xilinx ZYNQ,连接一片国产裕太8521 PHY替换Marvell 88E1111 PHY,通过RJ45转电口连接外部。框图如下:
其中YT 8521 PHY模式需要配置为千兆网,电口方式。
uboot目前采用国产ZYNQ厂商提供的2018.7版本,需要在Uboot中对裕太这款PHY进行适配。
首先需要修改config配置文件,增加PHYLIB配置,由于裕太PHY与其他厂家的PHY不兼容,需要关闭其他厂家的PHY配置,如下图
其次修改/drivers/net/phy/phy.c文件中phy_reset函数
增加软件复位和配置PHY TX delay操作,这个在88E1111中也有类似的配置
PHY复位为软件复位,通过国产ZYNQ PL部分的GPIO进行配置。
TX DELAY配置PHY寄存器 0xa003为0xf9.
最后修改一下uboot环境变量,配置本地IP地址和上位机IP地址
设备树中需要将phy地址配对,并与网卡进行关联
上图中phy硬件地址为1,关联到国产ZYNQ eth0.
首先内核中需要增加裕太的PHY驱动,一个.h头文件和.c驱动文件,放到内核对应位置下面
修改makefile,默认将PHY驱动编译进内核
其次修改内核默认配置文件,去除其他厂家的PHY,增加PHYLIB
最后参考uboot中的配置,增加对PHY的软复位和TX DELAY操作。
注意软件复位需要放在网络初始化之前执行。
这里简单处理就放在spi_nor.c中进行PHY复位,spi驱动在网络初始化之前。
TX DELAY放在YT提供的PHY驱动 8521的config_init函数中
编译uboot和Image.ub,可以看到uboot下可以ping通上位机
Linux系统启动后也可以ping通上位机
到此适配成功
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。