RE: [PATCH v5 net-next 04/13] net: enetc: add initial netc-blk-ctrl driver support

Wei Fang
2024-10-26T02:47:41Z

> -----Original Message-----
> From: Vladimir Oltean <vladimir.oltean@nxp.com>
> Sent: 2024年10月25日 20:43
> To: Wei Fang <wei.fang@nxp.com>
> Cc: davem@davemloft.net; edumazet@google.com; kuba@kernel.org;
> pabeni@redhat.com; robh@kernel.org; krzk+dt@kernel.org;
> conor+dt@kernel.org; Claudiu Manoil <claudiu.manoil@nxp.com>; Clark Wang
> <xiaoning.wang@nxp.com>; Frank Li <frank.li@nxp.com>;
> christophe.leroy@csgroup.eu; linux@armlinux.org.uk; bhelgaas@google.com;
> horms@kernel.org; imx@lists.linux.dev; netdev@vger.kernel.org;
> devicetree@vger.kernel.org; linux-kernel@vger.kernel.org;
> linux-pci@vger.kernel.org; alexander.stein@ew.tq-group.com
> Subject: Re: [PATCH v5 net-next 04/13] net: enetc: add initial netc-blk-ctrl
> driver support
>
> On Fri, Oct 25, 2024 at 04:44:50AM +0300, Wei Fang wrote:
> > > On Thu, Oct 24, 2024 at 02:53:19PM +0800, Wei Fang wrote:
> > > Can U-Boot deal with the IERB/PRB configuration?
> > >
> > > For LS1028A, the platform which initiated the IERB driver "trend", the
> situation
> > > was a bit more complicated, as we realized the reset-time defaults aren't
> what
> > > we need very late in the product life cycle, when customer boards already
> had
> > > bootloaders and we didn't want to complicate their process to have to
> redeploy
> > > in order to get access to such a basic feature as flow control. Though if we
> knew
> > > it from day one, we would have put the IERB fixups in U-Boot.
> >
> > The situation of i.MX95 is different from LS1028A, i.MX95 needs to support
> system
> > suspend/resume feature. If the i.MX95 enters suspend mode, the NETC may
> > power off (depends on user case), so IERB and PRB will be reset, in this case,
> we need
> > to reconfigure the IERB & PRB, including NETCMIX.
> >
> > > What is written in the IERB for MII/PCS protocols by default? I suppose
> there's
> > > some other mechanism to preinitialize it with good values?
> >
> > The MII/PCS protocols are set in NETCMIX not IERB, but the IERB will get
> these
> > info from NETCMIX, I mean the hardware, not the software. The default
> values
> > are all 0.
>
> I am shocked that the NETCMIX/IERB blocks does not have a separate power
> domain from the ENETC, to avoid powering them off, which loses the settings.
> Please provide this explanation in the opening comments of this driver, it
> is its entire "raison d'être".

Hmm, it's a good idea, I can add this annotation at the beginning of the driver.
But this in not the entire "raison d'être", because we also hope to be able to
dynamically configure based on DTS, which is more flexible than under uboot.
For example, Timer binding for ENETC and switch if there are multiple Timer
instances, port selection if two ENETCs or one ENETC and one switch port share
the same physical port.