summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2006-07-12 20:57:29 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2006-07-12 20:57:29 +0000
commitad6a58d00d24b1301aeb2f32f51d5e931134d8c2 (patch)
tree7852e6d3504666721919834cf8035835b42bc4ac /c/src/lib/libbsp
parent2006-07-12 RTEMS (diff)
downloadrtems-ad6a58d00d24b1301aeb2f32f51d5e931134d8c2.tar.bz2
2006-07-12 Jerry Needell <jerry.needell@unh.edu>
* amba/amba.c, clock/ckinit.c, include/amba.h, timer/timer.c: Search for the Timer Register when initializing the amba rather than before each potential use.
Diffstat (limited to 'c/src/lib/libbsp')
-rw-r--r--c/src/lib/libbsp/sparc/leon3/ChangeLog6
-rw-r--r--c/src/lib/libbsp/sparc/leon3/amba/amba.c15
-rw-r--r--c/src/lib/libbsp/sparc/leon3/clock/ckinit.c32
-rw-r--r--c/src/lib/libbsp/sparc/leon3/include/amba.h4
-rw-r--r--c/src/lib/libbsp/sparc/leon3/timer/timer.c2
5 files changed, 25 insertions, 34 deletions
diff --git a/c/src/lib/libbsp/sparc/leon3/ChangeLog b/c/src/lib/libbsp/sparc/leon3/ChangeLog
index 16181f8a9f..3a33f8a030 100644
--- a/c/src/lib/libbsp/sparc/leon3/ChangeLog
+++ b/c/src/lib/libbsp/sparc/leon3/ChangeLog
@@ -1,3 +1,9 @@
+2006-07-12 Jerry Needell <jerry.needell@unh.edu>
+
+ * amba/amba.c, clock/ckinit.c, include/amba.h, timer/timer.c: Search
+ for the Timer Register when initializing the amba rather than before
+ each potential use.
+
2006-07-12 Joel Sherrill <joel@OARcorp.com>
* Makefile.am, include/leon.h: Try to merge rest of 4.6 BSP changes.
diff --git a/c/src/lib/libbsp/sparc/leon3/amba/amba.c b/c/src/lib/libbsp/sparc/leon3/amba/amba.c
index 77a3f346eb..f9fd786771 100644
--- a/c/src/lib/libbsp/sparc/leon3/amba/amba.c
+++ b/c/src/lib/libbsp/sparc/leon3/amba/amba.c
@@ -93,6 +93,21 @@ void bsp_leon3_predriver_hook(void)
}
i++;
}
+ /* find GP Timer */
+ i = 0;
+ while (i < amba_conf.apbslv.devnr)
+ {
+ conf = amba_get_confword(amba_conf.apbslv, i, 0);
+ if ((amba_vendor(conf) == VENDOR_GAISLER) &&
+ (amba_device(conf) == GAISLER_GPTIMER)) {
+ iobar = amba_apb_get_membar(amba_conf.apbslv, i);
+ LEON3_Timer_Regs = (volatile LEON3_Timer_Regs_Map *)
+ amba_iobar_start(amba_conf.apbmst, iobar);
+ break;
+ }
+ i++;
+ }
+
}
diff --git a/c/src/lib/libbsp/sparc/leon3/clock/ckinit.c b/c/src/lib/libbsp/sparc/leon3/clock/ckinit.c
index 2be926d84d..bd6746bf17 100644
--- a/c/src/lib/libbsp/sparc/leon3/clock/ckinit.c
+++ b/c/src/lib/libbsp/sparc/leon3/clock/ckinit.c
@@ -60,37 +60,6 @@ void Clock_exit( void );
rtems_device_major_number rtems_clock_major = ~0;
rtems_device_minor_number rtems_clock_minor;
-/*
- * LEON3_Find_timer
- *
- * This method searches for the timer on the AMBA bus.
- *
- * Input parameters: NONE
- *
- * Output parameters: NONE
- *
- * Return values: NONE
- */
-
-void LEON3_Find_timer(void)
-{
- int i = 0;
- unsigned int iobar, conf;
-
- while (i < amba_conf.apbslv.devnr)
- {
- conf = amba_get_confword(amba_conf.apbslv, i, 0);
- if ((amba_vendor(conf) == VENDOR_GAISLER) &&
- (amba_device(conf) == GAISLER_GPTIMER)) {
- iobar = amba_apb_get_membar(amba_conf.apbslv, i);
- LEON3_Timer_Regs = (volatile LEON3_Timer_Regs_Map *)
- amba_iobar_start(amba_conf.apbmst, iobar);
- break;
- }
- i++;
- }
-
-}
/*
* Clock_isr
@@ -157,7 +126,6 @@ void Install_clock(
{
Clock_driver_ticks = 0;
- LEON3_Find_timer();
clkirq = (LEON3_Timer_Regs->status & 0xfc) >> 3;
diff --git a/c/src/lib/libbsp/sparc/leon3/include/amba.h b/c/src/lib/libbsp/sparc/leon3/include/amba.h
index fb98df9582..2701d44daa 100644
--- a/c/src/lib/libbsp/sparc/leon3/include/amba.h
+++ b/c/src/lib/libbsp/sparc/leon3/include/amba.h
@@ -10,7 +10,11 @@
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
+<<<<<<< amba.h
* $Id$
+=======
+ * $Id$
+>>>>>>> 1.3
*/
#define LEON3_IO_AREA 0xfff00000
diff --git a/c/src/lib/libbsp/sparc/leon3/timer/timer.c b/c/src/lib/libbsp/sparc/leon3/timer/timer.c
index 368b8cf53c..04ff40d5aa 100644
--- a/c/src/lib/libbsp/sparc/leon3/timer/timer.c
+++ b/c/src/lib/libbsp/sparc/leon3/timer/timer.c
@@ -27,12 +27,10 @@ rtems_boolean Timer_driver_Find_average_overhead;
rtems_boolean Timer_driver_Is_initialized = FALSE;
extern volatile LEON3_Timer_Regs_Map *LEON3_Timer_Regs;
-extern void LEON3_Find_timer(void);
void Timer_initialize()
{
- LEON3_Find_timer();
/*
* Timer runs long and accurate enough not to require an interrupt.