Thread (40 messages) 40 messages, 6 authors, 2023-10-04

Re: [RFC PATCH v2 net-next 03/15] phy: ethernet: add configuration interface for copper backplane Ethernet PHYs

From: Simon Horman <horms@kernel.org>
Date: 2023-09-28 13:36:43
Also in: linux-devicetree, linux-phy, lkml

On Sat, Sep 23, 2023 at 04:48:52PM +0300, Vladimir Oltean wrote:
In Layerscape and QorIQ SoCs, compliance with the backplane Ethernet
protocol is bolted on top of the SerDes lanes using an external IP core,
that is modeled as an Ethernet PHY. This means that dynamic tuning of
the electrical equalization parameters of the link needs to be
communicated with the consumer of the generic PHY.

Create a small layer of glue API between a networking PHY (dealing with
the AN/LT logic for backplanes) and a generic PHY by extending the
phy_configure() API with a new struct phy_configure_opts_ethernet.

There are 2 directions of interest. In the "local TX training", the
generic PHY consumer gets requests over the wire from the link partner
regarding changes we should make to our TX equalization. In the "remote
TX training" direction, the generic PHY is the producer of requests,
based on its RX status, and the generic PHY consumer polls for these
requests until we are happy. Each request is also sent (externally to
the generic PHY layer) to the link partner board, for it to adjust its
TX equalization.

struct phy_configure_opts_ethernet is valid when phy_set_mode_ext() has
been called with PHY_MODE_ETHERNET or PHY_MODE_ETHTOOL, same as with
other union phy_configure_opts types.

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
...
+/**
+ * struct phy_configure_opts_ethernet - Ethernet PHY configuration set
nit: please include documentation of the structure members - type,
local_tx, and remote_tx - here.
+ *
+ * This structure is used to represent the configuration state of an Ethernet
+ * PHY (of various media types).
+ */
+struct phy_configure_opts_ethernet {
+	enum ethernet_phy_configure_type type;
+	union {
+		struct c72_phy_configure_local_tx local_tx;
+		struct c72_phy_configure_remote_tx remote_tx;
+	};
+};
...
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help