On Mon, Sep 13, 2021 at 5:54 PM Saravana Kannan <saravanak@xxxxxxxxxx> wrote: > > On Thu, Sep 9, 2021 at 1:03 AM Marek Szyprowski > <m.szyprowski@xxxxxxxxxxx> wrote: > > > > Hi > > > > On 08.09.2021 23:58, Saravana Kannan wrote: > > > This is a test patch. I'll split it up into multiple commits and clean > > > it up once it's shown to help. > > > > > > Marek, can you please test this and let me know if it helps? > > I've just checked and nope, it doesn't help for my case. Ethernet is > > still not probed on Amlogic G12A/B SoC based boards. :( > > Hi Marek, > > Thanks for testing out the patch. Turns out the issue was a lot more > complicated than I thought. Thanks to a bunch of debug logs that Rob > provided off-list, I was able to root cause the actual issue. > > Looks like the problem is cyclic dependency between the mdio-multiplexer and the > ethernet: > ethmac -(phy-handle)-> external_phy -(parent) -> > mdio-multiplexer -(mdio-bus-parent)-> mdio0 -(parent)-> ethmac > > Relevant parts of the DT combined from multiple files and trimmed and > pasted below. > > If fw_devlink sees a cycle, it'll stop enforcing ordering between all > the devices in the cycle since it can't figure out which one of the > dependencies isn't real. So, the confusing part was that, when Andrew > Lunn gave the patch for adding support for "mdio-bus-parent", that > should have allowed fw_devlink to see the cycle and stop enforcing the > dependencies. But that didn't happen because of a bug in fw_devlink > cycle handling (it worked for most cases, but not for this specific > ordering in DT). I'll send out a fix for that soon. Here's the fix I promised: https://lore.kernel.org/lkml/20210914043928.4066136-2-saravanak@xxxxxxxxxx/ > That combined with > Andrew's "mdio-bus-parent" patch should fix things for you. Fairly certain the fix above and Andrew's patch should fix it for you if you want to test it. Rob already verified a very similar patch for me. -Saravana > But I > think I'll revert the phy-handle patch for other reasons (I'll explain > that in the patch that reverts it). > > > Thanks, > Saravana > > ethmac: ethernet@ff3f0000 { > compatible = "amlogic,meson-g12a-dwmac" > > phy-handle = <&external_phy>; > mdio0: mdio { > compatible = "snps,dwmac-mdio"; > } > }; > > mdio-multiplexer { > mdio-bus-parent = <&mdio0>; > > ext_mdio: mdio@0 { > /* no compatible prop */ > external_phy: ethernet-phy@0 { > /* no compatible prop */ > } > } > } > > -Saravana