工具与软件:
大家好、团队成员:
我需要使用 Enet CPSW 启用两个 RGMII 端口、每个端口都分配给不同的内核。 但是、在试图启用它们时、冲突正在发生。 如何正确配置 CPSW 以启用两个 RGMII 端口而不发生冲突?
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.
工具与软件:
大家好、团队成员:
我需要使用 Enet CPSW 启用两个 RGMII 端口、每个端口都分配给不同的内核。 但是、在试图启用它们时、冲突正在发生。 如何正确配置 CPSW 以启用两个 RGMII 端口而不发生冲突?
你好、Shaunak
对于 AM263x 上的 CPSW (以太网交换机)配置、我有点困惑。 我的理解是、CPSW 的单个实例可以支持两个 RGMII 端口、可以在一个内核上配置一个 RGMII 端口、而在另一个内核上配置第二个 RGMII 端口。
根据 Fleenor 的解释,我的解释如下:
CONFIG_ENET_CPSW0和设置来初始化 CPSW 端口1 与其中一个 RGMII 接口配合使用。 EnetApp_acquireHandleInfo()、从而允许它进行配置和使用 端口2 同步。 在我们的特定设计中、有两个不同的网络应用在单独的内核上运行。 每个应用应使用一个专用以太网端口进行通信。
您能否确认我的理解是否正确、或者我是否需要重新考虑任何方面?
你好、Shaunak
我提供了一个表格、其中列出了分配给每个内核的端口。 这两个内核通过处理器间通信(IPC)相互通信。 该表概述了每个内核的特定端口分配、确保它们之间进行适当的协调和数据交换。
| 磁芯- 1 1个 SPI 2个罐 2个 I2C |
| 磁芯- 2. 1个 UART |
| 磁芯- 3. 1个 UART 1倍 ETH |
| 磁芯- 4. 1个 UART 1个 EMMC 1倍 ETH |
请为我们提供后续步骤的指导。
你好、Shaunak
您在两个 R5F 内核上运行哪些以太网应用?
→我将运行两个不同的以太网服务器应用程序、每个应用程序分配给单独的 R5F 内核。 这些服务器将独立运行、确保单独处理每个应用程序的网络通信。 每个内核将管理其各自的以太网端口、从而允许高效且隔离地处理网络流量。
仅使用一个 R5F 内核来处理所有要求有什么限制?
→管理两个以太网服务器应用程序的单个 R5F 内核可能会导致资源争用、增加处理负载和潜在的调度冲突。 通过将每个内核分配给专用以太网端口、系统可确保隔离和高效的处理、防止服务器之间的干扰、并提高整体性能和可靠性。
您的吞吐量和延迟要求如何? (两个内核)
→ 该系统旨在实现1Gbps 的吞吐量、同时保持每个数据包50–200 µs 的延迟、从而确保高效高速的以太网通信。
Anjana、您好!
感谢您分享详细信息、我这边有一些要点:
1.由于当前软件设计和复杂性、MCU 上的多核以太网很复杂。
2.配置中存在歧义、因此根据设计、建议仅使用1个内核来配置 CPSW。 两个内核不应同时访问 CPSW 寄存器。 TI 已有一些面向多核 CPSW 的现有解决方案(EthFW 模型)、但不适用于 MCU、近期没有支持该解决方案的计划。 EthFW 设计使一个内核成为 CPSW 主内核、而其他是 CSPW 客户端内核(AM26x MCU 上不存在)。 在 EthFW 中、主器件通过 IPC 执行所有 CSPW 配置、如果客户端要更改配置、则会向主器件发送信息。
3.在 MCU 上、此型号不可用。 (software-dl.ti.com/.../ethfw_c_ug_top.html)
此处有两种方法:
1.实现 EthFW 模型,让 Core-3成为主处理器,而 Core-4成为客户端(通过硬编码流 ID 仅打开 DMA 通道)。 必要时调用 Enet DMA 相关函数。 这可能很复杂、根据当前的路线图、AM26x MCU 上没有计划支持该功能。 因此、这必须在您的末端进行驱动
2.根据某些数据包内容,将数据包传输到另一个 R5F 内核。 让一个内核处理所有 CPSW 配置、 通过 IPC 或 LwIP 桥接器根据某些数据包内容将数据传输到其他内核。 一个内核负责所有配置和 CPSW 处理、另一个内核负责数据处理。 这可能会增加一些软件开销、但这是一种可能且更简单的解决方案。
此致、
Shaunak