diff options
| author | Serge Semin <fancer.lancer@gmail.com> | 2025-08-12 02:44:32 +0300 |
|---|---|---|
| committer | Serge Semin <fancer.lancer@gmail.com> | 2026-08-10 13:08:09 +0300 |
| commit | 9df1a79a4974eee302ba14261b3a1ae4619a0878 (patch) | |
| tree | 0d1f94f77df9b1a5fc4cc1f9fadf90849cb119a0 /include | |
| parent | 2c4959472a54df70539806e0c92e99ad036f132b (diff) | |
| download | linux-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.h | 1 |
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 { |
