mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00

This converts DPAA to phylink. All macs are converted. This should work with no device tree modifications (including those made in this series), except for QSGMII (as noted previously). The mEMAC configuration is one of the tricker areas. I have tried to capture all the restrictions across the various models. Most of the time, we assume that if the serdes supports a mode or the phy-interface-mode specifies it, then we support it. The only place we can't do this is (RG)MII, since there's no serdes. In that case, we rely on a (new) devicetree property. There are also several cases where half-duplex is broken. Unfortunately, only a single compatible is used for the MAC, so we have to use the board compatible instead. The 10GEC conversion is very straightforward, since it only supports XAUI. There is generally nothing to configure. The dTSEC conversion is broadly similar to mEMAC, but is simpler because we don't support configuring the SerDes (though this can be easily added) and we don't have multiple PCSs. From what I can tell, there's nothing different in the driver or documentation between SGMII and 1000BASE-X except for the advertising. Similarly, I couldn't find anything about 2500BASE-X. In both cases, I treat them like SGMII. These modes aren't used by any in-tree boards. Similarly, despite being mentioned in the driver, I couldn't find any documented SoCs which supported QSGMII. I have left it unimplemented for now. Signed-off-by: Sean Anderson <sean.anderson@seco.com> Signed-off-by: David S. Miller <davem@davemloft.net>
41 lines
1.6 KiB
Text
41 lines
1.6 KiB
Text
# 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 PHYLINK
|
|
select PCS
|
|
select PCS_LYNX
|
|
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.
|