Hi there, I just noticed that the implementation of udelay() - i.e udelay_masked() - resets the timer. Why is that? This prevents me from doing something like start = get_timer(0); /* get current time */ do { if ( get_timer(start) > timeout) { puts(" TIMEOUT!"); break; } putc('.'); udelay(100000); } while (1); :-( -- Steven