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