Debugging EcoNet's MT7530 PHYs
Caleb James DeLisle
cjd at cjdns.fr
Tue Jan 27 09:26:41 PST 2026
>
> 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
More information about the openwrt-devel
mailing list