summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/powerpc/mpc55xxevb
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2017-09-19 09:02:30 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2017-09-19 10:57:27 +0200
commit599e6fbdd8b12ba4a876545c8d809cd3ac4dd272 (patch)
tree741528164e6155c45d7bea45bf87e7c72509bf03 /c/src/lib/libbsp/powerpc/mpc55xxevb
parentscore: Include missing <limits.h> (diff)
downloadrtems-599e6fbdd8b12ba4a876545c8d809cd3ac4dd272.tar.bz2
bsps/powerpc: PPC_EXC_CONFIG_USE_FIXED_HANDLER
Make PPC_EXC_CONFIG_USE_FIXED_HANDLER mandatory for BSPs using ppc_exc_interrupt(). Pass exception number to bsp_interrupt_dispatch() to allow processing of decrementer and doorbell exceptions as hypervisor guest. Update #3085.
Diffstat (limited to 'c/src/lib/libbsp/powerpc/mpc55xxevb')
-rw-r--r--c/src/lib/libbsp/powerpc/mpc55xxevb/startup/bspstart.c3
-rw-r--r--c/src/lib/libbsp/powerpc/mpc55xxevb/startup/exc-vector-base.S30
2 files changed, 6 insertions, 27 deletions
diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/bspstart.c b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/bspstart.c
index a9a0d70f73..e218b2dd54 100644
--- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/bspstart.c
+++ b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/bspstart.c
@@ -102,9 +102,6 @@ void bsp_start(void)
rtems_configuration_get_interrupt_stack_size(),
mpc55xx_exc_vector_base
);
- #ifndef PPC_EXC_CONFIG_USE_FIXED_HANDLER
- ppc_exc_set_handler(ASM_ALIGN_VECTOR, ppc_exc_alignment_handler);
- #endif
/* Initialize interrupts */
bsp_interrupt_initialize();
diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/exc-vector-base.S b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/exc-vector-base.S
index 7bc520d6b1..9d9e79f351 100644
--- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/exc-vector-base.S
+++ b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/exc-vector-base.S
@@ -59,15 +59,9 @@ mpc55xx_exc_vector_base:
li r4, 4
b ppc_exc_wrap_nopush_std
stwu r1, -PPC_EXC_INTERRUPT_FRAME_SIZE(r1)
-#ifndef PPC_EXC_CONFIG_USE_FIXED_HANDLER
- stw r4, PPC_EXC_VECTOR_PROLOGUE_OFFSET(r1)
- li r4, -32763
-#endif
+ stw r3, GPR3_OFFSET(r1)
+ li r3, -32763
b ppc_exc_interrupt
-#ifdef PPC_EXC_CONFIG_USE_FIXED_HANDLER
- nop
- nop
-#endif
stwu r1, -EXC_GENERIC_SIZE(r1)
stw r4, GPR4_OFFSET(r1)
li r4, 6
@@ -89,25 +83,13 @@ mpc55xx_exc_vector_base:
li r4, 24
b ppc_exc_wrap_nopush_std
stwu r1, -PPC_EXC_INTERRUPT_FRAME_SIZE(r1)
-#ifndef PPC_EXC_CONFIG_USE_FIXED_HANDLER
- stw r4, PPC_EXC_VECTOR_PROLOGUE_OFFSET(r1)
- li r4, -32752
-#endif
+ stw r3, GPR3_OFFSET(r1)
+ li r3, -32752
b ppc_exc_interrupt
-#ifdef PPC_EXC_CONFIG_USE_FIXED_HANDLER
- nop
- nop
-#endif
stwu r1, -PPC_EXC_INTERRUPT_FRAME_SIZE(r1)
-#ifndef PPC_EXC_CONFIG_USE_FIXED_HANDLER
- stw r4, PPC_EXC_VECTOR_PROLOGUE_OFFSET(r1)
- li r4, -32749
-#endif
+ stw r3, GPR3_OFFSET(r1)
+ li r3, -32749
b ppc_exc_interrupt
-#ifdef PPC_EXC_CONFIG_USE_FIXED_HANDLER
- nop
- nop
-#endif
stw r1, ppc_exc_lock_crit@sdarel(r13)
stw r4, ppc_exc_vector_register_crit@sdarel(r13)
li r4, -32748