210 Commits

Author SHA1 Message Date
Joel Sherrill
abc34bc5a8 testsuites/validation/tx-call-within-isr.c: Fix comparision warning.
GCC generated a warning for "comparison of distinct pointer types
lacks a cast [-Wcompare-distinct-pointer-types]." Added a cast to
fix this.
2025-07-24 17:51:27 -05:00
Sebastian Huber
7d5c08db80 validation: Check bootloader L2C settings
Update #4925.
2024-11-20 15:08:04 +00:00
Sebastian Huber
7ff3438cba validation: Test thread priority change detail
Test the proper serialization of explicit thread priority changes (for
example rtems_task_set_priority()) and thread priority changes carried
out by thread queues (locking protocols such as priority inheritance).

With RTEMS_DEBUG enabled, the new test case fails with an assertion.  It
is fixed in a follow up commit.

Update #5159.
2024-11-20 02:32:38 +01:00
Sebastian Huber
04f263ee82 validation: Add ticket lock helpers
Update #5159.
2024-11-20 02:32:11 +01:00
Sebastian Huber
f7b04e72f8 validation: Clarify SMP EDF test case
Update #3716.
2024-11-14 01:33:24 +01:00
Sebastian Huber
2aa921c3be validation: Fix synchronization issue 2024-09-19 04:35:20 +02:00
Sebastian Huber
1119981e7c tests: Enable ISR in fatal extensions
Fix code locations left over by commit
3332e54772.

Update #5067.
2024-09-19 04:34:38 +02:00
Sebastian Huber
3332e54772 score: Disable ISR for fatal extensions
Update #5067.
2024-08-23 14:54:37 +00:00
Sebastian Huber
e80883b406 score: Simplify _Terminate()
In _Terminate(), everything after invoking the fatal extensions is essentially
dead code.  Simplify this code block and provide a reasonable safe fall-back
for badly configured applications.  Just disable masked interrupts and execute
an idle loop.

Update #5067.
2024-08-23 14:54:37 +00:00
Sebastian Huber
89e795a42a validation: Fix bad thread dispatch validation
Where the robust thread dispatching is disabled, the
ISRDisabledOnDemandThreadDispatchTask() has to exit.

Update #3716.
2024-07-05 21:16:04 +00:00
Sebastian Huber
c847f4c101 validation: Fix comment
Update #5050.
2024-06-26 12:02:04 +02:00
Sebastian Huber
2953f4c6e3 rtems: Fatal error for rtems_cache_disable_data()
On some targets or configurations, the data cache cannot be disabled.
The data cache may be necessary to provide atomic operations.  In SMP
configurations, the data cache may be required to ensure data coherency.

Close #5050.
2024-06-25 03:58:34 +00:00
Sebastian Huber
19a30cfa07 validation: Fix cache invalidation test case
Make sure that the invalidated data cache lines are contained in the
buffer.
2024-06-25 03:58:34 +00:00
Sebastian Huber
050b61aab6 rtems: Add RTEMS_INTERRUPT_LOCK_NEEDS_OBJECT
If the RTEMS_INTERRUPT_LOCK_NEEDS_OBJECT define has a non-zero value,
then the interrupt lock operations require an object of type
rtems_interrupt_lock, otherwise no lock object is required.

This indication can be used to avoid the space overhead for lock objects
when they are not needed.  In this case, the lock operations will not
use a lock objects parameter.

Update #4957 and #5038.
2024-06-21 08:10:27 +02:00
Sebastian Huber
26a0bfcbc2 score: Improve _ISR_lock_Initialize()
Use do {} while (0) approach to avoid stray ';'.

Update #4957 and #5038.
2024-06-21 08:10:27 +02:00
Kinsey Moore
644041626d testsuites: Update lock init validation test
This test was broken by b031cf2b19 since
it expects the macros to evaluate to an empty string for non-SMP builds.
This updates the check for the new content.
2024-06-17 16:20:53 +00:00
Sebastian Huber
b89101116f validation: Improve interrupt controller tests
Update #3716.
2024-05-31 20:04:31 +00:00
Sebastian Huber
ab8817ca03 rtems: Add get/set interrupt priorities
Add directives to get and set the priority of an interrupt vector.

Implement the directives for the following BSP families:

* arm/lpc24xx
* arm/lpc32xx
* powerpc/mpc55xxevb
* powerpc/qoriq

Implement the directives for the following interrupt controllers:

* GICv2 and GICv3 (arm and aarch64)
* NVIC (arm)
* PLIC (riscv)

Update #5002.
2024-05-10 13:26:22 +00:00
Sebastian Huber
d7447b2a5e validation: Fix typo 2024-04-30 01:39:06 -04:00
Sebastian Huber
c594732cf2 validation: Improve bad thread dispatch validation 2024-04-30 01:39:06 -04:00
Sebastian Huber
087fc4351a bsps/xil-ttc: Improve clock driver
Make the clock driver parameters configurable.  Use the maximum counter
frequency to get the best time resolution.  Decouple the CPU counter from the
timecounter.  Make the tick catch up handling more robust.  Add a validation
test for the tick catch up.
2024-04-30 01:39:05 -04:00
Sebastian Huber
5a8e99546f bsps/xil-ttc: Add XIL_FATAL_TTC_IRQ_INSTALL 2024-04-30 01:39:05 -04:00
Sebastian Huber
7bc76732b0 validation: Fix powerpc in test case
The powerpc context switch restores the interrupt state.

Update #4955.
2024-04-30 01:39:05 -04:00
Matt Joyce
461f118ad0 validation/tc-sched-smp: Fix synchronization issue
Update #3716.
2024-03-11 14:37:55 +01:00
Sebastian Huber
93f927de26 tm27: Add TM27_INTERRUPT_VECTOR_ALTERNATIVE
The TM27 support may define TM27_INTERRUPT_VECTOR_ALTERNATIVE to provide
an alternative software generated interrupt request which is raised by
_TM27_Raise_alternative() and cleared by _TM27_Clear_alternative().
Both functions shall return an RTEMS status code.  This interrupt vector
may be used to test the interrupt controller support on targets which do
not provide generic software generated interrupts.

Update #3716.
2023-12-19 08:26:46 +01:00
Sebastian Huber
2e71bd08ba tm27: Add optional TM27_INTERRUPT_VECTOR_DEFAULT
Let the BSP define TM27_INTERRUPT_VECTOR_DEFAULT to more efficiently and
reliably get the TM27 default interrupt vector.

Update #3716.
2023-12-19 08:22:37 +01:00
Sebastian Huber
528f0e1947 validation: Add nested test case remarks
Close #4971.
2023-11-28 14:30:46 +01:00
Sebastian Huber
a180c138c7 validation: Remove superfluous includes
Update #3716.
2023-11-23 19:05:05 +01:00
Sebastian Huber
f279017882 validation: Improve MrsP validation
For uniprocessor configurations, the selection of
RTEMS_MULTIPROCESSOR_RESOURCE_SHARING results in a priority ceiling
mutex.

Build the MrsP validation tests only if RTEMS_SMP is enabled.

Update #3716.
2023-11-23 14:58:21 +01:00
Sebastian Huber
b414abcffe validation: Fix typos 2023-11-07 15:23:26 +01:00
Sebastian Huber
1a3125c0fe validation: Improve thread idle bodies test
Update #3716.
2023-11-07 15:23:26 +01:00
Alex White
f6b1840f70 validation: Add wrapped bsp_interrupt_dispatch for MicroBlaze
This adds a MicroBlaze-specific bsp_interrupt_dispatch wrapper which
fixes a linker error.
2023-10-27 09:40:58 -05:00
Sebastian Huber
43b74b142e validation: Support powerpc in test case
Update #4955.
2023-10-12 16:33:37 +02:00
Sebastian Huber
2cb3d75d9e validation: Test CPU performance
Measure the runtime of 1000 no-operation instructions.  This may help to
investigate runtime measurement variations which do not result from code
generation or source code changes.

The runtime measurement of a function which does nothing and just
returns gives an estimate of the measurement overhead.

Update #3716.
2023-10-12 14:10:57 +02:00
Sebastian Huber
1781b517dd validation: Check thread dispatching detail
Update #3716.
2023-10-12 14:10:45 +02:00
Sebastian Huber
5a21b1d133 validation: Compatibility for other RTEMS versions
Make some performance tests compatible to other RTEMS versions which do
not allow changing the priority of a task which owns a priority
inheritance mutex.

Update #3716.
2023-09-26 09:40:20 +02:00
Sebastian Huber
3fa6e41c4c validation: Simplify partition performance test
Do not depend on <rtems/chain.h>.

Update #3716.
2023-09-26 09:40:10 +02:00
Sebastian Huber
a986262380 validation: Check stack of interrupted context
Check the stack of the interrupted context during the multitasking
start.

Update #4955.
2023-09-26 08:08:06 +02:00
Sebastian Huber
5f8415b92e validation: Add RTEMS_DEFINE_GLOBAL_SYMBOL() test
Update #4953.
2023-09-14 14:25:49 +02:00
Sebastian Huber
d7a6e80398 tests: Improve RTEMS_DEFINE_GLOBAL_SYMBOL() tests
Use a symbol value relative to an existing symbol address to make the
test work on more code models.

Update #4953.
2023-09-13 07:45:35 +02:00
Sebastian Huber
9a975e5211 validation: Fix variable type
This fixes test failures on targets using short enums.

Update #3716.
2023-08-09 07:18:26 +02:00
Sebastian Huber
527af2b7f2 score: Move formatted I/O functions
These functions do not belong to an super core service.
2023-07-28 11:58:32 +02:00
Sebastian Huber
23c8a039b3 validation: Task entry return for idle threads
Update #3716.
2023-07-25 07:27:42 +02:00
Sebastian Huber
3a754a3de2 validation: Fix formatting 2023-07-21 09:32:33 +02:00
Sebastian Huber
610b54d83a testsuites: Remove stray ';' 2023-07-21 09:32:33 +02:00
Sebastian Huber
723c634d61 validation: Improve sparc/leon3 shutdown test
Test the shutdown halt separately from the SMP-specific shutdown
request.

Update #3716.
2023-07-21 08:20:11 +02:00
Sebastian Huber
e6de385a97 validation: Test sparc/leon3 BSP family
Update #3716.
2023-07-14 12:21:33 +02:00
Sebastian Huber
2ede66f1bc validation: grlib
Update #3716.
2023-07-14 12:21:33 +02:00
Joel Sherrill
6264b14804 Revert accidentally committed "Remove unused _IO_Relax"
Sebastian has agreed to move this out of score. I should have
removed this patch from my tree but accidentally committed it
with another patch.
2023-07-03 10:32:53 -05:00
Joel Sherrill
e49e8daf3d Remove unused _IO_Relax
The only use was in a test.
2023-07-03 10:11:58 -05:00