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.

[参考译文] DP83867IR:强制主器件

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1431440/dp83867ir-forced-master

器件型号:DP83867IR

工具与软件:

您好!  

我有一个包含2个以太网的载板:

-第一个 直接连接到 toradex am62 verdin 板。

-2nd 是我的硬件与 dp83867 :

  • straped phy addresses:0x01
  • RGMII Rx 延迟:2ns
  • RGMII TX 延迟:0ns

我很´m DP83867可以正常工作、因为它显示了活动并且 LED 上有链路。

但是、连接以太网电缆并配置 IP 和路由时、没有链路。

Settings for ethernet1:
	Supported ports: [ TP	 MII ]
	Supported link modes:   10baseT/Half 10baseT/Full
	                        100baseT/Half 100baseT/Full
	                        1000baseT/Full
	                        1000baseX/Full
	Supported pause frame use: Symmetric
	Supports auto-negotiation: Yes
	Supported FEC modes: Not reported
	Advertised link modes:  10baseT/Half 10baseT/Full
	                        100baseT/Half 100baseT/Full
	                        1000baseT/Full
	                        1000baseX/Full
	Advertised pause frame use: Symmetric
	Advertised auto-negotiation: Yes
	Advertised FEC modes: Not reported
	Speed: 1000Mb/s
	Duplex: Full
	Auto-negotiation: on
	master-slave cfg: forced master
	master-slave status: resolution error
	Port: Twisted Pair
	PHYAD: 1
	Transceiver: external
	MDI-X: Unknown
netlink error: Operation not permitted
        Current message level: 0x000020f7 (8439)
                               drv probe link ifdown ifup rx_err tx_err hw
	Link detected: no

但我认为缺少一些东西、因为 AutoNeg 已开启、并且两台机器都应该能够处理配置。

我曾 forced-slave  ethtool ethernet1 -s master-slave force-slaven´t master-slave cfg 使用,但它没有工作,尽管应用的配置。

所以我在问题上进行了更深入的探讨  、编译了 MII 工具以访问寄存器。 对于第一个接口(phy0)、我可以读取和写入寄存器:

root@verdin-am62-15363911:~/mdio-tool# mdio-tool -e ethernet0 -r -a 0x0 -l 0x0A
Probed phyaddr: 0
PHY: 0|REG: 0 ---> 0x1140
PHY: 0|REG: 1 ---> 0x796d
PHY: 0|REG: 2 ---> 0x2000
PHY: 0|REG: 3 ---> 0xa231
PHY: 0|REG: 4 ---> 0x05e1
PHY: 0|REG: 5 ---> 0x41e1
PHY: 0|REG: 6 ---> 0x0065
PHY: 0|REG: 7 ---> 0x2001
PHY: 0|REG: 8 ---> 0x0000
PHY: 0|REG: 9 ---> 0x0200

对于 PHY1、每个寄存器即使在写入后也返回0xFFFF。

root@verdin-am62-15363911:~/mdio-tool# mdio-tool -e ethernet1 -r -a 0x0 -l 0x0A
Probed phyaddr: 1
PHY: 1|REG: 0 ---> 0xffff
PHY: 1|REG: 1 ---> 0xffff
PHY: 1|REG: 2 ---> 0xffff
PHY: 1|REG: 3 ---> 0xffff
PHY: 1|REG: 4 ---> 0xffff
PHY: 1|REG: 5 ---> 0xffff
PHY: 1|REG: 6 ---> 0xffff
PHY: 1|REG: 7 ---> 0xffff
PHY: 1|REG: 8 ---> 0xffff
PHY: 1|REG: 9 ---> 0xffff

我相信是某个原因导致了这个问题、这可能就是两个器件都可以协商可行通信的原因。

对此有什么想法吗?

如果需要、我还会将原理图发送给您。

e2e.ti.com/.../NT_2D00_REMOTE_2D00_IO.pdf

此致、

Carla

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

    你好、卡拉!

    感谢您提交查询。 这样做的原因可能有很多。 要确认、您的电路板有两个以太网端口、其中一个正常工作、另一个无法正常工作、正在使用 DP83867。 两个 PHY 是否共用一条连接到处理器的公共 MDC/MDIO 总线? 如果是、它们需要具有唯一的 PHY 地址。 请使用命令'dmesg | grep mdio'确认是否正确加载了驱动程序。

      有关驱动程序调试的更多信息、请参阅 snla450。

    此致、

    Alvaro  

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

     你好、Alvaro、
    "对不起,我不小心给弄丢了。"


    我的意思是、对于第一个以太网端口、硬件在 toradex verdin am62板上。
    只有第二个以太网端口有我的硬件。
    我在设备树中配置了它、每个以太网端口都有一个不同的 phy。

    以下是 Δ V `d| grep MDIO`的输出:

    torizon@verdin-am62-15363911:~$ dmesg | grep mdio
    [    1.202953] davinci_mdio 8000f00.mdio: Configuring MDIO in manual mode
    [    1.254438] davinci_mdio 8000f00.mdio: davinci mdio revision 9.7, bus freq 1000000
    [    1.445260] davinci_mdio 8000f00.mdio: Configuring MDIO in manual mode
    [    1.504480] davinci_mdio 8000f00.mdio: davinci mdio revision 9.7, bus freq 1000000
    [    1.525086] davinci_mdio 8000f00.mdio: phy[0]: device 8000f00.mdio:00, driver TI DP83867
    [    1.525118] davinci_mdio 8000f00.mdio: phy[1]: device 8000f00.mdio:01, driver TI DP83867
    [    8.909827] am65-cpsw-nuss 8000000.ethernet ethernet1: PHY [8000f00.mdio:01] driver [TI DP83867] (irq=370)
    [    9.013740] am65-cpsw-nuss 8000000.ethernet ethernet0: PHY [8000f00.mdio:00] driver [TI DP83867] (irq=357)
    

    此致、

    Carla

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

    尊敬的 Carla:

    非常好、两个 DP83867都被识别、它们都具有唯一的 PHY 地址:0和1。  

    MDC/MDIO 线路如何连接到主机控制器? 能否发送原理图?

    此致、

    Alvaro

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

    尊敬的 Alvaro:  

    我已经将原理图发送到了第一个帖子中。  

    但此处是原理图的图像:

    此致、

    Carla  

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

    尊敬的 Carla:

    谢谢您重新发送原理图,我在原始文章中错过了它们。 我不确定我是否理解您当前的电路板配置。 您有一个具有2个以太网端口的载板。 第一个端口连接至 toradex am62 verdin 板 、第二个端口连接至您的定制板。 您发送的原理图是您的客户电路板的正确原理图吗? 其中 RGMII、MDC 和 MDIO 信号通过 2309409-2 连接器发送。 这些信号会送到哪里? 您能否确认每块电路板上的 MAC 和 PHY 位于何处?

    此致、

    Alvaro

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

    尊敬的 Alvaro:

    我认为首先最好澄清一下定制电路板原理图和签带。

    因此、2309409-2连接器都是 Verdin IO 的输入、其中 RGMII、MDC 和 MDIO 信号转、如图所示:

    因此、我定义了以下配置:

    • 0x1的 PHY 地址
    • 自动协商打开
    • RGMII-RXID 模式
    • Rx-INTERVAL-DELAY = 2ns
    • TX-INTERVAL-DELAY = 0ns
    • 广播能力10/100/1000

    此配置的搭接配置与图像不同、包括:

    • RX_D0
      • R5 10k
      • R54 2.49k
    •  RX_D2
      • R91开路
      • R93开路
    • RX_CTRL
      • R84 5.76k
      • R143 2.49k
    • GPIO0:
      • R96开路
      • R97开路
    • GPIO1
      • R98开路
      • R99开路
    • ANGSEL/TX2
      • R102 10k
      • R105 2.49K
    • 镜像 EN
      • R92开路
      • R94开路
    • TX1/TX0
      • R109开路
      • R110开路

    此配置完成后、DP83867的 verdin 驱动程序检测 IC、并且来自" ethtool ethernet1"的输出如下:

    Settings for ethernet1:
    	Supported ports: [ TP	 MII ]
    	Supported link modes:   10baseT/Half 10baseT/Full
    	                        100baseT/Half 100baseT/Full
    	                        1000baseT/Full
    	                        1000baseX/Full
    	Supported pause frame use: Symmetric
    	Supports auto-negotiation: Yes
    	Supported FEC modes: Not reported
    	Advertised link modes:  10baseT/Half 10baseT/Full
    	                        100baseT/Half 100baseT/Full
    	                        1000baseT/Full
    	                        1000baseX/Full
    	Advertised pause frame use: Symmetric
    	Advertised auto-negotiation: Yes
    	Advertised FEC modes: Not reported
    	Speed: Unknown!
    	Duplex: Unknown! (255)
    	Auto-negotiation: on
    	master-slave cfg: forced master
    	master-slave status: resolution error
    	Port: MII
    	PHYAD: 1
    	Transceiver: external
    netlink error: Operation not permitted
            Current message level: 0x000020f7 (8439)
                                   drv probe link ifdown ifup rx_err tx_err hw
    	Link detected: no

    其中主从配置始终是强制从配置、即使在连接到其他计算机(PC)之后也是如此。 它似乎无法与另一台机器进行协商。

    另一个问题是、当尝试使用 MDIO-tool 读取 DP83867的寄存器时、具有寄存器0x0的内置 IC 会显示寄存器:

    root@verdin-am62-15363911:~/mdio-tool# mdio-tool -e ethernet0 -r -a 0x0 -l 0x0A
    Probed phyaddr: 0
    PHY: 0|REG: 0 ---> 0x1140
    PHY: 0|REG: 1 ---> 0x796d
    PHY: 0|REG: 2 ---> 0x2000
    PHY: 0|REG: 3 ---> 0xa231
    PHY: 0|REG: 4 ---> 0x05e1
    PHY: 0|REG: 5 ---> 0x41e1
    PHY: 0|REG: 6 ---> 0x0065
    PHY: 0|REG: 7 ---> 0x2001
    PHY: 0|REG: 8 ---> 0x0000
    PHY: 0|REG: 9 ---> 0x0200

    但是、定制电路板上的 DP83867将所有寄存器显示为0xFFFF:

    root@verdin-am62-15363911:~/mdio-tool# mdio-tool -e ethernet1 -r -a 0x0 -l 0x0A
    Probed phyaddr: 1
    PHY: 1|REG: 0 ---> 0xffff
    PHY: 1|REG: 1 ---> 0xffff
    PHY: 1|REG: 2 ---> 0xffff
    PHY: 1|REG: 3 ---> 0xffff
    PHY: 1|REG: 4 ---> 0xffff
    PHY: 1|REG: 5 ---> 0xffff
    PHY: 1|REG: 6 ---> 0xffff
    PHY: 1|REG: 7 ---> 0xffff
    PHY: 1|REG: 8 ---> 0xffff
    PHY: 1|REG: 9 ---> 0xffff

    如有任何其他问题、请随时提出。

    谢谢你。

    此致。

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

    尊敬的 Carla:

    请允许我再过一天来评论。

    此致、

    Alvaro

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

    尊敬的 Carla:

    感谢您确认 strap 配置、但这些设置不会影响您遇到的寄存器访问问题。 两个 PHY 的 MDC/MDIO 引脚是否连接到同一个处理器? 从 dmesg 命令的输出中、我们可以看到在 MDIO 总线上正确识别 PHY[1]为 DP83867、这需要访问寄存器。  

    [报价 userid="628979" url="~/support/interface-group/interface/f/interface-forum/1431440/dp83867ir-forced-master/5490112 #5490112"]

    以下是 Δ V `d| grep MDIO`的输出:

    [报价]

    您是否可以尝试:

    ifconfig eth1 down

    ifconfig eth1 up

    这将导致重新加载驱动程序。 之后、请再次运行 dmesg | grep mdio、查看是否能再次识别它。

    此致、

    Alvaro