On Mon, Jan 25, 2021 at 02:23:52PM +0200, Vladimir Oltean wrote:

> From: Vladimir Oltean <vladimir.olt...@nxp.com>
> 
> 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 <vladimir.olt...@nxp.com>
> Reviewed-by: Claudiu Manoil <claudiu.man...@nxp.com>

Applied to u-boot/master, thanks!

-- 
Tom

Attachment: signature.asc
Description: PGP signature

Reply via email to