Apparently, CONFIG_SYS_HZ must be 1000. Change this, and fix the timer driver to conform to this.
Signed-off-by: Stephen Warren <[email protected]> --- 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 -- 1.7.10.4 _______________________________________________ U-Boot mailing list [email protected] http://lists.denx.de/mailman/listinfo/u-boot

