summaryrefslogtreecommitdiffstats
path: root/cpukit/score/cpu/microblaze/include/rtems/score (unfollow)
Commit message (Collapse)AuthorFilesLines
2023-09-15score: Add _CPU_Get_TLS_thread_pointer()Sebastian Huber1-0/+7
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-06-12score: Remove CPU port specific cpuatomic.hSebastian Huber1-41/+0
All CPU ports used the same <rtems/score/cpustdatomic.h> header file to provide the atomic operations. Remove the header file indirection.
2022-10-14score: Add CPU_THREAD_LOCAL_STORAGE_VARIANTSebastian Huber2-0/+4
Update #3835.
2022-09-19Do not use RTEMS_INLINE_ROUTINESebastian Huber2-4/+4
Directly use "static inline" which is available in C99 and later. This brings the RTEMS implementation closer to standard C. Close #3935.
2022-09-09score: Remove _CPU_Counter_difference()Sebastian Huber1-8/+0
All CPU ports used the same _CPU_Counter_difference() implementation. Remove this CPU port interface and mandate a monotonically increasing CPU counter. Close #3456.
2022-07-04score: Add _CPU_Use_thread_local_storage()Sebastian Huber1-0/+11
At some point during system initialization, the idle threads are created. Afterwards, the boot processor basically executes within the context of an idle thread with thread dispatching disabled. On some architectures, the thread-local storage area of the associated thread must be set in dedicated processor registers. Add the new CPU port function to do this: void _CPU_Use_thread_local_storage( const Context_Control *context ) Close #4672.
2022-02-23cpukit/libdebugger: Add MicroBlaze supportKinsey Moore1-0/+24
Add MicroBlaze support for libdebugger. This uses only software break type instructions to provide self-hosted GDB debugging support for applications since internal control of debug hardware is not possible. Also of note, this implementation for MicroBlaze would typically use the brki instruction for software break, but instead uses an illegal opcode to manage software breaks as exceptions. This is due to poor interaction with the debug hardware where the debug hardware will intercept software breaks instead of allowing the software break vector to execute.
2022-02-23microblaze: Decouple exceptions from interruptsKinsey Moore1-5/+5
Exception handling should be enabled at all times during execution to ensure that exceptions are not ignored which would cause further problems. This separates use of the exception enable bit from use of the interrupt enable bit in the machine status register so that they can be manipulated independently.
2022-02-04cpukit/microblaze: Clarify interrupt frame usageKinsey Moore1-1/+2
Avoid use of magic numbers in favor of named constants and add MSR to the interrupt frame so that thread dispatch can occur on exceptions as well.
2022-02-04cpukit/microblaze: Add exception extensionsKinsey Moore1-0/+38
Add the functions necessary to support RTEMS_EXCEPTION_EXTENSIONS and mark this functionality as available on MicroBlaze.
2022-02-04cpukit/microblaze: Add debug vector and handlerKinsey Moore1-0/+9
This patch adds a vector for debug events along with a hook similar to the exception framework. The debug vector generates an exception frame for use by libdebugger.
2022-02-04cpukit/microblaze: Add exception frameworkKinsey Moore1-4/+102
This patch updates the CPU_Exception_frame to include all necessary registers, combines hardware snd software exception handlers into a shared vector, provides an architecture-specific hook for taking control of exception handling, and moves exception handling over to actually using the CPU_Exception_frame instead of a minimal interrupt stack frame. As the significant contents of _exception_handler.S have been entirely rewritten, the copyright information on this file has been updated to reflect that.
2021-10-13microblaze: Rework for RTEMS 6Alex White4-0/+499
This reworks the existing MicroBlaze architecture port and BSP to achieve basic functionality using the latest RTEMS APIs.