From 6db176a78c7d1e0dc58c1224adf4b28badbc1908 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Fri, 16 Jul 2021 11:18:14 +0200 Subject: bsp/leon3: Add LEON3_GPTIMER_BASE --- bsps/sparc/leon3/include/bsp/leon3.h | 4 ++++ bsps/sparc/leon3/start/amba.c | 4 ++++ spec/build/bsps/sparc/leon3/grp.yml | 2 ++ spec/build/bsps/sparc/leon3/optgptimerbase.yml | 24 ++++++++++++++++++++++++ 4 files changed, 34 insertions(+) create mode 100644 spec/build/bsps/sparc/leon3/optgptimerbase.yml diff --git a/bsps/sparc/leon3/include/bsp/leon3.h b/bsps/sparc/leon3/include/bsp/leon3.h index 852d6970ce..6c139bdaed 100644 --- a/bsps/sparc/leon3/include/bsp/leon3.h +++ b/bsps/sparc/leon3/include/bsp/leon3.h @@ -269,7 +269,11 @@ static inline uint32_t bsp_irq_fixup( uint32_t irq ) /** * @brief This pointer provides the GPTIMER register block address. */ +#if defined(LEON3_GPTIMER_BASE) +#define LEON3_Timer_Regs ((gptimer *) LEON3_GPTIMER_BASE) +#else extern gptimer *LEON3_Timer_Regs; +#endif /** * @brief This pointer provides the GPTIMER device information block. diff --git a/bsps/sparc/leon3/start/amba.c b/bsps/sparc/leon3/start/amba.c index 5afc80d599..d3254e3f0a 100644 --- a/bsps/sparc/leon3/start/amba.c +++ b/bsps/sparc/leon3/start/amba.c @@ -100,8 +100,10 @@ RTEMS_SYSINIT_ITEM( irqamp *LEON3_IrqCtrl_Regs; struct ambapp_dev *LEON3_IrqCtrl_Adev; +#if !defined(LEON3_GPTIMER_BASE) gptimer *LEON3_Timer_Regs; struct ambapp_dev *LEON3_Timer_Adev; +#endif /* * amba_initialize @@ -147,6 +149,7 @@ static void amba_initialize(void) LEON3_IrqCtrl_Regs += icsel; } +#if !defined(LEON3_GPTIMER_BASE) /* find GP Timer */ adev = (void *)ambapp_for_each(plb, (OPTIONS_ALL|OPTIONS_APB_SLVS), VENDOR_GAISLER, GAISLER_GPTIMER, @@ -170,6 +173,7 @@ static void amba_initialize(void) if (leon3_timer_prescaler) grlib_store_32(&LEON3_Timer_Regs->sreload, leon3_timer_prescaler); } +#endif } RTEMS_SYSINIT_ITEM( diff --git a/spec/build/bsps/sparc/leon3/grp.yml b/spec/build/bsps/sparc/leon3/grp.yml index ce9e2ac1c8..61a5540638 100644 --- a/spec/build/bsps/sparc/leon3/grp.yml +++ b/spec/build/bsps/sparc/leon3/grp.yml @@ -36,6 +36,8 @@ links: uid: objsmp - role: build-dependency uid: optapbuartbase +- role: build-dependency + uid: optgptimerbase - role: build-dependency uid: optconirq - role: build-dependency diff --git a/spec/build/bsps/sparc/leon3/optgptimerbase.yml b/spec/build/bsps/sparc/leon3/optgptimerbase.yml new file mode 100644 index 0000000000..6d414fb6bb --- /dev/null +++ b/spec/build/bsps/sparc/leon3/optgptimerbase.yml @@ -0,0 +1,24 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de) +actions: +- get-integer: null +- format-and-define: null +build-type: option +default: null +default-by-family: [] +default-by-variant: +- value: 0x80000300 + variants: + - sparc/gr712rc +- value: 0xff908000 + variants: + - sparc/gr740 +enabled-by: true +format: '{:#010x}' +links: [] +name: LEON3_GPTIMER_BASE +description: | + This option defines the base address of the GPTIMER register block used by + the clock driver. +type: build -- cgit v1.2.3