Debugging EcoNet's MT7530 PHYs

Caleb James DeLisle cjd at cjdns.fr
Wed Jan 28 05:26:47 PST 2026


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
> openwrt-devel at lists.openwrt.org
> https://lists.openwrt.org/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list