硬件信息:
我们的硬件板子是基于beaglebone开源设计的,在其基础上增加了一个网卡,网卡0是和beaglebone的网卡一样的,是基于mii接口的,网卡1是基于rmii的,2个网卡的phy芯片是lan8710A的。
软件信息:
内核版本是:3.12版本
问题描述:
我对网卡0进行插拔网线来测试am3352对网卡0连接状态的识别的时候发现,当网线拔掉后,经过15秒钟左右,把网线插上,am3352识别不了网卡的连接了,这个时候,网卡0的2个led灯都不会亮。我在phy.c中的phy_state_machine函数里打印了一下phy的状态,发现phy的状态一直为PHY_NOLINK。所以我初步怀疑是网线插上以后,phy没有协商成功,为什么没有协商成功,我却找不到原因,请问这里如果是phy没有协商成功,怎么解决?如果不是,还有其他可能的原因吗?
问题验证:
为了解决上述问题,我做了以下验证:
1. 我对网卡1进行同样的插拔网线来测试am3352对网卡1的连接状态的识别,发现,网卡1是能正确的被am3352识别的,不过需要经过一定的时间才能完成识别。
2. 我对beaglebone的开发板上的网卡进行了同样的测试验证,发现开发板也会出现识别不了网卡的连接
3. 我在uboot模式下,对网卡0进行插拔网线验证,发现,插上网线后,网络都能ping的通
请ti工程师,帮我分析一下问题的可能原因,谢谢!