summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* cpukit/aarch64: Use correct interrupt level typesKinsey Moore2021-10-012-4/+4
| | | | | All other architectures use uint32_t for interrupt levels and there is no reason not to do so on AArch64.
* cpukit/aarch64: Use correct context register setsKinsey Moore2021-10-012-55/+123
| | | | | | | 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.
* score: Add Thread_queue_Deadlock_statusSebastian Huber2021-10-014-48/+86
| | | | | | Replace the boolen return value with the new enum Thread_queue_Deadlock_status. This improves the code readability. Improve documentation. Shorten function names.
* score: Avoid dead code in thread queue surrenderSebastian Huber2021-10-011-12/+67
| | | | | | | | 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().
* score: Remove _Thread_queue_Do_nothing_extract()Sebastian Huber2021-09-301-14/+2
| | | | | | | 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.
* score: Regenerate <rtems/score/basedefs.h>Sebastian Huber2021-09-301-1/+1
| | | | Reflect renamed specification item.
* score: Add Doxygen group for <sys/lock.h> mutexesSebastian Huber2021-09-301-1/+15
|
* rtems: Adjust parameter namesSebastian Huber2021-09-302-13/+13
| | | | | | | Adjust parameter names to match with the declaration. This avoid using a name reserved by the C standard: "time". Close #4035.
* rtems: Justify integer conversionsSebastian Huber2021-09-301-3/+8
| | | | Close #2548.
* score: Improve variable names in thread initSebastian Huber2021-09-221-25/+25
|
* score: Simplify _Thread_Try_initialize()Sebastian Huber2021-09-221-72/+108
| | | | | Move a code block to its own new function _Thread_Initialize_scheduler_and_wait_nodes(). Add comments.
* cpukit: Add AArch64 SMP SupportKinsey Moore2021-09-2117-36/+350
| | | | This adds SMP support for AArch64 in cpukit and for the ZynqMP BSPs.
* bsps/gicv2: Allow BSPs to define IRQ attributesKinsey Moore2021-09-2110-34/+187
| | | | | | | 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.
* bsps/zynqmp: Use correct number of interruptsKinsey Moore2021-09-211-1/+1
| | | | | GICv2 can support up to 1024 interrupts, but ZynqMP hardware is only configured for 192 interrupts.
* testsuites/smpmulticast01: Enforce step orderingKinsey Moore2021-09-211-0/+1
| | | | | | 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.
* bsps/shared: Add PSCI SMP startup supportKinsey Moore2021-09-211-0/+92
| | | | | | | | 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.
* build: Remove old build systemSebastian Huber2021-09-21625-38505/+0
| | | | | Close #3250. Close #4081.
* arm/lpc24xx: Use common test definition fileSebastian Huber2021-09-214-68/+2
|
* libtest: Improve T_now_tick()Sebastian Huber2021-09-211-0/+45
| | | | | | | 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.
* score: Remove unused default scheduler opsSebastian Huber2021-09-213-108/+13
| | | | | | | | | | 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.
* score: Ensure only one CPU if requiredSebastian Huber2021-09-213-1/+22
| | | | | | | 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.
* score: Provide two thread pin/unpin defaultsSebastian Huber2021-09-218-17/+112
| | | | | | | | | | | | | | 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.
* score: SCHEDULER_OPERATION_DEFAULT_GET_SET_AFFINITYSebastian Huber2021-09-217-8/+20
| | | | | Rename SCHEDULER_OPERATION_DEFAULT_GET_SET_AFFINITY in SCHEDULER_DEFAULT_SET_AFFINITY_OPERATION. Add Doxygen comment.
* score: SCHEDULER_OPERATION_DEFAULT_ASK_FOR_HELPSebastian Huber2021-09-215-6/+17
| | | | | Rename SCHEDULER_OPERATION_DEFAULT_ASK_FOR_HELP in SCHEDULER_DEFAULT_SMP_OPERATIONS. Add a Doxygen comment.
* pxcdevctl: Adjust for standardRyan Long2021-09-202-31/+118
| | | | | | | | 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
* powerpc/motorola_powerpc: Map LibBSD bus space to the PCI base addressChris Johns2021-09-191-3/+29
|
* rtems: Fix message manager documentationSebastian Huber2021-09-161-2/+2
| | | | | | | Correct the description of the ``count`` parameter of rtems_message_queue_flush(). Update #4508.
* arm/xilinx: Fix zynq-uart interrupt receiveChris Johns2021-09-163-57/+67
| | | | | | | | - Trigger on a single character entering the RX FIFO - Disable the RX timeout - Send up to a FIFO full of data
* testsuites: Wrap putcharAlex White2021-09-1612-0/+12
| | | | The linker flag to wrap putchar was lost in translation from make to waf.
* rtems: Add header files to Doxygen groupsSebastian Huber2021-09-157-0/+14
|
* rtems: Move Doxygen group definitionSebastian Huber2021-09-152-10/+8
| | | | | Move the definition of the top-level Classic API implementation group to an implementation header file.
* rtems: Improve Classic API group descriptionSebastian Huber2021-09-151-1/+1
|
* rtems: Fix message manager documentationSebastian Huber2021-09-151-8/+10
| | | | | | | Remove bogus return status from rtems_message_queue_receive(). Clarify rtems_message_queue_flush(). Update #4508.
* rtems: Generate <rtems/extension.h>Sebastian Huber2021-09-151-177/+588
| | | | | | | | | | | | 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.
* rtems: Generate <rtems/rtems/cache.h>Sebastian Huber2021-09-151-150/+512
| | | | | | | | | Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Update #3899. Update #3993. Update #4513.
* build: Remove invalid attributesSebastian Huber2021-09-142-2/+0
|
* bsps/arm: Fix ABI flags for Cortex-M4Sebastian Huber2021-09-142-3/+5
| | | | Close #4504.
* bsps/zynqmp: Added I2C support for ZynqMPStephen Clark2021-09-099-0/+167
| | | | Added I2C drivers for ZynqMP and updated build system accordingly.
* bsps/zynq: Moved general i2c files to shared directoriesStephen Clark2021-09-094-5/+5
| | | | | Certain files related to the Zynq BSP's I2C driver are useable by the ZynqMP BSP as well. Moved these files to shared directory in anticipation of I2C support for ZynqMP.
* rtems: Initialize count of postponed jobsSebastian Huber2021-09-091-0/+1
| | | | | | | | | The rtems_rate_monotonic_get_status() directive returns an arbitrary number for the count of postponed jobs if it is called for a newly created period object. Set the count of postponed jobs to zero during object creation. Close #4511.
* rtems: Document time of day constraintsSebastian Huber2021-09-061-4/+13
| | | | Update #4338.
* score: Split up rbtreenext.cSebastian Huber2021-09-066-28/+183
| | | | | | | | | | Split up rbtreenext.c since only _RBTree_Minimum() is used by the operating system core services (thread queues and the EDF scheduler). Change license to BSD-2-Clause according to file history and re-licensing agreement. Update #3053.
* score: Change TOD_LATEST_YEAR to 2099Sebastian Huber2021-09-067-90/+58
| | | | | | | | This simplifies the implementation a bit. Declare _TOD_Days_to_date[] in <rtems/score/todimpl.h>. Make _TOD_Days_per_month[] and _TOD_Days_since_last_leap_year[] static. Update #4338.
* score: Simplify _TOD_Validate()Sebastian Huber2021-09-061-9/+25
| | | | Split up the multi line if statement into smaller parts.
* score: Limit the CLOCK_REALTIME settingSebastian Huber2021-09-063-1/+24
| | | | | Limit the CLOCK_REALTIME setting to ensure that the CLOCK_REALTIME is defined for a system uptime of at least 114 years.
* score: Add _TOD_Is_valid_new_time_of_day()Sebastian Huber2021-09-067-22/+87
| | | | | | Move the TOD validation to the callers of _TOD_Set(). This avoids dead code in case only rtems_clock_set() is used in an application because rtems_clock_set() always calls _TOD_Set() with a valid time of day.
* score: Remove TOD_TICKS_PER_SECOND_method()Sebastian Huber2021-09-064-50/+2
| | | | Use _Watchdog_Ticks_per_second instead.
* score: Return status in _TOD_Adjust()Sebastian Huber2021-09-063-4/+14
|
* score: Move _Thread_Dispatch()Sebastian Huber2021-09-034-20/+63
| | | | | | | | | | | | The _Thread_Dispatch() function was customized over time and now the work is done by _Thread_Do_dispatch() and specialized wrappers. The plain _Thread_Dispatch() is now only used in some CPU ports. Move it to a separate file to avoid dead code in the general. Change license to BSD-2-Clause according to file history and re-licensing agreement. Update #3053.
* score: Document thread queue operationsSebastian Huber2021-09-033-11/+63
|