On 12:28 Tue 31 Mar , Wolfgang Denk wrote: > Dear Mike Frysinger, > > In message <200903310513.09082.vap...@gentoo.org> you wrote: > > > ... > > > I've in mind to partially import the clocksource linux API or create a new > > > U-Boot api devired from it's design > > > > the clocksource framework in linux sounds like extreme overkill for u-boot. > > where do you see realistic usage of more than one timer ? u-boot is pretty > > much a single threaded app that polls. That's why I've tell to partially import it as have done Sascha in u-boot V2 > > Correct. We definitely do not need the full capabilities of the Linux > framework. Any new implementation will be checked against the current > code, and memory foot print is something we will check carefully. > > OTOH, I think Sascha's u-boot-v2 uses code that was derived from the > Linux code, but in a pretty lean way. It may be interesting to check > there... I've take a look on it and it's the idea I've in mind to do also > > > > I'll propose a new design with the following Requierement > > > > > > Generic delay function implementation > > > - ndelay() > > > - udelay() > > > - mdelay() > > > > > > Generic helper > > > - khz2cycles() > > > - hz2cycles() > > > - cs2ns() > > > > > > Timer API > > > - timer_init() - setup the timer > > > - timer_reset() - reset the timer (use in case of overflow) > > > - get_ticks() - return the current ticks > > > - get_cycles() - return the ticks frequency in ns > > > > do you have real use cases here ? i'd actually propose the opposite: kill > > off > > the notion of "ticks", "cycles", and "hz". i dont think ndelay() is really > > necessary, and mdelay() is a simple macro on top of udelay(). that leaves > > us > > with really only the three functions we have today: timer_init(), > > get_timer(), > > and reset_timer(). we clarify that the function operates in terms of > > milliseconds and blam, it's all so simple now. Yes I've real case where I do need ndelay to generate high speed clock with a gpio and udelay is too slow.
we need get_cycles and get_ticks to calculate the udelay, mdelay and ndelay otherwise how can you known the ticks frequency? > > Agreed (except that we probably cannot completely throw away the > tick; IIRC there are cases in early startup when nothing else is > available yet). not necessarely you can activate the timer just after the cpu_init so normally you do not need any get_ticks. Best Regards, J. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot