Commit Graph

36510 Commits

Author SHA1 Message Date
Aaron Nyholm
b68ef66b49 score: Import <sys/tree.h> from Newlib
Import <sys/tree.h> from Newlib as <rtems/score/bsd-tree.h> using Newlib commit:

commit eb03ac17f16f1bd354482148426353fd35cd879d
Author: Sebastian Huber <sebastian.huber@embedded-brains.de>
Date:   Tue Oct 5 15:53:47 2021 +0200

    sys/tree.h: Red child with black sibling rotations

    Add specialized rotations RB_RED_ROTATE_LEFT() and RB_RED_ROTATE_RIGHT() which
    may be used if we rotate a red child which has a black sibling.  Such a red
    node must have at least two child nodes so that the following red-black tree
    invariant is fulfilled:

      Every path from a given node to any of its descendant NULL nodes goes through
      the same number of black nodes.

          PARENT
         /      \
      BLACK     RED
               /   \
            BLACK BLACK

Close #5049.
2024-07-09 22:52:40 +00:00
Joel Sherrill
34485ccd92 x: Remove junk file 2024-07-09 20:42:06 +00:00
Sebastian Huber
6d65f2cff9 bsps/arm/xilinx-zynq: Enable SMP for all variants 2024-07-08 03:43:58 +00:00
Sebastian Huber
2f299f7f88 aarch64/xilinx-zynqmp: Fix BSP build
The build issue was introduced by b48166b9b6.
2024-07-08 03:42:40 +00:00
Sebastian Huber
ffa6e26879 dhrystone: Prevent procedure merging
From the Dhrystone RATIONALE:

  o No procedure merging

    Although Dhrystone contains some very short procedures where execution would
    benefit  from  procedure  merging (inlining, macro expansion of procedures),
    procedure merging is not to be used.  The reason is that the  percentage  of
    procedure  and  function  calls  is  part of the "Dhrystone distribution" of
    statements contained in [1].  This restriction does not hold for the  string
    functions  of  the  C  version  since ANSI C allows an implementation to use
    inline code for these functions.

Close #5058.
2024-07-05 21:18:57 +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
Matheus Pecoraro
58748a3a71 amd64: Fix typo in amd64 obj.yml 2024-07-03 14:04:52 -03:00
xiaojun zheng
acf12498cf add rtems_counting_semaphore_wait_timed_ticks and rtems_counting_semaphore_try_wait for self-contained object counting semaphore
Closes #5055

## Summary
add rtems_counting_semaphore_wait_timed_ticks and rtems_counting_semaphore_try_wait for self-contained object counting semaphore.

1. rtems_counting_semaphore_wait_timed_ticks(rtems_counting_semaphore \*counting_semaphore,uint32_t ticks)
2. rtems_counting_semaphore_try_wait(rtems_counting_semaphore \*counting_semaphore)

close issue #5055.

<!-- Default settings, if it is a dropdown it will set after submission -->
2024-07-02 01:49:24 +00:00
Matheus Pecoraro
087645e58f amd64: Refactor amd64 and amd64efi spec files
Add a common group and object spec files for the amd64 and amd64efi BSPs
2024-07-01 17:49:11 +00:00
Matheus Pecoraro
dd882e1291 x86_64: Fix ISR handler macros
Modify the ISR handler macros for the x86_64 arch to follow the behavior
expected of them
2024-07-01 17:48:46 +00:00
Matheus Pecoraro
e46135290a x86_64: Enable and add support for FP tasks 2024-07-01 17:48:25 +00:00
Sebastian Huber
bba5a7a250 psxfenv01: Use a floating-point task 2024-06-28 14:29:04 +02:00
Sebastian Huber
c847f4c101 validation: Fix comment
Update #5050.
2024-06-26 12:02:04 +02:00
Sebastian Huber
e5b6fa026a bsp/tms570: Fix SCI baud calculation
The bug was introduced by cc6f1d86cc.

Update #4982.
2024-06-25 13:36:47 +00:00
Matheus Pecoraro
263cbb9408 amd64: Remove unneeded paging flags 2024-06-25 13:35:13 +00:00
Ranulfo Raphael
19d8888ac6 libtest/dl12: Fix build issue
Updated from ld to gcc in the build script to ensure consistency in ABI
flags during the creation of incrementally linked objects.

Update #5053
2024-06-25 13:31:22 +00:00
Kinsey Moore
39da0b7fd4 bsps/xqspipsu: Add timeouts to NOR transfers
This switches the XQspiPsu NOR driver layer to use the RTEMS event
system so that waits for interrupt-based data transfers can time out
instead of waiting indefinitely. It is sometimes possible for either the
controller or the NOR chip to fail to issue a transfer completion event
and recovery is preferable to a hang.
2024-06-25 06:47:48 +00:00
alessandronardin
cd4b6761ea cpukit/posix/aio*: Corrected aio_return() and aio_error() behaviour
Added field to the aio control block to track when a result is retrieved
and modified code accordingly.

Updated documentation for aio_return() and aio_error().
Updated test psxaio01 to make it compatible with specifications.

Closes #5039
2024-06-25 04:03:07 +00:00
Sebastian Huber
c4c3e68790 bsps/arm: Use fatal error for data cache disable
On the Cortex-A cores, at least the L1 data cache is required to provide
support for atomic operations.

Close #5050.
2024-06-25 03:58:34 +00:00
Sebastian Huber
3a281aca37 bsps/arm: Fix L2C-310 instruction enabled/disable
Set/clear SCTLR[I] on all online processors.  Do not enable/disable the
L2C-310 cache in the instruction cache enable/disable since it is a
unified cache.
2024-06-25 03:58:34 +00:00
Sebastian Huber
ef9b49dc24 bsps/arm: Fix Doxygen group placement 2024-06-25 03:58:34 +00: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
d09d61ffe4 doxygen: Clarify system termination 2024-06-24 06:32:26 +02:00
Sebastian Huber
2089f993c0 rtems: Fix typos in documentation 2024-06-21 18:30:34 +02:00
Sebastian Huber
7ce6667e38 score: Conditionally provide ISR_lock_Control
Use ISR_LOCK_NEEDS_OBJECT to determine if a lock object is needed.

Update #4957 and #5038.
2024-06-21 08:10:27 +02:00
Sebastian Huber
5d63827d07 score: Conditionally provide ISR_LOCK_INITIALIZER()
Use ISR_LOCK_NEEDS_OBJECT to determine if a lock object is needed.

Update #4957 and #5038.
2024-06-21 08:10:27 +02:00
Sebastian Huber
b0599ef35d score: Remove ISR_LOCK_MEMBER
Use ISR_LOCK_NEEDS_OBJECT to determine if a lock object is needed.

Update #4957 and #5038.
2024-06-21 08:10:27 +02:00
Sebastian Huber
283b4406c0 score: Remove ISR_LOCK_DECLARE()
Use ISR_LOCK_NEEDS_OBJECT to determine if a lock object is needed.

Update #4957 and #5038.
2024-06-21 08:10:27 +02:00
Sebastian Huber
fa24398857 score: Remove ISR_LOCK_REFERENCE()
Update #4957 and #5038.
2024-06-21 08:10:27 +02:00
Sebastian Huber
bdbda6a75f score: Remove ISR_LOCK_DEFINE()
Use ISR_LOCK_NEEDS_OBJECT to determine if a lock object is needed.

Update #4957 and #5038.
2024-06-21 08:10:27 +02: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
b48166b9b6 bsps/aarch64/zynqmp: Add memory error reporting
This adds error reporting for ZynqMP including L1 and L2 cache, on-chip
memory (OCM) error correcting code (ECC), and DDR ECC. OCM ECC supports
fault injection from within RTEMS. DDR ECC technically supports fault
injection as well, but requires that the program injecting faults
operate exclusively outside of DDR. The AArch64 port is not currently
capable of operating exclusively in OCM due to size constraints and
would need to be booted via JTAG or via a non-relocating u-boot to
accomplish this.
2024-06-21 05:57:21 +00:00
Kinsey Moore
27ec46f11b cpukit/aarch64: Add A53-specific registers
This adds registers specific to the Cortex-A53 processor that describe
L1 and L2 cache errors.
2024-06-21 05:57:21 +00:00
Ranulfo Raphael
78afce5bf2 testsuites/libtest: Add DL incremental link test
This commit adds a test to validate the incremental linking
functionality in RTL. The test is related to issue #3740.
2024-06-21 03:31:29 +00:00
Utkarsh Verma
dff15a820f aarch64/raspberrypi: Add gpio driver
Close #5029

Co-authored-by: Ning Yang <yangn0@qq.com>
2024-06-21 03:29:10 +00:00
Matheus Pecoraro
e233b5c16a amd64efi: Add amd64efi doxygen group 2024-06-20 15:38:01 +00:00
Matheus Pecoraro
5d90fc945b amd64: Add amd64 doxygen group 2024-06-20 15:38:01 +00:00
Matheus Pecoraro
ef5ed795ec x86_64: Load rflags after rsp on context restore
When starting multitasking there is a chance an interrupt could be fired
while rsp is still pointing to the ISR stack area if we load rflags
before rsp on "_CPU_Context_restore"
2024-06-20 15:25:23 +00:00
Matheus Pecoraro
3ca279e5b1 amd64: Use proper interrupt disable directive
Use rtems_interrupt_local_disable and enable in clock.c to avoid
enabling interrupts during system initialization
2024-06-20 15:25:23 +00:00
Matheus Pecoraro
2fe9209971 amd64: Add rtemsrwset section to linker script 2024-06-19 04:38:51 -03:00
Chris Johns
0bdeef72fe bsp/powerpc: Remove e500 machine state for asm functions
The e500 machine state was added when gcc 10 support appeared to deal with
the assembler's -many option being removed.

Close #5043
2024-06-18 04:27:46 +00:00
Matheus Pecoraro
7f2b904d6e x86_64: Set CPU_USE_LIBC_INIT_FINI_ARRAY to TRUE 2024-06-17 20:45:32 +00: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
2c0ab5ba0b rtems: Format typedef parameters in comments 2024-06-17 11:26:43 +02:00
Matheus Pecoraro
20a663ccef amd64: Change console device_file to /dev/ttyS0
Change the device_file path from /dev/console to /dev/ttyS0 since it
will already be linked to /dev/console on console_initialize
2024-06-14 17:08:14 +00:00
Sebastian Huber
0951e4e617 bsps/aarch64: Unify clock driver build
Make sure <dev/clock/arm-generic-timer.h> is installed.  The installation was
erroneously removed by commit 00f0d307b4 for most
BSPs.
2024-06-14 02:47:01 +00:00
Kinsey Moore
b031cf2b19 cpukit: Resolve gcc14 warnings
This resolves several warnings upon upgrading to gcc14 and building
without SMP support.
2024-06-13 17:21:45 -05:00
Ning Yang
2d5a85f7d2 dev/pl011: Fix incorrect macro definition
Close #5036
2024-06-13 19:54:19 +00:00