| # SPDX-License-Identifier: GPL-2.0-only |
| config FSL_FMAN |
| tristate "FMan support" |
| depends on FSL_SOC || ARCH_LAYERSCAPE || COMPILE_TEST |
| select GENERIC_ALLOCATOR |
| select PHYLIB |
| select CRC32 |
| default n |
| help |
| Freescale Data-Path Acceleration Architecture Frame Manager |
| (FMan) support |
| |
| config DPAA_ERRATUM_A050385 |
| bool |
| depends on ARM64 && FSL_DPAA |
| default y |
| help |
| DPAA FMan erratum A050385 software workaround implementation: |
| align buffers, data start, SG fragment length to avoid FMan DMA |
| splits. |
| FMAN DMA read or writes under heavy traffic load may cause FMAN |
| internal resource leak thus stopping further packet processing. |
| The FMAN internal queue can overflow when FMAN splits single |
| read or write transactions into multiple smaller transactions |
| such that more than 17 AXI transactions are in flight from FMAN |
| to interconnect. When the FMAN internal queue overflows, it can |
| stall further packet processing. The issue can occur with any |
| one of the following three conditions: |
| 1. FMAN AXI transaction crosses 4K address boundary (Errata |
| A010022) |
| 2. FMAN DMA address for an AXI transaction is not 16 byte |
| aligned, i.e. the last 4 bits of an address are non-zero |
| 3. Scatter Gather (SG) frames have more than one SG buffer in |
| the SG list and any one of the buffers, except the last |
| buffer in the SG list has data size that is not a multiple |
| of 16 bytes, i.e., other than 16, 32, 48, 64, etc. |
| With any one of the above three conditions present, there is |
| likelihood of stalled FMAN packet processing, especially under |
| stress with multiple ports injecting line-rate traffic. |