AM623:   AM623:CPSW3G: How to assign respective RX Flow IDs to the two ports of CPSW3G in Independent MAC Mode?

Part Number: AM623

Tool/software:

Hi

We're developing a system using the AM623 processor and need to configure the CPSW3G Ethernet subsystem to direct network packets from specific ports to dedicated RX flow IDs. Here's our detailed  requirements:

1. Current Understanding

      Per the Linux 6.12 kernel driver and AM62x TRM documentation:

  • The CPSW3G in AM62x series has 8 TX DMA channels and 1 RX DMA channel divided into 8 RX flows (0-7) .
  • Each RX flow can generate independent interrupts, enabling per-flow CPU core assignment for improved performance

2. Application Requirements

We need to implement the following:
  • All packets from Port 1 are exclusively received by RX Flow 0.
  • All packets from Port 2 are exclusively received by RX Flow 1.
This separation will enable:
  • Dedicated interrupt handling for each port.
  • CPU core isolation for packet processing.
  • Avoidance of shared buffer contention and interrupt storms.

3. Requested Assistance

We have encountered the following challenges with documentation and hardware differences:
  • Documentation Gap: While the SDK mentions flow-based interrupts, it provides no clear guidance on configuring port-to-flow mapping.
  • Hardware Difference: The CPSW3G in the AM623 appears to differ from that in the AM335x—it lacks the P0_CPDMA_RX_CH_MAP register, which is present in the AM335x’s CPSW3G.
We urgently need clear guidance on mapping ingress ports to flows for the CPSW3G in the AM623. Thank you for your help.

Regards

ShunGang