[PATCH v2 9/9] bsps/leon3: Use DSU time tag for GR712RC
Martin Åberg
maberg at gaisler.com
Thu Oct 19 11:14:51 UTC 2023
OK, but please see the comment below.
On 2023-09-21 17:19, Sebastian Huber wrote:
> Update #4954.
> ---
> bsps/sparc/leon3/start/cpucounter.c | 62 ++++++++++++++++++++--
> spec/build/bsps/sparc/leon3/grp.yml | 2 +
> spec/build/bsps/sparc/leon3/optdsubase.yml | 24 +++++++++
> 3 files changed, 84 insertions(+), 4 deletions(-)
> create mode 100644 spec/build/bsps/sparc/leon3/optdsubase.yml
>
> diff --git a/bsps/sparc/leon3/start/cpucounter.c b/bsps/sparc/leon3/start/cpucounter.c
> index db4f566021..35db839cd4 100644
> --- a/bsps/sparc/leon3/start/cpucounter.c
> +++ b/bsps/sparc/leon3/start/cpucounter.c
> @@ -77,7 +77,57 @@ RTEMS_ALIAS(_CPU_Counter_read) uint32_t _SPARC_Counter_read_ISR_disabled(void);
>
> #define LEON3_GET_TIMECOUNT_INIT leon3_timecounter_get_processor_up_counter
>
> -#else /* !LEON3_HAS_ASR_22_23_UP_COUNTER */
> +#elif defined(LEON3_DSU_BASE)
> +
> +/*
> + * In general, using the Debug Support Unit (DSU) is not recommended. Before
> + * you use it, check that it is available in flight models and that the time
> + * tag register is implemented in radiation hardened flip-flops. For the
> + * GR712RC, this is the case.
> + */
> +
> +/* This value is specific to the GR712RC */
> +#define LEON3_DSU_TIME_TAG_ZERO_BITS 2
Yes the GR712RC is an exception in that the DSU timetag counter can be
used. The comment (also in optdsubase.yml) is appropriate.
Implementation is OK.
I would recommend to rework the symbol LEON3_DSU_BASE into something
less generic, so that this is not activated by mistake. For example
"LEON3_USE_GR712RC_DSU_COUNTER", or use an additional condition like "&&
defined(RTEMS_BSP_GR712RC)". Another option would be to "#error" out if
building a non-GR712RC BSP.
--
Best regards,
Martin Åberg
Software Engineer
Frontgrade Gaisler
martin.aberg at gaisler.com
Frontgrade Gaisler AB, Kungsgatan 12, SE-411 19 GÖTEBORG, Sweden.
+46 (0) 31 775 8650, www.gaisler.com
More information about the devel
mailing list