summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/powerpc/qoriq/start/start.S
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2017-09-19 14:35:02 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2017-09-19 14:35:02 +0200
commitf100a58c823d39fd202a584c2fdae8b7655a98ce (patch)
tree98d875ccfe6be15b7b9c2b9000100a577c21981d /c/src/lib/libbsp/powerpc/qoriq/start/start.S
parentbsp/qoriq: MMU configuration as hypervisor guest (diff)
downloadrtems-f100a58c823d39fd202a584c2fdae8b7655a98ce.tar.bz2
bsp/qoriq: Add hypervisor guest SMP support
Update #3085.
Diffstat (limited to 'c/src/lib/libbsp/powerpc/qoriq/start/start.S')
-rw-r--r--c/src/lib/libbsp/powerpc/qoriq/start/start.S8
1 files changed, 8 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/powerpc/qoriq/start/start.S b/c/src/lib/libbsp/powerpc/qoriq/start/start.S
index d5a2ceb474..2d275e3c2b 100644
--- a/c/src/lib/libbsp/powerpc/qoriq/start/start.S
+++ b/c/src/lib/libbsp/powerpc/qoriq/start/start.S
@@ -489,10 +489,18 @@ bsp_exc_vector_base:
START_NOP_FOR_LINKER_TOC_POINTER_RESTORE
#ifdef __PPC_CPU_E6500__
/* Processor doorbell interrupt */
+#if defined(QORIQ_IS_HYPERVISOR_GUEST) && defined(RTEMS_SMP)
+ PPC_REG_STORE_UPDATE r1, -PPC_EXC_INTERRUPT_FRAME_SIZE(r1)
+#else
PPC_REG_STORE_UPDATE r1, -EXC_GENERIC_SIZE(r1)
+#endif
PPC_REG_STORE r3, GPR3_OFFSET(r1)
li r3, 36
+#if defined(QORIQ_IS_HYPERVISOR_GUEST) && defined(RTEMS_SMP)
+ b ppc_exc_interrupt
+#else
b ppc_exc_fatal_normal
+#endif
START_NOP_FOR_LINKER_TOC_POINTER_RESTORE
/* Processor doorbell critical interrupt */
PPC_REG_STORE_UPDATE r1, -EXC_GENERIC_SIZE(r1)