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
signature.asc
Description: PGP signature