[U-Boot] [PATCH v1 (WIP) 00/16] [Timer]API Rewrite

Scott McNutt smcnutt at psyent.com
Tue Jul 12 17:23:20 CEST 2011


Dear Wolfgang

Wolfgang Denk wrote:

> What exactly is the reason that we cannot have better timer
> resolutions in NIOS?

You _can_ have better timer resolutions in Nios. However, there
are legacy systems that implement timer(s) with a fixed period
of 10 msec. The use of such implementations is very common.
How do I know? Because my customers have such implementations.
Why not upgrade? Because most sane engineers are loathe to
change their rtl just so they can fix a simple software bug
or add a simple custom feature.

My obvious preference is to continue to use the latest u-boot in
such systems ... without having to create a custom branch for
customers with older Nios implementations, where I use the old
timer interfaces ... simply because we "improved" the API.

> Scott, maybe you can comment here?

I have only one comment: Out of pure frustration, I have been
avoiding any discussions regarding this timer re-write effort.

> At the moment I'm trying to understand if we really have a problem on
> NIOS2 that cannot be fixed in a way that is compatible with our
> current plans.

This is where my frustration begins. I've said this several times
before, and I don't know how else to say this ... but I'll give it
one more try:

     This is not a Nios problem.

If I can't use a 10 msec timer interrupt to detect a simple timeout
condition when I'm programming a flash memory, then the timer API
design is garbage. And quite frankly, the enormous amount of
discussion in this matter reminds me of an undergraduate science
project.

> We also have to deal with decrementing counters, but this is just aan
> unimportant detail.  And it appears that we actually can have this,
> even on NIOS.

Wow! Even on Nios! Arrggghh!

> The only architecture I remember that seemed prolematic was NIOS

Really? There have been occasional issues that have required a patch
here and there. But I consider most of them far from "problematic."

This is exhausting. As I recall, this entire fuss was born out
of an issue with nested calls to get_timer() ... and that begat
removing reset_timer ... and that begat ... and so on. And we're
still spilling lots of intellectual seed here. And now we have
what? A jack-of-all-trades API that can do everything with
exacting precision ... other than handling a 10 msec interrupt?

Best Regards,
--Scott



More information about the U-Boot mailing list