
On Monday, September 20, 2010 17:44:38 Mike Frysinger wrote:
finally got around to testing this. seems like the init needs some work. if i power on the system (cold boot), boot Linux over the on-chip mac, and let Linux program the enc part, it works fine under Linux. then i do a software reset back into u-boot, it can use the enc fine too.
but if i cold boot u-boot and try to use the enc part, i get: timeout waiting for CLKRDY enabling DEBUG doesnt show any additional output though.
comparing the linux and u-boot drivers leads me to this fix:
--- a/drivers/net/enc28j60.c +++ b/drivers/net/enc28j60.c @@ -632,6 +632,8 @@ static int enc_clock_wait(enc_dev_t *enc) { uint64_t etime;
+ enc_bclr(enc, CTL_REG_ECON2, ENC_ECON2_PWRSV); + /* one second timeout */ etime = get_ticks() + get_tbclk();
i dont know if Ben wants to squash this change in his next tree, or do a patch on top of it ... -mike