diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2006-04-24 16:58:41 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2006-04-24 16:58:41 +0000 |
commit | cadb5d1641059adb5bbef5900e2cefee653f2b74 (patch) | |
tree | 6353a9fe2f02c1b89b69e6cf55eef27d24710ce7 /c/src/lib/libbsp/sparc/leon3/timer/timer.c | |
parent | 2006-04-24 Joel Sherrill <joel@OARcorp.com> (diff) | |
download | rtems-cadb5d1641059adb5bbef5900e2cefee653f2b74.tar.bz2 |
2006-04-24 Jiri Gaisler <jiri@gaisler.com>
Edvin Catovic <edvin@gaisler.com>
PR bsps/972
* ChangeLog, Makefile.am, configure.ac, amba/amba.c, clock/ckinit.c,
console/Makefile.am, console/console.c, console/debugputs.c,
include/Makefile.am, include/amba.h, include/bsp.h, include/leon.h,
leon_smc91111/leon_smc91111.c, startup/bspstart.c, timer/timer.c,
tools/Makefile.am, wrapup/Makefile.am: Added Shared Memory Support
Driver. Added Leon Gaisler Research Ethernet support. Enhanced AMBA
bus support.
* console/debugprintf.c, console/spacewire.c, include/spacewire.h,
leon_greth/.cvsignore, leon_greth/Makefile.am,
leon_greth/leon_greth.c, shmsupp/.cvsignore, shmsupp/Makefile.am,
shmsupp/addrconv.c, shmsupp/getcfg.c, shmsupp/lock.c,
shmsupp/mpisr.c: New files.
Diffstat (limited to 'c/src/lib/libbsp/sparc/leon3/timer/timer.c')
-rw-r--r-- | c/src/lib/libbsp/sparc/leon3/timer/timer.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/c/src/lib/libbsp/sparc/leon3/timer/timer.c b/c/src/lib/libbsp/sparc/leon3/timer/timer.c index 805616e475..d9a0f8b6b3 100644 --- a/c/src/lib/libbsp/sparc/leon3/timer/timer.c +++ b/c/src/lib/libbsp/sparc/leon3/timer/timer.c @@ -22,6 +22,13 @@ #include <bsp.h> +extern rtems_configuration_table Configuration; + +#define LEON3_TIMER_INDEX \ + (Configuration.User_multiprocessing_table ? \ + (Configuration.User_multiprocessing_table)->maximum_nodes + \ + (Configuration.User_multiprocessing_table)->node - 1 : 1) + rtems_boolean Timer_driver_Find_average_overhead; rtems_boolean Timer_driver_Is_initialized = FALSE; @@ -36,12 +43,12 @@ void Timer_initialize() if (LEON3_Timer_Regs) { if ( Timer_driver_Is_initialized == FALSE ) { /* approximately 1 us per countdown */ - LEON3_Timer_Regs->reload_t1 = 0xffffff; - LEON3_Timer_Regs->value_t1 = 0xffffff; + LEON3_Timer_Regs->timer[LEON3_TIMER_INDEX].reload = 0xffffff; + LEON3_Timer_Regs->timer[LEON3_TIMER_INDEX].value = 0xffffff; } else { Timer_driver_Is_initialized = TRUE; } - LEON3_Timer_Regs->conf_t1 = LEON3_GPTIMER_EN | LEON3_GPTIMER_LD; + LEON3_Timer_Regs->timer[LEON3_TIMER_INDEX].conf = LEON3_GPTIMER_EN | LEON3_GPTIMER_LD; } } @@ -54,7 +61,7 @@ int Read_timer() rtems_unsigned32 total; if (LEON3_Timer_Regs) { - total = LEON3_Timer_Regs->value_t1; + total = LEON3_Timer_Regs->timer[LEON3_TIMER_INDEX].value; total = 0xffffff - total; @@ -63,7 +70,7 @@ int Read_timer() if ( total < LEAST_VALID ) return 0; /* below timer resolution */ - + return total - AVG_OVERHEAD; } return 0; |