我们这边购买的是AM3359zcz的开发板beaglebone,根据此开发板我们自己做了一块板卡,网口部分未动
使用的phy芯片是LAN8710A,与开发板一致,电路核对也一致
网口硬重启电路(断电、reset键)未出现问题,但软重启(reboot)就会出现问题,网口ping不通,寄存器地址不对
具体为:reboot后, alive寄存器的值发生了变化, 断电启动的值都是1, reboot后, 值就变成了4, 所以最后就是phy 0:00设备找不到。
硬重启是不会出现这个问题的,因为我们是前端设备,需要做远程操作,更改配置的话需要软重启
reboot的错误主要出现在这些语句上面:
[ 1.107635] davinci_mdio davinci_mdio.0: davinci mdio revision 1.6
[ 1.114105] in davinci_mdio_reset, phy_mask = 4
[ 1.118835] davinci_mdio davinci_mdio.0: detected phy mask fffffffb
此时导致后面:
[ 12.157806] in phy_connect, bus_id = 0:00
[ 12.161987] PHY 0:00 not found
[ 12.165161] in cpsw_slave_open, slave->phy = -19
[ 12.169982] phy 0:00 not found on slave 0
正确的打印信息:
硬重启或者上电时为:
[ 1.107635] davinci_mdio davinci_mdio.0: davinci mdio revision 1.6
[ 1.114105] in davinci_mdio_reset, phy_mask = 1
[ 1.118804] davinci_mdio davinci_mdio.0: detected phy mask fffffffe
[ 1.126159] davinci_mdio.0: probed
[ 1.129730] davinci_mdio davinci_mdio.0: phy[0]: device 0:00, driver SMSC LAN8710/LAN8720
后面:
[ 18.820312] in soft_reset, reset reg = 0……
[ 18.826904] in cpsw_ndo_open, priv->slave->data->phy_id = 0:00
[ 18.856353] in phy_connect, bus_id = 0:00
[ 18.860534] in phy_connect, start call to_phy_device = 0xcf9cf008
[ 18.866912] in phy_connect, phydev = 0xcf9cf000
[ 18.871978] in phy_connect, after phy_connect_direct, rc = 0
[ 18.877899] in cpsw_slave_open, slave->phy = -811798528
[ 18.883331]
[ 18.883331] CPSW phy found : id is : 0x7c0f1
附件是具体的打印信息
非常感谢
Yaoming Qin:
请问beaglebone有一样的问题么
fuwang xie:
回复 Yaoming Qin:
beaglebone我们这边曾经出现过一次,但是reboot之后就没有了,因为我们这边没并没有做很多次的测试,只是正常的开关,怀疑应该是有极小的几率出现这个问题
电路我核对过,和beaglebone是一样的
根据最新版本注释的lan8710a的15脚接错,我那个也改过,也没有效果
Yaoming Qin:
回复 fuwang xie:
只有麻烦模您在beaglebone上多做测试了,先确定是不是在beaglebone上能以一种几率稳定复现。
谢谢
fuwang xie:
回复 Yaoming Qin:
发现其他人也有相同的问题,但是好像也没有解决
http://www.deyisupport.com/question_answer/f/25/t/11366.aspx
lin2:
回复 Yaoming Qin:
Beaglebon上测试了几百次,没有任何问题。
Yaoming Qin:
回复 lin2:
你的是重启的问题,他的是一开始就有问题。驱动是一样的,beaglebone没问题,先看看硬件上会不会有什么地方,特别是pcb的布线什么的