具体情况描述:
目前的方案是使用交换机(Marvell 88Q5152)的port 8与PHY(Marvell 88Q2221)用SGMII建立通信,但是目前在开出来的板子上测试发现:
- PHY的1000Base-T1端可以正常link up,但是SGMII端没有Link上,导致报文无法到达Switch,无法实现转发(所以目前推测是SGMII通信问题)。
- 把现有的PHY(Marvell 88Q2221)换成之前调好的其他厂家的PHY(德州仪器),就可以正常实现转发(所以推测Switch的SGMII等配置是没问题的)。
有没有朋友知道这是为什么,是因为PHY没有初始化么?现在MDIO都引出来了,可以实现读寄存器的操作,但是不知道具体怎么初始化?
在官网上Marvell的PHY是有一套初始化流程的,但是走下来还是没有效果,感觉是操作步骤可能有问题。希望有这方面开发经验的朋友们解答一下!
那我来教你如何使用
检查GMII的所有引脚是否正确连接,交换机芯片对GMII是否正确配置了工作模式。
按你的描述,同样的环境,
TI PHY 能用
Marvell PHY 不能用
1:比较这俩芯片的硬件的配置是否一致。核查 PHY ID 等用上拉下拉电阻硬件配置的参数。
2:比较这俩芯片寄存器是否兼容,查看软件中这些有差异的寄存器的读写操作。