This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM335X网络问题。



linux系统我选择了双网络,内核编译好之后,运行,两个网络都可以ping通,但是断电上电,就不行了。两个都ping不通了。从现象来看,好像只有第一次上电可以ping通。

  • 1. 你是在内核里面做的测试吗?还是uboot?

    2. 这个ping通的操作,你的双网口的IP是怎么得到的,DHCP?还是你指定的?

    3. 一般来说,遇到过这种情况,多数是因为双网口接入到了同一个网络,没有划分VLAN导致的,检查一下,你是不是也是这种情况?

  • 是内核调试,IP是我指定的。

    [ 7.735120] yyyyyyyyyy cpsw_slave_open
    [ 7.742028] net eth0: CPSW phy found : id is : 0x221622
    [ 7.753372] 8021q: adding VLAN 0 to HW filter on device eth0
    [ 7.855957] yyyyyyyyyy cpsw_slave_open
    [ 7.860985] net eth1: CPSW phy found : id is : 0x221622
    [ 7.870464] 8021q: adding VLAN 0 to HW filter on device eth1

    这个是打印信息。

  • 有个问题,为啥你两个phy id都是一样的啊?那MDIO通信时怎么辨识出哪个phy id是哪个端口啊?

  • 这个是PHY的固定ID吧,我是两个9031PHY,不是应该一样的么?我搞错了吗?

  • phy id是可配,与你的硬件电路设计相关的,在做移植的时候,多数都要根据实际的phy id修改自己的配置的。你用的是AR8031吧,看一下datasheet的1.1 power-on strapping pins. table 1-2,这里RXD0,RXD1,LED_ACT 为phy id的最低三位,高两位都是0,如果这三位没做上下拉,那么phy id就是00100b,也就是0x4。一般会做上下拉给默认的ID值,所以需要你调整driver里面的phy id值。

    PS:印象中,我们的两个口,eth0默认写的id是0x0,eth1默认写的0x1。需要根据实际情况修改的。

  • 我硬件电路上是设置的,如下:

    [ 1.300421] davinci_mdio davinci_mdio.0: phy[0]: device 0:00, driver Micrel KSZ9031 Gigabit PHY
    [ 1.309647] davinci_mdio davinci_mdio.0: phy[1]: device 0:01, driver Micrel KSZ9031 Gigabit PHY

    我一个设置0,一个设置了1,

    net eth0: CPSW phy found : id is : 0x221622

    net eth1: CPSW phy found : id is : 0x221622

    这两个ID是在软件里面自己设置?在哪个文件里面设置?