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.

[参考译文] DP83825I:OMAP-L138中的 DP83825I

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1518675/dp83825i-dp83825i-in-omap-l138

器件型号:DP83825I

工具/软件:

嗨、我将设备树配置为类似这样、我正在使用 dp83825i phy 芯片、但我收到了这个错误  
网络 eth0:无法连接到 phy / soc@1c00000/MDIO@224000/以太网 PHY@0

&mdio {		
    pinctrl-names = "default";		
    pinctrl-0 = <&mdio_pins>;		
    bus_freq = <2200000>;		
    status = "okay";
    phy: ethernet-phy@0 {
        compatible = "ti,dp83822";
		reg = <0x0>; /* PHY address */
		interrupt-parent = <&gpio>;
		interrupts  = <127 IRQ_TYPE_LEVEL_LOW>;
	};	
};

&eth0  {		
    pinctrl-names = "default";		
    pinctrl-0 = <&rmii_pins>;
	ti,davinci-rmii-en = /bits/ 8 <1>;
	phy-mode = "rmii";
	phy-handle = <&phy>;
    status = "okay";
};	

&pmx_core {
    status = "okay";
    rmii_pins: pinmux_rmii_pins {		
        pinctrl-single,bits = <		
        /*		
        * RMII_RXER, RMII_RXD_0, RMII_RXD_1		
        * RMII_TXEN, RMII_TXD_0, RMII_TXD_1		
        */		
        0x38 0x88888800 0xffffff00		
        /*		
        * RMII_CRS, RMII_50MHZ_CLK		
        */		
        0x3c 0x00000080 0x000000ff		
        >;		
    };

    mdio_pins: pinmux_mdio_pins {		
        pinctrl-single,bits = <		
        /* MDIO_CLK, MDIO_D */		
        0x10 0x00000088 0x000000ff		
        >;
    };
};

# ifconfig
LO 链路 encap:本地环回
INET 地址:124.0.0.1掩码:255.0.0.0
运行 MTU:65536公制:1的向上回送
RX 数据包:30错误:0丢弃:0溢出:0帧:0
TX 数据包:30错误:0丢弃:0溢出:0载波:0
冲突:0 txqueueelen:1000
RX 字节:5520 (5.3KiB) TX 字节:5520 (5.3KiB)

# dmesg | grep eth0
#[ 26.996342] random:crng init done
dmseg | grep mdio
-/bin/sh :未找到 dmseg
# dmesg | grep mdio
<6>[ 1.496225] davinci_mdio davinci_mdio.0:DaVinci MDIO 修订版1.5、总线频率2200000
<6>[ 1.504035] libphy:davinci_mdio.0:已探测
# dmesg | grep phy
<6>[0.000000]在物理 CPU 0x0上引导 Linux
<6>[ 1.430878] libphy:固定 MDIO 总线:已探测
<6>[ 1.504035] libphy:davinci_mdio.0:已探测
# dmesg

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

    将兼容标志从 compatible ="ti、dp83822"修改为 compatible ="ethernet-phy-id2000.a150"之后 ;

    我能够看到 phy 是 u、p、但不知道为什么它被初始化了两次。  

    但是、当我尝试执行时 Ping 测试失败。


    #
    # ifconfig eth0 up
    [167.054827] Weihan PHY 重置
    [ 167.058163] Weihan : Weihan wait_for_user_access
    [ 167.064952] davinci_mdio davinci_mdio.0:复位空闲控制器
    [ 167.073388] Weihan dp83825_config_init
    [ 167.078375] Weihan dp8382x_CONFIG_RMII_MODE
    [ 167.086841] Weihan dp83825_config_init
    [ 167.091166] Weihan dp8382x_CONFIG_RMII_MODE
    [167.097348] Weihan:dp83822_resume
    # ifconfig eth0
    eth0链路 encap:以太网 HWaddr 52:1B:96:17:CC:AF
    向上广播多播 MTU:1500公制:1
    Rx 数据包:0错误:0丢弃:0溢出:0帧:0
    TX 数据包:0错误:0丢弃:0溢出:0载波:0
    冲突:0 txqueueelen:1000
    Rx 字节:0 (0.0 B) TX 字节:0 (0.0 B)
    中断:33

    # ifconfig eth0 192.168.3.4
    #如果^HCO^H^H
    >
    >如果
    > ifconfig
    > eth0
    >^C
    # ifconfig eth0
    eth0链路 encap:以太网 HWaddr 52:1B:96:17:CC:AF
    iNet 地址:192.168.3.4 Bcast:192.168.3.255 Mask:255.255.255.0
    向上广播多播 MTU:1500公制:1
    Rx 数据包:0错误:0丢弃:0溢出:0帧:0
    TX 数据包:0错误:0丢弃:0溢出:0载波:0
    冲突:0 txqueueelen:1000
    Rx 字节:0 (0.0 B) TX 字节:0 (0.0 B)
    中断:33

    # dmesg | grep mdio
    <6>[ 1.496753] davinci_mdio davinci_mdio.0:DaVinci MDIO 修订版1.5、总线频率2200000
    <6>[ 1.504561] libphy:davinci_mdio.0:已探测
    <6>[ 1.758139] davinci_mdiace_mdio.0:phy[0]:器件 davinci_mdio.0:00、驱动程序 TI DP83825I
    <4>[ 167.064952] davinci_mdio davinci_mdio.0:复位 idled 控制器
    #^C
    #[ 413.608324] DaVinci _EMAC DaVinci _EMAC.1 eth0:链路接通- 10Mbps/完整-流量控制关闭
    [416.728011] DaVinci _EMAC DaVinci _EMAC.1 eth0:链路接通- 100Mbps/完整-流控制 Rx/TX

    # ping^H^H^H
    /bin/sh:P:未找到
    # ping 192.168.3.244
    Ping 192.168.3.244 (192.168.3.24[476.840260] Weihan:emac_tx_handler
    4):56个数据字节
    [477.846936] Weihan : emac_tx_handler
    [478.886893] Weihan : emac_tx_handler

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

    您好:

    不清楚为什么从所提供的最初数据中出现这种情况。 您能否使用 PHYTOOL 为寄存器0x0 - 0x1F 提供寄存器转储? 此外、在 ping 失败后、您能否提供 eth0的 ethtool 日志? 这将能够提供更多的见解。

    此处使用的链路伙伴和电缆(类型和长度)是什么?

    此致、

    Gerome

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

    你(们)好 感谢您的答复。

    附加了 phy 读取寄存器值。 我使用不到1米的 RJ45电缆。

    # phytool read eth0/0/0
    0x3100
    # phytool 读取 eth0/0/1
    0x786d
    # phytool 读取 eth0/0/2
    0x2000
    # phytool read eth0/0/3
    0xa140
    #^C
    # phytool 读取 eth0/0/4
    0x01e1
    # phytool 读取 eth0/0/5
    0xcde1
    # phytool 读取 eth0/0/6
    0x000f
    # phytool 读取 eth0/0/7
    0x2001
    # phytool 读取 eth0/0/8
    0000
    # phytool 读取 eth0/0/9
    0000
    # phytool 读取 eth0/0/A
    0x3100
    # phytool 读取 eth0/0/b
    0x3100
    # phytool 读取 eth0/0/c
    0x3100
    # phytool 读取 eth0/0/d
    0x3100
    # phytool 读取 eth0/0/e
    0x3100
    # phytool 读取 eth0/0/f
    0x3100
    # phytool 读取 eth0/0/0x10
    0x4215
    # phytool 读取 eth0/0x11
    0x0108
    # phytool 读取 eth0/0/0x12
    0x6400
    # phytool 读取 eth0/0/0x13
    0x2800
    # phytool 读取 eth0/0/0x14
    0000
    # phytool 读取 eth0/0x15
    0000
    # phytool 读取 eth0/0x16
    0x0100
    # phytool 读取 eth0/0/0x17
    0x0065
    # phytool 读取 eth0/0/0x18
    0x0480
    # phytool 读取 eth0/0/0x19
    0x8c00
    # phytool 读取 eth0/0/0x1a
    0000
    # phytool 读取 eth0/0/0x1b
    0x007d
    # phytool 读取 eth0/0x1c
    0x05ee
    # phytool 读取 eth0/0x1d
    0000
    # phytool 读取 eth0/0/0x1E
    0x0102
    # phytool 读取 eth0/0x1f
    0000


    # phytool 读取 eth0/0x467
    0xffea
    # phytool 读取 eth0/0/0x468
    0xffea

    # ifconfig eth0
    eth0 Link encap:以太网 HWaddr 92:D9:C7:B6:59:EC
    iNet 地址:150.168.3.20 Bcast:150.168.255.255 Mask:255.255.0.0
    向上广播运行多播 MTU:1500公制:1
    Rx 数据包:0错误:0丢弃:0溢出:0帧:0
    TX 数据包:0错误:0丢弃:0溢出:0载波:0
    冲突:0 txqueueelen:1000
    Rx 字节:0 (0.0 B) TX 字节:0 (0.0 B)
    中断:33

    # ping 150.168.3.30
    Ping 150.168.3.30 (150.168.3.30)[ 968.946214] Weihan : emac_tx_handler
    :56个数据字节
    [970.007016] Weihan : emac_tx_handler
    [971.046916] Weihan : emac_tx_handler
    [972.954130] Weihan : emac_tx_handler
    ^C
    --150.168.3.30 ping 统计数字--
    发送5个数据包、接收0个数据包、100%丢失数据包
    #[ 974.007351] Weihan : emac_tx_handler
    [975.046943] Weihan : emac_tx_handler
    ifconfig eth0
    eth0 Link encap:以太网 HWaddr 92:D9:C7:B6:59:EC
    iNet 地址:150.168.3.20 Bcast:150.168.255.255 Mask:255.255.0.0
    向上广播运行多播 MTU:1500公制:1
    Rx 数据包:0错误:0丢弃:0溢出:0帧:0
    TX 数据包:6错误:0丢弃:0溢出:0载波:0
    冲突:0 txqueueelen:1000
    Rx 字节:0 (0.0 B) TX 字节:360 (360.0 B)
    中断:33

    还有一个问题是、关于 ethtool 和 IP、如何在内核 Linux ya 中启用它?

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

    您好:

    从 PHY 级别的角度来看、器件看起来连接正确、并且处于 RMII 主模式。 由于板载本地 MAC 接口或链路伙伴的 MAC 接口、ping 可能会失败。 此场景中的链路伙伴是什么?

    有关实用程序问题、请参阅我们的 软件故障排除指南

    此致、

    Gerome

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

    您好、  

    Im 尝试 ping 我的个人笔记本电脑 ehich 通过 RJ45端口的 LAN 电缆连接。

    我看到寄存器17值为0x65、其中包含下溢错误。 你有这方面的线索吗?

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

    您好:

    下溢通常与怀疑时钟运行状况的问题相关。 由于 MAC 和 DUT PHY 使用同一时钟(RMII 主器件中的 DUT)运行、这可能会提供有关链路伙伴时钟运行状况的信息。 但是、我没有看到寄存器0x15递增、这将是此功能影响应用程序的信号灯符号。  

    从最新的 ping 日志中可以看到 TX 数据包已损坏。 您能否请对照基准时钟检查这些 MAC 线路的建立时间和保持时间?

    此致、

    Gerome

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

    你(们)好  

    感谢您的答复。 由于 PHY 芯片配置为主器件并具有25MHz 并将50MHz 输出到 freon、因此时钟输出看起来正确。

    除此之外、您能否与我分享 需要为该 phy 芯片(dp83825I)、RMII 和 EMAC 正常工作而启用的配置? 我想确认没有遗漏任何配置。

    此致、

    Wei Han

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

    您好:

    从 SW 侧、寄存器指示 PHY 已正确配置。 使用 MAC 配置时、您需要咨询 MAC 供应商(此论坛适用于以太网 PHY)。 您能否提供 TX 和 RX 建立时间和保持时间分析的示波器截图?

    此致、
    Gerome

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

    您好、Gerome、  

    我们确实尝试测量 TX 的 RMII 建立时间和保持时间。

    TX RMII 建立时间为8.4ns、而 RxRMII 保持时间为10.4ns

    此致、

    Wei Han

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

    您好:

    感谢您的 TX 测量值。 这表明 MAC 到 PHY 的要求应该可以满足。 RX 测量呢?

    此致、

    Gerome

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

    您好、Gerome、

    感谢您的答复。 关于接收(RX)功能、到目前为止我们尚未检测到任何传入信号。 请您深入了解导致这种行为的可能原因吗?

    此致、

    Wei Han

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

    尊敬的 Wei:

    您认为 RX_D0和_D1没有切换?

    此致、

    Gerome

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

    您好、Gerome、

    感谢您的答复。 RX_D0RX_D1CRS_DV尽管系统未报告错误数据包、但我们未检测到、或线路上的任何信号。

    此致、

    Wei Han

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

    您好:

    需要生成进入 PHY MDI 的流量才能切换 RX 线路。 否则、如果保持空闲状态、它们不会切换。 您能否提供 MDI 相关的 MDI 数据并再次检查? Ping 一次只能生成少量流量、因此使用 Iperf (如果有)可能更好。

    此致、

    Gerome