[U-Boot] [PATCH v1 (WIP) 00/16] [Timer]API Rewrite
Reinhard Meyer
u-boot at emk-elektronik.de
Tue Jul 12 18:08:47 CEST 2011
Dear J. William Campbell, All
> I have two comments regarding this discussion so far. First, I
> think using the "time" function name at all is a VERY BAD idea. People
> will confuse it with the "normal" c library function that returns the
> time of day since the epoch. One may say that they should RTFM, but it
> is lots easier to just use another name and avoid all such confusion.
> Second, I think forcing all systems to use 64 bit time stamps is not a
> good idea. The main purpose of the timer API is to provide hardware
> timeouts. 64 bits is vast overkill for such a purpose. Mandating 64 bit
> capability for all u-boots is I think counter-productive. A 32 bit
> timestamp in millisecond resolution plus udelay covers all practical
> cases. The 1 ms resolution is probably inadequate for performance
> measurement, but for every u-boot system that is sometimes used for
> performance measurement, there are 100 (probably even more, like 1000,
> but I don't really have the figures) systems that are just used to boot
> Linux or another stand alone program. So we may need a different API for
> performance measurement that uses higher resolution. On most "larger"
> CPUs, there are hardware timers that can already do this with minimal
> work. On some less-capable CPUs, it may be lots harder, but if you
> aren't doing performance measurement, you don't need it. So I suggest
> that mandating a 64 bit API for some of the processors (68K comes to
> mind) is not really a good idea. It seems counter to the elegant
> simplicity of the rest of u-boot to stick a 64 bit requirement on
> timestamps used to determine if the boot delay is expired.
I can only FULLY agree here !!!
Lets just keep the current functions udelay(us) and u32 get_timer(), the
latter maybe without parameter. Remove all *masked() and *reset() functions
and lets change the timeout values used in code that also NIOS uses to
be 20ms more than the hardware requires. It does not really matter if a
*timeout* of 20ms is blown up to 40ms.
Reinhard
More information about the U-Boot
mailing list