[PATCH v4 2/7] net: phy: introduce fixed_phy_create for DSA CPU ports

Tom Rini trini at konsulko.com
Tue Feb 16 22:55:43 CET 2021


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

> From: Vladimir Oltean <vladimir.oltean at 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 at 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.oltean at nxp.com>
> Reviewed-by: Claudiu Manoil <claudiu.manoil at nxp.com>

Applied to u-boot/master, thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20210216/0fc5c9ea/attachment.sig>


More information about the U-Boot mailing list