Subject: Re: [PATCH net-next 0/2] dt-bindings: define property describing supported ethernet PHY modes

From: Florian Fainelli <[email-masked]>
Date: Wed, 24 Mar 2021 14:19:28 -0700

On 3/24/2021 3:35 AM, Marek Behún wrote:
> Hello,
> 
> the Marvell Alaska PHYs (88X3310, 88E2110) can, depending on their
> configuration, change the PHY mode to the MAC, depending on the
> copper/fiber speed.
> 
> The 88X3310, for example, can be configured (via MACTYPE register)
> so that it communicates with the MAC in sgmii for 10/100/1000mbps,
> 2500base-x for 2500mbps, 5gbase-r for 5gbps and either 10gbase-r,
> xaui or rxaui for 10gbps. Or the PHY may communicate with the MAC
> in usxgmii, or one of the 10gbase-r, rxaui or xaui modes with rate
> matching.
> 
> So for the 10gbps mode we have options 10gbase-r, xaui, rxaui and
> usxgmii. The MAC can support some of these modes, and if it does more
> than one, we need to know which one to use. Not all of these modes
> must necessarily be supported by the board (xaui required wiring for
> 4 SerDes lanes, for example, and 10gbase-r requires wiring capable
> of transmitting at 10.3125 GBd).
> 
> The MACTYPE is upon HW reset configured by strapping pins - so the
> board should have a correct mode configured after HW reset.
> 
> One problem with this is that some boards configure the MACTYPE to
> a rate matching mode, which, according to the errata, is broken in
> some situations (it does not work for 10/100/1000, for example).
> 
> Another problem is that if lower modes are supported, we should
> maybe use them in order to save power.

That is an interesting proposal but if you want it to be truly valuable,
does not that mean that an user ought to be able to switch between any
of the supported PHY <=> MAC interfaces at runtime, and then within
those interfaces to the speeds that yield the best power savings?

> 
> But for this we need to know which phy-modes are supported on the
> board.
> 
> This series adds documentation for a new ethernet PHY property,
> called `supported-mac-connection-types`.

That naming does not quite make sense to me, if we want to describe the
MAC supported connection types, then those would naturally be within the
Ethernet MAC Device Tree node, no? If we are describing what the PHY is
capable, then we should be dropping "mac" from the property name not to
create confusion.

> 
> When this property is present for a PHY node, only the phy-modes
> listed in this property should be considered to be functional on
> the board.

Can you post the code that is going to utilize these properties so we
have a clearer picture of how and what you need to solve?

> 
> The second patch adds binding for this property.
> 
> The first patch does some YAML magic in ethernet-controller.yaml
> in order to be able to reuse the PHY modes enum, so that the same
> list does not have to be defined twice.
> 
> Marek
> 
> Marek Behún (2):
>   dt-bindings: ethernet-controller: create a type for PHY interface
>     modes
>   dt-bindings: ethernet-phy: define `supported-mac-connection-types`
>     property
> 
>  .../bindings/net/ethernet-controller.yaml     | 89 ++++++++++---------
>  .../devicetree/bindings/net/ethernet-phy.yaml | 18 ++++
>  2 files changed, 66 insertions(+), 41 deletions(-)
> 

-- 
Florian