我必须在Linux中编写以太网PHY环回测试。我以前从未这样做过,也不知道从哪里开始。经过一番研究,我想出了测试的计划,我想知道是否有人可以帮助我验证它并给我一些指向我的问题。
这是一个外部环回设置。它连接以太网交换芯片上每个内部PHY的TX +/-到RX +/-引脚。
所以环回高级数据包路径如下:
CPU-> PHY0(芯片) - >以太网交换机(芯片)的内部PHY-> PHY0(芯片) - > CPU
对于这个测试,我打算
有什么建议吗?另外,我想知道Linux中是否有可用于生成步骤2的数据包的函数,并发送第3步的数据包。
非常感谢。
答案 0 :(得分:3)
大多数Phys可以切换到测试模式。我们使用bootloader直接写入 Phy并切换到测试模式。
还有一个来自documentation / networking / phy.txt的ioctl Ethtool便利功能。
int phy_mii_ioctl(struct phy_device * phydev, struct mii_ioctl_data * mii_data,int cmd);
MII ioctl。请注意,此功能将完全搞砸状态 机器,如果你写像BMCR,BMSR,ADVERTISE等寄存器。最好的 使用它只能写入非标准的寄存器,并且不会启动 重新谈判。