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

Wei Fang
2024-10-25T01:44:54Z

> On Thu, Oct 24, 2024 at 02:53:19PM +0800, Wei Fang wrote:
> > The netc-blk-ctrl driver is used to configure Integrated Endpoint
> > Register Block (IERB) and Privileged Register Block (PRB) of NETC.
> > For i.MX platforms, it is also used to configure the NETCMIX block.
> >
> > The IERB contains registers that are used for pre-boot initialization,
> > debug, and non-customer configuration. The PRB controls global reset
> > and global error handling for NETC. The NETCMIX block is mainly used
> > to set MII protocol and PCS protocol of the links, it also contains
> > settings for some other functions.
> >
> > Note the IERB configuration registers can only be written after being
> > unlocked by PRB, otherwise, all write operations are inhibited. A warm
> > reset is performed when the IERB is unlocked, and it results in an FLR
> > to all NETC devices. Therefore, all NETC device drivers must be probed
> > or initialized after the warm reset is finished.
> >
> > Signed-off-by: Wei Fang <wei.fang@nxp.com>
> > Reviewed-by: Frank Li <Frank.Li@nxp.com>
> > ---
>
> 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.