summaryrefslogtreecommitdiffstats
path: root/bsps/sparc/leon3/start
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2021-07-16 11:32:37 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2023-07-14 12:21:33 +0200
commitde278269ac41480d34559abf62d5aa262f1925d2 (patch)
treeffa134e5ad56bf463738f51da62584a8c466773f /bsps/sparc/leon3/start
parentbsp/leon3: Add LEON3_IRQAMP_PROBE_TIMESTAMP (diff)
downloadrtems-de278269ac41480d34559abf62d5aa262f1925d2.tar.bz2
bsp/leon3: Add LEON3_HAS_ASR_22_23_UP_COUNTER
Diffstat (limited to 'bsps/sparc/leon3/start')
-rw-r--r--bsps/sparc/leon3/start/cpucounter.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/bsps/sparc/leon3/start/cpucounter.c b/bsps/sparc/leon3/start/cpucounter.c
index 18fc8099f2..d09dbe651b 100644
--- a/bsps/sparc/leon3/start/cpucounter.c
+++ b/bsps/sparc/leon3/start/cpucounter.c
@@ -68,6 +68,7 @@ static void leon3_counter_use_irqamp_timestamp(
}
#endif
+#if !defined(LEON3_HAS_ASR_22_23_UP_COUNTER)
static void leon3_counter_use_gptimer(SPARC_Counter *counter, gptimer *gpt)
{
gptimer_timer *timer;
@@ -88,19 +89,25 @@ static void leon3_counter_use_gptimer(SPARC_Counter *counter, gptimer *gpt)
(grlib_load_32(&gpt->sreload) + 1);
#endif
}
+#endif
static void leon3_counter_initialize(void)
{
#if defined(LEON3_IRQAMP_PROBE_TIMESTAMP)
irqamp_timestamp *irqmp_ts;
#endif
+#if !defined(LEON3_HAS_ASR_22_23_UP_COUNTER)
gptimer *gpt;
+#endif
SPARC_Counter *counter;
counter = &_SPARC_Counter_mutable;
leon3_up_counter_enable();
+#if defined(LEON3_HAS_ASR_22_23_UP_COUNTER)
+ leon3_counter_use_up_counter(counter);
+#else /* LEON3_HAS_ASR_22_23_UP_COUNTER */
if (leon3_up_counter_is_available()) {
/* Use the LEON4 up-counter if available */
leon3_counter_use_up_counter(counter);
@@ -123,6 +130,7 @@ static void leon3_counter_initialize(void)
/* Fall back to the first GPTIMER if available */
leon3_counter_use_gptimer(counter, gpt);
}
+#endif /* LEON3_HAS_ASR_22_23_UP_COUNTER */
}
RTEMS_SYSINIT_ITEM(