This patch adds the reset_timer() function (needed by nand_base.c) and modifies the get_timer_masked() to work in the same way as the omap24xx function.
Signed-off-by: Magnus Lilja <[EMAIL PROTECTED]> --- cpu/arm1136/mx31/interrupts.c | 22 ++++++++++++++++++---- 1 files changed, 18 insertions(+), 4 deletions(-) diff --git a/cpu/arm1136/mx31/interrupts.c b/cpu/arm1136/mx31/interrupts.c index 21b77a5..b173919 100644 --- a/cpu/arm1136/mx31/interrupts.c +++ b/cpu/arm1136/mx31/interrupts.c @@ -38,6 +38,9 @@ #define GPTCR_CLKSOURCE_32 (4<<6) /* Clock source */ #define GPTCR_TEN (1) /* Timer enable */ +static ulong timestamp; +static ulong lastinc; + /* nothing really to do with interrupts, just starts up a counter. */ int interrupt_init (void) { @@ -54,14 +57,25 @@ int interrupt_init (void) void reset_timer_masked (void) { - GPTCR = 0; - GPTCR = GPTCR_CLKSOURCE_32 | GPTCR_TEN; /* Freerun Mode, PERCLK1 input */ + lastinc = GPTCNT; + timestamp = 0; +} + +void reset_timer(void) +{ + reset_timer_masked(); } ulong get_timer_masked (void) { - ulong val = GPTCNT; - return val; + ulong now = GPTCNT; + + if (now >= lastinc) + timestamp += (now - lastinc); + else + timestamp += (0xFFFFFFFF - lastinc) + now; + lastinc = now; + return timestamp; } ulong get_timer (ulong base) -- 1.5.2.4 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot