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.

[参考译文] Linux/TMDXIDK5728:PRU 以太网

Guru**** 2988540 points

Other Parts Discussed in Thread: AM5718, AM5728

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/670502/linux-tmdxidk5728-pru-ethernet

器件型号:TMDXIDK5728

工具/软件:Linux

我检查了所有最新的4.9 DTS 文件和4.9 Linux 内核(SDK4.02),我找不到任何针对 am572xidk 的 gigit-ETH/PRUSS 的引脚多路复用设置。 默认情况下、am572xidk 具有2千兆位 ETH 端口和2个 PRUSS2-ETH 端口。

 

最后、我在 Uboot board/ti/arm57xx/mux.data.h 中找到了这些引脚多路复用器

 

但是、在我修改这些引脚多路复用器后、没有发生任何事情。 因此,我相信这些引脚复用可能不会被应用,也可能会被超频。 我仍在努力如何 使 PRUSS1两个内核适用于 PRU-eth。

所以我很肯定,PRUSS1-ETH 的发展没有完成。 即使引脚多路复用问题已得到解决、我认为我仍有很多其他问题需要解决、例如 DTS 文件、Linux 驱动程序。 请更新使 PRUSS1-ETH 正常工作的开发状态、并向我提供  您现在拥有的一些建议。

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

    您使用的是定制板还是 AM572x IDK 板? 您处于正确的路径、因为 AM571x/AM572x 的引脚多路复用器在 u-boot 中设置。

    此致、
    Schuyler
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    我正在使用您的原始 AM572x IDK 板。

    我发现引脚多路复用器位于 board/ti/arm57xx/mux.data.h 中、但大家似乎没有将 pruss1-eth 引脚多路复用器设置为一个选择、因为它与千兆位端口共享。 因此、我们必须更改引脚多路复用器 ourself。

    我在引脚多路复用器发生变化后看到了铁氧体、因为这些引脚多路复用器是在 MLO 文件中而非 u-boot.img 中得到遵守的。 因此、在我替换 MLO 文件后、我确实看到一个千兆字节端口无法正常工作。 但是、pruss1-eth 不起作用、即使是链路也不起作用。

    我相信除了您在当前的4.02SDK 中未修复的引脚多路复用器之外、还有其他需要修复的问题、以使 pruss1-eth 正常工作。 我想 DTS 文件和 Linux 驱动程序中有一些内容。

    您能给我更详细的说明吗?我需要修改哪些内容才能使 pruss1正常工作?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Denis:

    很抱歉、我应该早点看到这一点。 遗憾的是、没有一组指令可用于启用 PRUSS1-eth。 IDK 板的硬件用户指南指示 PRU 与 CPSW 端口进行多路复用。 第18页的文档描述了在默认配置中对 PRU1 eth 的不支持。

    www.ti.com/.../sprui64b.pdf

    要启用 PRU1、需要对电路板进行修改、目前没有任何有关如何执行该操作的说明、也不需要随附的 DTS 更改。

    根据您的问题、您似乎想测试6端口配置。 请注意、如果未使用 LCD 面板、AM5718 IDK 板支持6端口配置。 TI 建议使用此板来评估6端口功能。

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

    是否可以 联系您的开发人员以查看他们是否可以提供有关此问题的更多说明? 我们正急于解决这个问题。 开发人员提出的任何想法或建议都将有所帮助。 非常感谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    您最初问的问题让我认为您正在使用 AM5728 IDK 电路板。 您正在使用定制板吗?

    在 AM5728 IDK 板上、尚未进行任何支持 Linux 的 PRU1以太网的开发。 因此、没有开发任何用于修改电路板或软件的指令。 按照电路板引脚多路复用的完成方式启用 PRU1 ETh 端口将需要放弃 CPSW 端口、实际上只有4个可用的以太网端口。 您是否尝试使用6个以太网端口?

    此致、
    Schuyler
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、我使用的是您全新的 AM5728 IDK 板、而不是定制板。

    我需要一个千兆端口和3个 PRU-eth 端口、总共需要4个以太网端口、而不是6个。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    3个 PRU ETH 端口上将运行哪种类型的网络流量? AM5718 IDK 板是目前唯一一款可满足您对3个 PRU ETH 和1 Gbps 端口需求的 TI EVM、它具有4个 PRU ETH 端口和2个 Gbps 端口。

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

    有人告诉我、您的 am5728idk 板硬件应该支持4个 PRU-ETh 端口、没有任何问题、唯一需要做的就是软件更改。 请确认此信息是否正确。

    如果上述句子正确、那么我的所有工作都应该继续、否则我将浪费时间。 我正在尝试更改软件 以使 am5728idk 板适用于3个 PRU-eth 和1个千兆位端口。

    到目前为止、我更改了 u-boot 中的引脚多路复用器并更改了 DTS 文件。 我所做的是对千兆端口1进行分步并启用 pruss1-port1 (我不需要另一个 pruss1-port0)。 我得到的结果是,如果连接到网络,pruss1-port1可以建立物理链路。 但它永远无法通过任何以太网流量。 该抖动检查显示 Rx 和 TX 的中断从未触发。

    下面是 DTS 文件 am57xx-idsk-common.dtsi 文件相关的更改(我认为其他更改应该可以、例如 MDIO 中断、我看到 pruss1-port1 MDIO 中断已触发)。

           pruss1_eth:pruss1_eth{
                   状态="正常";
                   compatible ="ti,am57-prueth";
                   普劳斯=<普鲁斯 s1>;
                   SRAM =<&ocmcram1>;
                   interrupt-parent =<&pruss1_intc>;
                   /*Rx-queue-size =/bits/16 <254 134 134 254 48>;*//*红色*/
                   /*Rx-queue-size =/bits/16 <194 194 194 194 48>;*/* EMAC */
                   /* map 为 lowpcp-to->hipcp,其中 val 3=Q4、2=Q3、1=Q2、0=Q1 */
                   /*PCP-rxq-map =/bits/8 <3 2 1 0 0>;*/

                   pruss1_emac0:以太网-mii0{
                           PHY-Handle =<&pruss1_eth0_phy>;
                           PHY 模式="MII";
                           中断=<20>、<22>、<23>;
                           中断名称="Rx"、"TX"、"PTP_TX";
                           /*由引导加载程序填充*/
                           local-mac-address =[00 00 00 00 00 00];
                           /*TX-queue-size =/bits/16 <97 97 97 48>;*/
                   };

                  pruss1_emac1:ethernet-mii1{
                           PHY-Handle =<&pruss1_eth1_phy>;
                           PHY 模式="MII";
                           中断=<21>、<23>、<24>;
                           中断名称="Rx"、"TX"、"PTP_TX";
                           /*由引导加载程序填充*/
                           local-mac-address =[00 00 00 00 00 00];
                           /*TX-queue-size =/bits/16 <97 97 97 48>;*/
                   };
           };

    我直接从 pruss2复制的 DTS 代码的这个峰值、只需将相应的 pruss2更改为 pruss1。 并将 所有中断的数字与 pruss2保持相同、我认为它们是相同的、但不确定、请确认。

     

    如果上述 pruss1设置正确,为什么为 pruss2端口正确触发20、21、22、23个中断,而从未为 pruss1端口触发?

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

    此主题中3/20和3/21上的帖子表明、TI 在 AM5728 IDK 上不支持任何超过2个 PRU 端口和2个 CPSW 端口(Gbps)的内容。 在支持板上启用 PRU Eth1方面、尚未开展任何开发工作。 需要进行硬件修改和软件修改、这些修改需要 TI 计划不执行的开发时间和测试。

    可以选择使用 AM5718 IDK、它可以完全启用 PRU1和 PRU2端口以及适用于您所述应用的2 Gbps 端口。

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

    好的、我明白了。 但我们正在尝试自己解决问题、需要您提供一些线索。

    对于先前的布置、am5728idk 、中断20、21、22、23、 24 对于 RUSS2 2个内核、可以正常工作、但对于 PRUSS1、不能正常工作。 为什么在这里为所有 PRUSS 使用20、21、22、23、24个中断编号、我找不到任何文档说明为什么使用这些中断编号、请解释其工作原理。(5718 idk 使用20、21、22、23、24个 PRUSS1和 PRUSS2的中断)。 我发现这5个中断不会经过交叉开关中断映射。

    请提供一些线索、以了解如何在软件或硬件中修复它?

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

    根据前面的文章、TI 不支持 AM572x8-IDK 上的 PRU1、尚未验证电路板硬件是否可以在 Linux 或 RTOS 环境中工作。 目前、TI 不打算研究是否可以在 AM5728-IDK 电路板上使用 PRU1进行以太网操作。 TI 建议在以太网环境中的 TI EVM 上使用两个用于以太网的 PRU 进行应用评估、即 AM5718-IDK EVM。

    此致、
    Schuyler