Subject: Re: [PATCH net-next v2 1/7] net: pcs: xpcs: add specific vendor supoprt for Wangxun 10Gb NICs

From: "Russell King (Oracle)" <[email-masked]>
Date: Tue, 8 Aug 2023 11:01:53 +0100

On Tue, Aug 08, 2023 at 05:46:03PM +0800, Jiawen Wu wrote:
> On Tuesday, August 8, 2023 5:21 PM, Russell King (Oracle) wrote:
> > On Tue, Aug 08, 2023 at 10:17:02AM +0800, Jiawen Wu wrote:
> > > Since Wangxun 10Gb NICs require some special configuration on the IP of
> > > Synopsys Designware XPCS, introduce dev_flag for different vendors. The
> > > vendor identification of wangxun devices is added by comparing the name
> > > of mii bus.
> > >
> > > And interrupt mode is used in Wangxun devices, so make it to be the first
> > > specific configuration.
> > >
> > > Signed-off-by: Jiawen Wu <[email-masked]>
> > 
> > Does the XPCS in Wangxun devices have the device identifiers (registers
> > 2 and 3) and the package identifiers (registers 14 and 15) implemented,
> > and would they be set to an implementation specific value that would
> > allow their integration into Wangxun devices to be detected?
> > 
> > If the answer to that is yes, it would be preferable to use that
> > rather than adding a bitarray of flags to indicate various "quirks".
> 
> It has not been implemented yet. We could implement it in flash if it's wanted.
> But it would require upgrading to the new firmware.

Andrew, do you any opinions? Do you think it would be a good idea to
use the device/package identifiers, rather than a bitfield of quirks?

> BTW, how do we make sure this value doesn't conflict with other device vendors?

PHY identifiers are based on the OUI (which is the same as what gets
used in the first three bytes of MAC addresses).

For example, Marvell is 00:50:43, which is in binary:

	0000 0000 0101 0000 0100 0011

Their PHY IDs are generally 0x01410c00-0x01410fff, which is in binary:

	0000 0001 0100 0001 0000 11xx

and if we shift the OUI by two bits to the right, we end up with the
number in the PHY.

802.3 22.2.4.3.1 says:

The PHY Identifier shall be composed of the third through 24th bits of
the Organizationally Unique Identifier (OUI) assigned to the PHY
manufacturer by the IEEE,1 plus a six-bit manufacturer’s model
number, plus a four-bit manufacturer’s revision number.

45.2.1.3 PMA/PMD device identifier (Registers 1.2 and 1.3)

...
The identifier shall be composed of the 3rd through 24th bits of the
Organizationally Unique Identifier (OUI) assigned to the device
manufacturer by the IEEE, plus a six-bit model number, plus a four-
bit revision number.

A PMA/PMD may return a value of zero in each of the 32 bits of the
PMA/PMD device identifier to indicate that a unique identifier as
described above is not provided.

The format of the PMA/PMD device identifier is specified in 22.2.4.3.1.

45.2.1.13 PMA/PMD package identifier (Registers 1.14 and 1.15)

...
The identifier shall be composed of the 3rd through 24th bits of the
Organizationally Unique Identifier (OUI) assigned to the package
manufacturer by the IEEE, plus a six-bit model number, plus a four-bit
revision number. A PMA/PMD may return a value of zero in each of the 32
bits of the package identifier.

A non-zero package identifier may be returned by one or more MMDs in
the same package. The package identifier may be the same as the device
identifier.

The format of the package identifier is specified in 22.2.4.3.1.

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!