Commit Graph

28 Commits

Author SHA1 Message Date
Sebastian Huber
5b0e355ed7 bsps: Move declarations to <bsp/irq-generic.h>
Move declarations of bsp_interrupt_get_affinity() and
bsp_interrupt_set_affinity() to <bsp/irq-generic.h>.  Canonicalize the
<bsp/irq.h> includes.

Implement bsp_interrupt_get_affinity() and bsp_interrupt_set_affinity() only if
needed (usually RTEMS_SMP).

Provide stub implementations for i386 to fix build errors.
2024-03-27 20:20:38 +01:00
Sebastian Huber
1eed6f8bfc bsps: Avoid unused argument in clock interrupt
Pass the parameter of the clock interrupt handler to
Clock_driver_support_at_tick() and Clock_driver_timecounter_tick().  This makes
it possible to use the interrupt handler argument in clock drivers.

Use the interrupt handler provided by Clock_driver_support_install_isr() to
avoid local delarations of Clock_isr().

Update #4862.
2024-03-20 16:34:09 +01:00
Sebastian Huber
abb2f8bd66 bsps/leon3: Use custom CPU counter implementation
Merge the timecounter and CPU counter support for the leon3 BSP family.
Remove now unused functions from the CPU counter support of the erc32
and leon3 BSPs.

Update #4954.
2023-10-20 11:16:54 +02:00
Sebastian Huber
ff533cec9d bsps/leon3: Simplify clock and CPU counter
Share the timecounter instance between the clock and the CPU counter.
This greatly simplifies the clock driver since we have to do the device
selection only in one place, the CPU counter support.

Update #4954.
2023-10-20 11:16:54 +02:00
Sebastian Huber
3f03a6d2ef bsps/leon3: Make GPTIMER fall back mandatory
Using the auto reload counter which generates the clock ticks for the
timecounter or CPU counter is quite difficult and only works in
uniprocessor configurations.

Update #4954.
2023-10-20 11:16:54 +02:00
Sebastian Huber
b6dc4b4707 sparc: Move CPU counter implementation
Enable a BSP-specific CPU counter implementation.

Update #4954.
2023-10-20 11:16:54 +02:00
Sebastian Huber
8fe0fc4721 bsps/leon3: Optional IRQ(A)MP timestamp support
This is necessary to run the tests on SIS with profiling enabled.

Update #4954.
2023-10-20 11:16:53 +02:00
Frank Kühndel
3e1521eea1 bsps/sparc: Add files to Doxygen groups
Update #3707.
2023-07-26 07:18:29 +02:00
Sebastian Huber
63626a5d2e bsp/leon3: Enable up-counter conditionally 2023-07-14 12:21:33 +02:00
Sebastian Huber
1d1c0e5d9a bsp/leon3: Add LEON3_PROBE_ASR_22_23_UP_COUNTER 2023-07-14 12:21:33 +02:00
Sebastian Huber
de278269ac bsp/leon3: Add LEON3_HAS_ASR_22_23_UP_COUNTER 2023-07-14 12:21:33 +02:00
Sebastian Huber
3f1186fd07 bsp/leon3: Add LEON3_IRQAMP_PROBE_TIMESTAMP 2023-07-14 12:21:33 +02:00
Sebastian Huber
ac9c55b017 bsp/leon3: LEON3_PLB_FREQUENCY_DEFINED_BY_GPTIMER 2023-07-14 12:21:33 +02:00
Sebastian Huber
d85c505ab0 bsp/leon3: Use new GPTIMER register block API 2023-07-14 12:21:33 +02:00
Sebastian Huber
c77a20e85b bsp/leon3: Use new IRQ(A)MP register block API 2023-07-14 12:21:33 +02:00
Sebastian Huber
32ff60293b bsp/leon3: Move and simplify bsp_irq_fixup() 2023-07-14 12:21:33 +02:00
Sebastian Huber
bcef89f236 Update company name
The embedded brains GmbH & Co. KG is the legal successor of embedded
brains GmbH.
2023-05-20 11:05:26 +02:00
Daniel Cederman
e01e499490 bsps/sparc: Change license to BSD-2 for files with Gaisler copyright
This patch changes the license to BSD-2 for all source files where the
copyright is held by Aeroflex Gaisler, Cobham Gaisler, or Gaisler Research.
Some files also includes copyright right statements from OAR and/or
embedded Brains in addition to Gaisler.

Updates #3053.
2022-11-14 10:59:44 +01:00
Sebastian Huber
6318154199 bsp/leon3: Use interrupt entry for Clock Driver
Using rtems_interrupt_entry_install() instead of
rtems_interrupt_handler_install() avoids a dependency on the dynamic memory
allocation.
2021-12-13 07:32:58 +01:00
Sebastian Huber
2c07f24af2 grlib: Add ambapp_plb()
Replace the global variable ambapp_plb with a function to allow an automatic on
demand initialization.
2021-06-17 12:58:33 +02:00
Sebastian Huber
c44ab8984e bsp/leon3: Fix incompatible function types
This fix relates to a Coverity issue (PW.INCOMPATIBLE_PARAM).
2021-02-01 06:22:20 +01:00
Sebastian Huber
e1a0e0c308 grlib: Add and use irqmp_has_timestamp()
Replace leon3_irqmp_has_timestamp() with irqmp_has_timestamp() and move
it to grlib.h.

Close #4128.
2020-10-10 14:00:37 +02:00
Sebastian Huber
f9219db2a9 rtems: Add rtems_scheduler_get_processor_maximum()
Add rtems_scheduler_get_processor_maximum() as a replacement for
rtems_get_processor_count(). The rtems_get_processor_count() is a bit
orphaned. Adopt it by the Scheduler Manager. The count is also
misleading, since the processor set may have gaps and the actual count
of online processors may be less than the value returned by
rtems_get_processor_count().

Update #3732.
2019-04-09 08:06:46 +02:00
Sebastian Huber
3172092576 grlib: Move header files
Update #3678.
2019-01-22 12:46:28 +01:00
Sebastian Huber
0a1f5df98e Simplify _CPU_Counter_difference()
In order to simplify the use of CPU counter values it is beneficial to
have monotonic increasing values within the range of the CPU counter
ticks data type, e.g. 32-bit unsigned integer.  This eases the use of
CPU counter timestamps in external tools which do not know the details
of the CPU counter hardware.  The CPU counter is the fastest way to get
a time on an RTEMS system.

Such a CPU counter may be also used as the timecounter.  Use it on SPARC
for this purpose to simplify the clock drivers.

Update #3456.
2018-12-07 14:22:01 +01:00
Daniel Hellstrom
d952d733fe leon3: fix warning when SMP is enabled 2018-09-20 12:48:32 +02:00
Sebastian Huber
7ee5931393 Remove Clock_driver_support_shutdown_hardware()
The aim of this clock driver hook was to stop clock tick interrupts at
some late point in the exit() procedure.

The use of atexit() pulls in malloc() which pulls in errno. It is
incompatible with the intention of the
CONFIGURE_DISABLE_NEWLIB_REENTRANCY configuration option.

The exit() function must be called from thread context, so accompanied
clock tick interrupts should cause no harm.  On the contrary, someone
may assume a normal operating system operation, e.g. working timeouts.

Remove the Clock_driver_support_shutdown_hardware() clock driver hook.

Close #3436.
2018-06-27 08:58:16 +02:00
Sebastian Huber
7632906fc2 bsps: Move clock drivers to bsps
This patch is a part of the BSP source reorganization.

Update #3285.
2018-04-20 09:57:01 +02:00