Tool/software:
Hello
In Linux SDK,
Only one DMA channel is configured for rx, we have two mac ports, does the CPSW3G support 2 sperate DMA channels for Rx with two sperate PSI-L threads repectively?
B.R.
Changxing DU
Tool/software:
Hello
In Linux SDK,
Only one DMA channel is configured for rx, we have two mac ports, does the CPSW3G support 2 sperate DMA channels for Rx with two sperate PSI-L threads repectively?
B.R.
Changxing DU
Hi Changxing,
Can you check the results of "ethtool -l <interface name>" to see how many RX and TX channels is available?
I believe this should indicate that CPSW3G is only able to support 1 RX channel. However, I'm learning that CPSW has something called "RX flows (upto 16 flows per channel on Sitara SoCs). Each flow has dedicated desc ring and dedicated IRQ which allows to CPSW HW to steer a received packet to a particular ring and thus a particular CPU (to which IRQ affinity is mapped to)".
Please let us know if you have additional questions.
-Daolin
Hello Daoblin
How can we configure it? because once the rx source thread is reqested by Mcu, the uboot or linux will not be able to register it.
Do you have any hints on how to configure the flow and ring on both mcal (MCU R5) and linux side (A53)? This is done by one core or by seperate cores?
B.R.
Changxing Du
Hello Changxing,
Apologies for the delayed response.
Can you check the results of "ethtool -l <interface name>" to see how many RX and TX channels is available?
Were you able to check the results of this command?
I found out that CPSW has a preset maximum of 8 RX channels however by default the hardware settings is set to 1 RX channel if you check "ethtool -l eth0" on the AM64x EVM. I assume something similar results for AM62Px TI EVM.
With some experimentation I could set the hardware settings to 8 RX channels with "ethtool -L eth0 rx 8", making sure that eth0 is brought down before setting this. See below log. I believe this is due to this patch: 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:~#
Would this multi RX queue feature be something that you are able to apply for your use-case?
-Daolin
Hello Daolin
Thanks for your info. But the eth tool can only be used under linux.
We want to share the same Rx fifo by Mcu (Mcal will be run) and A53 (Linux core).
So the issue is that how we change the SDK?
In the current Linux SDK, there is only one Rx channel with one thread supported. And will confilict with Mcal side.
Hello Changzing,
There is a way to share network traffic between multiple cores in am62p. It is through Ethernet Firmware (EthFw) support that comes as part of am62px MCU+ SDK. We don't exactly share the fifo, configure DMA channels in a way that both Linux and MCAL have access to the CPSW peripheral. But the control of peripheral is with wkup-r5.
There are few considerations to be taken.
Please let me know if there are any queries regarding the support, or functionalities of EthFw.
Regards,
Teja.
Hello Teja,
Thanks for your support. Could you please share some performance test result when use IPC?
B.R.
Changxing
Hello Changzing,
Do you mean to say performance results when the data sharing is done through IPC instead of EthFw mentioned above?
Regards,
Teja.