On Thu, 7 Aug 2008, Jens Gehrlein wrote:

> Hi Guennadi,
> 
> Guennadi Liakhovetski schrieb:
> 
> > diff --git a/cpu/arm1176/s3c64xx/interrupts.c
> > b/cpu/arm1176/s3c64xx/interrupts.c
> [snip]
> > +void udelay(unsigned long usec)
> > +{
> > +   unsigned long long tmp;
> > +   ulong tmo;
> > +
> > +   tmo = (usec + 9) / 10;
> > +   tmp = get_ticks() + tmo;        /* get current timestamp */
> > +
> > +   while (get_ticks() < tmp)/* loop till event */
> > +            /*NOP*/;
> > +}
> 
> I tried to follow the interrupt init function, but it's difficult.
> What is the least possible delay with the udelay function?
> I remember that i.mx31 udelay cannot currently be below 30 microsseconds due
> to the low input clock. If someone uses udelay(1) in polling loops with
> timeout, the actual duration is much more longer than assumed.

Actually, the "/ 10" and this comment

        /*
         * We use the following scheme for the timer:
         * Prescaler is hard fixed at 167, divider at 1/4.
         * This gives at PCLK frequency 66MHz approx. 10us ticks
         * The timer is set to wrap after 100s, at 66MHz this obviously
         * happens after 10,000,000 ticks. A long variable can thus
         * keep values up to 40,000s, i.e., 11 hours. This should be
         * enough for most uses:-) Possible optimizations: select a
         * binary-friendly frequency, e.g., 1ms / 128. Also calculate
         * the prescaler automatically for other PCLK frequencies.
         */

shall make it clear, that the timer resolution is configured to 10us, 
which is also the minimum udelay. The timer could also do better, but then 
we get other disadvantages, e.g., shorter wrap-around time.

Thanks
Guennadi
---
Guennadi Liakhovetski, Ph.D.

DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80  Email: [EMAIL PROTECTED]

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
U-Boot-Users mailing list
U-Boot-Users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/u-boot-users

Reply via email to