summaryrefslogtreecommitdiffstats
path: root/cpukit/score/cpu/aarch64 (follow)
Commit message (Collapse)AuthorAgeFilesLines
* cpukit/aarch64: Use correct interrupt level typesKinsey Moore2021-10-012-4/+4
| | | | | All other architectures use uint32_t for interrupt levels and there is no reason not to do so on AArch64.
* cpukit/aarch64: Use correct context register setsKinsey Moore2021-10-012-55/+123
| | | | | | | Context validation for AArch64 was ported from the ARM implementation without a reinterpretation of the actual requirements. The spcontext01 test just happened to pass because the set of scratch registers in ARM is a subset of the scratch registers in AArch64.
* cpukit: Add AArch64 SMP SupportKinsey Moore2021-09-215-9/+160
| | | | This adds SMP support for AArch64 in cpukit and for the ZynqMP BSPs.
* Turn off executable permissions for a number of source filesJoel Sherrill2021-08-091-0/+0
| | | | | | | Cloning under Cygwin turned off executable permission on these files. This shows them as modified even though they have not explicitly been touched. Executable permission should not have been on for these files so this is just a minor clean up.
* score: Canonicalize _CPU_Fatal_halt()Sebastian Huber2021-07-283-15/+16
| | | | | | | | Move _CPU_Fatal_halt() declaration to <rtems/score/cpuimpl.h> and make sure it is a proper declaration of a function which does not return. Fix the type of the error code. If necessary, add the implementation to cpu.c. Implementing _CPU_Fatal_halt() as a function makes it possible to wrap this function for example to fully test _Terminate().
* score: Remove processor event broadcast/receiveSebastian Huber2021-07-281-12/+0
| | | | | | Remove _CPU_SMP_Processor_event_broadcast() and _CPU_SMP_Processor_event_receive(). These functions are hard to use since they are subject to the lost wake up problem.
* bsps/aarch64: Add MMU driver to relax alignmentKinsey Moore2021-05-271-16/+50
| | | | | | | | | | | | | | | Currently, the AArch64 BSPs have a hard time running on real hardware without building the toolchain and the bsps with -mstrict-align in multiple places. Configuring the MMU on these chips allows for unaligned memory accesses for non-device memory which avoids requiring strict alignment in the toolchain and in the BSPs themselves. In writing this driver, it was found that the synchronous exception handling code needed to be rewritten since it relied on clearing SCTLR_EL1 to avoid thread stack misalignments in RTEMS_DEBUG mode. This is now avoided by exactly preserving thread mode stack and flags and the new implementation is compatible with the draft information provided on the mailing list covering the Exception Management API.
* bsps/aarch64: Break out system registersKinsey Moore2021-05-271-0/+9985
| | | | | Break out system register definitions and accessors so that they're usable by other parts of RTEMS.
* score/aarch64: Align context validation frameKinsey Moore2021-05-261-11/+18
| | | | | | Ensure the stack remains aligned by keeping the context frame at a multiple of 16 bytes. This avoids stack alignment exceptions which occur when the stack pointer is not 16 byte aligned.
* cpukit/aarch64: Restore ISR cookie bit maskKinsey Moore2021-04-191-13/+13
| | | | | | | The _CPU_ISR_Is_enabled() function operates on ISR cookies and so must mask off the appropriate status bits. This also fixes the naming of the parameters of the _CPU_ISR_* functions to indicate use of ISR cookies instead of interrupt enable/disable levels.
* cpukit/aarch64: Add ESR register decodingAlex White2021-04-061-10/+125
|
* bsps/aarch64: RTEMS_DEBUG stack alignment faultsKinsey Moore2021-03-051-2/+8
| | | | | | Run with stack alignment faults enabled under RTEMS_DEBUG to catch any stack misalignments early. This makes it easier to track them down should they ever occur.
* score/aarch64: Fix interrupt level readsAlex White2021-03-052-3/+7
|
* aarch64: Fix context switchSebastian Huber2021-03-051-2/+2
| | | | | | The Per_CPU_Control::isr_dispatch_disable is a 32-bit integer. Close #4206.
* cpukit/aarch64: Add explanation of exception flowKinsey Moore2020-12-102-3/+18
|
* cpukit/aarch64: Use hex consistently for offsetsKinsey Moore2020-12-105-116/+116
|
* score/aarch64: Resolve warning in exception dumpKinsey Moore2020-11-241-2/+2
| | | | | This resolves a warning in the exception frame dump for AArch64 relating to a missized printf format specifier.
* score/aarch64: Size saved SP register for ABIKinsey Moore2020-11-131-1/+4
| | | | | This ensures that the saved SP register is sized appropriately depending on the chosen ABI and prevents a warning in the libmisc stack checker.
* rtems: Improve RTEMS_NO_RETURN attributeSebastian Huber2020-10-101-2/+1
| | | | | | | | | | | Provide RTEMS_NO_RETURN also in case RTEMS_DEBUG is defined to prevent errors like this: error: no return statement in function returning non-void [-Werror=return-type] Use C11 and C++11 standard means to declare a no-return function. Close #4122.
* score: Add AArch64 portKinsey Moore2020-10-0516-0/+2751
This adds a CPU port for AArch64(ARMv8) with support for exceptions and interrupts.