Devicetree
 help / color / mirror / Atom feed
* [PATCH net-next 0/2] net: fec: support RX flushing via fsl,rx-flush-queues
@ 2026-08-14  9:08 A. Sverdlin
  2026-08-14  9:09 ` [PATCH net-next 1/2] dt-bindings: net: fsl,fec: add fsl,rx-flush-queues A. Sverdlin
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: A. Sverdlin @ 2026-08-14  9:08 UTC (permalink / raw)
  To: netdev
  Cc: Alexander Sverdlin, Wei Fang, Frank Li, Shenwei Wang, Andrew Lunn,
	David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
	Linux Team, imx, devicetree, linux-kernel

From: Alexander Sverdlin <alexander.sverdlin@siemens.com>

The FEC/ENET controller can flush frames that get stuck at the head of the
RX FIFO because their destination ring has no empty buffer descriptor
(RxBD[E] clear or ENET_RDARn not set). Without flushing, such a frame blocks
the FIFO and stalls reception on all queues; with flushing enabled the
offending frame is discarded instead. Flushing is configured per RX queue
through the RX_FLUSHn bits of the QOS Scheme register (FEC_QOS_SCHEME).

This series adds a device tree property, fsl,rx-flush-queues, listing the RX
queues for which flushing should be enabled, and programs the corresponding
RX_FLUSHn bits.

Erratum ERR050395 (e.g. i.MX8QXP) can lock up the RX path when flushing is
enabled on more than one queue at the same time; recovery requires a full
ENET reset. Rather than encoding that hardware limitation in the binding,
the DT property is kept generic and the single-queue restriction is enforced
in the driver: a configuration enabling flushing on multiple queues is
rejected unless the controller advertises FEC_QUIRK_HAS_MULTI_RX_FLUSH.
Future parts with the erratum fixed can set that quirk to allow flushing on
several queues.

Example:

    &fec {
        fsl,num-rx-queues = <3>;
        fsl,rx-flush-queues = <1>;
    };

Alexander Sverdlin (2):
  dt-bindings: net: fsl,fec: add fsl,rx-flush-queues
  net: fec: support receive flushing via fsl,rx-flush-queues

 .../devicetree/bindings/net/fsl,fec.yaml      | 14 ++++++++
 drivers/net/ethernet/freescale/fec.h          | 14 ++++++++
 drivers/net/ethernet/freescale/fec_main.c     | 34 +++++++++++++++++++
 3 files changed, 63 insertions(+)

-- 
2.55.0


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2026-08-15  9:19 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-14  9:08 [PATCH net-next 0/2] net: fec: support RX flushing via fsl,rx-flush-queues A. Sverdlin
2026-08-14  9:09 ` [PATCH net-next 1/2] dt-bindings: net: fsl,fec: add fsl,rx-flush-queues A. Sverdlin
2026-08-14  9:09 ` [PATCH net-next 2/2] net: fec: support receive flushing via fsl,rx-flush-queues A. Sverdlin
2026-08-14 10:31   ` Sverdlin, Alexander
2026-08-15  9:19   ` sashiko-bot
2026-08-14 13:56 ` [PATCH net-next 0/2] net: fec: support RX " Andrew Lunn
2026-08-14 14:21   ` Sverdlin, Alexander

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox