diff options
Diffstat (limited to 'bsps/sparc/leon3/clock/ckinit.c')
-rw-r--r-- | bsps/sparc/leon3/clock/ckinit.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/bsps/sparc/leon3/clock/ckinit.c b/bsps/sparc/leon3/clock/ckinit.c index 3bc35e1f64..daa289d2c0 100644 --- a/bsps/sparc/leon3/clock/ckinit.c +++ b/bsps/sparc/leon3/clock/ckinit.c @@ -45,6 +45,7 @@ #include <leon.h> #include <rtems/rtems/intr.h> #include <grlib/ambapp.h> +#include <grlib/irqamp.h> #include <rtems/score/profiling.h> #include <rtems/score/sparcimpl.h> #include <rtems/timecounter.h> @@ -179,11 +180,11 @@ static void bsp_clock_handler_install(rtems_interrupt_handler isr) static void leon3_clock_initialize(void) { - volatile struct irqmp_timestamp_regs *irqmp_ts; + irqamp_timestamp *irqmp_ts; volatile struct gptimer_regs *gpt; struct timecounter *tc; - irqmp_ts = &LEON3_IrqCtrl_Regs->timestamp[0]; + irqmp_ts = irqamp_get_timestamp_registers(LEON3_IrqCtrl_Regs); gpt = LEON3_Timer_Regs; tc = &leon3_tc; @@ -201,13 +202,13 @@ static void leon3_clock_initialize(void) tc->tc_frequency = leon3_up_counter_frequency(); #ifdef RTEMS_PROFILING - if (!irqmp_has_timestamp(irqmp_ts)) { + if (irqmp_ts == NULL) { bsp_fatal(LEON3_FATAL_CLOCK_NO_IRQMP_TIMESTAMP_SUPPORT); } #endif leon3_tc_tick = leon3_tc_tick_irqmp_timestamp_init; - } else if (irqmp_has_timestamp(irqmp_ts)) { + } else if (irqmp_ts != NULL) { /* Use the interrupt controller timestamp counter if available */ tc->tc_get_timecount = _SPARC_Get_timecount_up; tc->tc_frequency = ambapp_freq_get(ambapp_plb(), LEON3_Timer_Adev); @@ -218,7 +219,7 @@ static void leon3_clock_initialize(void) * At least one TSISEL field must be non-zero to enable the timestamp * counter. Use an arbitrary interrupt source. */ - irqmp_ts->control = 0x1; + grlib_store_32(&irqmp_ts->itstmpc, IRQAMP_ITSTMPC_TSISEL(1)); } else { #ifdef RTEMS_SMP /* |