]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
board: ti: am62ax: tifs-rm-cfg/rm-cfg: Update DMA resource sharing for CPSW
authorSiddharth Vadapalli <s-vadapalli@ti.com>
Thu, 7 May 2026 12:31:15 +0000 (18:01 +0530)
committerTom Rini <trini@konsulko.com>
Thu, 11 Jun 2026 17:58:49 +0000 (11:58 -0600)
The CPSW3G instance of CPSW on AM62AX SoC provides Ethernet functionality.
Currently, Ethernet is supported on Linux which runs on the A53 core on the
SoC, by allocating all of the DMA resources associated with CPSW to A53_2.

In order to enable use-cases where the Ethernet traffic is sent from or
consumed by various CPU cores on the SoC simultaneously, while at the
same time, maintaining backward compatibility with the existing use-case
of A53 being the sole entity that exchanges traffic with CPSW via DMA,
update the DMA resource sharing scheme on AM62AX SoC to the following:

---------------      --------------   -------------  ----------------
   Resource              WKUP_R5         MCU_R5            A53_2
---------------      --------------   -------------  ----------------
TX Channels [8]  =>    4 (Primary)     4 (Primary)     8 (Secondary)
TX Rings   [64]  =>   32 (Primary)    32 (Primary)    64 (Secondary)
RX Channels [1]  =>    1 (Primary)     0               1 (Secondary)
RX Flows   [16]  =>    6 (Primary)    10 (Primary)    16 (Secondary)

In the absence of primary owners of resources (existing use-case
where A53 owns all of the CPSW DMA resources), the secondary owner
can claim all of the resources as its own. For shared use-cases,
the resources that are not claimed by the primary are communicated
to the secondary owner allowing it to claim them. This ensures that
Linux on A53_2 can continue claiming all DMA resources associated
with CPSW in the absence of primary owners, while at the same time
providing users the flexibility to share CPSW DMA resources across
various CPU cores listed above if needed.

While Linux has been mentioned as the Operating System running
on A53, there is no dependency between the Operating System
running on A53 and its ability to claim the CPSW DMA resources
listed above.

Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com>
Acked-by: Anshul Dalal <anshuld@ti.com>
board/ti/am62ax/rm-cfg.yaml
board/ti/am62ax/tifs-rm-cfg.yaml

index 4e238883b96c7ab086dd3338543d1d5e7e82de72..36b0049f43a74fcdd829d200a1feda703e7b6012 100644 (file)
@@ -244,7 +244,7 @@ rm-cfg:
             subhdr:
                 magic: 0x7B25
                 size: 8
-            resasg_entries_size: 1064
+            resasg_entries_size: 1176
             reserved: 0
     resasg_entries:
         -
@@ -705,13 +705,25 @@ rm-cfg:
             reserved: 0
         -
             start_resource: 19
-            num_resource: 64
+            num_resource: 32
             type: 1937
             host_id: 12
             reserved: 0
         -
             start_resource: 19
-            num_resource: 64
+            num_resource: 32
+            type: 1937
+            host_id: 36
+            reserved: 0
+        -
+            start_resource: 51
+            num_resource: 32
+            type: 1937
+            host_id: 12
+            reserved: 0
+        -
+            start_resource: 51
+            num_resource: 32
             type: 1937
             host_id: 30
             reserved: 0
@@ -759,13 +771,25 @@ rm-cfg:
             reserved: 0
         -
             start_resource: 118
-            num_resource: 16
+            num_resource: 6
             type: 1943
             host_id: 12
             reserved: 0
         -
             start_resource: 118
-            num_resource: 16
+            num_resource: 6
+            type: 1943
+            host_id: 36
+            reserved: 0
+        -
+            start_resource: 124
+            num_resource: 10
+            type: 1943
+            host_id: 12
+            reserved: 0
+        -
+            start_resource: 124
+            num_resource: 10
             type: 1943
             host_id: 30
             reserved: 0
@@ -825,13 +849,25 @@ rm-cfg:
             reserved: 0
         -
             start_resource: 19
-            num_resource: 8
+            num_resource: 4
             type: 1956
             host_id: 12
             reserved: 0
         -
             start_resource: 19
-            num_resource: 8
+            num_resource: 4
+            type: 1956
+            host_id: 36
+            reserved: 0
+        -
+            start_resource: 23
+            num_resource: 4
+            type: 1956
+            host_id: 12
+            reserved: 0
+        -
+            start_resource: 23
+            num_resource: 4
             type: 1956
             host_id: 30
             reserved: 0
@@ -917,17 +953,29 @@ rm-cfg:
             start_resource: 19
             num_resource: 1
             type: 1963
-            host_id: 30
+            host_id: 36
             reserved: 0
         -
             start_resource: 19
-            num_resource: 16
+            num_resource: 6
             type: 1964
             host_id: 12
             reserved: 0
         -
             start_resource: 19
-            num_resource: 16
+            num_resource: 6
+            type: 1964
+            host_id: 36
+            reserved: 0
+        -
+            start_resource: 25
+            num_resource: 10
+            type: 1964
+            host_id: 12
+            reserved: 0
+        -
+            start_resource: 25
+            num_resource: 10
             type: 1964
             host_id: 30
             reserved: 0
@@ -1009,6 +1057,12 @@ rm-cfg:
             type: 12750
             host_id: 12
             reserved: 0
+        -
+            start_resource: 0
+            num_resource: 6
+            type: 12750
+            host_id: 36
+            reserved: 0
         -
             start_resource: 0
             num_resource: 6
@@ -1017,16 +1071,46 @@ rm-cfg:
             reserved: 0
         -
             start_resource: 0
-            num_resource: 8
+            num_resource: 6
+            type: 12769
+            host_id: 36
+            reserved: 0
+        -
+            start_resource: 0
+            num_resource: 5
             type: 12810
             host_id: 12
             reserved: 0
+        -
+            start_resource: 5
+            num_resource: 3
+            type: 12810
+            host_id: 35
+            reserved: 0
+        -
+            start_resource: 5
+            num_resource: 3
+            type: 12810
+            host_id: 36
+            reserved: 0
         -
             start_resource: 12288
-            num_resource: 128
+            num_resource: 64
             type: 12813
             host_id: 12
             reserved: 0
+        -
+            start_resource: 12352
+            num_resource: 64
+            type: 12813
+            host_id: 35
+            reserved: 0
+        -
+            start_resource: 12352
+            num_resource: 64
+            type: 12813
+            host_id: 36
+            reserved: 0
         -
             start_resource: 3072
             num_resource: 6
index 78bbab38bb6782e7538f9972a6d3ae1d1227cc1a..3706fac8664985bdb940f26d5ca76d1c868d6410 100644 (file)
@@ -244,7 +244,7 @@ tifs-rm-cfg:
             subhdr:
                 magic: 0x7B25
                 size: 8
-            resasg_entries_size: 880
+            resasg_entries_size: 976
             reserved: 0
     resasg_entries:
         -
@@ -585,13 +585,25 @@ tifs-rm-cfg:
             reserved: 0
         -
             start_resource: 19
-            num_resource: 64
+            num_resource: 32
             type: 1937
             host_id: 12
             reserved: 0
         -
             start_resource: 19
-            num_resource: 64
+            num_resource: 32
+            type: 1937
+            host_id: 36
+            reserved: 0
+        -
+            start_resource: 51
+            num_resource: 32
+            type: 1937
+            host_id: 12
+            reserved: 0
+        -
+            start_resource: 51
+            num_resource: 32
             type: 1937
             host_id: 30
             reserved: 0
@@ -639,13 +651,25 @@ tifs-rm-cfg:
             reserved: 0
         -
             start_resource: 118
-            num_resource: 16
+            num_resource: 6
             type: 1943
             host_id: 12
             reserved: 0
         -
             start_resource: 118
-            num_resource: 16
+            num_resource: 6
+            type: 1943
+            host_id: 36
+            reserved: 0
+        -
+            start_resource: 124
+            num_resource: 10
+            type: 1943
+            host_id: 12
+            reserved: 0
+        -
+            start_resource: 124
+            num_resource: 10
             type: 1943
             host_id: 30
             reserved: 0
@@ -705,13 +729,25 @@ tifs-rm-cfg:
             reserved: 0
         -
             start_resource: 19
-            num_resource: 8
+            num_resource: 4
             type: 1956
             host_id: 12
             reserved: 0
         -
             start_resource: 19
-            num_resource: 8
+            num_resource: 4
+            type: 1956
+            host_id: 36
+            reserved: 0
+        -
+            start_resource: 23
+            num_resource: 4
+            type: 1956
+            host_id: 12
+            reserved: 0
+        -
+            start_resource: 23
+            num_resource: 4
             type: 1956
             host_id: 30
             reserved: 0
@@ -797,17 +833,29 @@ tifs-rm-cfg:
             start_resource: 19
             num_resource: 1
             type: 1963
-            host_id: 30
+            host_id: 36
             reserved: 0
         -
             start_resource: 19
-            num_resource: 16
+            num_resource: 6
             type: 1964
             host_id: 12
             reserved: 0
         -
             start_resource: 19
-            num_resource: 16
+            num_resource: 6
+            type: 1964
+            host_id: 36
+            reserved: 0
+        -
+            start_resource: 25
+            num_resource: 10
+            type: 1964
+            host_id: 12
+            reserved: 0
+        -
+            start_resource: 25
+            num_resource: 10
             type: 1964
             host_id: 30
             reserved: 0
@@ -877,6 +925,12 @@ tifs-rm-cfg:
             type: 12750
             host_id: 12
             reserved: 0
+        -
+            start_resource: 0
+            num_resource: 6
+            type: 12750
+            host_id: 36
+            reserved: 0
         -
             start_resource: 0
             num_resource: 6
@@ -885,10 +939,28 @@ tifs-rm-cfg:
             reserved: 0
         -
             start_resource: 0
-            num_resource: 8
+            num_resource: 6
+            type: 12769
+            host_id: 36
+            reserved: 0
+        -
+            start_resource: 0
+            num_resource: 5
             type: 12810
             host_id: 12
             reserved: 0
+        -
+            start_resource: 5
+            num_resource: 3
+            type: 12810
+            host_id: 35
+            reserved: 0
+        -
+            start_resource: 5
+            num_resource: 3
+            type: 12810
+            host_id: 36
+            reserved: 0
         -
             start_resource: 3072
             num_resource: 6