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.

[参考译文] DP83867IS:SGMII 10M 模式设置和主/从解决方案

Guru**** 2811595 points

Other Parts Discussed in Thread: DP83867IS

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/984853/dp83867is-sgmii-10m-mode-settings-and-master-slave-resolutoin

器件型号:DP83867IS

大家好、

我的客户正在与 DP83867IS 合作、遇到设置 SGMII 10M 模式以及在其 Linux 内核中看到主/从分辨率故障的问题。

两个主要问题是:

  1. 开启 SGMII 10M 模式的正确设置是什么?
  2. 在交换机的固定模式下、如何避免主/从分辨率问题?
    1. 错误代码: [219.942105] TI DP83867 ff0c0000.ethernet-ffFFFF:03:主/从分辨率?

谢谢、

Jacob

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

    您好、Jacob、

    1. 可通过将引脚47搭接至模式2或4 (有关更多详细信息、请参阅数据表的第8.5.1节、表6)或将寄存器0x0010的位[11]设置为1来启用 SGMII。 要将器件设置为固定10M 模式、首先必须通过将引脚38捆绑到模式4或清除寄存器0x0000的位[12]来禁用自动协商。 然后、清除寄存器0x0000的位[13]和位[6]以将10M 配置为速度。
    2. 至于该错误、您能否尝试强制 DP83867为从器件并查看错误是否消失? 这可以通过将寄存器0x0009的位[12]设置为1、然后清除寄存器0x0009的位[11]来完成。 您还可以读取寄存器0x000A 的位[14]来检查配置是解析为主机还是从机。

    此致、

    Adrian Kam

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

    您好、Adrian、

    感谢您的回答! 很抱歉,我可能对第一个问题造成了一些混淆。 我在下面提供了更多背景信息。

    它们使用的是运行良好的 SGMII 模式。 以太网接口在10/100/1000模式下工作正常、但对于10M 模式、它不工作。  它们在寄存器0x016F 中完成了位(7)清零、并且启用了 SGMII 自动协商。 链路以10M 的速率上升、MAC 能够向网络发送数据包、但无法接收网络端响应。 开启 SGMII 10M 模式启用10/100/1000必须采用哪些正确设置? DUT 必须在没有任何特殊处理的情况下以10/100/1000运行、无论是否自动协商。

    谢谢、

    Jacob

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

    您好、Jacob、

    根据数据表、寄存器0x016F 的位[7]不应更改;它应为默认值1。 既然您提到了清除该位、您能否尝试将该位设置回默认值、并查看该值是否可以解决您的问题?

    此致、

    Adrian Kam

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

    您好、Adrian、

    我们已经尝试了这两种方法。 位(7)的默认值设置为1、然后设置为0。

    谢谢、

    Arvind Sharma

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

    尊敬的 Arvind:

    您能否提供寄存器0x00至0x1F、0x6E 和0x6f 的两组寄存器值?

    1. 以太网接口在100/1000时正常工作时的一组寄存器值。
    2. 当以太网接口在10M 时无法正常工作时、一组寄存器值。

    此致、

    Adrian Kam

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

    以太网接口在1000M 时工作正常

    [1.368217] REG 0读取值= 1140
    [1.370967] REG 1读取值= 7949
    [1.374503] REG 2读取值= 2000
    [1.378054] REG 3读取值= a231
    [1.381611] REG 4读数值= 1E1
    [1.385056] REG 5读取值= 0
    [1.388346] REG 6读取值= 64
    [1.391726] REG 7读取值= 2001
    [1.395263] REG 8读取值= 0
    [1.398553] REG 9读取值= 300
    [1.402020] REG A 读取值= 0
    [1.405298] REG b 读取值= 0
    [1.408588]寄存器 c 读取值= 0
    [1.411881]寄存器 d 读取值= 401F
    [1.415418]寄存器 e 读取值= 1170
    [1.418977] REG f 读取值= 3000
    [1.422511] REG 10读取值= f840
    [1.426144] REG 11读取值= 2
    [1.429534] REG 12读取值= 0
    [1.432891] REG 13读取值= 0
    [1.436264] REG 14读取值= 29c7
    [1.439910 ] REG 15读取值= 0
    [1.443271] REG 16读取值= 0
    [1.446644] REG 17读取值= 40
    [1.450124] REG 18读取值= 6150
    [1.453738] REG 19读取值= 4444
    [1.457371] REG 1a 读取值= 2
    [1.460754] REG 1b 读取值= 0
    [1.464118] REG 1c 读取值= 0
    [1.467491] REG 1D 读取值= 0
    [1.470874] REG 1e 读取值= 2
    [1.474238] REG 1f 读取值= 0
    [1.477708] REG 0x006E 读取值= 800
    [1.481615] REG 0x006F 读取值= 100
    [1.485493] REG 0x016f 读取的值= 95

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

    以太网接口在100M 正常工作时具有与1000M 相同的寄存器值。

    [1.368217] REG 0读取值= 1140
    [1.370967] REG 1读取值= 7949
    [1.374503] REG 2读取值= 2000
    [1.378054] REG 3读取值= a231
    [1.381611] REG 4读数值= 1E1
    [1.385056] REG 5读取值= 0
    [1.388346] REG 6读取值= 64
    [1.391726] REG 7读取值= 2001
    [1.395263] REG 8读取值= 0
    [1.398553] REG 9读取值= 300
    [1.402020] REG A 读取值= 0
    [1.405298] REG b 读取值= 0
    [1.408588]寄存器 c 读取值= 0
    [1.411881]寄存器 d 读取值= 401F
    [1.415418]寄存器 e 读取值= 1170
    [1.418977] REG f 读取值= 3000
    [1.422511] REG 10读取值= f840
    [1.426144] REG 11读取值= 2
    [1.429534] REG 12读取值= 0
    [1.432891] REG 13读取值= 0
    [1.436264] REG 14读取值= 29c7
    [1.439910 ] REG 15读取值= 0
    [1.443271] REG 16读取值= 0
    [1.446644] REG 17读取值= 40
    [1.450124] REG 18读取值= 6150
    [1.453738] REG 19读取值= 4444
    [1.457371] REG 1a 读取值= 2
    [1.460754] REG 1b 读取值= 0
    [1.464118] REG 1c 读取值= 0
    [1.467491] REG 1D 读取值= 0
    [1.470874] REG 1e 读取值= 2
    [1.474238] REG 1f 读取值= 0
    [1.477708] REG 0x006E 读取值= 800
    [1.481615] REG 0x006F 读取值= 100
    [1.485493] REG 0x016f 读取的值= 95

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

    2.以太网接口在10M 时无法正常工作时的寄存器值

    [1.374956] REG 0读取值= 1140
    [1.377707] REG 1读取值= 7949
    [1.381243] REG 2读取值= 2000
    [1.384789] REG 3读取值= a231
    [1.388350] REG 4读取值= 1E1
    [1.391796] REG 5读取值= 0
    [1.395083] REG 6读取值= 64
    [1.398466] REG 7读取值= 2001
    [1.402003] REG 8读取值= 0
    [1.405290] REG 9读取值= 300
    [1.408759]寄存器 A 读取值= 0
    [1.412037] REG b 读取值= 0
    [1.415324] REG c 读取值= 0
    [1.418624] REG d 读取值= 401F
    [1.422158] REG e 读取值= 1170
    [1.425704]寄存器 f 读取值= 3000
    [1.429260] REG 10读取值= f840
    [1.432884] REG 11读取值= 2
    [1.436257] REG 12读取值= 0
    [1.439644] REG 13读取值= 0
    [1.443004] REG 14读取值= 29c7
    [1.446637] REG 15读取值= 0
    [1.450028] REG 16读取值= 0
    [1.45384] REG 17读取值= 40
    [1.456844] REG 18读取值= 6150
    [1.460487] REG 19读取值= 4444
    [1.464110] REG 1a 读取值= 2
    [1.467494]寄存器1b 读取值= 0
    [1.470857] REG 1c 读取值= 0
    [1.474231] REG 1D 读取值= 0
    [1.477615] REG 1e 读取值= 2
    [1.480977] REG 1f 读取值= 0
    [1.484448] REG 0x006E 读取值= 800
    [1.488355] REG 0x006F 读取值= 100
    [1.492232] REG 0x016f 读取的值= 95

    当使用100/1000M 或10M 时、上述寄存器的值没有变化。

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

    尊敬的 Arvind:

    1. 您能否仔细检查您提供的寄存器值是否正确? 查看寄存器0x0001、可以看到所有这些寄存器的链接都已关闭。 此外、寄存器0x0011的位[15:14]对于每个速度应该不同。 在这种情况下也是如此、因为没有建立链路。
    2. 您能否提供原理图? 如果无法上传至 E2E 等公共论坛、您可以通过电子邮件将其发送给我。

    此致、

    Adrian Kam

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

    初始化后、我可能过早读取寄存器。 我将在稍后阶段尝试阅读这些内容。 DUT 运行正常、我们可以在10/100/1000情况下运行流量、因此我可以肯定地知道链路已启动。 这些位显示不同行为的另一个原因可能是我们的测试设置。  要测试10M、我们使用 NETGEAR 交换机 GS108T。 连接到 DUT 以太网接口的交换机端口固定为10M。 DUT 接口链路已启动并正在运行。 “ethtool”命令 显示10M 半双工且已启用自动协商。 由于交换机处于固定10M 模式、不参与自动协商、因此 DUT 默认为10M 半双工模式、即使我们将交换机端口设置为固定10M 全双工模式。 请分享您的电子邮件。

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

    尊敬的 Arvind:

    1. 如果您单击我的 E2E 个人资料、应该会有一封电子邮件、您可以将原理图发送到该电子邮件。
    2. 再说一遍、DUT 正在连接10M、MAC 能够传输数据包但不能接收数据包。 是这样吗? 您能更详细地解释一下吗? 当您指出 DUT 接口链路已启动并以10M 运行时、听起来一切都很正常。

    此致、

    Adrian Kam

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

    是的、10M 的 DUT 链路已启动并正在运行、我已使用 Wireshark 确认 MAC 能够向网络端发送消息。 我还在 MAC 上运行 tcpdump、这里没有接收到数据包。 DUT 正在持续广播 DHCP Discover 消息、DHCP 服务器也正在恢复 DHCP 服务。 由于 SGMII RX 不适用于 MAC、因此 MAC 永远不会收到报价、而是会不断向网络发送 DHCP Discover、而不是为提供的 IP 地址发送 DHCP 请求。

    您是正确的、听起来似乎没有问题。  但问题在于、由于10M 时 MAC 未接收到任何数据包、所以 DUT 无法使用 DHCP 选择 IP。 我们认为10M 有一个单独的设置、如 reV-B 或数据表中所述。 现在、数据表的修订版 C 显示 PHY 将自动调整10M。 那么、问题是什么会导致 PHY 在 Rx 侧朝向 MAC 不工作? 由于10M 时没有回路可用、如何确认这是 MAC 或 PHY 上的问题?

    我再次获取1000/100/10M 的寄存器值、它们现在显示为链路。

    e2e.ti.com/.../DP83867IS-10M-query.txt

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

    尊敬的 Arvind:

    此外、您能否尝试在10M 模式下执行外部回送、并查看 MAC 设备是否可以读回传输的数据包? 此外、您能否检查在10M 模式下运行时是否可以在 TX/RX 引脚的示波器上看到信号/数据?

    此致、

    Adrian Kam

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

    我尝试了外部回送、DUT 接口确实在接口上接收了数据包、并在 MAC 上使用 tcpdump 进行了确认。 然后、我还将该接口与另一个现有产品(DUT2)连接、该产品具有仅10M 半接口、我能够从 DUT MAC 上的 DUT2接收 ARP、并且还能够通过为 DUT 和 DUT2分配 IP 地址来 ping DUT2。 因此、我们可以说目前没有硬件问题。 我们得出的结论是、只有在 DUT 或开关上将速度固定为10M 时才会出现此问题。 但当我们在开关或 DUT 上确定速度时、100M 工作正常。 如前所述、我们使用 NETGEAR ProSAFE GS108T 交换机以固定速率测试10M、大多数 DUT 都启用了 AutoNeg。 有什么想法吗?

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

    尊敬的 Arvind:

    如果外部环回测试在10M 时工作、则表示 PHY 从链路伙伴接收数据包并将其发送到 MAC 没有问题。 您能够正确连接另一个 DUT 并与之通信这一事实似乎进一步表明 PHY 工作正常。 如果我误解了某个内容、请告诉我。 根据结果、似乎链路伙伴(交换机)未正确传输数据包。 您能否检查链接伙伴是否在传输正确的数据包或一般的任何数据包?

    此致、

    Adrian Kam

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

    该问题似乎仅限于 GS108T。 以下情况已被视为不可操作:

    当我们在10M 固定速度下使用开关且 DUT 自动协商时。 DUT 协商到10M 半速、链路已启动并正在运行、但 DHCP 失败。

    2.当 DUT 固定为10M 半时,且开关处于自动协商打开状态时,不起作用。 链路已启动并正在运行、但 DHCP 失败。

    3. 当 DUT 固定为10M 半且交换机端口设置为10M 半时,不起作用。 链路已启动并正在运行、但 DHCP 失败。

    供参考、我使用 NETGEAR FS105尝试了上面的测试2、它确实起了作用! 区别在于它是10/100快速以太网交换机。 希望这能给您一些线索?

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

    尊敬的 Arvind:

    如果外部回送实验没有问题、则表明 PHY 没有任何问题。 您没有遇到其他 DUT 或像 FS105这样的其他链路合作伙伴的问题、这一事实表明 PHY 也没有任何问题。 似乎问题与 GS108T 有关。  

    此致、

    Adrian Kam