summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2017-09-20 07:18:53 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2017-09-20 07:18:53 +0200
commitd7ed684d7001bec95e881bc5622e156548dd8070 (patch)
tree3a4c5848aa6d8494e83141fd723a68f859db064b
parentbsp/qoriq: Update README (diff)
downloadrtems-d7ed684d7001bec95e881bc5622e156548dd8070.tar.bz2
bsps/powerpc: Fix PPC_EXC_CONFIG_USE_FIXED_HANDLER
Fix link-time error on BSPs not using PPC_EXC_CONFIG_USE_FIXED_HANDLER. Update #3085.
-rw-r--r--c/src/lib/libbsp/powerpc/shared/src/ppc-exc-handler-table.c2
-rw-r--r--c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_async_normal.S4
-rw-r--r--c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_prologue.c6
3 files changed, 7 insertions, 5 deletions
diff --git a/c/src/lib/libbsp/powerpc/shared/src/ppc-exc-handler-table.c b/c/src/lib/libbsp/powerpc/shared/src/ppc-exc-handler-table.c
index e9f42bfe2c..dbcfc0d29c 100644
--- a/c/src/lib/libbsp/powerpc/shared/src/ppc-exc-handler-table.c
+++ b/c/src/lib/libbsp/powerpc/shared/src/ppc-exc-handler-table.c
@@ -19,7 +19,7 @@
#ifndef PPC_EXC_CONFIG_BOOKE_ONLY
static int ppc_exc_interrupt_dispatch(BSP_Exception_frame *f, unsigned vector)
{
- bsp_interrupt_dispatch();
+ bsp_interrupt_dispatch(vector);
return 0;
}
diff --git a/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_async_normal.S b/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_async_normal.S
index 69ccb25de0..32b867b735 100644
--- a/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_async_normal.S
+++ b/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_async_normal.S
@@ -16,6 +16,8 @@
#include <rtems/score/percpu.h>
#include <bsp/vectors.h>
+#ifdef PPC_EXC_CONFIG_USE_FIXED_HANDLER
+
#define SCRATCH_0_REGISTER r0
#define SCRATCH_1_REGISTER r3
#define SCRATCH_2_REGISTER r4
@@ -458,3 +460,5 @@ ppc_exc_interrupt:
/* Symbol provided for debugging and tracing */
ppc_exc_interrupt_end:
+
+#endif /* PPC_EXC_CONFIG_USE_FIXED_HANDLER */
diff --git a/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_prologue.c b/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_prologue.c
index 5f5cf9a3e5..09307cd944 100644
--- a/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_prologue.c
+++ b/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_prologue.c
@@ -132,17 +132,15 @@ rtems_status_code ppc_exc_make_prologue(
) {
prologue_template = ppc_exc_min_prolog_auto;
prologue_template_size = (size_t) ppc_exc_min_prolog_size;
+#ifdef PPC_EXC_CONFIG_USE_FIXED_HANDLER
} else if (
category == PPC_EXC_CLASSIC_ASYNC
&& ppc_cpu_is_bookE() == PPC_BOOKE_E500
&& (ppc_interrupt_get_disable_mask() & MSR_CE) == 0
) {
prologue_template = ppc_exc_min_prolog_async_tmpl_normal;
-#ifndef PPC_EXC_CONFIG_USE_FIXED_HANDLER
- prologue_template_size = (size_t) ppc_exc_min_prolog_size;
+ prologue_template_size = 16;
fixup_vector = true;
-#else /* PPC_EXC_CONFIG_USE_FIXED_HANDLER */
- prologue_template_size = 8;
#endif /* PPC_EXC_CONFIG_USE_FIXED_HANDLER */
} else {
prologue_template = ppc_exc_prologue_templates [category];