当前位置:   article > 正文

YT8521S PHY驱动调试_yt8521sh芯片驱动 linux内核4.19

yt8521sh芯片驱动 linux内核4.19

调试交换机的OOB口遇到网口时常断开的问题,根据此问题调试linux内核

内核版本:4.9.X

mac和phy之间的连接方式如下:

RJ-45---MDI---YT8521S---Serdes---RGMII/SGMII---MAC

1、查找mac驱动

mac芯片使用的是CTC提供的,驱动也是直接用盛科的,模式配置为sgmii-mac;

内核的配置文件中通过加载CONFIG_NET_VENDOR_CENTEC=y控制

2、查找phy驱动

查看phy手册,找到YT8521S的phyid,通用寄存器的0x02,0x03得到phy id为0x0000011a;

通过phy_device通用驱动扫描phy地址发现不存在,即内核目前没有加载phy驱动或者不需要phy驱动;

3、移植phy驱动

移植树莓派的YT系列phy驱动,发现现状和原来一样,阅读驱动代码发现phy初始化也只是一些常规操作,设置UTP模式,初始化phy结构体,关闭睡眠;这些默认就已经在配置好了,或者uboot初始化配置了;

4、根据封装一致性替换成RTK、mvl、bcm的phy驱动;

现象没有改变,调试过程确认内核phy驱动没用用到phy地址参数,内核操作phy是根据mdio协议phy id操作的;

5、根据YT调试手册设置mac自环,没有link down出现,设置phy自环,发下任然有link down,数据的读写都正常;

YT8521S 分为 UTP 回环与 Serdes 回环。
phy mii 0x00 寄存器 Bit14=1, UTP-Internal loopback
phy ext 0x0A  寄存器 Bit4=1 , UTP- External loopback
Common 0xA006 寄存器 Bit5=1 , UTP -Remote Loopback
sds mii 0x00 寄存器 Bit14 = 1, Serdes Internal loopback
sds 回环线硬件连接即可,进入 serdes External Loopback
common 0xa006 寄存器 Bit6 = 1,且 sds mii 0x00 寄存器 Bit15=1, serdes Remote Loopback

确定问题出现在phy和mac连接的问题上;

6、通过硬件手段直接断开mdio的数据总线,发现任然有link up/down的现象,说明uboot的配置没有太大的影响,

最终判断是mac和phy之间的信号衰减导致的协商导致;

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/967058
推荐阅读
相关标签
  

闽ICP备14008679号