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.

[参考译文] AM62P:CPSW3G 的 PSI-L 源线程(两个 Mac 并行运行)

Guru**** 2540720 points
Other Parts Discussed in Thread: AM62P

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1550771/am62p-psi-l-source-thread-for-cpsw3g-with-two-mac-run-in-parallel

部件号:AM62P


工具/软件:

你好  

在 Linux SDK 中、

只有一个 DMA 通道配置用于 Rx、我们有两个 Mac 端口、CPSW3G 是否分别支持 2 个用于具有两个精子 PSI-L 线程的 Rx 的精子 DMA 通道?

B.R.

长兴斗城

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

    尊敬的长兴:  

    您能检查一下“ethtool -l 的结果吗 “来查看有多少个 RX 和 TX 通道 可用?

    我认为这应该表明 CPSW3G 只能支持 1 个 RX 通道。 但是、我知道 CPSW 有一种称为“RX 流“的方式(Sitara SoC 上每通道最多 16 个流)。 每个流程都有专用的去饱和环和专用 IRQ、这允许 CPSW 硬件将接收到的数据包引向特定的环、从而将特定的 CPU (IRQ 关联性映射到该 CPU)“。  

    如果您有其他问题、敬请告知。

    -道林

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

    你好、Daoblin

    如何对其进行配置? 这是因为、一旦 MCU 请求 Rx 源线程、uboot 或 Linux 就无法注册它。

    您是否有关于如何在 mcal (MCU R5) 和 Linux 端 (A53) 上配置流程和振铃的提示? 这是通过一个内核还是通过单独的内核完成的?

    B.R.

    长兴斗

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

    您好、长兴  

    对延迟的回复表示歉意。

    您能否查看“ethtool -l “以查看有多少个 RX 和 TX 通道 可用?

    您是否能够检查此命令的结果?

    我发现 CPSW 预设了最多 8 个 RX 通道、但如果您在 AM64x EVM 上检查“ethtool -l eth0“、则默认情况下、硬件设置为 1 个 RX 通道。 我假设 AM62Px TI EVM 具有类似的结果。  

    通过一些实验、我可以使用“ethtool -L eth0 rx 8“将硬件设置为 8 个 RX 通道、然后在设置之前确保 eth0 已关闭。 请参阅下面的日志。 我认为这是由于以下补丁:  https://lore.kernel.org/all/20240703-am65-cpsw-multi-rx-v3-0-f11cd860fd72@kernel.org/ 

    root@am64xx-evm:~# ethtool -l eth0
    Channel parameters for eth0:
    Pre-set maximums:
    RX:       8
    TX:       8
    Other:     n/a
    Combined:    n/a
    Current hardware settings:
    RX:       1
    TX:       8
    Other:     n/a
    Combined:    n/a
    root@am64xx-evm:~# ip link set dev eth0 down
    [ 1030.925065] am65-cpsw-nuss 8000000.ethernet eth0: Link is Down
    root@am64xx-evm:~# ethtool -L eth0 rx 8
    [ 1042.528606] am65-cpsw-nuss 8000000.ethernet: set new flow-id-base 16
    root@am64xx-evm:~# ip link set dev eth0 up
    [ 1055.718707] am65-cpsw-nuss 8000000.ethernet eth0: PHY [8000f00.mdio:00] driver [TI DP83867] (irq)
    [ 1055.718739] am65-cpsw-nuss 8000000.ethernet eth0: configuring for phy/rgmii-rxid link mode
    root@am64xx-evm:~# [ 1058.789119] am65-cpsw-nuss 8000000.ethernet eth0: Link is Up - 1Gbps/Full - fx
    
    root@am64xx-evm:~# ethtool -l eth0
    Channel parameters for eth0:
    Pre-set maximums:
    RX:       8
    TX:       8
    Other:     n/a
    Combined:    n/a
    Current hardware settings:
    RX:       8
    TX:       8
    Other:     n/a
    Combined:    n/a
    root@am64xx-evm:~# uname -a
    Linux am64xx-evm 6.12.35-gf462b01e9ac7-dirty #7 SMP PREEMPT_RT Fri Aug 22 14:20:37 CDT 2025 aarch64x
    root@am64xx-evm:~#

    这个多 RX 队列特性是否可以应用于您的用例?

    -道林

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

    您好、Daolin

    感谢您的信息。 但 eth 工具只能在 Linux 下使用。

    我们希望通过 MCU(Mcal 将运行)和 A53(Linux 内核)共享同一个 Rx。

    问题在于我们如何更改 SDK?

    在当前的 Linux SDK 中、只有一个支持一个线程的 Rx 通道。 并将与麦加尔的一方。

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

    您好、Changzing、

    有一种方法可以在 am62p 中的多个内核之间共享网络流量。 它通过 am62px MCU+ SDK 提供的以太网固件 (EthFw) 支持实现。 我们并不能完全共享 FIFO、而是以 Linux 和 MCAL 都可以访问 CPSW 外设的方式配置 DMA 通道。 但外设通过 wkup-R5 进行控制。  

    需要考虑一些注意事项。  

    1. CPSW 的配置和控制在 wkup-R5 内核内保持不变、其他内核将通过 wkup-R5 实现基于 IPC 的消息传递、以传达所需的外设配置更改。
    2. 共享多播(在包含 3 个内核的系统中,多核注册到的多播地址)和广播流量需要特殊处理。 这目前通过基于共享存储器的接口得到支持、并且 CDD 目前不是我们 MCAL 产品的一部分。 如果需要上述 2 类流量、则必须实现此功能

    如果对 EthFw 的支持或功能有任何疑问、请告诉我。

    此致、
    Teja。

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

    尊敬的 Teja:

    感谢您的支持。 使用 IPC 时、能否分享一些性能测试结果?

    B.R.

    长兴

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

    您好、Changzing、

    您的意思是说通过 IPC 而不是上述 EthFw 实现数据共享时的性能结果吗?

    此致、
    Teja。