summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* libdl: Refactor shared code in ARM and AArch64Ryan Long2022-08-086-158/+115
| | | | | | | | rtl-mdreloc-arm.c was used as the basis for rtl-mdreloc-aarch64.c. This lead to some code being shared by the two files. The code was consolidated into rtl-unwind-arm.c. Closes #4686
* posix: Avoid dead code in clock_nanosleep()Sebastian Huber2022-08-051-5/+2
| | | | | | | | This issue was reported by Coverity Scan for RTEMS: CID 1507760: Control flow issues (DEADCODE) Closes #4690.
* testsuite: Fix warningsChris Johns2022-08-052-3/+4
| | | | Updates #4662
* libdl: Fix warnings on 64bit architecturesChris Johns2022-08-054-7/+7
| | | | Updates #4662
* testsuite/psxclock: Check setting realtime clock does not effect sleeping tasksChris Johns2022-08-051-1/+171
| | | | Closes #4690
* build: Install <rtems/score/gcov.h>Sebastian Huber2022-08-041-0/+1
| | | | Update #4670.
* posix: Fix relative CLOCK_REALTIME sleepSebastian Huber2022-08-042-32/+23
| | | | | | | | | A relative CLOCK_REALTIME time out shall not be affected by CLOCK_REALTIME changes through clock_settime(). Since our CLOCK_REALTIME is basically just CLOCK_MONOTONIC plus an offset, we can simply use the CLOCK_MONOTONIC watchdog for relative CLOCK_REALTIME time outs. Update #4690.
* libmisc/shell: Add an 'rtems' command to report a running buildChris Johns2022-08-033-0/+163
| | | | - Report version, cpu, bsp, tools and options.
* sp54: Fix test caseSebastian Huber2022-08-011-2/+2
| | | | | | | Since commit 6a6580331df3e09516d50f37d4dd5fd57825c08a, the local table is zero-initialized. Use an initial object control block instead. Update #4678.
* cpukit/libdl/rtl-sym.c: Fix increment of variableRyan Long2022-07-291-1/+1
| | | | | | | | | | | | In rtems_rtl_symbol_global_add() the loop that gets to the end of the symbol table used "unsigned long" to increment the index for the table. For most architectures this resulted in 4, but with AArch64, it results in 8. This resulted in the symbols being read in wrong. Changing this to void* along with changing the RISC-V specific code for 8 byte pointers in rtems-tools to work independent of the architecture. Updates #4673 Closes #4682
* libtests/dl*: Bump up the size of CONFIGURE_INIT_TASK_STACK_SIZERyan Long2022-07-2910-10/+10
| | | | Updates #4682
* cpukit/libdl: Add support for AArch64Ryan Long2022-07-295-0/+873
| | | | | | rtl-mdreloc-aarch64.c and elf_machdep.h came from NetBSD. Updates #4682
* libdl/rtl-elf.h: Fix aarch64 defineRyan Long2022-07-291-1/+1
| | | | | | | The aarch64 define was incorrect. This was causing the libdl tests to not work correctly. Updates #4682
* sys/exec_elf.h: Bring in newer fileRyan Long2022-07-291-232/+608
| | | | | | Updated this file with the newer version in NetBSD. Updates #4682
* score: Allow linker garbage collectionSebastian Huber2022-07-282-3/+3
| | | | | | | Place the object control blocks in dedicated sections to allow a linker garbage collection. Update #4678.
* score: Use PTHREAD_CANCELED for _Thread_Cancel()Sebastian Huber2022-07-284-11/+8
| | | | | | | | | | The rtems_task_delete() directive is basically just a combined pthread_cancel() and pthread_join(). In addition, it removes the PTHREAD_DETACHED state. The exit value returned by pthread_join() of threads cancelled by rtems_task_delete() should reflect this by getting a PTHREAD_CANCELED value instead of NULL which could be a normal exit value. Close #4680.
* score: Use priority inheritance for thread joinSebastian Huber2022-07-2813-542/+668
| | | | | | | | | | | | | | | | | | | | | Threads may join the thread termination of another thread using the pthread_join() or rtems_task_delete() directives. The thread cancel operation used a special case priority boosting mechanism implemented by _Thread_Raise_real_priority(). The problem was that this approach * is not transitive, * does not account for priority adjustments of the calling task while waiting for the join, * does not support clustered scheduling, and * does not detect deadlocks. All these problems are fixed by using a priority inheritance thread queue for the join operation. Close #4679.
* aarch64/versal: Support DDRMC0 region 0 and 1Chris Johns2022-07-284-5/+102
| | | | | | | | | | | - Support DDRMC0 region 0 up to 2G in size - Support DDRMC0 region 1 with DDR memory greater than 2G up to the DDRMC0 max amount - Extend the heap with region 1's memory Closes #4684
* basp/aarch64: Make the unexpected sections origin address 64bitChris Johns2022-07-281-1/+1
| | | | Update #4684
* Use __asm__ for standard C compatibilitySebastian Huber2022-07-274-29/+29
|
* psxconfig01: Increase region areaSebastian Huber2022-07-271-1/+1
| | | | This fixes a test failure on 64-bit systems with RTEMS_DEBUG enabled.
* score: Fix objects local table initializationSebastian Huber2022-07-272-4/+2
| | | | | | | | The objects local table must be statically zero-initialized so that _Objects_Get() and _Objects_Get_no_protection() return NULL if no object is associated with the identifier. Update #4678.
* build: Move RISCV_MAXIMUM_EXTERNAL_INTERRUPTSSebastian Huber2022-07-264-19/+3
|
* score: Remove PRIORITY_PSEUDO_ISR thread prioritySebastian Huber2022-07-2626-204/+295
| | | | | | | | | | | | | | | The uniprocessor schedulers had some special case logic for the PRIORITY_PSEUDO_ISR priority. Tasks with a priority of PRIORITY_PSEUDO_ISR were allowed to preempt a not preemptible task. If other higher priority task are made ready while a PRIORITY_PSEUDO_ISR task preempts a not preemptible task, then the other tasks run before the not preemptible task. This made the RTEMS_NO_PREEMPT mode ineffective. Remove the PRIORITY_PSEUDO_ISR special case logic. This simplifies the uniprocessor schedulers. Move the uniprocessor-specific scheduler support to the new header file <rtems/score/scheduleruniimpl.h>. Close #2365.
* sptests/spstdc17: New testSebastian Huber2022-07-254-0/+93
|
* imfs: Add <rtems/imfsimpl.h>Sebastian Huber2022-07-2514-48/+105
|
* bsps/microblaze: Fix build option definition orderAlex White2022-07-253-4/+2
| | | | | | The build option definitions were rearranged such that the option definitions used in the linker script were not available. This caused linker errors when building.
* libtest: Add missing initializerSebastian Huber2022-07-251-1/+1
|
* aarch64: Use page table level 0Kinsey Moore2022-07-214-16/+58
| | | | | | | | | This alters the AArch64 page table generation and mapping code and MMU configuration to use page table level 0 in addition to levels 1, 2, and 3. This allows the mapping of up to 48 bits of memory space and is the maximum that can be mapped without relying on additional processor extensions. Mappings are restricted based on the number of physical address bits that the CPU supports.
* Support _REENT_THREAD_LOCAL Newlib configurationMatt Joyce2022-07-217-18/+42
| | | | | | | | | In case the Newlib _REENT_THREAD_LOCAL configuration option is enabled, the struct _reent is not defined (there is only a forward declaration in <sys/reent.h>). Instead, the usual members of struct _reent are available as dedicatd thread-local storage objects. Update #4560.
* sptests: Disable Newlib reentrancyMatt Joyce2022-07-214-1/+22
| | | | Update #4560.
* sptls04: Test an external TLS objectSebastian Huber2022-07-214-3/+82
|
* ada/sp09: The year 2100 cannot be setSebastian Huber2022-07-201-12/+6
| | | | Update #4338.
* bsps/riscv: Sort .noinit* sectionsSebastian Huber2022-07-201-1/+1
| | | | | | | | Sort the .noinit* input sections by name first, then by alignment if two sections have the same name. This allows the placement of begin/end symbols to initialize some areas with a special value. Update #4678.
* build: Add missing cxxflagsSebastian Huber2022-07-2082-0/+82
| | | | Update #4670.
* dtc: Update VERSIONSebastian Huber2022-07-191-5/+12
|
* Fix a UB when fdt_get_string return nullLoveSy2022-07-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | When fdt_get_string return null, `namep` is not correctly reset. From the document of `fdt_getprop_by_offset`, the parameter `namep` will be always overwritten (that is, it will be overwritten without exception of error occurance). As for the caller (like https://github.com/topjohnwu/Magisk/blob/e097c097feb881f6097b6d1dc346f310bc92f5d6/native/jni/magiskboot/dtb.cpp#L42), the code may be like: ```cpp size_t size; const char *name; auto *value = fdt_getprop_by_offset(fdt, prop, &name, &size); ``` and if `value == nullptr`, `size` is also be overwritten correctly but `name` is not, which is quite inconsistent. This commit makes sure `name` and `size` behavior consistently (reset to reasonable value) when error occurs. Signed-off-by: LoveSy <shana@zju.edu.cn> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
* spsysinit01: Account for use of .noinit sectionSebastian Huber2022-07-181-2/+2
| | | | | | | The objects control blocks cannot be used to check the pre-initialization state since they are allocated in a .noinit section. Update #4678.
* score: Fix unlimited objects supportSebastian Huber2022-07-182-9/+32
| | | | | | | | Commit 21275b58a5a69c3c838082ffc8a7a3641f32ea9a ("score: Static Objects_Information initialization") introduced an off-by-one error in the maintenance of inactive objects. Close #4677.
* spunlimited01: New testSebastian Huber2022-07-184-0/+161
| | | | Update #4677.
* score: Fix _Objects_Active_count()Sebastian Huber2022-07-181-5/+13
| | | | | | | With unlimited objects the object maximum may be larger than the sum of active and inactive objects. Update #4677.
* aarch64: Memory map the noinit sectionKinsey Moore2022-07-182-0/+8
| | | | | This section was added recently and must be mapped to be accessed without generating an exception.
* score: Extend memory dirty/zero actionsSebastian Huber2022-07-156-9/+117
| | | | | | Dirty or zero also the part of the .noinit section used by RTEMS. Close #4678.
* score: Place object controls into .noinit sectionsSebastian Huber2022-07-153-6/+13
| | | | | | | | | | | | Place the statically allocated object control blocks, local tables, and thread queue heads into the dedicated .noinit intput sections. The output section is not zero initialized. Placing these elements into the .noinit section reduces the system initialization time by decreasing the .bss section size. It may improve the cache efficiency since the mostly read local tables are placed in a contiguous memory area. Update #4678.
* bsps: Sort .noinit* sectionsSebastian Huber2022-07-1556-56/+56
| | | | | | | | Sort the .noinit* input sections by name first, then by alignment if two sections have the same name. This allows the placement of begin/end symbols to initialize some areas with a special value. Update #4678.
* cdtest: Restrict exceptions during sysinitSebastian Huber2022-07-141-0/+14
| | | | | | | Exceptions during system initialization work only on targets which do not need a registration of exception frames during the global construction. In particular, targets which use the DWARF2 unwinder cannot use exceptions during system initialization.
* spextensions01: Fix assertionSebastian Huber2022-07-141-2/+11
| | | | | Commit 80090639a62b50d7d66614ca789e4592924a06e5 altered the system state change. Account for this in assert_allocator_protected_thread_context().
* validation: SMP-specific spurious interrupt testSebastian Huber2022-07-141-23/+125
| | | | Update #3716.
* sppps01: Fix test in SMP configurationsSebastian Huber2022-07-131-1/+1
| | | | Update #2349.
* bsps/v850/gdbv850sim: Change license to BSD-2Joel Sherrill2022-07-123-9/+66
| | | | Updates #3053.