工具/软件:
你(们)好
1、当前理解
根据 Linux 6.12 内核驱动程序和 AM62x TRM 文档:
2.应用要求
3.请求的协助
此致
Shungang
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 6.12 内核驱动程序和 AM62x TRM 文档:
P0_CPDMA_RX_CH_MAP AM335x 的 CPSW3G 中。 此致
Shungang
您好 Shungang、
由于我本周不在办公室、因此延迟了回复、对此深表歉意。
有几个初始问题
1.您是在采用 AM623 处理器的定制电路板上进行开发吗?
[报价 userid=“587843" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1562624/am623-am623-cpsw3g-how-to-assign-respective-rx-flow-ids-to-the-two-ports-of-cpsw3g-in-independent-mac-mode 文档缺口 :虽然 SDK 提到基于流的中断,但它没有提供关于配置端口到流映射的明确指导。2.您能分享一下在 SDK 中提到“基于流的中断“的位置吗? 我假设它包含在 SDK 版本说明中、但我希望了解版本说明的特定部分或 TRM 中的特定部分(如果您需要了解该部分)。
以下是使用 RX DMA 流的一些步骤、我个人没有机会自行尝试、但有助于您努力实现每个端口的数据包中断分离。 如果您遇到问题/有后续问题、请告诉我。
将 RX DMA 流设置为 8 的示例:
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:~#[报价 userid=“587843" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1562624/am623-am623-cpsw3g-how-to-assign-respective-rx-flow-ids-to-the-two-ports-of-cpsw3g-in-independent-mac-mode 硬件差异 :AM623 中的 CPSW3G 与 AM335x 中的 CPSW3G 不同 — 它缺少寄存器,该寄存器存在于
P0_CPDMA_RX_CH_MAP AM335x 的 CPSW3G 中。
我需要与同事核实这一点、以及 AM335x 上的 CPSW3G 特性是否应与 AM623 不同。
-道林
您好、Daolin、
root@am62xx-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: 2 TX: 8 Other: n/a Combined: n/a root@am62xx-evm:~# ethtool -N eth0 flow-type ether dst f4:84:4c:fc:1c:dc action 1 rxclass: Cannot get RX class rule count: Operation not supported Cannot insert classification rule
尊敬的 Shungang:
我需要与同事核实这一点、以及 AM335x 上的 CPSW3G 功能是否应与 AM623 不同。
AM335x 具有相似的 CPSW3G 硬件、但其版本不同、因此 AM335x 在 AM623 中可能处理的内容会有所不同。
进一步调查发现、该命令需要在网卡驱动程序中实施`struct ethtool_ops.set_rxnfc()`接口。 但是、此接口未在`am65-cpsw-ethtool.c`中实现。[/报价]全屏1.2.3.4.5.6.7.8.9.10.11.12131415Root@am62xx-EVM:~# ethtool -l eth0eth0 通道参数:预设最大值:接收: 8.TX: 8.其他: 不适用组合: 不适用当前硬件设置:接收: 2.TX: 8.其他: 不适用组合: 不适用root@am62xx-EVM:~# ethtool -N eth0 flow type ether dst f4:84:4c:fc:1c:dc 操作 1rxclass:无法获取 RX 类规则计数:不支持操作无法插入分类规则XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXroot@am62xx-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: 2 TX: 8 Other: n/a Combined: n/a root@am62xx-evm:~# ethtool -N eth0 flow-type ether dst f4:84:4c:fc:1c:dc action 1 rxclass: Cannot get RX class rule count: Operation not supported Cannot insert classification rule感谢您告知我们此操作似乎不受支持。 使用“ethtool -i eth0“进行进一步检查后、也不会显示“support-rxnfc"参数“参数、这表明 CPSW Linux 驱动程序未像您提到的那样实现 RX 流分级。
下面是一些有关 AM62x TRM 中 RX 流的参考资料、我希望这些参考资料会有所帮助。 遗憾的是、我们似乎没有很好的关于如何使用/设置 RX 流程的分步指南(在 TRM 和 SDK 文档之间)。 一位同事提到使用 RX 流之前已在 EthFW 中配置、因此我正在等待了解更多相关信息。
- 12.3.1.4.6.13 以太网端口流控制
- 12.3.1.4.6.13.1 以太网接收流控制
- 11.1.4.3 PKTDMA/BCDMA — 输出事件生成
- 11.1.4.12 PKTDMA — 接收操作
- 14.7.3.2.1 PKTDMA_RFLOW_RFLOW_RFA_RFA_J_Register(DMA 控制器寄存器)
因此、我们正在寻求有关寄存器级配置的明确指导、以便我们自己实现此功能。请告诉我这些参考信息是否有所帮助、或者具体说明您需要哪些其他信息来实现该功能。
-道林
[/quote]
更新:
我最近了解到、有一个补丁系列尚未完全上流式传输到 Linux 主线、用于实现对缺失运算的支持(包括缺少的 set_rxnfc 运算): https://lore.kernel.org/all/20250514-am65-cpsw-rx-class-v4-0-5202d8119241@kernel.org/
由于增补程序系列尚未上流化、可能会有更多更改、但至少它将提供一些起点。
-道林