public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Mike Frysinger <vapier@gentoo.org>
To: u-boot@lists.denx.de
Subject: [U-Boot] core ticks/timer code
Date: Tue, 31 Mar 2009 05:13:07 -0400	[thread overview]
Message-ID: <200903310513.09082.vapier@gentoo.org> (raw)
In-Reply-To: <20090331081706.GA28787@game.jcrosoft.org>

On Tuesday 31 March 2009 04:17:06 Jean-Christophe PLAGNIOL-VILLARD wrote:
> On 21:30 Fri 27 Mar     , Mike Frysinger wrote:
> > the Blackfin core tick/timer code has been around since the start of the
> > original port, but i'm not sure it's entirely correct.  some common code
> > that uses timers seems to be misbehaving in that the timeout is pretty
> > much immediate.  makes me think that we've spent time on making udelay()
> > work, but then just glossed over the rest.
> >
> > unfortunately, there doesnt seem to be any docs on what exactly these
> > functions do so it's hard for me to verify/change any of it.
> >
> > my understanding is that:
> >  - get_ticks - return some notion of "cpu ticks"
> >  - get_tbclk - return number of "cpu ticks" that elapse in one second
> >  - timer_init - setup a core timer
> >  - get_timer(x) - not really sure what this is supposed to represent, or
> > how "x" is used
> >  - reset_timer - reset core timer to 0
> >  - CONFIG_SYS_HZ - no idea how this relates to ticks/timer in U-Boot as
> > in the Linux world, this is the core timer (scheduler) frequency (how
> > many times to execute per second)
>
> I've take a look on the current timer API and I've a lot of limitation on
> it as example on bitbanging we can not generate a clock over 200Khz or near
> as you said the API is dark
>
> 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.

> 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.
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
Url : http://lists.denx.de/pipermail/u-boot/attachments/20090331/3752280a/attachment-0001.pgp 

  reply	other threads:[~2009-03-31  9:13 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-03-28  1:30 [U-Boot] core ticks/timer code Mike Frysinger
2009-03-28  7:07 ` Dirk Behme
2009-03-31  1:10   ` Mike Frysinger
2009-03-31 11:41     ` Scott McNutt
2009-03-31 15:48       ` Wolfgang Denk
2009-03-31 21:25         ` Scott Wood
2009-03-31 21:27           ` Wolfgang Denk
2009-04-02 12:38             ` Detlev Zundel
2009-04-02 13:09               ` Scott McNutt
2009-03-31 20:46   ` Wolfgang Denk
2009-03-31  8:17 ` Jean-Christophe PLAGNIOL-VILLARD
2009-03-31  9:13   ` Mike Frysinger [this message]
2009-03-31 10:28     ` Wolfgang Denk
2009-03-31 11:25       ` Mike Frysinger
2009-03-31 11:41         ` Jean-Christophe PLAGNIOL-VILLARD
2009-03-31 15:55           ` Dirk Behme
2009-04-02 19:16             ` Ladislav Michl
2009-04-02 21:18               ` Graeme Russ
2009-04-04 21:35                 ` Wolfgang Denk
2009-03-31 15:46         ` Wolfgang Denk
2009-03-31 11:39       ` Jean-Christophe PLAGNIOL-VILLARD
2009-03-31 15:49         ` Wolfgang Denk
2009-03-31 21:32           ` Scott Wood
2009-04-04 21:14             ` Wolfgang Denk
2009-04-06 19:12               ` Scott Wood
2009-04-06 19:43                 ` Wolfgang Denk
2009-03-31 20:43 ` Wolfgang Denk

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200903310513.09082.vapier@gentoo.org \
    --to=vapier@gentoo.org \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox