目前我们用的的以太网方案是imx6Q + AR8033。linux用的内核是3.14.52。出现的情况是千兆网络可以linkup上,但是用udhcpc不能获取到IP地址,设置成静态IP后也没有办法ping通,我强制设置成百兆后一切OK。同样的硬件我用android4.4 测试千兆和百兆也都OK。下面是AR8033初始化参数。
static int ar8031_phy_fixup(struct phy_device *dev)
{ u16 val;
/* Set RGMII IO voltage to 1.8V */
phy_write(dev, 0x1d, 0x1f);
phy_write(dev, 0x1e, 0x8);
/* disable phy AR8031 SmartEEE function. */
phy_write(dev, 0xd, 0x3);
phy_write(dev, 0xe, 0x805d);
phy_write(dev, 0xd, 0x4003);
val = phy_read(dev, 0xe);
val &= ~(0x1 << 8);
phy_write(dev, 0xe, val);
/* To enable AR8031 output a 125MHz clk from CLK_25M */
phy_write(dev, 0xd, 0x7);
phy_write(dev, 0xe, 0x8016);
phy_write(dev, 0xd, 0x4007);
val = phy_read(dev, 0xe);
val &= 0xffe3;
val |= 0x18;
phy_write(dev, 0xe, val);
/* introduce tx clock delay */
phy_write(dev, 0x1d, 0x5);
val = phy_read(dev, 0x1e);
val |= 0x0100;
phy_write(dev, 0x1e, val);
return 0;
} 请问下这个问题该怎么解决,有没有什么思路可以提供给我。谢谢了。
|