>-----Original Message-----
>From: Vladimir Oltean <[email protected]>
>Sent: Monday, January 25, 2021 2:24 PM
>To: Tom Rini <[email protected]>; Joe Hershberger
><[email protected]>; Simon Glass <[email protected]>; Bin Meng
><[email protected]>; [email protected]
>Cc: Michael Walle <[email protected]>; Alexandru Marginean
><[email protected]>; Claudiu Manoil
><[email protected]>
>Subject: [PATCH v4 2/7] net: phy: introduce fixed_phy_create for DSA CPU
>ports
>
>From: Vladimir Oltean <[email protected]>
>
>The DSA (Distributed Switch Architecture) implementation has made a
>design decision when it got introduced to the Linux kernel in 2008.
>That was to hide away from the user the CPU-facing Ethernet MAC, since
>it does not make sense to register it as a struct net_device (UCLASS_ETH
>udevice for U-Boot), because that would never be beneficial for a user:
>they would not be able to use it for traffic, since conceptually, a
>packet delivered to the CPU port should loop back into the system.
>
>Nonetheless, DSA has had numerous growing pains due to the lack of a
>struct net_device for the CPU port, but so far it has overcome them.
>It is unlikely at this stage of maturity that this aspect of it will
>change.
>
>We would like U-Boot to present the same information as Linux, to be at
>parity in terms of number of interfaces, so that ethNaddr environment
>variables could directly be associated between U-Boot and Linux.
>Therefore, we would implicitly like U-Boot to hide the CPU port from the
>user as well.
>
>But the paradox is that DSA still needs a struct phy_device to inform
>the driver of the parameters of the link that it should configure the
>CPU port to. The problem is that the phy_device is typically returned
>via a call to phy_connect, which needs an udevice to attach the PHY to,
>and to search its ofnode for the 'fixed-link' property. But we don't
>have an udevice to present for the CPU port.
>
>Since 99% of DSA setups are MAC-to-MAC connections between the switch
>and the host Ethernet controller, the struct phy_device is going to be a
>fixed PHY. This simplifies things quite a bit. In U-Boot, a fixed PHY
>does not need an MDIO bus, and does not need an attached dev either.
>Basically, the phy_connect call doesn't do any connection, it just
>creates the fixed PHY.
>
>The proposal of this patch is to introduce a new fixed_phy_create
>function which will take a single argument: the ofnode that holds this:
>
>       port@4 {
>               reg = <4>;
>               phy-mode = "internal";
>
>               fixed-link {
>                       speed = <2500>;
>                       full-duplex;
>               };
>       };
>
>and probe a fixed PHY driver using the information from this ofnode.
>DSA will probably be the only user of this function.
>
>Signed-off-by: Vladimir Oltean <[email protected]>

Reviewed-by: Claudiu Manoil <[email protected]>

Reply via email to