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.

[参考译文] DRA829V:在 u-boot 中启用 cpsw0主域以太网交换机

Guru**** 2551110 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1266033/dra829v-enable-cpsw0-main-domain-ethernet-switch-in-u-boot

器件型号:DRA829V
主题中讨论的其他器件:DRA829

您好、专家!

我们的定制电路板在 MCU 域上没有以太网端口、因此我们无法
使用 k3-j721e-mcu-wake.dtsi 中定义的 mcu_cpsw。

我已经尝试从 k3-j721e-evm-gesi-exp-board.dtbo 添加 cpsw0信息、但 u-boot 提示:

Failed to probe am65_cpsw_nuss driver
Net: No ethernet found.

此外、我没有 MDIO:

=> mdio list
No MDIO bus found

我所做的:

1.将完整的  cpsw0Ethernet@c000000 块从 linux-ti-staging 添加到 u-boot-ti-staging 中。

2.向我的 u-boot DTS 中添加了 k3-j721e-evm-gesi-exp-board.dtbo cpsw0相关信息。

3.删除了对 mcu_cpsw 的所有引用

感谢任何帮助。

/波

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

    我还有什么可以测试的想法吗?

    此致、

    /波

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

    请检查 MAC 端口统计信息是否显示了正在从 MAC 发送到 PHY 的数据包。

    此致、
    Siddharth。

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

    感谢 Siddharth 的帮助、衷心感谢大家的参与。

    三条 MAC 的状态:

    => md 0x0c000030 1
    0c000030: 00000003 ....
    => md 0x0c000038 1
    0c000038: 00000003 ....
    => md 0x0c00003c 1
    0c00003c: 00000003 ....

    所有三个报告均连接和100Mbit。 如果这是 MAC 和 PHY 之间的连接、似乎可以、即使对于 DP83867、它应该是1000Mbit 也是如此。

    如果我尝试在 ping 操作失败后读取 MAC STAT 寄存器、那么 U-boot 会崩溃。 我只能使用插入可正常工作的1Gbit 端口的电缆执行此操作:

    => mdio list
    ethernet@c000000port@1:
    0 - TI DP83867 <--> ethernet@c000000port@3
    4 - TI DP83822 <--> ethernet@c000000port@4
    5 - TI DP83822 <--> ethernet@c000000port@1
    => net list
    eth2 : ethernet@c000000port@1 de:ad:be:af:0b:05
    eth0 : ethernet@c000000ethernet@c000000port@3 de:ad:be:af:0b:00 active
    eth1 : ethernet@c000000port@4 de:ad:be:af:0b:04
    => setenv ipaddr 10.142.3.9; setenv netmask 255.255.252.0; setenv serverip 10.142.0.139; setenv gatewayip 10.142.0.1
    => md 0x0c03a034 1
    0c03a034: 00000000 ....
    => md 0x0c03a434 1
    0c03a434: 00000000 ....
    => md 0x0c03a634 1
    0c03a634: 00000000 ....
    => ping 10.142.0.1
    k3-navss-ringacc ringacc@3c000000: Ring Accelerator probed rings:1024, gp-rings[440,150] sci-dev-id:211
    k3-navss-ringacc ringacc@3c000000: dma-ring-reset-quirk: disabled
    am65_cpsw_nuss_port ethernet@c000000port@3: K3 CPSW: rflow_id_base: 16
    link up on port 3, speed 1000, full duplex
    Using ethernet@c000000port@3 device
    host 10.142.0.1 is alive
    => md 0x0c03a034 1
    0c03a034: 00000002 ....
    => md 0x0c03a434 1
    0c03a434: 00000000 ....
    => md 0x0c03a634 1
    0c03a634: 00000002 ....

    如您所见、对于 RGMII1、在 ping 后计数增加到2。 同样适用于 RGMII4、但不适用于 RGMII3、这很奇怪、因为这是工作端口。

    此致、

    /波

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

    Bo,

    偏移的公式为(PORT_ID)*200h,主机端口的 PORT_ID 为0,MAC 端口1为1,MAC 端口2为2,以此类推。
    对于 RGMII1 (MAC 端口1)、寄存器地址为:
    0x0c03a234
    您检查的寄存器0x0c03a034用于表示 CPSW 已从软件接收到数据包的主机端口。

    重新解释上述寄存器值、我们可以看到:
    0x0c03a434为0、表示 RGMII2未发送数据包(因为 MAC 端口2未启用、这是正常情况)。
    0x0c03a634为2、表示 RGMII3发送了2个数据包(因为正在使用 MAC 端口3)。

    此致、
    Siddharth。

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

    Siddharth、

    谢谢、这是一个非常有价值的解释!

    然后、我们可以得出结论、所有这三种接口的 MAC 到 PHY 似乎都正确吗?

    下一步? DP83822 PHY 上仍然没有链接、除非我强制它们使用10Mbit。

    在一个相关的线程中、他们讨论了需要打开 MDIX 自动。 是这样吗?

    e2e.ti.com/.../dp83822i-missing-link-after-switching-from-auto-negotiation-to-forced-mode

    此致、

    /波

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    现在我的三个端口都具有正常工作的链接和自动协商功能,但我无法 ping 通或 tftp 100Mbit 端口。

    Bo,

    请确认您之前提到的上述陈述是否仍然有效。 是否检测到链路?
    这与您最近的陈述不符:

    我的 DP83822 PHY 上仍然没有链接,除非我强制它们使用10Mbit。

    此致、
    Siddharth。

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

    Siddharth、

    正如您可以想象的那样、系统看起来根本不稳定。 我知道我以前有链接、但我可能把它误认为是10Mbit 固定链接。

    目前、无论是在 U-boot 还是在 Linux 中、都未在 DP83822上检测到链路。

    此致、

    /波

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

    更新了我在 dp83822上遇到的问题。

    另一名团队成员尝试了他的端口,他们都有链接。 但是、无论是来自 U-boot 还是来自 Linux 的流量都没有。

    我在我的设置上尝试了另一个板、在 phy5上的端口上我建立了链路。 这里也没有流量。

    考虑到我们在修整延迟参数时可在 Gbit 端口上获得稳定的流量、我们是否可以对 DP83822 Phy 执行相同的操作? 大家知道、我已经尝试过针对 Rx 和 TX 的"RgmII-id"以及各种延迟、但到目前为止没有任何效果。

    此致、

    /波

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

    终于来了

    ! 我偶然尝试了将延迟设置为不同的值。 事实证明、打开 RX 上的内部延迟而不是 TX 上的内部延迟是有效的。 我现在可以在 uboot 和 Linux 中执行 ping 操作。 网络流量是否可接受仍有待观察。 感谢您的全力帮助! /波