summaryrefslogtreecommitdiffstats
path: root/cpukit/score (follow)
Commit message (Collapse)AuthorAgeFilesLines
* score: Improve C/C++ standard compatibilitySebastian Huber2024-04-091-1/+1
| | | | | | The processor mask implementation uses flsl() from <strings.h> which is only BSD visible. Move the implementation to a separate header file to hide it from the API level. This fixes build errors with GCC 14.
* Mark parameters as intentionally unusedSebastian Huber2024-03-227-0/+10
| | | | | | | | The parameters are unused due to API constraints. The functions are used through function pointers. Alternative implementations may use the parameters. Update #4862.
* score: Include missing header fileSebastian Huber2024-03-201-0/+2
| | | | | | This fixes: heap.c:268:3: warning: implicit declaration of function 'memset'
* arm: Move _CPU_ISR_install_vector()Sebastian Huber2024-03-202-27/+76
| | | | The use of this function is optional. Newer BSPs do not use it.
* powerpc: Use RTEMS_XCONCAT()Sebastian Huber2024-02-271-6/+4
| | | | Prefer macros with a proper namespace.
* base64: Move base64 encoding supportSebastian Huber2024-02-161-2/+2
|
* i386: Restore SMP functionalityKinsey Moore2024-02-142-0/+7
| | | | | | | When the switch to waf occurred, the SMP support in i386 was left out causing it to accumulate a minor amount of cruft. This enables SMP for the i386 BSPs that support it and updates them for the API drift that has occurred since the change.
* cpukit/score: Avoid overflow in multiplicationKinsey Moore2024-01-171-1/+1
| | | | | Change extend_count to uint32_t from uint16_t to avoid a possible premature integer overflow when it is later used for multiplication.
* sparc: Fix move of CPU counter implementationSebastian Huber2023-10-201-4/+2
| | | | | | This fixes a build error with RTEMS_PROFILING enabled. Update #4954.
* sparc: Move CPU counter implementationSebastian Huber2023-10-205-285/+10
| | | | | | Enable a BSP-specific CPU counter implementation. Update #4954.
* cpukit: Remove unused includesKinsey Moore2023-10-134-7/+0
|
* sparc: Fix stack corruptionSebastian Huber2023-10-122-1/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix a potential stack corruption in uniprocessor configurations during start multitasking. The system initialization uses the interrupt stack. A first level interrupt shall never interrupt a context which uses the interrupt stack. Such a use would lead to stack corruption and undefined system behaviour. Unfortunately, in uniprocessor configurations this was the case. Multiprocessing is started using _CPU_Context_restore(). The caller of this function (_Thread_Start_multitasking()) uses the interrupt stack. Later we have in cpukit/score/cpu/sparc/cpu_asm.S: mov %g1, %psr ! restore status register and ! **** ENABLE TRAPS **** ld [%o1 + G5_OFFSET], %g5 ! restore the global registers ld [%o1 + G7_OFFSET], %g7 ! Load thread specific ISR dispatch prevention flag ld [%o1 + ISR_DISPATCH_DISABLE_STACK_OFFSET], %o2 ! Store it to memory later to use the cycles ldd [%o1 + L0_OFFSET], %l0 ! restore the local registers ldd [%o1 + L2_OFFSET], %l2 ldd [%o1 + L4_OFFSET], %l4 ldd [%o1 + L6_OFFSET], %l6 ! Now restore thread specific ISR dispatch prevention flag st %o2, [%g6 + PER_CPU_ISR_DISPATCH_DISABLE] ldd [%o1 + I0_OFFSET], %i0 ! restore the input registers ldd [%o1 + I2_OFFSET], %i2 ldd [%o1 + I4_OFFSET], %i4 ldd [%o1 + I6_FP_OFFSET], %i6 ldd [%o1 + O6_SP_OFFSET], %o6 ! restore the output registers Between the ENABLE TRAPS and the restore of the output registers, we still use the stack of the caller and interrupts may be enabled. If an interrupt happens in this code block, the interrupt stack is concurrently used which may lead to a crash. Fix this by adding a new function _SPARC_Start_multiprocessing() for uniprocessor configurations. This function first sets the stack pointer to use the stack of the heir thread. Close #4955.
* bsp/i386/pc686: Clean up warningsChris Johns2023-10-041-4/+4
|
* cpukit/aarch64: Resolve warnings with ILP32 ABIKinsey Moore2023-09-261-1/+1
| | | | | | Casts from uint64_t to void* must go through a uintptr_t cast to avoid warnings when building with the ILP32 ABI since this is otherwise an implicit truncation to 32bits for a pointer.
* arm: Use a valid signed integer constantSebastian Huber2023-09-261-1/+1
| | | | Enumerators are restricted to signed integers in some C standards.
* score: Add _CPU_Get_TLS_thread_pointer()Sebastian Huber2023-09-1519-0/+151
| | | | | | | | Add _CPU_Get_TLS_thread_pointer() to get the thread pointer which is used to get the address of thread-local storage objects associated with a thread. Update #4920.
* rtems: rtems_configuration_get_interrupt_stack_size()Sebastian Huber2023-09-151-0/+2
| | | | | | | | | Fix rtems_configuration_get_interrupt_stack_size() for some code models. The _ISR_Stack_size symbol has an arbitrary absolute address and may not be representable in the code model used by the compiler. Update #4953.
* score: Fix TLS support for some code modelsSebastian Huber2023-09-152-6/+39
| | | | | | | | Store symbols with an arbitrary absolute address such as _TLS_Size, _TLS_Alignment, _TLS_Data_size, and _TLS_BSS_size in an object to avoid issues with some code models. Update #4953.
* microblaze: Add libdl supportAlex White2023-08-301-0/+83
|
* cpukit/score/aarch64: Use correct MAIR indexKinsey Moore2023-08-221-2/+2
| | | | | | | The MAIR index currently assigned (1) for uncached memory segments is not configured properly for this purpose. Instead, this switches uncached memory segment flags to MAIR index 2 which is properly configured for uncached inner and outer shareable domains.
* x86_64/include/rtems/score/cpuimpl.h: Address unused parameter warningJoel Sherrill2023-08-211-5/+9
|
* v850/include/rtems/score/cpuimpl.h: Address unused parameter warningJoel Sherrill2023-08-211-0/+4
|
* sparc64/include/rtems/score/cpuimpl.h: Address unused parameter warningJoel Sherrill2023-08-211-0/+4
|
* sh/include/rtems/score/cpuimpl.h: Address unused parameter warningJoel Sherrill2023-08-211-0/+4
|
* moxie/include/rtems/score/cpuimpl.h: Address unused parameter warningJoel Sherrill2023-08-211-0/+4
|
* mips/include/rtems/score/cpuimpl.h: Address unused parameter warningJoel Sherrill2023-08-211-0/+4
|
* m68k/include/rtems/score/cpuimpl.h: Address unused parameter warningJoel Sherrill2023-08-211-0/+4
|
* lm32/include/rtems/score/cpuimpl.h: Address unused parameter warningJoel Sherrill2023-08-211-0/+4
|
* i386/include/rtems/score/cpuimpl.h: Address unused parameter warningJoel Sherrill2023-08-211-0/+4
|
* bfin/include/rtems/score/cpuimpl.h: Address unused parameter warningJoel Sherrill2023-08-211-0/+4
|
* arm: Fix cache support for ARM926EJ-SSebastian Huber2023-08-101-4/+22
| | | | | | | The ARM926EJ-S is an ARMv5T architecture processor and lacks some features of ARMv6 processors such as the ARM1176JZF-S. Close #4940.
* score: Assert scheduler index validitySebastian Huber2023-07-281-0/+1
| | | | Update #4844.
* score: Move <rtems/score/gcov.h>Sebastian Huber2023-07-283-243/+0
| | | | | Move <rtems/score/gcov.h> to <rtems/test-gcov.h>. These functions do not belong to an super core service.
* score: Move formatted I/O functionsSebastian Huber2023-07-285-543/+2
| | | | These functions do not belong to an super core service.
* score: Add files to Doxygen groupsSebastian Huber2023-07-263-0/+26
| | | | Update #3707.
* score: Add workaround for GCC bugSebastian Huber2023-07-251-0/+7
| | | | | | | | https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108658 This GCC bug leads to an incomplete code coverage status. Update #4932.
* score: Move _IO_Relax() to new <rtems/dev/io.h>Sebastian Huber2023-07-241-53/+0
| | | | This function is not a super core service.
* score/arm: improve printed exception information for Cortex-Mx CPUsKarel Gardas2023-07-142-2/+154
| | | | Sponsored-By: Precidata
* bsps/sparc: Remove BSP_POWER_DOWN_AT_FATAL_HALTSebastian Huber2023-07-141-0/+2
| | | | | | Remove the BSP_POWER_DOWN_AT_FATAL_HALT BSP option. Applications should do the customization of the system termination with an initial fatal extension.
* Revert accidentally committed "Remove unused _IO_Relax"Joel Sherrill2023-07-031-0/+53
| | | | | | 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.
* Remove unused _IO_RelaxJoel Sherrill2023-07-031-53/+0
| | | | The only use was in a test.
* score: Remove CPU port specific cpuatomic.hSebastian Huber2023-06-1218-533/+0
| | | | | All CPU ports used the same <rtems/score/cpustdatomic.h> header file to provide the atomic operations. Remove the header file indirection.
* score/src/pheap*: Remove unreferenced methodsJoel Sherrill2023-05-263-168/+0
| | | | | | | | * _Protected_heap_Get_block_size * _Protected_heap_Iterate * _Protected_heap_Resize_block Closes #4909.
* arm: Use RTEMS_XCONCAT()Sebastian Huber2023-05-261-4/+2
| | | | Prefer macros with a proper namespace.
* arm: Improve Doxygen file commentsSebastian Huber2023-05-2629-35/+165
|
* Update company nameSebastian Huber2023-05-20216-216/+216
| | | | | The embedded brains GmbH & Co. KG is the legal successor of embedded brains GmbH.
* bsps/aarch64: Fix 128bit q register print bugTian Ye2023-05-161-1/+1
|
* _TOD_Adjust method is unused. Remove it.Joel Sherrill2023-05-161-73/+0
| | | | | | | Use of this method was likely eliminated during the rework to use FreeBSD bintime/sbintime. Close #4905.
* bsps/amd64: increase CPU alignment to 16Karel Gardas2023-04-291-1/+1
| | | | AMD64 requires SSE support which operates on 128bit data values.
* score: Avoid cyclic header file dependenciesSebastian Huber2023-04-251-0/+49
| | | | | | | | | | | | | There was a cyclic dependency: For RTEMS_STATIC_ANALYSIS we needed basedefs.h in assert.h. For RTEMS_UNREACHABLE() we needed _Assert() from assert.h in basedefs.h. Fix this by introducing _Debug_Unreachable() in basedefs.h. Add RTEMS_FUNCTION_NAME to basedefs.h and use it in basedefs.h and assert.h. Close #4900.