summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/powerpc/qoriq/startup/bspstart.c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2017-08-11 10:44:04 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2017-08-22 16:27:03 +0200
commitc693a3a5061b67ad63faf7ae76be98ea7eb5cda8 (patch)
tree8a5313689f94b37c1604b15c61ddb0b0083e0c8a /c/src/lib/libbsp/powerpc/qoriq/startup/bspstart.c
parentbsp/qoriq: 64-bit MMU support (diff)
downloadrtems-c693a3a5061b67ad63faf7ae76be98ea7eb5cda8.tar.bz2
powerpc: PPC64_NOP_FOR_LINKER_TOC_POINTER_RESTORE
In 64-bit mode, the linker must have the ability to restore the TOC pointer after an external function call. Update #3082.
Diffstat (limited to 'c/src/lib/libbsp/powerpc/qoriq/startup/bspstart.c')
-rw-r--r--c/src/lib/libbsp/powerpc/qoriq/startup/bspstart.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/c/src/lib/libbsp/powerpc/qoriq/startup/bspstart.c b/c/src/lib/libbsp/powerpc/qoriq/startup/bspstart.c
index 58f930ee22..6ad73c301a 100644
--- a/c/src/lib/libbsp/powerpc/qoriq/startup/bspstart.c
+++ b/c/src/lib/libbsp/powerpc/qoriq/startup/bspstart.c
@@ -113,10 +113,16 @@ static void initialize_frequency_parameters(void)
#define MTIVPR(base) \
__asm__ volatile ("mtivpr %0" : : "r" (base))
+#ifdef __powerpc64__
+#define VECTOR_TABLE_ENTRY_SIZE 32
+#else
+#define VECTOR_TABLE_ENTRY_SIZE 16
+#endif
+
#define MTIVOR(vec, offset) \
do { \
__asm__ volatile ("mtspr " RTEMS_XSTRING(vec) ", %0" : : "r" (offset)); \
- offset += 16; \
+ offset += VECTOR_TABLE_ENTRY_SIZE; \
} while (0)
void qoriq_initialize_exceptions(void *interrupt_stack_begin)