[U-Boot] Marvell 88E1111S phy autosense

Hello all,
I am seeing a strange behavior regarding the Marvell 88E1111S in U-boot. In drivers/net/tsec.c, tsec_local_mdio_read() [aliased as read_phy_reg()] seems to be grabbing the value of miimstat before the phy is actually ready. This results in my board's phy being sensed as "generic" type.
I have introduced code in drivers/net/tsec.c get_phy_info() to [1] retry the call to read_phy_reg() until the type sensed is not "generic" and [2] introduce a delay of 300000 nops+syncs (on an 800mhz core) between each iteration. Consistently the phy is properly detected on the 20th such iteration.
I have a nearly identical board with a non-Marvell phy and I am *not* seeing this issue on that board.
Does anyone have any insight into what might be going on?
Affected U-boot versions are 2009.11 and 2010.12
Thanks you, -Rick R.
participants (1)
-
Rick Ramstetter