diff options
Diffstat (limited to 'cpukit/score/cpu/riscv/include')
-rw-r--r-- | cpukit/score/cpu/riscv/include/rtems/score/cpu.h | 10 | ||||
-rw-r--r-- | cpukit/score/cpu/riscv/include/rtems/score/cpuimpl.h | 15 |
2 files changed, 14 insertions, 11 deletions
diff --git a/cpukit/score/cpu/riscv/include/rtems/score/cpu.h b/cpukit/score/cpu/riscv/include/rtems/score/cpu.h index 9a628c04ca..8821c0e4ec 100644 --- a/cpukit/score/cpu/riscv/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/riscv/include/rtems/score/cpu.h @@ -47,7 +47,9 @@ extern "C" { #define CPU_INLINE_ENABLE_DISPATCH FALSE #define CPU_UNROLL_ENQUEUE_PRIORITY TRUE -#define CPU_ISR_PASSES_FRAME_POINTER 1 + +#define CPU_ISR_PASSES_FRAME_POINTER FALSE + #define CPU_HARDWARE_FP FALSE #define CPU_SOFTWARE_FP FALSE #define CPU_ALL_TASKS_ARE_FP FALSE @@ -72,10 +74,6 @@ typedef struct { /* riscv has 32 xlen-bit (where xlen can be 32 or 64) general purpose registers (x0-x31)*/ unsigned long x[32]; - /* Special purpose registers */ - unsigned long mstatus; - unsigned long mcause; - unsigned long mepc; uint32_t isr_dispatch_disable; #ifdef RTEMS_SMP volatile bool is_executing; @@ -90,8 +88,6 @@ typedef struct { double some_float_register; } Context_Control_fp; -typedef Context_Control CPU_Interrupt_frame; - #define CPU_CONTEXT_FP_SIZE 0 Context_Control_fp _CPU_Null_fp_context; diff --git a/cpukit/score/cpu/riscv/include/rtems/score/cpuimpl.h b/cpukit/score/cpu/riscv/include/rtems/score/cpuimpl.h index 6279c7c22e..4952e29537 100644 --- a/cpukit/score/cpu/riscv/include/rtems/score/cpuimpl.h +++ b/cpukit/score/cpu/riscv/include/rtems/score/cpuimpl.h @@ -38,15 +38,15 @@ #if __riscv_xlen == 32 -#define RISCV_CONTEXT_ISR_DISPATCH_DISABLE 140 +#define RISCV_CONTEXT_ISR_DISPATCH_DISABLE 128 -#define CPU_INTERRUPT_FRAME_SIZE 144 +#define CPU_INTERRUPT_FRAME_SIZE 140 #elif __riscv_xlen == 64 -#define RISCV_CONTEXT_ISR_DISPATCH_DISABLE 280 +#define RISCV_CONTEXT_ISR_DISPATCH_DISABLE 256 -#define CPU_INTERRUPT_FRAME_SIZE 288 +#define CPU_INTERRUPT_FRAME_SIZE 280 #endif /* __riscv_xlen */ @@ -56,6 +56,13 @@ extern "C" { #endif +typedef struct { + unsigned long x[32]; + unsigned long mstatus; + unsigned long mcause; + unsigned long mepc; +} CPU_Interrupt_frame; + #ifdef RTEMS_SMP static inline struct Per_CPU_Control *_RISCV_Get_current_per_CPU_control( void ) |