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.

[参考译文] AM623:AM62x CPSW 以太网交换机模式?

Guru**** 2416110 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1529345/am623-am62x-cpsw-ethernet-switch-mode

器件型号:AM623

工具/软件:

团队、

我们的客户已经在各种设计中同时使用了 AM335x 和 AM62x; 他们想与我们讨论以下差异:

我是团队的一员、该团队正在将我们的一个固件应用程序从 AM335x 平台移植到 AM62x。  在 AM335x 平台上、我们的某些硬件变体在开关模式下使用 CPSW 以太网外设、这样两个物理以太网端口充当第 2 层交换机的端口、而单个以太网接口由绑定到这两个物理端口的 Linux OS 创建。  这是通过 Linux 器件树进行配置的、开关模式是默认工作模式、而通过在适当的器件树条目中添加“dual_emac"属性“属性、可以启用独立的接口操作。

 

以上内容似乎不适用于 AM62x 平台、或者至少我们没有找到表明这是可能的文档。  我们找到了 适用于 AM62x 的 Processor SDK 的 CPSW3g 页面、其中说明了在两个接口之间创建 Linux 软件桥接器、以模拟两个物理接口之间第 2 层交换机的运行。  我们在初始开发过程中实施了这一方案、但由于以下几个原因、我们发现它并不理想:

 

  1. 它需要额外的脚本和服务、每次设备引导时都必须运行这些脚本和服务。
  2. 桥接器接口需要几秒钟的时间才能激活并获取地址。  在某些情况下、我们的应用程序会在发生此情况之前启动、因此无法绑定到接口、因为它还没有地址。  进一步延迟应用的启动直至桥接器启动是个问题、因为我们已经有客户抱怨启动“太慢“、这也是我们转向更高性能 AM62x 平台的部分原因。
  3. 我们无法通过监控桥接器接口来确定接口何时关闭(即拔出)、而是必须监控两个成员接口 (eth0 和 eth1)、并尝试确定哪个是启动/激活、以确定它现在是关闭/不活动。
  4. 使用软件桥接器似乎需要主机处理器和内核开销来处理遍历桥接器的每个数据包、相对于 AM335x 平台上使用的基于硬件的桥接、这可能会影响总体系统性能。  但请注意、我们尚未通过测试确认这种情况。

 

鉴于上述情况、我们想了解是否有其他基于硬件的方法可在开关模式下使用接口、或者基于软件的桥接器实际上是否是该平台上的唯一解决方案。

 

请注意、我们被指示不在公共互联网论坛(TI E2E 处理器论坛)上发布问题、因此我直接与您联系。  感谢您提供的任何帮助、

欢迎您的评论!

CY、
CY

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

    您好、Chris、  

    关于 AM62x 如何配置开关模式、方法与客户描述的针对 AM335x 的方式不同。 但是、对于开关模式需要 br0 接口并且认为这意味着它是正在实现的软件开关这一事实、似乎存在混淆。 但情况并非如此、因为用于设置硬件切换的关键命令是“devlink"命令“命令。 请参阅 https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1463803/processor-sdk-am62x-how-to-use-cpsw3g-in-hw-switch-mode-using-linux/5619131#5619131 中的说明。  

    关于如何评估  br0 桥在硬件开关模式与双 emac 模式下的运行速度有多快、请在 https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1468456/am625-cpsw-mode-and-bridging/5679164#5679164 中查看我的响应 

    以上所述、我们想了解是否有其他基于硬件的方法可以在交换模式下使用接口、或者基于软件的网桥实际上是此平台上的唯一解决方案。

    根据我的理解、由于 Linux 内核版本与 AM335x 的版本不同、AM62x 使用不同方法设置开关模式的原因是使其更广泛地适用。 根据我记得的内容(我的同事 Schuyler、他更熟悉 AM335x 开关配置,以及过渡到我们现在如何设置开关模式的原因)、 当 Linux 已经在处理器上运行时、更改为使用命令而不是修改 DTS、这仅仅是因为这样可以更容易地在双 emac 和开关模式之间切换、而不必关闭所有电源、并且在每次我们需要在双 emac 模式和开关模式之间切换时手动更改 DTS。  

    我尝试跟踪哪个内核补丁做出了更改 https://lore.kernel.org/all/20201130082046.16292-5-vigneshr@ti.com/、这似乎意味着这种使用 devlink 设置开关模式的方法专门针对 K3 器件(从 AM65x 开始)实现。 基于此、我假设可能没有其他使用 DTS 设置开关模式的方法、例如在 K3 器件上完成的方法。  

    可以通过内核修补程序来查看交换机配置更改的原因是否有任何日志、这可能是值得的。 (至少在 Schuyler 回来之前)

    如果您有任何其他问题、敬请告知!

    -道林

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

    尊敬的 Daolin:

    我们非常感谢您对这一问题的答复和详细的答复。

    在今天与客户沟通时、我们意识到这并不完全是我们希望得到的答案、但似乎他们必须适应桥接实施、以及它为实施带来的额外复杂性。

    这一切都是很好的了解,我们赞赏它。

    我很快就会与您联系、关闭该主题。

    此致、

    Chris

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

    您好、Chris、  

    感谢您对此主题的更新。

    在今天与客户沟通时、我们意识到这并不是我们希望得到的答案、但似乎他们将不得不适应桥接实现、并且它增加了实施的额外复杂性。

    是的,不幸的是,据我所知,我不认为有一种方法来避免添加一个 br0 接口。 但根据我的理解、由于硬件交换机配置可以使用 devlink 进行设置、因此从一个端口到另一个端口转发数据包时、理论上不应该有额外的延迟(尽管我自己没有测量)。

    请告知我该主题何时/是否可以关闭!

    -道林