Thread (12 messages) 12 messages, 3 authors, 2026-03-24

RE: [PATCH v5 net 1/3] net: enetc: reset PIR and CIR if they are not equal when initializing TX ring

From: Claudiu Manoil <claudiu.manoil@nxp.com>
Date: 2026-03-16 14:13:00
Also in: imx, lkml

-----Original Message-----
From: Wei Fang <wei.fang@nxp.com>
Sent: Friday, March 13, 2026 11:47 AM
[...]
Subject: [PATCH v5 net 1/3] net: enetc: reset PIR and CIR if they are not equal
when initializing TX ring

Currently the driver does not reset the producer index register (PIR) and
consumer index register (CIR) when initializing a TX BD ring. The driver
only reads the PIR and CIR and initializes the software indexes. If the
TX BD ring is reinitialized when it still contains unsent frames, its PIR
and CIR will not be equal after the reinitialization. However, the BDs
between CIR and PIR have been freed and become invalid and this can lead
to a hardware malfunction, causing the TX BD ring will not work properly.

For ENETC v4, it supports software to set the PIR and CIR, so the driver
can reset these two registers if they are not equal when reinitializing
the TX BD ring. Therefore, add this solution for ENETC v4. Note that this
patch does not work for ENETC v1 because it does not support software to
set the PIR and CIR.

Fixes: 99100d0d9922 ("net: enetc: add preliminary support for i.MX95 ENETC
PF")
Signed-off-by: Wei Fang <wei.fang@nxp.com>
Reviewed-by: Claudiu Manoil <claudiu.manoil@nxp.com>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help