Re: PROBLEM: Broken or delayed ethernet on Xilinx ZCU104 since 5.18 (regression)
From: Rob Herring
Date: Fri Aug 04 2023 - 16:23:02 EST
+Saravana
On Fri, Aug 4, 2023 at 11:52 AM Nick Bowler <nbowler@xxxxxxxxxx> wrote:
>
> On 2023-08-04, Rob Herring <robh@xxxxxxxxxx> wrote:
> > On Fri, Aug 4, 2023 at 10:54 AM Nick Bowler <nbowler@xxxxxxxxxx> wrote:
> >> Oh, I get it, to include this driver I need to also enable:
> >>
> >> CONFIG_RESET_CONTROLLER=y
> >>
> >> Setting this fixes 6.4. Perhaps CONFIG_ARCH_ZYNQMP should select it?
> >
> > Maybe. Do other platforms do that?
>
> Of the ~40 platforms in arch/arm64/Kconfig.platforms, there appear to
> be 5 that do select it.
Then selecting should be okay. Unless there's a desire for resets to
remain optional (which is going to rely on the timeout).
> >> However, even with this option enabled, 6.5-rc4 remains broken (no
> >> change in behaviour wrt. the network device). I will bisect this
> >> now.
> >
> > It would be good to know why the deferred probe timeout doesn't work.
> > If you disable modules, the kernel shouldn't wait past late_initcall.
> > Though this functionality keeps getting tweaked, so I may be off on
> > the current behavior.
>
> I don't know about the deferred probe timeout, but I bisected the 6.5-rc4
> breakage to this commit:
>
> commit c720a1f5e6ee8cb39c28435efc0819cec84d6ee2
> Author: Michal Simek <michal.simek@xxxxxxx>
> Date: Mon May 22 16:59:48 2023 +0200
>
> arm64: zynqmp: Describe TI phy as ethernet-phy-id
I don't see anything obviously problematic with that commit. (The
#phy-cells property added is wrong as ethernet phys don't use the phy
binding, but that should just be ignored). I'd check if the phy probed
and has a DT node associated with it.
fw_devlink tracks parent-child dependencies and maybe changing to
parent-grandchild affected that. We don't yet track 'phy-handle'
dependencies, but we'd have a circular one here if we did (though that
should be handled). Does "fw_devlink=off" help?
> So, reverting that on master appears to correct the issue (together with
> setting CONFIG_RESET_CONTROLLER=y).