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.

[参考译文] Linux/AM3358:以太网 eth0保持上行和下行(eth1正常)

Guru**** 2017950 points
Other Parts Discussed in Thread: AM3358
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/739429/linux-am3358-ethernet-eth0-keeps-up-and-down-eth1-is-ok

器件型号:AM3358

工具/软件:Linux

您好!

我在 AM3358 Sitara SoC 上遇到以太网问题、接口 eth1和 eth0设置为 RMII、只有 eth1工作正常。

以下是所使用的引脚多路复用/设备树:

AM33XX_IOPAD (0x90c、(PIN_INPULLUP | MUX_MODE1))/* mii1_crs_dv *
/ AM33XX_IOPAD (0x944、PIN_INPUT_PULLUP | MUX_MODE0)/* rmiiDIO1_RX33XX_INPULLUP



(0x94_R_R_AM33_R_R1_AM33_Rx_INPULLUP)*(0x94_R_R_R_AM33_R_R_RDIO1*(0x94_R_IN_R_R_R_RDIUX_1*)

(PIN_OUTPUT 下拉| MUX_MODE1))/* mii1_txen.rmii1_txen */

AM33XX_IOPAD (0x864、(PIN_INPUT_PULLUP | MUX_MODE3))/* gpulliPAD_A9.rmi2_Rv* AM33XX_AM33XX_PIN_RUM_PULLUX (0x863_AM_AM_AM33_AMUX.RUM_AM33_RUM_IN_RTOP*



(0x874_R_AM_AM33_AM_AM33_R_AM33_AM_AMUX.100)*(0x804_AM33_AM_AM_AM33_AM_AM33_AM_AM_AM33_IN_AM33_AM_AM_AM33_AM_IN_RUM_IN_IN_INPUO2_AM_AM_RUM_AM_AM_AM_AM0_AM_AM_AM_AM_RTOPULPULLUP)*(*(0x80_AM_AM_

(PIN_OUTPUT 下拉| MUX_MODE3))/* GPMC_A4.rmii2_txd1 */
AM33XX_IOPAD (0x840、(PIN_OUTPUT 下拉| MUX_MODE3))/* GPMC_a0.rmii2_txen * 

Davinci_MDIO_DEFAULT:pinmux_Davinci_MDIO_DEFAULT{
pinctrl-single、pins =<
AM33XX_IOPAD (0x948、PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0)/* MDIO_DATA.MDIO_DATA *
/ AM33XX_IOPAD (0x94c、PIN_PULLUX
| M0*)*/ MDIO_PULLUX *;M0*/ MDIO_DON_MODON_MODEK *



cpsw_emac0{
phy-handle =<&ethphy0>;
phy-mode ="RMII";
dual_emac_res_vlan =<1>;
}

;/cpsw_emac1{
phy-handle =<&ethphy1>;
phy-mode ="RMII";
dual_emac_res_vlan =<1




;}vephy1 = davince0>;默认值


@






= davincip_1;= dincipphy1@;= daminphy1 = 1;1 = davincipphy1 = dincip_1;1 = daminphy1;1 = davincip_1 = damine_1;1 = daminphy1;1 = davincip_emphy = damine_1

&Mac{
pinctrl-names ="default";
pinctrl-0 =<&cpsw_default>;
status ="oke";
dual_emac;
};

&phy_SEL{
RMII-clock-ext;
rmii2-crs-dv;//使用 RMII_CRS_DV pinmux *
}; 

我使用的是 ti-linux-4.14版本的内核。
我通过设置位(0)=> eth1来确保将 GPMC_A9配置为 sma2寄存器中的 RMII_CRS_DV

我的问题来自 Eth0接口,在该接口中,我无法获得稳定的链路,它会不断地上下移动:

[ 1586.161861] CPsw 4a100000.以太网 eth0:链路向上- 100Mbps/半部-流量控制关闭
[1590.321567] CPsw 4a100000.以太网 eth0:链路向下[
1591.361876] CPsw 4a100000.以太网 eth0:链路向上- 100Mbps/半部- 100674.1567sw
以太网向下- 1000000.cps =以太网向下计数[15910046] CPsw 以太网 cps4000:10067001567sw =以太
网向下计数器10040156700000 =以太网 cps40156700000 链路启动- 100Mbps/半速率-流控关闭
[ 1600.721530] cpsw 4a100000.以太网 eth0:链路关闭
[ 1601.761850] cpsw 4a100000.以太网 eth0:链路启动- 100Mbps/半速率-流控关闭
[ 1604.881528] cpsw 4a100000.ethernet cp0:链路
关闭[1605.94] 链路启动- 100Mbps/半速

率-流控关闭[ 1608.001533] cpsw 4a100000.以太网 eth0:链路关闭[ 1609.041878] cpsw 4a100000.以太网 eth0:链路启动- 100Mbps/半速率-流控关闭
[ 1611.121534] cpsw 4a1000.82] cpsw 以太网
1612.1000.82] 链路启动- 100Mbps/半速率-流控关闭
[1615.281525] cpsw 4a100000.以太网 eth0:链路关闭
[1616.321915] cpsw 4a100000.以太网 eth0:链路启动- 100Mbps/半速率-流控关闭
[1620.481540] cpsw 4a100000.eth0:链路关闭

硬件 PHY LAN8710i 根据以下检查清单进行设置:

两个接口的布线方式完全相同、但我无法使 eth0正常工作。

您是否了解问题的来源?

谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    [1586.161861] cpsw 4a100000.以太网 eth0:链路向上- 100Mbps/半-流控关闭
    [159321567] cpsw 4a100000.ethernet eth0:链路断开

    这些消息表示 PHY 由于某种原因正在丢失链路。 在我看来、这似乎是一个 PHY 问题、不一定是一个 MAC 问题、因为 cpsw 驱动程序正在对报告链路已断开的 PHY 做出反应。

    我的建议是、如果您的板上的 u-boot 中设置了 eth0端口、当以太网连接器上的链路指示灯指示问题时、您可以使用此命令 MII dump 0和 MII dump 0 1。 您必须多次使用该命令才能捕获报告为已关闭的链接。

    您正在寻找的是工具输出中的链接状态。 应根据提供的日志进行切换。 U-Boot 将仅在使用生成通信的命令(如 DHCP)上初始化接口。 因此、仅使用 MII 工具(而不是某些网络命令)可能会证明 cpsw 接口不是问题所在、并使您能够专注于 PHY。

    此致、
    Schuyler
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    感谢您的回复、

    我似乎无法让以太网在 u-boot 上工作、以下是日志:

    [...]
    WAIT_TO_USER_ACCESS 超时
    PHY 复位超时
    WAIT_TO_USER_ACCESS 超时
    [...]
    Wait_for_user_access 超时
    CPsw
    警告:使用随机 MAC 地址的 CPsw (eth0)- 6e:67:6d:12:be:1D
    、USB_ether
    警告:使用随机 MAC 地址的 USB_ether (eth1)- 8a:60:2e:57:41:89 

    我尝试使用具有 DM_ETH 配置的器件树和使用 board.c 文件而不使用 DM_ETH 配置的 alos、但结果相同。

    进入 u-boot 提示符后,我在每个索引处都有一个使用的 PHY:

    => MII 信息0
    WAIT_TO_USER_ACCESS 超时
    [...]
    WAIT_TO_USER_ACCESS 超时
    PHY 0x00:OUI = 0x3FE4BF、模型= 0x39、版本= 0x02、100BaseT、FDX
    => MII 信息1
    WAIT_TO_USER_ACCESS 超时
    [...]
    WAIT_TO_USER_ACCESS 超时
    PHY 0x01:OUI = 0x3FE4BF、模型= 0x39、版本= 0x02、100BaseT、FDX
    => MII INFO 2
    WAIT_TO_USER_ACCESS 超时
    [...]
    Wait_for_user_access 超时
    PHY 0x02:OUI = 0x3FE4BF、模型= 0x39、版本= 0x02、100BaseT、FDX
    

    等等...

    当前设置是电路板上的两个 ETH 端口都连接到交换机、而我的计算机也连接到同一交换机。

    开关上有一个闪烁的 LED (对于 eth0)、每秒闪烁一次、这是从我第一次为电路板加电时发生的。

    关于 eth1、它在引导时不闪烁、我需要首先引导至 Linux、启动界面、LED 亮起并保持亮起。
    在整个过程中、除非我关闭接口、否则 eth0始终闪烁。

    以下是寄存器:

    # MII-TOOL -vv
    使用 SIOCMTIPHY=0x8947
    eth0:协商的1000BaseT HD 流控制、
    MII PHY 的链路 OK 寄存器0:
    3100 782d 0007 c0F1 01e1 41e1 0001 FFFF
    FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF 0000
    0040 2002 6060 FFFF 0000 0000 0000 0000
    FFFF FFFF A212 001A 0000 00c8 0000 5058
    产品信息:供应商00:01:f0、型号15修订版1
    基本模式:启用自动协商
    基本状态:自动协商完成、链路正常
    功能:1000BaseT 高清1000BaseTF-FD 100BaseTX-FD 100BaseT TX-HD 10baseTD-HD
    广播:1000BaseTD-HD 10FD-HD 10FD-HD 10Bi-HD 10Bi-HD 10Bi-HD 10Bi-HD 10FD-HD 10FD-HD 10FD-HD 10Bi-HD 10FD-HD 10Bi-HD 10FD-HD 10FD-HD 10Bi-HD 10Bi-HD 10Bi-HD 10FD-HD 10FD-HD 10Bi-HD 10FD-HD 10Bi-HD 10FD-HD 10
    
    为
    MII PHY 协商的1000BaseT HD 流控制、链路 OK 寄存器1:
    3100 782d 0007 c0F1 01e1 41e1 0001 FFFF
    FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF 0000
    0040 2002 6061 FFFF 0000 0000 0000 0000
    FFFF FFFF 0000 001A 0000 00c8 0000 1058
    产品信息:供应商00:01:f0、型号15修订版1
    基本模式:启用自动协商
    基本状态:自动协商完成、链路正常
    功能:1000BaseT 高清1000BaseT FD 100BaseTX-FD 100BaseT TX-HD 10baseTD-FD 100HD 10baseTD-HD 10fD 100BaseT TD-HD 10fD-HD 10fD-HD 10fD-HD 10fD-HD 10fD-HD 10fD-HD 10fD-HD 10fD-HD 10fD-HD
    10fD-HD 10fD-HD 10fD-HD 10fD-HD 10fD-HD 10fD-HD 10fD-HD 10fD-HD 10f-nD-HD 10f-nD-HD
    10f-nD-HD 10f- 

    对于 eth0、寄存器31的值在5058和1058之间不断变化。

    以下是我在 Linux 上运行的命令:

    计算机上的#:
    sudo ip a add 192.168.1.15/24 dev 
    
    板载#:
    
    # eth0:
    ip link set dev eth0 down
    ip link set dev eth0 up
    ip a add 192.168.1.9/24 dev eth0
    ping -i eth0 192.168.1.15#=>不起作用
    
    # eth1:
    ip link set dev eth1 down
    ip link set dev eth1 up
    ip a add 192.168.1.11/24 dev eth1
    ping -i eth1 192.168.1.15#=>正常工作 

    我更想考虑硬件问题、但我想确保我有一个有效的软件在运行。

    谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    问题得到解决、从以太网磁体到电缆的布局存在内部线问题