Hi Stephen, On Thu, 21 Mar 2013 21:32:30 -0600, Stephen Warren <swar...@wwwdotorg.org> wrote:
> Apparently, CONFIG_SYS_HZ must be 1000. Change this, and fix the timer > driver to conform to this. > > Signed-off-by: Stephen Warren <swar...@wwwdotorg.org> > --- > arch/arm/cpu/arm1176/bcm2835/timer.c | 13 +++++++++---- > include/configs/rpi_b.h | 2 +- > 2 files changed, 10 insertions(+), 5 deletions(-) > > diff --git a/arch/arm/cpu/arm1176/bcm2835/timer.c > b/arch/arm/cpu/arm1176/bcm2835/timer.c > index d232d7e..f550020 100644 > --- a/arch/arm/cpu/arm1176/bcm2835/timer.c > +++ b/arch/arm/cpu/arm1176/bcm2835/timer.c > @@ -23,12 +23,17 @@ int timer_init(void) > return 0; > } > > -ulong get_timer(ulong base) > +ulong get_timer_us(void) > { > struct bcm2835_timer_regs *regs = > (struct bcm2835_timer_regs *)BCM2835_TIMER_PHYSADDR; > > - return readl(®s->clo) - base; > + return readl(®s->clo); > +} > + > +ulong get_timer(ulong base) > +{ > + return (get_timer_us() / 1000) - base; > } > > unsigned long long get_ticks(void) > @@ -46,10 +51,10 @@ void __udelay(unsigned long usec) > ulong endtime; > signed long diff; > > - endtime = get_timer(0) + usec; > + endtime = get_timer_us() + usec; > > do { > - ulong now = get_timer(0); > + ulong now = get_timer_us(); > diff = endtime - now; > } while (diff >= 0); > } > diff --git a/include/configs/rpi_b.h b/include/configs/rpi_b.h > index 3d55d36..c18b35b 100644 > --- a/include/configs/rpi_b.h > +++ b/include/configs/rpi_b.h > @@ -31,7 +31,7 @@ > #define CONFIG_MACH_TYPE MACH_TYPE_BCM2708 > > /* Timer */ > -#define CONFIG_SYS_HZ 1000000 > +#define CONFIG_SYS_HZ 1000 > > /* Memory layout */ > #define CONFIG_NR_DRAM_BANKS 1 Is this a fix to some known issue or bug? Amicalement, -- Albert. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot