Update: It turns out the reset controller I was using only reset the
on-die switch, Benjamin found the reset register for the external switch
and now everything is behaving MUCH more like normal. I'd say at this
point I'm no longer stuck.
Thanks,
Caleb
On 27/01/2026 18:26, Caleb James DeLisle wrote:
Would there be any reason not to set BMCR_PDOWN in
mt7530_phy_config_init() so we know they're in a consistent state?
Also if you happen to have an MT7621 sitting there running, would you
mind setting BMCR_ANENABLE | BMCR_ANRESTART with mdio on a running
port to see if it's the same behavior? The port should immediately
die and then go into a loop trying to connect every few seconds /
minutes depending on what it's connected to.
Whoops, spoke too soon. dsa_register_switch() (indirectly) calls
phy_resume() so the phy is up while the port is down. However, adding
this to mt7530_port_enable() does make it work:
if (priv->id == ID_EN751221_EXT && phy)
genphy_soft_reset(phy);
I note that if the port is brought up within seconds of having been
reset, then it seems to work (at least sporadically) despite the
BMCR_ANENABLE bug. I imagine this is something that can be tuned out,
but given it's happening in the bootloader, I don't have much
confidence that I'm going to find the knob to fix it. I've got a
problem with my vendor OS image, but when I get that fixed I'll check
that as well.
In the mean time, if any likely culprits come to mind, do let me know.
Thanks,
Caleb
_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/mailman/listinfo/openwrt-devel
_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/mailman/listinfo/openwrt-devel