Commit Graph

34601 Commits

Author SHA1 Message Date
Sebastian Huber
d61fbeda59 score: _Thread_queue_Surrender_priority_ceiling()
Do not use a direct thread dispatch in
_Thread_queue_Surrender_priority_ceiling() since it may be used in condition
variables using POSIX mutexes.

Close #4526.
2021-10-11 13:22:12 +02:00
Joel Sherrill
f6385b4edc libdl/rtl-mdreloc-h8300.c: Remove remnant of h8300 port
Updates #2452.
2021-10-08 10:44:44 -05:00
Sebastian Huber
3bb97a30b1 score: Always check queue in _Thread_Wait_cancel()
Commit 18c8a270c2 removed
_Thread_queue_Do_nothing_extract() so we have to check for a non-NULL
queue in all configurations.
2021-10-06 10:41:14 +02:00
Christian Mauderer
1fc3f17127 bsp/imx: Add cs_change support to SPI 2021-10-06 10:24:03 +02:00
Sebastian Huber
38c2147759 rtems: Set postponed jobs in rate-monotonic cancel
Set the postponed jobs count to zero in rtems_rate_monotonic_cancel() so that
rtems_rate_monotonic_get_status() returns a consistent status for inactive
periods.

Update #4511.
2021-10-06 08:46:21 +02:00
Sebastian Huber
226d0e9218 score: Optimize EDF SMP scheduler ops
The schedule operation is only called by rtems_task_mode().  It is
called if preempt mode of the executing thread changes from disabled to
enabled.  Since the EDF SMP scheduler does not support the disabled
preemption mode, the schedule operation is never called.
2021-10-06 08:37:50 +02:00
Sebastian Huber
344bb536a4 rtems: Generate <rtems/cpuuse.h>
Write the documentation from scratch.
2021-10-06 08:37:50 +02:00
Sebastian Huber
e9063644ae posix: Remove "RTEMS" from POSIX API group
Clarify group description.

Update #3706.
2021-10-06 08:37:50 +02:00
Sebastian Huber
8b762a88c1 scoe: Move workspace group definition
Define the group in the header file which is used by <rtems/confdefs.h>.

Update #3706.
2021-10-06 08:37:50 +02:00
Sebastian Huber
5a6f94da45 rtems: Add ASR implementation to existing group
Update #3706.
2021-10-06 08:37:50 +02:00
Sebastian Huber
a950c1355b score: Add Hash Handler to group
Update #3706.
2021-10-06 08:37:49 +02:00
Sebastian Huber
4c0b006fc0 rtems: Canonicalize Doxygen in <rtems/counter.h>
Update #3706.
2021-10-06 08:37:49 +02:00
Sebastian Huber
dba2e690bb rtems: Canonicalize Doxygen in <rtems/seterr.h>
Update #3706.
2021-10-06 08:37:49 +02:00
Zacchaeus Leung
4a5a41459a improve the format error reporting on i386 2021-10-04 17:33:18 -05:00
Alex White
772ffc0704 testsuites/fstests: Fix uninitialized utimbuf structs
The utimbuf structs in fsimfsconfig01 and fsimfsconfig02 were
being passed to utime uninitialized. This did not cause problems until
utime was changed to use utimensat behind the scenes. Now that
utimensat is called, the values of the utimbuf struct are checked, and
EINVAL is set for invalid values. The utimebuf structs in these tests
could contain invalid values since they are uninitialized.

By zero-initializing the utimbuf structs, we ensure that they pass the
checks in utimensat and that errno is set to the expected ENOTSUP.
2021-10-04 17:18:13 -05:00
Kinsey Moore
9c2cb68481 cpukit/aarch64: Use correct interrupt level types
All other architectures use uint32_t for interrupt levels and there is
no reason not to do so on AArch64.
2021-10-01 14:03:26 -05:00
Kinsey Moore
ccd1c5e560 cpukit/aarch64: Use correct context register sets
Context validation for AArch64 was ported from the ARM implementation
without a reinterpretation of the actual requirements. The spcontext01
test just happened to pass because the set of scratch registers in ARM
is a subset of the scratch registers in AArch64.
2021-10-01 12:52:41 -05:00
Sebastian Huber
61ef22bbeb score: Add Thread_queue_Deadlock_status
Replace the boolen return value with the new enum
Thread_queue_Deadlock_status.  This improves the code readability.
Improve documentation.  Shorten function names.
2021-10-01 13:19:38 +02:00
Sebastian Huber
82e2216713 score: Avoid dead code in thread queue surrender
For uniprocessor configurations, this patch removes dead code in the
_Thread_queue_Surrender() and _Thread_queue_Surrender_priority_ceiling()
functions.

Dead code is removed from _Thread_queue_Surrender_sticky().
2021-10-01 13:18:16 +02:00
Sebastian Huber
18c8a270c2 score: Remove _Thread_queue_Do_nothing_extract()
This function was unused.  It was a relict of the thread queue rework done
during the SMP support development.  In an early stage, the extract operation
was called with a NULL thread queue.  However, this is no longer the case.  The
extract operation is only called if we have a non-NULL thread queue.
2021-09-30 13:48:31 +02:00
Sebastian Huber
25f126e1c9 score: Regenerate <rtems/score/basedefs.h>
Reflect renamed specification item.
2021-09-30 07:31:58 +02:00
Sebastian Huber
99d5373b83 score: Add Doxygen group for <sys/lock.h> mutexes 2021-09-30 07:31:58 +02:00
Sebastian Huber
dde74af944 rtems: Adjust parameter names
Adjust parameter names to match with the declaration.  This avoid using
a name reserved by the C standard: "time".

Close #4035.
2021-09-30 07:29:57 +02:00
Sebastian Huber
abda5595f8 rtems: Justify integer conversions
Close #2548.
2021-09-30 07:29:57 +02:00
Sebastian Huber
3fe07115a0 score: Improve variable names in thread init 2021-09-22 18:31:46 +02:00
Sebastian Huber
c2f2404840 score: Simplify _Thread_Try_initialize()
Move a code block to its own new function
_Thread_Initialize_scheduler_and_wait_nodes().  Add comments.
2021-09-22 18:31:46 +02:00
Kinsey Moore
5f652cb27e cpukit: Add AArch64 SMP Support
This adds SMP support for AArch64 in cpukit and for the ZynqMP BSPs.
2021-09-21 08:58:32 -05:00
Kinsey Moore
670a5089e2 bsps/gicv2: Allow BSPs to define IRQ attributes
ARM's GICv2 is configurable and its attributes vary between
implementations including omission of specific interrupts. This allows
BSPs to accomodate those varying implementations with customized
attribute sets.
2021-09-21 08:58:32 -05:00
Kinsey Moore
5ffc01fb97 bsps/zynqmp: Use correct number of interrupts
GICv2 can support up to 1024 interrupts, but ZynqMP hardware is only
configured for 192 interrupts.
2021-09-21 08:58:31 -05:00
Kinsey Moore
e3971de417 testsuites/smpmulticast01: Enforce step ordering
The order in which step checks for 1 and 2 are not rigidly defined and
may actually occur in either order depending on how the threads execute.
This waits for the job to complete to enforce the existing ordering.
2021-09-21 08:58:31 -05:00
Kinsey Moore
3647725832 bsps/shared: Add PSCI SMP startup support
This adds the SMP function that supports spinup of additional CPU cores
using the ARM standard PSCI inteface. This interface is provided by QEMU
as well as ARM Trusted Firmware running in monitor mode (EL3) on ARMv7 and
AArch64 CPUs. This supports activation va SMC or HVC instructions
depending on BSP configuration.
2021-09-21 08:58:31 -05:00
Sebastian Huber
db8f598d56 build: Remove old build system
Close #3250.
Close #4081.
2021-09-21 07:39:09 +02:00
Sebastian Huber
04998451b9 arm/lpc24xx: Use common test definition file 2021-09-21 07:39:09 +02:00
Sebastian Huber
a6636d9957 libtest: Improve T_now_tick()
The T_now_tick() is a fall back time measurement using the CPU counter
in case no Clock Driver is configured.  Some CPU counter may overflow
during the test execution.  Accumulate the elapsed time to reduce the
chance of CPU counter overflows.
2021-09-21 07:39:09 +02:00
Sebastian Huber
cd198a5511 score: Remove unused default scheduler ops
If SMP support is enabled and the system has exactly one processor, then
it may use an uniprocessor scheduler.  The ask for help, reconsider help
request, and withdraw node operations can be NULL in this case, since
they are only used if a thread has at least one helping scheduler node.
At least two schedulers are required to get a helping node and each
scheduler involved must own at least one processor.  This is not
possible on a system with exactly one processor.
2021-09-21 07:39:09 +02:00
Sebastian Huber
3291b2a7d5 score: Ensure only one CPU if required
Issue the new fatal SMP error
SMP_FATAL_SCHEDULER_REQUIRES_EXACTLY_ONE_PROCESSOR if the system starts
with not exactly one processor and an uniprocessor scheduler is
configured.
2021-09-21 07:39:09 +02:00
Sebastian Huber
0036ddf1f6 score: Provide two thread pin/unpin defaults
The uniprocessor schedulers do not support systems with more than more
processors.  So they rivially support thread pinning and thus the
SMP_FATAL_SCHEDULER_PIN_OR_UNPIN_NOT_SUPPORTED cannot happen.

Add a second default implementation for SMP schedulers which do not
support thread pinning.

Change license to BSD-2-Clause according to file history and re-licensing
agreement.

Update #3053.
2021-09-21 07:39:09 +02:00
Sebastian Huber
59537c9648 score: SCHEDULER_OPERATION_DEFAULT_GET_SET_AFFINITY
Rename SCHEDULER_OPERATION_DEFAULT_GET_SET_AFFINITY in
SCHEDULER_DEFAULT_SET_AFFINITY_OPERATION.  Add Doxygen comment.
2021-09-21 07:39:09 +02:00
Sebastian Huber
92b9f656e1 score: SCHEDULER_OPERATION_DEFAULT_ASK_FOR_HELP
Rename SCHEDULER_OPERATION_DEFAULT_ASK_FOR_HELP in
SCHEDULER_DEFAULT_SMP_OPERATIONS.  Add a Doxygen comment.
2021-09-21 07:39:08 +02:00
Ryan Long
3951d4da6f pxcdevctl: Adjust for standard
psxdevctl is supposed to return the value in errno. Before, it was
returning -1 and setting errno. Changed the tests to reflect these
changes. Added code from RRADE's posix_devctl.c.

Closes #4506
2021-09-20 13:31:25 -05:00
Chris Johns
9e30a716a3 powerpc/motorola_powerpc: Map LibBSD bus space to the PCI base address 2021-09-19 10:08:25 +10:00
Sebastian Huber
dbb7c956e6 rtems: Fix message manager documentation
Correct the description of the ``count`` parameter of
rtems_message_queue_flush().

Update #4508.
2021-09-16 09:36:00 +02:00
Chris Johns
691d0edd34 arm/xilinx: Fix zynq-uart interrupt receive
- Trigger on a single character entering the RX FIFO

- Disable the RX timeout

- Send up to a FIFO full of data
2021-09-16 11:11:13 +10:00
Alex White
0490be70ee testsuites: Wrap putchar
The linker flag to wrap putchar was lost in translation from make to waf.
2021-09-16 11:11:13 +10:00
Sebastian Huber
1567d9279b rtems: Add header files to Doxygen groups 2021-09-15 13:56:42 +02:00
Sebastian Huber
79efc81a71 rtems: Move Doxygen group definition
Move the definition of the top-level Classic API implementation group to
an implementation header file.
2021-09-15 13:39:23 +02:00
Sebastian Huber
a45bc321c2 rtems: Improve Classic API group description 2021-09-15 07:50:43 +02:00
Sebastian Huber
fe818cd4b9 rtems: Fix message manager documentation
Remove bogus return status from rtems_message_queue_receive().  Clarify
rtems_message_queue_flush().

Update #4508.
2021-09-15 07:50:43 +02:00
Sebastian Huber
466cd91744 rtems: Generate <rtems/extension.h>
Remove the duplicated description which is an out dated copy and paste
from the Classic API Guide.  Instead, thoroughly document the individual
extensions.

Change license to BSD-2-Clause according to file histories and
documentation re-licensing agreement.

Update #3899.
Update #3993.
2021-09-15 07:50:43 +02:00
Sebastian Huber
606c9a642a rtems: Generate <rtems/rtems/cache.h>
Change license to BSD-2-Clause according to file histories and
documentation re-licensing agreement.

Update #3899.
Update #3993.
Update #4513.
2021-09-15 07:50:29 +02:00