net: phy: Introduce QUSGMII PHY mode
authorMaxime Chevallier <maxime.chevallier@bootlin.com>
Wed, 17 Aug 2022 12:32:52 +0000 (14:32 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 22 Aug 2022 12:46:26 +0000 (13:46 +0100)
commit5e61fe157a27afc7c0d4f7bcbceefdca536c015f
treed4874661c2eba4a5c5643f0f123c653bc87987a5
parentd04807b80691c6041ca8e3dcf1870d1bf1082c22
net: phy: Introduce QUSGMII PHY mode

The QUSGMII mode is a derivative of Cisco's USXGMII standard. This
standard is pretty similar to SGMII, but allows for faster speeds, and
has the build-in bits for Quad and Octa variants (like QSGMII).

The main difference with SGMII/QSGMII is that USXGMII/QUSGMII re-uses
the preamble to carry various information, named 'Extensions'.

As of today, the USXGMII standard only mentions the "PCH" extension,
which is used to convey timestamps, allowing in-band signaling of PTP
timestamps without having to modify the frame itself.

This commit adds support for that mode. When no extension is in use, it
behaves exactly like QSGMII, although it's not compatible with QSGMII.

Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
Documentation/networking/phy.rst
drivers/net/phy/phylink.c
include/linux/phy.h