赞
踩
调试交换机的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之间的信号衰减导致的协商导致;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。