summaryrefslogtreecommitdiffstats
path: root/cpukit/score/cpu/riscv/include/rtems/score/cpuimpl.h (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-05-20Update company nameSebastian Huber1-1/+1
The embedded brains GmbH & Co. KG is the legal successor of embedded brains GmbH.
2022-10-14riscv: Move functions to avoid build issuesSebastian Huber1-0/+10
The _RISCV_Map_cpu_index_to_hardid() and _RISCV_Map_hardid_to_cpu_index() functions must be available to all riscv BSPs.
2022-10-14score: Add CPU_THREAD_LOCAL_STORAGE_VARIANTSebastian Huber1-0/+2
Update #3835.
2022-09-20bsps/riscv: Add Microchip PolarFire SoC BSP variantPadmarao Begari1-1/+1
The Microchip PolarFire SoC support is implemented as a riscv BSP variant to boot with any individual hart(cpu core) or SMP based on the boot HARTID configurable and support components are 4 CPU Cores (U54), Interrupt controller (PLIC), Timer (CLINT), UART.
2022-09-19Do not use RTEMS_INLINE_ROUTINESebastian Huber1-3/+3
Directly use "static inline" which is available in C99 and later. This brings the RTEMS implementation closer to standard C. Close #3935.
2022-07-04score: Add _CPU_Use_thread_local_storage()Sebastian Huber1-0/+12
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-25riscv: Use zicsr architecture extensionSebastian Huber1-1/+7
This is required for ISA 2.0 support, see chapter "Zicsr", Control and Status Register (CSR) Instructions, Version 2.0 in RISC-V Instruction Set Manual, Volume I: RISC-V User-Level ISA
2021-07-28score: Canonicalize _CPU_Fatal_halt()Sebastian Huber1-0/+2
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().
2019-04-02doxygen: score: Add RISC-V CPU architecture groupAndreas Dachsberger1-0/+12
Update #3706.
2018-07-27riscv: Rework CPU counter supportSebastian Huber1-0/+38
Update #3433.
2018-07-25riscv: Add CLINT and PLIC supportSebastian Huber1-5/+45
The CLINT and PLIC need some per-processor state. Update #3433.
2018-07-25riscv: Rework exception handlingSebastian Huber1-0/+7
Remove _CPU_ISR_install_raw_handler() and _CPU_ISR_install_vector() functions. Applications can install an exception handler via the fatal error handler to handle synchronous exceptions. Handle interrupt exceptions via _RISCV_Interrupt_dispatch() which must be provided by the BSP. Update #3433.
2018-07-25riscv: New CPU_Exception_frameSebastian Huber1-54/+46
Use the CPU_Interrupt_frame for the volatile context. Add non-volatile registers and extra state on top of it. Update #3433.
2018-07-23score: Add _CPU_Instruction_illegal()Sebastian Huber1-0/+5
On some architectures/simulators it is difficult to provoke an exception with misaligned or illegal data loads. Use an illegal instruction instead. Update #3433.
2018-07-20score: Add _CPU_Instruction_no_operation()Sebastian Huber1-0/+5
This helps to reduce the use of architecture-specific defines throughout the code base.
2018-07-20score: Move context validation declarationsSebastian Huber1-0/+4
The context validation support functions _CPU_Context_validate() and _CPU_Context_volatile_clobber() are used only by one test program (spcontext01). Move the function declarations to the CPU port implementation header file.
2018-07-05riscv: Clear reservationsSebastian Huber1-0/+11
See also RISC-V User-Level ISA V2.3, comment in section 8.2 "Load-Reserved/Store-Conditional Instructions". Update #3433.
2018-07-02riscv: Fix fcsr initializationSebastian Huber1-0/+9
Update #3433.
2018-06-29riscv: Add floating-point supportSebastian Huber1-0/+131
Update #3433.
2018-06-29riscv: Optimize context switch and interruptsSebastian Huber1-11/+103
Save/restore non-volatile registers in _CPU_Context_switch(). Save/restore volatile registers in _ISR_Handler(). Update #3433.
2018-06-29riscv: Remove mstatus from thread contextSebastian Huber1-4/+11
The mstatus register contains no thread-specific state which must be saved/restored during a context switch. Machine interrupts (MIE) must be enabled during a context switch. Create separate CPU_Interrupt_frame structure. Update #3433.
2018-06-29riscv: Enable interrupts during dispatch after ISRSebastian Huber1-0/+4
The code sequence is derived from the ARM code (see _ARMV4_Exception_interrupt). Update #2751. Update #3433.
2018-06-28riscv: Add _CPU_Get_current_per_CPU_control()Sebastian Huber1-0/+15
Update #3433.
2018-06-28riscv: Add dummy SMP supportSebastian Huber1-1/+11
Update #3433.
2018-01-25Remove make preinstallChris Johns1-0/+0
A speciality of the RTEMS build system was the make preinstall step. It copied header files from arbitrary locations into the build tree. The header files were included via the -Bsome/build/tree/path GCC command line option. This has at least seven problems: * The make preinstall step itself needs time and disk space. * Errors in header files show up in the build tree copy. This makes it hard for editors to open the right file to fix the error. * There is no clear relationship between source and build tree header files. This makes an audit of the build process difficult. * The visibility of all header files in the build tree makes it difficult to enforce API barriers. For example it is discouraged to use BSP-specifics in the cpukit. * An introduction of a new build system is difficult. * Include paths specified by the -B option are system headers. This may suppress warnings. * The parallel build had sporadic failures on some hosts. This patch removes the make preinstall step. All installed header files are moved to dedicated include directories in the source tree. Let @RTEMS_CPU@ be the target architecture, e.g. arm, powerpc, sparc, etc. Let @RTEMS_BSP_FAMILIY@ be a BSP family base directory, e.g. erc32, imx, qoriq, etc. The new cpukit include directories are: * cpukit/include * cpukit/score/cpu/@RTEMS_CPU@/include * cpukit/libnetworking The new BSP include directories are: * bsps/include * bsps/@RTEMS_CPU@/include * bsps/@RTEMS_CPU@/@RTEMS_BSP_FAMILIY@/include There are build tree include directories for generated files. The include directory order favours the most general header file, e.g. it is not possible to override general header files via the include path order. The "bootstrap -p" option was removed. The new "bootstrap -H" option should be used to regenerate the "headers.am" files. Update #3254.
2017-11-01cpukit: RISC-V - make riscv32 code work for riscv64 - v2Hesham Almatary1-0/+0
* Use #ifdefs for 32/64 bit code * Use unsigned long which is 32-bit on riscv32 and 64-bit on riscv64 (register size) * Move the code to a new shared riscv folder to be shared between riscv32 and riscv64 * Rename RTEMS_CPU extracted from command line to shared riscv target s/riscv*/riscv Update #3109
2017-10-28cpukit: Add basic riscv32 architecture port v3Hesham Almatary1-15/+18
Limitations: * NO FPU support [TODO] Update #3109
2017-08-15libdebugger: Fixes to debugging, ARM support, locking, and gcc-7.1 warnings.Chris Johns1-1/+2
- Add `printk` support to aid multi-core debugging. - Add lock trace to aid lock debugging. - Fixes to gcc-7.1 warnings. - Fixes from ticket #2879. - Add verbose command controls. - Change using the RTEMS sys/lock.h API to manage exception threads. - ARM hardware breakpoint fixes. Support for SMP stepping is not implemented, this requires use of the context id register. Closes #2879.
2016-11-29cpukit: Add libdebugger, a remote debugger agent for GDB.Chris Johns1-13/+19
2012-05-11Remove All CVS Id Strings Possible Using a ScriptJoel Sherrill1-3/+0
Script does what is expected and tries to do it as smartly as possible. + remove occurrences of two blank comment lines next to each other after Id string line removed. + remove entire comment blocks which only exited to contain CVS Ids + If the processing left a blank line at the top of a file, it was removed.
2009-11-30Whitespace removal.Ralf Corsepius1-1/+1
2008-12-11#include <stdint.h> instead of <rtems/stdint.h>.Ralf Corsepius1-1/+1
2005-05-09New.Ralf Corsepius1-38/+12
2004-04-20Use -D_KERNEL instead of -DKERNEL for greater FreeBSD compliance.Ralf Corsepius1-2/+2
1998-08-19Base filesJoel Sherrill1-0/+70