diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-07-16 11:18:14 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2022-10-14 14:58:22 +0200 |
commit | 2bdad1de6525d585ae248b7f2a14be348f195103 (patch) | |
tree | 0673af700e2d0c957a0c4b567e61d038b2cb1b08 | |
parent | 974f1f7b30404df67aaa136cae8fee8c20f7ad5b (diff) |
bsp/leon3: Add LEON3_GPTIMER_BASE
-rw-r--r-- | bsps/sparc/leon3/include/bsp/leon3.h | 4 | ||||
-rw-r--r-- | bsps/sparc/leon3/start/amba.c | 4 | ||||
-rw-r--r-- | spec/build/bsps/sparc/leon3/grp.yml | 2 | ||||
-rw-r--r-- | spec/build/bsps/sparc/leon3/optgptimerbase.yml | 24 |
4 files changed, 34 insertions, 0 deletions
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 @@ -37,6 +37,8 @@ links: - role: build-dependency uid: optapbuartbase - role: build-dependency + uid: optgptimerbase +- role: build-dependency uid: optconirq - role: build-dependency uid: optleon3smp 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 |