summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorSerge Semin <fancer.lancer@gmail.com>2025-08-12 02:44:32 +0300
committerSerge Semin <fancer.lancer@gmail.com>2026-08-10 13:08:09 +0300
commit9df1a79a4974eee302ba14261b3a1ae4619a0878 (patch)
tree0d1f94f77df9b1a5fc4cc1f9fadf90849cb119a0 /include
parent2c4959472a54df70539806e0c92e99ad036f132b (diff)
downloadlinux-9df1a79a4974eee302ba14261b3a1ae4619a0878.tar.gz
linux-9df1a79a4974eee302ba14261b3a1ae4619a0878.zip
net: stmmac: Add AXI ACE attributes setup
If the DW QoS Ether/XGMAC/XLGMAC/etc are synthesized into the system with the AXI4 master bus it's possible to specify the cacheability attributes of the memory accesses. In the meantime if the controller is defined in the system as DMA-cache-coherent then any cacheable attributes can be utilized. This shall significantly speed up the controller IO performance. In our case the iperf3 got x4 faster on a single thread test reaching the practical maximum of the DW XGMAC controller! Let's provide a new fine-tuning platform AXI cache coherency parameter then. So if it's initialized with true then the driver considers that the device is DMA-coherent and enables the "Write-back No-allocate" memory access proto with Outer Shareable domain. Thus an Rx-es will be written to the cache and Tx-es will be read from the cache if there are respective entries are. Otherwise the data will be read directly from the memory. Signed-off-by: Serge Semin <fancer.lancer@gmail.com>
Diffstat (limited to 'include')
-rw-r--r--include/linux/stmmac.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/stmmac.h b/include/linux/stmmac.h
index 32352a216567e..b96bcb3905a7e 100644
--- a/include/linux/stmmac.h
+++ b/include/linux/stmmac.h
@@ -117,6 +117,7 @@ struct stmmac_axi {
bool axi_fb;
bool axi_mb;
bool axi_rb;
+ bool axi_cc;
};
struct stmmac_rxq_cfg {