PERFORCE change 89292 for review
imp at FreeBSD.org
Fri Jan 6 12:27:06 PST 2006
Change 89292 by imp at imp_Speedy on 2006/01/06 20:26:04
A short delay is needed before reading the management registers.
The reason is unknown. Maybe there's a back to back problem with
certain registers. We hang otherwise. Noticed this when it worked
with debug but failed w/o it. DEALY(1) is currently about 7.812ms,
but this code works with delays as short as 10us (maybe even smaller).
Affected files ...
.. //depot/projects/arm/src/sys/arm/at91/if_ate.c#13 edit
==== //depot/projects/arm/src/sys/arm/at91/if_ate.c#13 (text+ko) ====
@@ -587,7 +587,10 @@
* XXX to make sure that the clock to the emac is on here
+ if (phy != 0)
+ return (0xffff);
sc = device_get_softc(dev);
+ DELAY(1); /* Hangs w/o this delay really 7.812ms atm */
WR4(sc, ETH_MAN, ETH_MAN_REG_RD(phy, reg));
while ((RD4(sc, ETH_SR) & ETH_SR_IDLE) == 0)
More information about the p4-projects