summaryrefslogtreecommitdiffstats
path: root/cpukit/score (unfollow)
Commit message (Collapse)AuthorFilesLines
2024-04-09score: Improve C/C++ standard compatibilitySebastian Huber1-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.
2024-03-22Mark parameters as intentionally unusedSebastian Huber7-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.
2024-03-20score: Include missing header fileSebastian Huber1-0/+2
This fixes: heap.c:268:3: warning: implicit declaration of function 'memset'
2024-03-20arm: Move _CPU_ISR_install_vector()Sebastian Huber2-27/+76
The use of this function is optional. Newer BSPs do not use it.
2024-02-27powerpc: Use RTEMS_XCONCAT()Sebastian Huber1-6/+4
Prefer macros with a proper namespace.
2024-02-16base64: Move base64 encoding supportSebastian Huber1-2/+2
2024-02-14i386: Restore SMP functionalityKinsey Moore2-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.
2024-01-17cpukit/score: Avoid overflow in multiplicationKinsey Moore1-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.
2023-10-20sparc: Fix move of CPU counter implementationSebastian Huber1-4/+2
This fixes a build error with RTEMS_PROFILING enabled. Update #4954.
2023-10-20sparc: Move CPU counter implementationSebastian Huber5-285/+10
Enable a BSP-specific CPU counter implementation. Update #4954.
2023-10-13cpukit: Remove unused includesKinsey Moore4-7/+0
2023-10-12sparc: Fix stack corruptionSebastian Huber2-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.
2023-10-04bsp/i386/pc686: Clean up warningsChris Johns1-4/+4
2023-09-26cpukit/aarch64: Resolve warnings with ILP32 ABIKinsey Moore1-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.
2023-09-26arm: Use a valid signed integer constantSebastian Huber1-1/+1
Enumerators are restricted to signed integers in some C standards.
2023-09-15score: Add _CPU_Get_TLS_thread_pointer()Sebastian Huber19-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.
2023-09-15rtems: rtems_configuration_get_interrupt_stack_size()Sebastian Huber1-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.
2023-09-15score: Fix TLS support for some code modelsSebastian Huber2-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.
2023-08-30microblaze: Add libdl supportAlex White1-0/+83
2023-08-22cpukit/score/aarch64: Use correct MAIR indexKinsey Moore1-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.
2023-08-21x86_64/include/rtems/score/cpuimpl.h: Address unused parameter warningJoel Sherrill1-5/+9
2023-08-21v850/include/rtems/score/cpuimpl.h: Address unused parameter warningJoel Sherrill1-0/+4
2023-08-21sparc64/include/rtems/score/cpuimpl.h: Address unused parameter warningJoel Sherrill1-0/+4
2023-08-21sh/include/rtems/score/cpuimpl.h: Address unused parameter warningJoel Sherrill1-0/+4
2023-08-21moxie/include/rtems/score/cpuimpl.h: Address unused parameter warningJoel Sherrill1-0/+4
2023-08-21mips/include/rtems/score/cpuimpl.h: Address unused parameter warningJoel Sherrill1-0/+4
2023-08-21m68k/include/rtems/score/cpuimpl.h: Address unused parameter warningJoel Sherrill1-0/+4
2023-08-21lm32/include/rtems/score/cpuimpl.h: Address unused parameter warningJoel Sherrill1-0/+4
2023-08-21i386/include/rtems/score/cpuimpl.h: Address unused parameter warningJoel Sherrill1-0/+4
2023-08-21bfin/include/rtems/score/cpuimpl.h: Address unused parameter warningJoel Sherrill1-0/+4
2023-08-10arm: Fix cache support for ARM926EJ-SSebastian Huber1-4/+22
The ARM926EJ-S is an ARMv5T architecture processor and lacks some features of ARMv6 processors such as the ARM1176JZF-S. Close #4940.
2023-07-28score: Assert scheduler index validitySebastian Huber1-0/+1
Update #4844.
2023-07-28score: Move <rtems/score/gcov.h>Sebastian Huber3-243/+0
Move <rtems/score/gcov.h> to <rtems/test-gcov.h>. These functions do not belong to an super core service.
2023-07-28score: Move formatted I/O functionsSebastian Huber5-543/+2
These functions do not belong to an super core service.
2023-07-26score: Add files to Doxygen groupsSebastian Huber3-0/+26
Update #3707.
2023-07-25score: Add workaround for GCC bugSebastian Huber1-0/+7
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108658 This GCC bug leads to an incomplete code coverage status. Update #4932.
2023-07-24score: Move _IO_Relax() to new <rtems/dev/io.h>Sebastian Huber1-53/+0
This function is not a super core service.
2023-07-14score/arm: improve printed exception information for Cortex-Mx CPUsKarel Gardas2-2/+154
Sponsored-By: Precidata
2023-07-14bsps/sparc: Remove BSP_POWER_DOWN_AT_FATAL_HALTSebastian Huber1-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.
2023-07-03Revert accidentally committed "Remove unused _IO_Relax"Joel Sherrill1-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.
2023-07-03Remove unused _IO_RelaxJoel Sherrill1-53/+0
The only use was in a test.
2023-06-12score: Remove CPU port specific cpuatomic.hSebastian Huber18-533/+0
All CPU ports used the same <rtems/score/cpustdatomic.h> header file to provide the atomic operations. Remove the header file indirection.
2023-05-26score/src/pheap*: Remove unreferenced methodsJoel Sherrill3-168/+0
* _Protected_heap_Get_block_size * _Protected_heap_Iterate * _Protected_heap_Resize_block Closes #4909.
2023-05-26arm: Use RTEMS_XCONCAT()Sebastian Huber1-4/+2
Prefer macros with a proper namespace.
2023-05-26arm: Improve Doxygen file commentsSebastian Huber29-35/+165
2023-05-20Update company nameSebastian Huber216-216/+216
The embedded brains GmbH & Co. KG is the legal successor of embedded brains GmbH.
2023-05-16bsps/aarch64: Fix 128bit q register print bugTian Ye1-1/+1
2023-05-16_TOD_Adjust method is unused. Remove it.Joel Sherrill1-73/+0
Use of this method was likely eliminated during the rework to use FreeBSD bintime/sbintime. Close #4905.
2023-04-29bsps/amd64: increase CPU alignment to 16Karel Gardas1-1/+1
AMD64 requires SSE support which operates on 128bit data values.
2023-04-25score: Avoid cyclic header file dependenciesSebastian Huber1-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.