On 06/10/2020 08.02, Heiko Schocher wrote: > Hello Rasmus, > > Am 05.10.2020 um 15:15 schrieb Rasmus Villemoes: >> When trying to port our mpc8309-based board to DM_ETH, on top of >> Heiko's patches, I found that nothing in mdio-uclass.c seems to >> support the use of a fixed-link subnode of the ethernet DT node. That >> is, the ethernet node looks like >> >> enet0: ethernet@2000 { >> device_type = "network"; >> compatible = "ucc_geth"; >> ... >> fixed-link { >> reg = <0xffffffff>;
Well, it looks like that when a dummy reg property has been added, not IRL. Sorry. >> --- >> net/mdio-uclass.c | 7 +++++++ >> 1 file changed, 7 insertions(+) >> >> diff --git a/net/mdio-uclass.c b/net/mdio-uclass.c >> index 66ee2e1976..2f932b77df 100644 >> --- a/net/mdio-uclass.c >> +++ b/net/mdio-uclass.c >> @@ -139,6 +139,12 @@ static struct phy_device >> *dm_eth_connect_phy_handle(struct udevice *ethdev, >> struct ofnode_phandle_args phandle = {.node = ofnode_null()}; >> int i; >> + if (CONFIG_IS_ENABLED(PHY_FIXED) && >> + ofnode_valid(dev_read_subnode(ethdev, "fixed-link"))) { >> + phy = phy_connect(NULL, -1, ethdev, interface); >> + goto out; >> + } >> + >> for (i = 0; i < PHY_HANDLE_STR_CNT; i++) >> if (!dev_read_phandle_with_args(ethdev, phy_handle_str[i], >> NULL, >> 0, 0, &phandle)) >> @@ -168,6 +174,7 @@ static struct phy_device >> *dm_eth_connect_phy_handle(struct udevice *ethdev, >> phy = dm_mdio_phy_connect(mdiodev, phy_addr, ethdev, interface); >> +out: >> if (phy) >> phy->node = phandle.node; > > Looks good to me... but I am not an expert in net subsystem... > nevertheless: > > Reviewed-by: Heiko Schocher <h...@denx.de> Thanks. Yeah, as I said, I have no idea if this is the right way to do things. Some ethernet drivers seem to call phy_connect directly instead of going through dm_eth_phy_connect(), some handle fixed-link themselves, etc. But from a very selfish POV, this is the minimal patch to make our board (and others with a ucc_geth ethernet dev with a fixed-link) work with DM_ETH. Rasmus