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.

[参考译文] DP83869HM:TX 问题?

Guru**** 2451970 points


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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1263359/dp83869hm-tx-issue

器件型号:DP83869HM
主题中讨论的其他器件:DP83869

您好!

DP83869在 RGMII 覆铜模式下使用、在定制电路板上通过 RGMII/MDIO 连接到 SOC。

Linux 驱动程序用于 SOC。 PHY 初始化似乎正常(在 MDIO、配置上进行检测)。

使用默认配置。

PHY LED 配置已更改为仅具有链路建立/TX 活动/仅具有 Rx 活动。

-定制板和 PC 之间的电缆连接:
链路建立 LED 变为稳定亮起。
PC 指示链路建立、自动协商10Mbps -已满、SOC 也显示。

-从 PC Ping :
RX LED 闪烁
TX LED 闪烁
SoC 上的 tcpdump 显示从 PC 接收到的 ARP 以及发回给它的应答。
PC 未接收到答案。 Ping 失败。

-从 SOC ping :
RX LED 关闭
TX LED 闪烁
PC 不接收 ARP 请求。 Ping 失败。

CLK_O_SEL (IO_MUX_CFG 寄存器)已修改、以监控范围内的 TX 时钟:
通道 A 发送时钟:CLK_OUT = 25MHz
通道 B 发送时钟:CLK_OUT = 25MHz
通道 C 发送时钟:CLK_OUT = 25MHz
通道 D 发送时钟:CLK_OUT = 25MHz
默认配置(参考时钟):CLK_OUT = 25MHz

我们应说出2.5MHz、因为链路是10Mbps?

我们能说 RX 正常吗? SoC-PHY 连接正常?

我不知道问题在哪里、我必须检查什么以及我可以执行的测试...

如果需要、我可以提供 PHY 寄存器值。

感谢你的帮助。

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

    纪尧姆、您好!

    只是为了确保我了解您的设置:

    SoC <-RGMII->869 <-以太网电缆-> PC

    您看到的问题是 SOC 可以接收来自 PC 的通信、但 PC 不接收来自 SOC 的任何信息;对吗?

    下面是一些可以帮助您调试问题的建议:

    • 这可能是由于 RGMII 延迟、这里有一些寄存器可供使用。 建议867调试指南。
    • 2个寄存器写入以更改 CLKOUT 速度
      • 寄存器0xC6 = 0x10 (未包括在数据表中)
      • 可以根据数据表修改0x170[12:8]。

    请告诉我、这是否有帮助。

    此致、

    阿尔瓦罗

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

    尊敬的 Alvaro:

    感谢你的帮助。

    实际上,这与 RGMII 延迟有关。

    现在、我们面临10Mbits 自动协商、而两个 Phy 都支持1G。 它是否与延迟配置值有关?

    此致

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

    尊敬的 Alvaro:

    867和869的映射是否相同?

    例如、链路质量 MSE 寄存器位于@0x225/0x265/0x2e5?

    从 phy 869读取:
    0x225:从20到100
    0x265:0x7fff
    0x2a5:0x7fff
    0x2e5:0x7fff

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

    纪尧姆、您好!

    参考您的上一个问题、您将以10 Mbps 的速率进行连接、但您希望1000正确吗?

    您可以读取寄存器0x01DF 吗? 这将确认869所处的模式。

    我需要在 MSE 注册表上回复您、我可以在星期二回复(我们周一有假期)。

    此致、

    阿尔瓦罗

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

    尊敬的 Alvaro:

    869正在以10Mbps 的速率进行链路、预计为1000。

    建立链接之前需要很长时间(1分钟或更长时间)。

    0x1fd - Linux 驱动程序和我们的器件树将 OP_MODE_DECODEC 寄存器设置为0x0。

    该寄存器已强制设置为0x40、以便遵循数据表 RGMII 转铜缆以太网模式序列。 结果相同。

    此致、

    纪尧姆

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

    纪尧姆、您好!

     MSE 寄存器位于@0x225/0x265/0x2a5/0x2e5。  

    我认为您看到0x7FFF 值的原因是链接速率为10Mbps。

    您是否可以尝试以下寄存器写入操作:

    地址 写入值 注释
    0x0004 0001 取消广告10M 和100M 速度
    0x0009 0300 广播1000M 速度
    0x001F 4000 软复位 PHY  

    这些将帮助您以1000Mbps 的速率建立链路。  

    此致、

    阿尔瓦罗

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

    尊敬的 Alvaro:

    我们通过停用10M 和100M 广告来尝试这种方法、但869无法建立链路。 一旦完成 Phy 软复位、链路断开、它就会尝试连接、但从不建立链路。

    我们的电路板上没有标准的 RJ45连接器、但特定的连接器和带有 RJ45的定制电缆(半米)在末端。

    我们有多条定制电缆和4个869 PHY:

    借助其中之一、PHY 从不连接到

    对于另一个、30秒后建立10M 链路(始终相同)

    与另一个连接时、30秒或有时几分钟后建立10M 链路

    已经检查了电路板和电缆原理图。

    请注意、我们的板上有4个869物理层实例、所有这些实例的行为都是相同的、链接速度为10M。

    运行在 PC 上的 ethtool 会发出警告以检查电缆。

    我们可以从 MSE 寄存器中学习一些东西吗? (一个或多个端口不可用?)

    每5s 读取一次 MSE 寄存器:

    -连接前:大多数情况下 MSE 注册端口 A < 100和端口 B/C/D = 0x7fff。 有时4个端口同时约为2000/3000个。

    -连接后:所有 MSE 寄存器= 0x7fff

    感谢你的帮助。

    此致、

    纪尧姆

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

    纪尧姆、您好!

    您能否提供您的设置的方框图?

    我们的主板上没有标准 RJ45连接器,但特定连接器和定制电缆(半米)结尾带有 RJ45。

    具体来说、这种连接器设置就是我想要更详细说明的内容。 您是否在电路板上有变压器?

    您还可以尝试:  

    • 检查链路伙伴公布的速度
      • 寄存器0x5
        • 告诉我们 LP 是否广播10/100
      • 寄存器0xA
        • 告诉我们 LP 是否广播了1000次
    • 您是否可以尝试将另一个869用作链路伙伴?

    此致、

    阿尔瓦罗

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

    尊敬的 Alvaro:

    这是原理图。 我不知道它是否可以读。 请告诉我。

    我们尝试使用一根短 RJ45电缆连接到变压器、但我们有相同的行为、链接到10M。

    我们尝试了一个环回869-869、Linking-up 10M。

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

    纪尧姆、您好!

    您可能认为、原理图很难阅读。 您可以通过 PDF 形式发送吗?

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

    尊敬的 Alvaro:

    我在论坛上找不到您的最后一条消息。 我会在这里回复。

    您申请的测试:

    启用广播10M/100M (ANAR = 0x0de1):
    [ 171.402247] PHY_STATUS = 00000002 <=未拔下电缆
    [ 172.426244] PHY_STATUS = 00000302
    [ 173.450292] PHY_STATUS = 00000002
    [ 174.474253] PHY_STATUS = 00000302
    [ 175.498245] PHY_STATUS = 00000302
    [176.522244] PHY_STATUS = 00000302
    [ 177.546247] PHY_STATUS = 00000002
    [ 178.570246] PHY_STATUS = 00000302
    [ 179.594301] PHY_STATUS = 00000302
    [ 180.618254] PHY_STATUS = 00000302
    [ 181.642246] PHY_STATUS = 00000002
    [ 182.666246] PHY_STATUS = 00000302 <=电缆已插入
    [ 183.690249] PHY_STATUS = 00001302
    [ 184.714246] PHY_STATUS = 0000b302
    [ 185.738303] PHY_STATUS = 00000302
    [ 186.762254] PHY_STATUS = 00001002
    [ 187.786246] PHY_STATUS = 0000b002
    [ 188.810241] PHY_STATUS = 00000102
    [ 189.834249] PHY_STATUS = 00001102
    [ 190.858303] PHY_STATUS = 00001102
    [ 191.882257] PHY_STATUS = 00000002
    [ 192.906247] PHY_STATUS = 00000302
    [ 193.930248] PHY_STATUS = 00001002
    [ 194.954250] PHY_STATUS = 00001302
    [ 195.978248] PHY_STATUS = 00000302
    [ 197.002304] PHY_STATUS = 00001302
    [ 198.026261] PHY_STATUS = 00001302
    [ 199.050250] PHY_STATUS = 00000002
    [ 200.074244] PHY_STATUS = 00000302
    [ 2010.098243] PHY_STATUS = 00001302
    [ 202.122244] PHY_STATUS = 00001002
    [ 203.146297] PHY_STATUS = 00000302
    [ 204.170254] PHY_STATUS = 00001002
    [ 205.194313] PHY_STATUS = 00003c02
    [ 205.194385] pfeng 46000000.pfe pfe0:将 TX 时钟设置为2500000Hz
    [ 205.194422] pfeng 46000000.pfe pfe0:链路已建立- 10Mbps/全-流控制 Rx/TX
    [ 206.218056] PHY_STATUS = 00002c02 <=链路建立
    [ 207.242056] PHY_STATUS = 00002c02
    [ 208.266054] PHY_STATUS = 00002c02
    [ 209.2991] PHY_STATUS = 00002c02
    [ 210.314055] PHY_STATUS = 00002c02
    [ 211.338057] PHY_STATUS = 00002c02
    [ 212.362051] PHY_STATUS = 00002c02
    [ 213.386054] PHY_STATUS = 00002c02

    禁用广播10M/100M (ANAR=0x0001 + GEN_CFG2位6和9 = 0):
    [  50.698594] PHY_STATUS          =00000002 <=未拔下电缆
    [  51.722594] PHY_STATUS          =00000002
    [  52.746594] PHY_STATUS          =00000302
    [  53.770643] PHY_STATUS          =00000302
    [  54.794622] PHY_STATUS          =00000302
    [  55.818611] PHY_STATUS          =00000302
    [  56.842604] PHY_STATUS          =00000002
    [  57.866607] PHY_STATUS          =00000002
    [  58.890642] PHY_STATUS          =00000002
    [  59.914622] PHY_STATUS          =00000302
    [  60.938618] PHY_STATUS          =00000302 <=电缆已插入
    [  61.962615] PHY_STATUS          =00001002
    [  62.986617] PHY_STATUS          =00001002
    [  64.010610] PHY_STATUS          =00000002
    [  65.034640] PHY_STATUS          =00000002
    [  66.058595] PHY_STATUS          =00001302
    [  67.082593] PHY_STATUS          =00001002
    [  68.106595] PHY_STATUS          =00000002
    [  69.130594] PHY_STATUS          =00001302
    [  70.154593] PHY_STATUS          =00001302
    [  71.178650] PHY_STATUS          =00000002
    [  72.202614] PHY_STATUS          =00000002
    [  73.226605] PHY_STATUS          =00001002
    [  74.250604] PHY_STATUS          =00001302
    [  75.274610] PHY_STATUS          =00000002
    [  76.298608] PHY_STATUS          =00001302
    [  77.322646] PHY_STATUS          =00001302
    [  78.346612] PHY_STATUS          =00000002
    [  79.370608] PHY_STATUS          =00001002

    我在 TI DP83869 Linux 驱动器中添加了代码、以在读取状态函数中读取 Phy 寄存器、每1s 调用一次。
    日志中不显示、但有时 PHY_STATUS 会读取到0xbXXX、无论是否启用了10M/100M 广播。

    与我在前一条消息中所写的相反,当 ANAR=0x0001 (禁用10M/100M 广播)时,869和 PC 之间没有链路建立,无法链路建立@10M。

    当启用10M/100M 广播时、PHY 活动 LED 会每5s 略有闪烁一次、直到其在链路@10M 时得到固定值。
    禁用10M/100M 广播时、不会发生这种轻微闪烁。

    此致、
    纪尧姆

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

    纪尧姆、您好!

    感谢您执行本实验。 我在实验中也尝试了该方法、现在在连接电缆并建立链路时看到 PHY_STATUS = AC02。 当电缆断开时、PHY_STATUS 读数为0302或0002。

    请允许我再花一天时间咨询我的团队以了解进一步的调试步骤。

    此致、

    阿尔瓦罗

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

    尊敬的 Alvaro:

    另外2个测试:

    -测试1:
    我们的电路板有一个连接到 RESET_N 869引脚的 GPIO。 电路板已通电,Linux 已启动,869已初始化,... eth 接口设置为 down (ifconfig down)并让其运行。 RESET_N 引脚先设置为低电平、然后设置为高电平。 该接口永远不会再次启动、因此没有软件配置869。 其配置由自举提供。 在这种情况下、链路上升@10M (根据连接到电路板的 PC 上的 ethtool 运行情况)。

    -测试2 :
    MDIO 访问在869初始化期间生成。 我希望这里出错了...

    [ 2424.172429] pfeng 46000000.pFE:W:phyreg=001f、phydata=8000 => W GEN_CTRL = 0x8000 (phy 复位)
    [ 2424.172655] pfeng 46000000.pFE:R:phyreg=0014、phyval=29c7  => R GEN_CFG2 = 0x29c7
    [ 2424.172667] pfeng 46000000.pFE:W:phyreg=0014、phydata=2bc7 => W GEN_CFG2 = 0x2bc7 (启用速度优化)
    [ 2424.172797] pfeng 46000000.pFE:R:phyreg=0014、phyval=2bc7  => R GEN_CFG2 = 0x2bc7
    [ 2424.172818] pfeng 46000000.pFE:W:phyreg=000d、phydata=001f  
    [ 2424.172880] pfeng 46000000.PFE:W:phyreg=000e、phydata=01df
    [ 2424.172943] pfeng 46000000.PFE:W:phyreg=000d、phydata=401F
    [ 2424.173007] pfeng 46000000.pFE:W:phyreg=000e、phydata=0040 => W OP_MODE_DECODED = 0x0040 (数据表§9.4.8.1)
    [ 2424.173078] pfeng 46000000.PFE:W:phyreg=0000、phydata=1140 => W BMCR = 0x1140 (数据表§9.4.8.1)
    [ 2424.173150] pfeng 46000000.pFE:W:phyreg=000d、phydata=001f
    [ 2424.173213] pfeng 46000000.PFE:W:phyreg=000e、phydata=0004
    [ 2424.173364] pfeng 46000000.PFE:W:phyreg=000d、phydata=401F
    [ 2424.173428] pfeng 46000000.pFE:W:phyreg=000e、phydata=01e1 => W ANAR = 0x01e1 (数据表§9.4.8.1)
    [ 2424.173497] pfeng 46000000.PFE:W:phyreg=0009、phydata=0300 => W GEN_CFG1 = 0x0300 (数据表§9.4.8.1)
    [ 2424.173627] pfeng 46000000.PFE:R:phyreg=0010、phyval=5048  => R PHY_CONTROL = 0x5048
    [ 2424.173642] pfeng 46000000.PFE:W:phyreg=0010、phydata=5048 => W PHY_CONTROL = 0x5048 (数据表§9.4.8.1)
    [ 2424.173710] pfeng 46000000.pFE:W:phyreg=000d、phydata=001f
    [ 2424.173772] pfeng 46000000.PFE:W:phyreg=000e、phydata=0009
    [ 2424.173835] pfeng 46000000.PFE:W:phyreg=000d、phydata=401F
    [ 2424.173897] pfeng 46000000.PFE:W:phyreg=000e、phydata=0300 => W GEN_CFG1 = 0x0300
    [ 2424.173965] pfeng 46000000.pFE:W:phyreg=000d、phydata=001f
    [ 2424.174714] pfeng 46000000.PFE:W:phyreg=000e、phydata=001f
    [ 2424.175036] pfeng 46000000.PFE:W:phyreg=000d、phydata=401F
    [ 2424.175130] pfeng 46000000.PFE:W:phyreg=000e、phydata=4000 => W GEN_CTRL = 0x4000 (数据表§9.4.8.1)
    [ 2424.175397] pfeng 46000000.pFE:W:phyreg=000d、phydata=001f
    [ 2424.175718] pfeng 46000000.PFE:W:phyreg=000e、phydata=0031
    [ 2424.175812] pfeng 46000000.PFE:W:phyreg=000d、phydata=401F
    [ 2424.176149] pfeng 46000000.pFE:R:phyreg=000e、phyval=10b0  => R GEN_CFG3 = 0x10b0
    [ 2424.176162] pfeng 46000000.PFE:W:phyreg=000d、phydata=001f
    [ 2424.176348] pfeng 46000000.PFE:W:phyreg=000e、phydata=0170
    [ 2424.176430] pfeng 46000000.PFE:W:phyreg=000d、phydata=401F
    [ 2424.176687] pfeng 46000000.PFE:R:phyreg=000e、phyval=0c0e  => R IO_MUX_CFG = 0x0c0e
    [ 2424.176699] pfeng 46000000.pFE:W:phyreg=000d、phydata=001f
    [ 2424.176762] pfeng 46000000.PFE:W:phyreg=000e、phydata=0170
    [ 2424.176824] pfeng 46000000.PFE:W:phyreg=000d、phydata=401F
    [ 2424.176886] pfeng 46000000.pFE:W:phyreg=000e、phydata=0b0e => W IO_MUX_CFG = 0x0b0e
    [ 2424.176950] pfeng 46000000.pFE:W:phyreg=000d、phydata=001f
    [ 2424.177012] pfeng 46000000.PFE:W:phyreg=000e、phydata=0170
    [ 2424.177075] pfeng 46000000.PFE:W:phyreg=000d、phydata=401F
    [ 2424.177202] pfeng 46000000.pFE:R:phyreg=000e、phyval=0b0e  => R IO_MUX_CFG = 0x0b0e
    [ 2424.177220] pfeng 46000000.pFE:W:phyreg=000d、phydata=001f
    [ 2424.177310] pfeng 46000000.PFE:W:phyreg=000e、phydata=0086
    [ 2424.177373] pfeng 46000000.PFE:W:phyreg=000d、phydata=401F
    [ 2424.177436] pfeng 46000000.PFE:W:phyreg=000e、phydata=7fd0 => W ANA_RGMII_DLL_CTRL = 0x7fd0
    [ 2424.177498] pfeng 46000000.pFE:W:phyreg=000d、phydata=001f
    [ 2424.177560] pfeng 46000000.PFE:W:phyreg=000e、phydata=0086
    [ 2424.177622] pfeng 46000000.PFE:W:phyreg=000d、phydata=401F
    [ 2424.177747] pfeng 46000000.PFE:R:phyreg=000e、phyval=03d0  => R ANA_RGMII_DLL_CTRL = 0x03d0
    [ 2424.177763] pfeng 46000000.pFE:W:phyreg=000d、phydata=001f
    [ 2424.177825] pfeng 46000000.PFE:W:phyreg=000e、phydata=0032
    [ 2424.177887] pfeng 46000000.PFE:W:phyreg=000d、phydata=401F
    [ 2424.178012] pfeng 46000000.PFE:R:phyreg=000e、phyval=00d0  => R RGMII_CTRL = 0x00d0
    [ 2424.178029] pfeng 46000000.pFE:W:phyreg=000d、phydata=001f
    [ 2424.178091] pfeng 46000000.pFE:W:phyreg=000e、phydata=0032
    [ 2424.178153] pfeng 46000000.PFE:W:phyreg=000d、phydata=401F
    [ 2424.178216] pfeng 46000000.PFE:W:phyreg=000e、phydata=00d1 => W RGMII_CTRL = 0x00d1
    [ 2424.178349] pfeng 46000000.pFE:R:phyreg=0014、phyval=2bc7  => R GEN_CFG2 = 0x2bc7
    [ 2424.178422] pfeng 46000000.pFE:R:phyreg=0014、phyval=2bc7  => R GEN_CFG2 = 0x2bc7
    [ 2424.178438] pfeng 46000000.PFE:W:phyreg=000d、phydata=001f  
    [ 2424.178500] pfeng 46000000.PFE:W:phyreg=000e、phydata=01df
    [ 2424.178562] pfeng 46000000.PFE:W:phyreg=000d、phydata=401F
    [ 2424.178624] pfeng 46000000.pFE:W:phyreg=000e、phydata=0040 => W OP_MODE_DECODED = 0x0040
    [ 2424.178692] pfeng 46000000.PFE:W:phyreg=0000、phydata=1140 => W BMCR = 0x1140
    [ 2424.17873] pfeng 46000000.pFE:W:phyreg=000d、phydata=001f
    [ 2424.178824] pfeng 46000000.PFE:W:phyreg=000e、phydata=0004
    [ 2424.178886] pfeng 46000000.PFE:W:phyreg=000d、phydata=401F
    [ 2424.178948] pfeng 46000000.pFE:W:phyreg=000e、phydata=01e1 => W ANAR = 0x01e1
    [ 2424.179015] pfeng 46000000.PFE:W:phyreg=0009、phydata=0300 => W GEN_CFG1 = 0x0300
    [ 2424.179148] pfeng 46000000.pFE:R:phyreg=0010、phyval=5048  => R PHY_CONTROL = 0x5048
    [ 2424.179163] pfeng 46000000.PFE:W:phyreg=0010、phydata=5048 => W PHY_CONTROL = 0x5048
    [ 2424.179231] pfeng 46000000.pFE:W:phyreg=000d、phydata=001f
    [ 2424.179293] pfeng 46000000.PFE:W:phyreg=000e、phydata=0009
    [ 2424.179356] pfeng 46000000.pfe:W:phyreg=000d、phydata=401F
    [ 2424.179420] pfeng 46000000.PFE:W:phyreg=000e、phydata=0300 => W GEN_CFG1 = 0x0300
    [ 2424.179488] pfeng 46000000.pfe:W:phyreg=000d、phydata=001f
    [ 2424.179550] pfeng 46000000.PFE:W:phyreg=000e、phydata=001f
    [ 2424.179613] pfeng 46000000.PFE:W:phyreg=000d、phydata=401F
    [ 2424.179676] pfeng 46000000.PFE:W:phyreg=000e、phydata=4000 => W GEN_CTRL = 0x4000
    [ 2424.179745] pfeng 46000000.pFE:W:phyreg=000d、phydata=001f
    [ 2424.179807] pfeng 46000000.pFE:W:phyreg=000e、phydata=0031
    [ 2424.179869] pfeng 46000000.PFE:W:phyreg=000d、phydata=401F
    [ 2424.179995] pfeng 46000000.pFE:R:phyreg=000e、phyval=10b0  => R GEN_CFG3 = 0x10b0
    [ 2424.180005] pfeng 46000000.pFE:W:phyreg=000d、phydata=001f
    [ 2424.180068] pfeng 46000000.PFE:W:phyreg=000e、phydata=0170
    [ 2424.180131] pfeng 46000000.PFE:W:phyreg=000d、phydata=401F
    [ 2424.180257] pfeng 46000000.pFE:R:phyreg=000e、phyval=0b0e  => R IO_MUX_CFG = 0x0b0e
    [ 2424.180267] pfeng 46000000.pFE:W:phyreg=000d、phydata=001f
    [ 2424.180330] pfeng 46000000.PFE:W:phyreg=000e、phydata=0170
    [ 2424.180393] pfeng 46000000.PFE:W:phyreg=000d、phydata=401F
    [ 2424.180519] pfeng 46000000.pFE:R:phyreg=000e、phyval=0b0e  => R IO_MUX_CFG = 0x0b0e
    [ 2424.180535] pfeng 46000000.pFE:W:phyreg=000d、phydata=001f
    [ 2424.180598] pfeng 46000000.PFE:W:phyreg=000e、phydata=0086
    [ 2424.180660] pfeng 46000000.PFE:W:phyreg=000d、phydata=401F
    [ 2424.180722] pfeng 46000000.PFE:W:phyreg=000e、phydata=7fd0 => W ANA_RGMII_DLL_CTRL = 0x7fd0
    [ 2424.180785] pfeng 46000000.PFE:W:phyreg=000d,phydata=001f
    [ 2424.180849] pfeng 46000000.PFE:W:phyreg=000e、phydata=0086
    [ 2424.180911] pfeng 46000000.PFE:W:phyreg=000d、phydata=401F
    [ 2424.181037] pfeng 46000000.PFE:R:phyreg=000e、phyval=03d0  => R ANA_RGMII_DLL_CTRL = 0x7fd0
    [ 2424.181052] pfeng 46000000.pFE:W:phyreg=000d、phydata=001f
    [ 2424.181115] pfeng 46000000.PFE:W:phyreg=000e、phydata=0032
    [ 2424.181177] pfeng 46000000.PFE:W:phyreg=000d、phydata=401F
    [ 2424.181302] pfeng 46000000.PFE:R:phyreg=000e、phyval=00d1  => R RGMII_CTRL = 0x00d1
    [ 2424.181318] pfeng 46000000.PFE:W:phyreg=000d、phydata=001f
    [ 2424.181381] pfeng 46000000.PFE:W:phyreg=000e、phydata=0032
    [ 2424.181444] pfeng 46000000.PFE:W:phyreg=000d、phydata=401F
    [ 2424.181507] pfeng 46000000.PFE:W:phyreg=000e、phydata=00d1 => W RGMII_CTRL = 0x00d1
    [ 2424.181575] pfeng 46000000.PFE:W:phyreg=0012、phydata=0000 => W interrupt_MSK = 0x0000
    [ 2424.181639] pfeng 46000000.PFE:W:phyreg=0012、phydata=0000 => W interrupt_MSK = 0x0000
    [ 2424.181765] pfeng 46000000.PFE:R:phyreg=0013、phyval=0000  => R INTERRUPT_STS = 0x0000
    [ 2424.181838] pfeng 46000000.PFE:R:phyreg=0000、phyval=1140  => R BMCR = 0x1140
    [ 2424.181865] pfeng 46000000.PFE pfe0:PHY [PFEng Ethernet MDIO.0:00]驱动程序[TI DP83869](IRQ=POLL)
    [ 2424.181898] pfeng 46000000.pFE pfe0:配置 phy/RGMII-txid 链路模式
    [ 2424.182045] pfeng 46000000.pFE:R:phyreg=0000、phyval=1140  => R BMCR = 0x1140
    [ 2424.182303] pfeng 46000000.PFE:R:phyreg=0004、phyval=01e1  => R ANAR = 0x01e1
    [ 2424.182314] pfeng 46000000.pFE:W:phyreg=0004、phydata=0de1 => W ANAR = 0x0de1
    [ 2424.182441] pfeng 46000000.PFE:R:phyreg=0001、phyval=7949  => R BMSR = 0x7949
    [ 2424.182513] pfeng 46000000.PFE:R:phyreg=0009、phyval=0300  => R GEN_CFG1 = 0x0300
    [ 2424.182586] pfeng 46000000.PFE:R:phyreg=0000、phyval=1140  => R BMCR = 0x1140
    [ 2424.182595] pfeng 46000000.PFE:W:phyreg=0000、phydata=1340 => W BMCR = 0x1340 (重启自动协商)
    [ 2424.182724] pfeng 46000000.PFE:R:phyreg=0000、phyval=1140  => R BMCR = 0x1140
    [ 2424.182796] pfeng 46000000.PFE:R:phyreg=0001、phyval=7949  => R BMSR = 0x7949
    [ 2424.182869] pfeng 46000000.PFE:R:phyreg=0001、phyval=7949  => R BMSR = 0x7949
    [ 2424.182941] pfeng 46000000.PFE:R:phyreg=0009、phyval=0300  => R GEN_CFG1 = 0x0300
    [ 2424.183016] pfeng 46000000.PFE:R:phyreg=000a、phyval=0000  => R GEN_Status1 = 0x0000
    [ 2425.193386] pfeng 46000000.PFE:R:phyreg=0000、phyval=1140  => R BMCR = 0x1140
    [ 2425.193470] pfeng 46000000.PFE:R:phyreg=0001、phyval=7949  => R BMSR = 0x7949

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

    您好,Guillame

    再多一些建议:

    • 您可以尝试使用其他电缆吗?
    • SNLA239 第13页1000 Base 测试模式2:  
      • 使用差分探头可以探测几个不同的位置、以确认在全部4个通道上看到波形。
        • RJ-45之前
          • 靠近 PHY
          • 磁体之前和之后
        • 接收端插入一个滤波器、
      • 示例输出

    此致、

    阿尔瓦罗

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

    尊敬的 Alvaro:

    测量已在测试模式2下完成:

    -电缆末端:

    -磁性, phy 侧:

    -磁性,媒体方面:没有图片,但都看起来不错。

    我们尝试了2组定制电缆。 在电缆的末端、我们有:
    -设置1:1端口0.6V 振幅、1端口0.4 (见图片)、2端口持续:0.7V。
    -设置2:所有端口:0.7V

    2个集的行为方式相同(连接很长、始终@10M)。

    在磁性元件、介质方面:例如您的示例输出。

    在磁性元件上、phy 侧:请参阅图片。

    此致、

    纪尧姆

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

    纪尧姆、您好!

    感谢您提供示波器屏幕截图、您在所有4个通道上进行了正确探测?  

    让我扼要重述到目前为止我们已尝试的一些测试案例:

    • 默认 Strap 配置
      • 以10 Mbps 建立链路
    • 设置寄存器0x04和0x09以取消广播10/100速度
      • 无链路
    • 当我们禁用寄存器0x14中的位6和9 (禁用速度优化)时会发生什么情况?
      • 它是否建立链路或显示无链路?

    在之前的回复中、提到了 ETH 工具警告、 说请检查电缆;您能否提供完整消息的快照?

    您能否再次将两个869s 链接在一起(您之前提到它以10Mpbs 的速度链接在一起)并在连接在一起后为这两个869 PHY 提供寄存器转储0x0-0x1F? 在这同样的配置下、您还可以运行 ethtool 来检查 PHY 的状态吗? 是否显示链路正常、速度为10 Mbps 等? 基本而言、我想检查 Ethtool 是否与我们从寄存器获取的信息匹配。

    此致、

    阿尔瓦罗

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

    尊敬的 Alvaro:


    测试模式2下的测量已在4个端口上完成。 3个869s 上的电压。
    每个端口具有相同的信号(端口 A phy 1 =端口 A phy 2 =端口 A phy 3……)。


    使用 PC 进行测试:

    默认 strap 配置:I confirm、无链路建立。

    -测试1:
    去广播10/100 (ANAR=0x0001、GEN_CFG1=0x0300)
    速度优化启用:Gen_FG2=0x2bc7
    =>无链路建立

    -测试2 :
    去广播10/100 (ANAR=0x0001、GEN_CFG1=0x0300)
    速度优化禁用:Gen_FG2=0x2987
    =>无链路建立

    -测试3:
    广播10/100 (ANAR=0x0de1、GEN_CFG1=0x0300)
    速度优化禁用:Gen_FG2=0x2987
    =>链路建立10M


    使用2 869s 进行测试

    两个869s 仅在启用速度优化(GEN_CFG2=0x2bc7)时连接、而一个869能够连接到 PC USB-eth 转换器、无论是否启用速度优化选项。

    PHY 1的寄存器转储(建立链路后):
    BMCR =        1140
    BMSR =        796d
    PHYIDR1 =     2000
    PHYIDR2 =     a0f3
    ANAR =        0de1
    ALNPAR =      cc61
    ANER =        006d
    ANNPTR =      2001
    ANLNPTR =     4800
    GEN_CFG1    = 0300
    GEN_STATUS1 = 0c00
    REGCR =       401F
    ADDAR =       0000
    1KSCR =       F000
    PHY_CONTROL = 5048
    PHY_STATUS  = 2c02
    INT_MASK    = 0000
    INT_STATUS  = 0000
    GEN_CFG2    = 2bc7
    RX_ERR_CNT  = 0000
    BIST_CONTROL = 0000
    GEN_STATUS2 = 0040
    LEDS_CFG1   = 6150
    LEDS_CFG2   = 4444
    LEDS_CFG3   = 0002
    GEN_CFG4    = 0012
    GEN_CTRL    = 0000

    PHY 2:
    BMCR =        1140
    BMSR =        796d
    PHYIDR1 =     2000
    PHYIDR2 =     a0f3
    ANAR =        0de1
    ALNPAR =      cc61
    ANER =        006d
    ANNPTR =      2001
    ANLNPTR =     4800
    GEN_CFG1    = 0300
    GEN_STATUS1 = 0c00
    REGCR =       401F
    ADDAR =       0000
    1KSCR =       F000
    PHY_CONTROL = 5048
    PHY_STATUS  = 2c02
    INT_MASK    = 0000
    INT_STATUS  = 0000
    GEN_CFG2    = 2bc7
    RX_ERR_CNT  = 0000
    BIST_CONTROL = 0000
    GEN_STATUS2 = 0040
    LEDS_CFG1   = 6150
    LEDS_CFG2   = 4444
    LEDS_CFG3   = 0002
    GEN_CFG4    = 0012
    GEN_CTRL    = 0000


    在两个接口上使用 ethtool:

    pfe0的设置:
           支持的端口:[ TP MII ]
           支持的链路模式:  10baseT/half 10baseT/Full
                                   100baseT/1/2 100baseT/Full
                                   1000BaseT /半1000 BaseT /全
                                   1000基 x/全
           支持的暂停帧使用:对称仅接收
           支持自动协商:是
           支持的 FEC 模式:未报告
           广播的链路模式: 10baseT/half 10baseT/Full
                                   100baseT/1/2 100baseT/Full
                                   1000BaseT /半1000 BaseT /全
                                   1000基 x/全
           广播暂停帧使用:对称仅接收
           广播的自动协商:是
           广播的 FEC 模式:未报告
           连接方广播的链路模式: 10baseT/half 10baseT/Full
                                                1000BaseT /半1000 BaseT /全
           连接方通告的暂停帧使用:对称仅接收
           连接方广播的自动协商:是
           连接方广播的 FEC 模式:未报告
           速度:1000Mb/s
           双工:全双工
           端口:双绞线
           PHYAD:0
           收发器:外部
           自协商:开启
           MDI-X:未知
           检测到链路:是


    pfe1的设置:
           支持的端口:[ TP MII ]
           支持的链路模式:  10baseT/half 10baseT/Full
                                   100baseT/1/2 100baseT/Full
                                   1000BaseT /半1000 BaseT /全
                                   1000基 x/全
           支持的暂停帧使用:对称仅接收
           支持自动协商:是
           支持的 FEC 模式:未报告
           广播的链路模式: 10baseT/half 10baseT/Full
                                   100baseT/1/2 100baseT/Full
                                   1000BaseT /半1000 BaseT /全
                                   1000基 x/全
           广播暂停帧使用:对称仅接收
           广播的自动协商:是
           广播的 FEC 模式:未报告
           连接方广播的链路模式: 10baseT/half 10baseT/Full
                                                1000BaseT /半1000 BaseT /全
           连接方通告的暂停帧使用:对称仅接收
           连接方广播的自动协商:是
           连接方广播的 FEC 模式:未报告
           速度:1000Mb/s
           双工:全双工
           端口:双绞线
           PHYAD:0
           收发器:外部
           自协商:开启
           MDI-X:未知
           检测到链路:是

    ethtool 显示它已链接@1000、但 PHY 1G LED 关闭、PHY_STATUS 寄存器指示已链接@10M。
    在这种情况下,无法在2 869s (SoC 提供一个125MHz 时钟,而869s 连接到@10M?)之间进行通信。

    有时2 869s 中的一个指示为@1000M、另一个@10M:
    pfe1的设置:
           支持的端口:[ TP MII ]
           支持的链路模式:  10baseT/half 10baseT/Full
                                   100baseT/1/2 100baseT/Full
                                   1000BaseT /半1000 BaseT /全
                                   1000基 x/全
           支持的暂停帧使用:对称仅接收
           支持自动协商:是
           支持的 FEC 模式:未报告
           广播的链路模式: 10baseT/half 10baseT/Full
                                   100baseT/1/2 100baseT/Full
                                   1000BaseT /半1000 BaseT /全
                                   1000基 x/全
           广播暂停帧使用:对称仅接收
           广播的自动协商:是
           广播的 FEC 模式:未报告
           连接方广播的链路模式: 10baseT/half 10baseT/Full
           连接方通告的暂停帧使用:对称仅接收
           连接方广播的自动协商:是
           连接方广播的 FEC 模式:未报告
           速度:10Mb/s
           双工:全双工
           端口:双绞线
           PHYAD:0
           收发器:外部
           自协商:开启
           MDI-X:未知
           检测到链路:是


    对该 PC 的第一次测试是使用 USB-TH 转换器完成的。
    当使用 PC 内部 NIC 且连接已建立时、SOC 上的 ethtool 显示1000M、PC 上的 ethtool 显示10M。

    似乎(通过在 Linux 驱动程序中添加跟踪)、Linux 会读取 GEN_Status1位11、以了解协商的速度并向 PHY 提供正确的时钟、无论 PHY_STATUS 寄存器值如何:
    当 Linux 读取 ALNPAR=0xcc61且 GEN_Status1 = 0x0000时、显示为10M。
    当 Linux 读取 ALNPAR=0xc1e1且 GEN_Status1 = 0x0800时、表示为1000M。

    此致

    纪尧姆

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

    纪尧姆、您好!

    感谢您提供上述测试、它们对调试很有帮助。

    当您以10 Mbps 的速率连接到 PC 时、是否能够双向 Ping? 另外、我不确定 Ethtool 为什么显示为1000、PHY 寄存器显示为10。

    关于2 869s 测试:

    ANAR        = 0de1
    ALNPAR =      cc61
    • Anar (公布其能力)  
      • 两种广播10/100
    • ALNPAR (链路伙伴广播的 能力)  
      • 两个 PHY 只广播了10个、两个 PHY 都没有看到100个
        • 不知道为什么会出现这种情况
    GEN_CFG1    = 0300
    GEN_STATUS1 = 0c00[/报价]
    • GEN_CFG1 (广播功能)
      • 两者都广播1000Base-T
    • GEN_STATUS1
      • 两个 SEE 链路伙伴广播1000Base-T
      • 但主器件/从器件尚未解决。

    下面的屏幕截图是我在1000BASE-T 连接两个869 EVM 板时执行的一些寄存器读取操作。

    寄存器1显示链路断开、然后向上(在连接以太网电缆之前和之后读取)。

    寄存器4和5显示了两个 PHY 正在广播和接收来自其链路伙伴的10/100广播。

    寄存器9 & A 显示两个 PHY 都在进行广播并接收来自其链路伙伴的1000Base-T 广播。

    它显示一个已将自身配置为主器件、另一个配置为从器件。 此时我不知道为什么它们在自动协商过程中不能解决这个问题、但您可以重试并手动将一个配置为主模式、另一个配置为从模式吗? 这可以通过启用寄存器0x9 GEN_CFG1中的位[12:11]来完成。

    此致、

    阿尔瓦罗

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

    尊敬的 Alvaro:

    连接到 PC @10M 时、我能够在两个方向上执行 ping 操作。

    测试1:869s 环回、强制一个进入从模式、一个进入主模式:

    PID= 111 phydev=PFEng 以太网 MDIO.1
    BMCR =                1140
    BMSR =                796d
    PHYIDR1 =             2000
    PHYIDR2 =             a0f3
    ANAR =                0de1
    ALNPAR =              cc61
    ANER =                006d
    ANNPTR =              2001
    ANLNPTR =             4800
    GEN_CFG1            = 1b00
    GEN_STATUS1         = 0c00
    REGCR =               401F
    ADDAR =               0000
    1KSCR =               F000
    PHY_CONTROL         = 5048
    PHY_STATUS          = 2c02
    INT_MASK            = 0000
    INT_STATUS          = 0000
    GEN_CFG2            = 2bc7
    RX_ERR_CNT          = 0000
    BIST_CONTROL        = 0000
    GEN_STATUS2         = 0040
    LEDS_CFG1           = 6150
    LEDS_CFG2           = 4444
    LEDS_CFG3           = 0002
    GEN_CFG4            = 0012
    GEN_CTRL            = 0000
    PID= 97 phydev=PFEng 以太网 MDIO.0
    BMCR =                1140
    BMSR =                796d
    PHYIDR1 =             2000
    PHYIDR2 =             a0f3
    ANAR =                0de1
    ALNPAR =              cc61
    ANER =                006d
    ANNPTR =              2001
    ANLNPTR =             4800
    GEN_CFG1            = 1300
    GEN_STATUS1         = 0c00
    REGCR =               401F
    ADDAR =               0000
    1KSCR =               F000
    PHY_CONTROL         = 5048
    PHY_STATUS          = 2c02
    INT_MASK            = 0000
    INT_STATUS          = 0000
    GEN_CFG2            = 2bc7
    RX_ERR_CNT          = 0000
    BIST_CONTROL        = 0000
    GEN_STATUS2         = 0040
    LEDS_CFG1           = 6150
    LEDS_CFG2           = 4444
    LEDS_CFG3           = 0002
    GEN_CFG4            = 0012
    GEN_CTRL            = 0000

    => GEN_STATUS1在从模式下都显示

    测试2:869s 环回、一个 phy 从模式、一个 phy 主模式、禁用 AutoNeg、固定1000M:
    =>无链路建立

    PID= 97 phydev=PFEng 以太网 MDIO.1
    BMCR =                0140
    BMSR =                7949
    PHYIDR1 =             2000
    PHYIDR2 =             a0f3
    ANAR =                0de1
    ALNPAR =              0000
    ANER =                0064
    ANNPTR =              2001
    ANLNPTR =             0000
    GEN_CFG1            = 1b00
    GEN_STATUS1         = 0000
    REGCR =               401F
    ADDAR =               0000
    1KSCR =               F000
    PHY_CONTROL         = 5048
    PHY_STATUS          = a802
    INT_MASK            = 0000
    INT_STATUS          = 0040
    GEN_CFG2            = 2bc7
    RX_ERR_CNT          = 0000
    BIST_CONTROL        = 0000
    GEN_STATUS2         = 0040
    LEDS_CFG1           = 6150
    LEDS_CFG2           = 4444
    LEDS_CFG3           = 0002
    GEN_CFG4            = 0012
    GEN_CTRL            = 0000
    PID= 59 phydev=PFEng 以太网 MDIO.0
    BMCR =                0140
    BMSR =                7949
    PHYIDR1 =             2000
    PHYIDR2 =             a0f3
    ANAR =                0de1
    ALNPAR =              0000
    ANER =                0064
    ANNPTR =              2001
    ANLNPTR =             0000
    GEN_CFG1            = 1300
    GEN_STATUS1         = 0000
    REGCR =               401F
    ADDAR =               0000
    1KSCR =               F000
    PHY_CONTROL         = 5048
    PHY_STATUS          = a802
    INT_MASK            = 0000
    INT_STATUS          = 0040
    GEN_CFG2            = 2bc7
    RX_ERR_CNT          = 0000
    BIST_CONTROL        = 0000
    GEN_STATUS2         = 0040
    LEDS_CFG1           = 6150
    LEDS_CFG2           = 4444
    LEDS_CFG3           = 0002
    GEN_CFG4            = 0012
    GEN_CTRL            = 0000   

     =>结束

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

    纪尧姆、您好!

    我们不支持强制1000Mbps (基本上不支持在测试2中尝试的操作)。 是否支持强制100 Mbps、是否可以100 Mbps 重试?  

     脚本结尾处的0x1f =4000不会有什么坏处。

    您是否尝试过运行任何合规性测试? 这将是另一个验证信号的好方法。  

    此致、

    阿尔瓦罗

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

    纪尧姆、您好!

    另一位客户发现一个非常类似的链路建立问题、当他们注意到使用的 RBIAS 电阻器为1.1k Ω 而不是11k Ω 时、问题得以解决。 您能否仔细检查此电阻器并确认是否在此电阻器上看到1V?

    此致、

    阿尔瓦罗

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

    尊敬的 Alvaro:

    遗憾的是、RBIAS 电阻两端有1V 电压。

    另一个客户的链路建立问题到底是什么?

    是否已在禁用镜像模式的情况下测试了 dp83869?

    此致、

    纪尧姆

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

    纪尧姆、您好!

    客户遇到问题、连接速度为10 Mbps、而不是1000、这与您的情况类似。 已测试镜像模式禁用并已知可正常工作。  

    开放项目:

    • 您能否确认 RBIAS 电阻值为11 kΩ?
    • 您是否可以重新执行测试2、但100 Mbps、而不是1000 Mbps 除外。
      • 不支持强制千兆位、由此产生的结果不确定。
      • 在测试1中、让我担心两个 PHY 都广播100Mbps 模式(在 ANAR 寄存器= 0DE1中可见)
        • 但 ALNPAR 寄存器(链路伙伴的能力)= CC61 (它未 显示100 Mbps 广播模式)  
        • GEN_STATUS_1 (显示 LP 千兆位能力)= 1B00、显示广播的千兆位。

    此致、

    阿尔瓦罗