[PATCH] grlib: Add and use irqmp_has_timestamp()

Joel Sherrill joel at rtems.org
Thu Oct 8 13:27:53 UTC 2020


I will push my fatal patch. Yours compiles but I see these warnings which
appear to be related:

 make -j >/dev/null
../../../../../../../../rtems/c/src/lib/libbsp/riscv/griscv/../../../../../../bsps/riscv/griscv/clock/clockdrv.c:
In function 'grlib_clock_initialize':
../../../../../../../../rtems/c/src/lib/libbsp/riscv/griscv/../../../../../../bsps/riscv/griscv/clock/clockdrv.c:174:10:
warning: implicit declaration of function 'grlib_irqmp_has_timestamp'
[-Wimplicit-function-declaration]
  174 |     if (!grlib_irqmp_has_timestamp(irqmp_ts)) {
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~
../../../../../../../../rtems/c/src/lib/libbsp/riscv/griscv/../../../../../../bsps/riscv/griscv/clock/clockdrv.c:174:10:
warning: nested extern declaration of 'grlib_irqmp_has_timestamp'
[-Wnested-externs]
../../../../../../../../rtems/c/src/lib/libbsp/riscv/griscv/../../../../../../bsps/shared/dev/flash/am29lv160.c:
In function 'rtems_am29lv160_write_data_8':

On Thu, Oct 8, 2020 at 8:09 AM Joel Sherrill <joel at rtems.org> wrote:

> Looks OK to push.
>
> Do you want to cite the ticket number for the build failures in the
> comments?
>
> Should I go ahead and push the fatal error patch or will you do that?
>
> Is this needed on 5? I thought these all built on 5 but could be wrong.
>
> On Thu, Oct 8, 2020 at 12:52 AM Sebastian Huber <
> sebastian.huber at embedded-brains.de> wrote:
>
>> Replace leon3_irqmp_has_timestamp() with irqmp_has_timestamp() and move
>> it to grlib.h.
>>
>> Close #4128.
>> ---
>>  bsps/riscv/griscv/clock/clockdrv.c     | 2 +-
>>  bsps/shared/grlib/btimer/tlib_ckinit.c | 2 +-
>>  bsps/sparc/leon3/clock/ckinit.c        | 4 ++--
>>  bsps/sparc/leon3/include/leon.h        | 7 -------
>>  bsps/sparc/leon3/start/cpucounter.c    | 2 +-
>>  5 files changed, 5 insertions(+), 12 deletions(-)
>>
>> diff --git a/bsps/riscv/griscv/clock/clockdrv.c
>> b/bsps/riscv/griscv/clock/clockdrv.c
>> index c94c167fdf..4cf15fe4f8 100644
>> --- a/bsps/riscv/griscv/clock/clockdrv.c
>> +++ b/bsps/riscv/griscv/clock/clockdrv.c
>> @@ -171,7 +171,7 @@ static void grlib_clock_initialize(void)
>>    volatile struct irqmp_timestamp_regs *irqmp_ts =
>>      &GRLIB_IrqCtrl_Regs->timestamp[0];
>>
>> -    if (!grlib_irqmp_has_timestamp(irqmp_ts)) {
>> +    if (!irqmp_has_timestamp(irqmp_ts)) {
>>        bsp_fatal(GRLIB_FATAL_CLOCK_NO_IRQMP_TIMESTAMP_SUPPORT);
>>      }
>>  #endif
>> diff --git a/bsps/shared/grlib/btimer/tlib_ckinit.c
>> b/bsps/shared/grlib/btimer/tlib_ckinit.c
>> index 4f679984d8..5a34d97c00 100644
>> --- a/bsps/shared/grlib/btimer/tlib_ckinit.c
>> +++ b/bsps/shared/grlib/btimer/tlib_ckinit.c
>> @@ -126,7 +126,7 @@ static rtems_device_driver tlib_clock_find_timer(void)
>>      volatile struct irqmp_timestamp_regs *irqmp_ts;
>>
>>      irqmp_ts = &LEON3_IrqCtrl_Regs->timestamp[0];
>> -    if (leon3_irqmp_has_timestamp(irqmp_ts)) {
>> +    if (irqmp_has_timestamp(irqmp_ts)) {
>>        priv.ops = &ops_irqamp;
>>        return RTEMS_SUCCESSFUL;
>>      }
>> diff --git a/bsps/sparc/leon3/clock/ckinit.c
>> b/bsps/sparc/leon3/clock/ckinit.c
>> index f485123f6b..bf0c506ec0 100644
>> --- a/bsps/sparc/leon3/clock/ckinit.c
>> +++ b/bsps/sparc/leon3/clock/ckinit.c
>> @@ -176,13 +176,13 @@ static void leon3_clock_initialize(void)
>>      tc->tc_frequency = leon3_up_counter_frequency();
>>
>>  #ifdef RTEMS_PROFILING
>> -    if (!leon3_irqmp_has_timestamp(irqmp_ts)) {
>> +    if (!irqmp_has_timestamp(irqmp_ts)) {
>>        bsp_fatal(LEON3_FATAL_CLOCK_NO_IRQMP_TIMESTAMP_SUPPORT);
>>      }
>>  #endif
>>
>>      leon3_tc_tick = leon3_tc_tick_irqmp_timestamp_init;
>> -  } else if (leon3_irqmp_has_timestamp(irqmp_ts)) {
>> +  } else if (irqmp_has_timestamp(irqmp_ts)) {
>>      /* 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);
>> diff --git a/bsps/sparc/leon3/include/leon.h
>> b/bsps/sparc/leon3/include/leon.h
>> index afe0d91ca4..d25825c8e8 100644
>> --- a/bsps/sparc/leon3/include/leon.h
>> +++ b/bsps/sparc/leon3/include/leon.h
>> @@ -454,13 +454,6 @@ static inline uint32_t
>> leon3_get_data_cache_config_register(void)
>>    return leon3_get_system_register(0xc);
>>  }
>>
>> -static inline bool leon3_irqmp_has_timestamp(
>> -  volatile struct irqmp_timestamp_regs *irqmp_ts
>> -)
>> -{
>> -  return (irqmp_ts->control >> 27) > 0;
>> -}
>> -
>>  static inline uint32_t leon3_up_counter_low(void)
>>  {
>>    uint32_t asr23;
>> diff --git a/bsps/sparc/leon3/start/cpucounter.c
>> b/bsps/sparc/leon3/start/cpucounter.c
>> index 007bb6d8ec..1d96e3b221 100644
>> --- a/bsps/sparc/leon3/start/cpucounter.c
>> +++ b/bsps/sparc/leon3/start/cpucounter.c
>> @@ -43,7 +43,7 @@ static void leon3_counter_initialize(void)
>>      counter->read = _SPARC_Counter_read_asr23;
>>
>>      leon3_counter_frequency = leon3_up_counter_frequency();
>> -  } else if (leon3_irqmp_has_timestamp(irqmp_ts)) {
>> +  } else if (irqmp_has_timestamp(irqmp_ts)) {
>>      /* Use the interrupt controller timestamp counter if available */
>>      counter->read_isr_disabled = _SPARC_Counter_read_up;
>>      counter->read = _SPARC_Counter_read_up;
>> --
>> 2.26.2
>>
>> _______________________________________________
>> devel mailing list
>> devel at rtems.org
>> http://lists.rtems.org/mailman/listinfo/devel
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20201008/3472e147/attachment-0001.html>


More information about the devel mailing list