summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2017-07-28 14:42:53 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2017-07-28 14:43:22 +0200
commit585706a4ec6e92544604510369b62952f4ec9dd8 (patch)
tree134e65679de9aeb001904b934865a385fd3ec22c
parentpsxtests/psxmmap01: Fix warning (diff)
downloadrtems-585706a4ec6e92544604510369b62952f4ec9dd8.tar.bz2
bsp/t32mppc: Add SMP support
-rw-r--r--c/src/lib/libbsp/powerpc/t32mppc/Makefile.am4
-rw-r--r--c/src/lib/libbsp/powerpc/t32mppc/configure.ac3
-rw-r--r--c/src/lib/libbsp/powerpc/t32mppc/startup/bspstart.c4
-rw-r--r--cpukit/score/cpu/powerpc/rtems/score/cpuimpl.h3
4 files changed, 12 insertions, 2 deletions
diff --git a/c/src/lib/libbsp/powerpc/t32mppc/Makefile.am b/c/src/lib/libbsp/powerpc/t32mppc/Makefile.am
index 5b7339a28c..ebc697218e 100644
--- a/c/src/lib/libbsp/powerpc/t32mppc/Makefile.am
+++ b/c/src/lib/libbsp/powerpc/t32mppc/Makefile.am
@@ -78,5 +78,9 @@ libbsp_a_LIBADD = ../../../libcpu/@RTEMS_CPU@/shared/cpuIdent.rel \
../../../libcpu/@RTEMS_CPU@/@exceptions@/rtems-cpu.rel \
../../../libcpu/@RTEMS_CPU@/@exceptions@/exc_bspsupport.rel
+if HAS_SMP
+libbsp_a_SOURCES += ../../shared/bspsmp.c
+endif
+
include $(srcdir)/preinstall.am
include $(top_srcdir)/../../../../automake/local.am
diff --git a/c/src/lib/libbsp/powerpc/t32mppc/configure.ac b/c/src/lib/libbsp/powerpc/t32mppc/configure.ac
index 4cfaf14616..fce295e9fd 100644
--- a/c/src/lib/libbsp/powerpc/t32mppc/configure.ac
+++ b/c/src/lib/libbsp/powerpc/t32mppc/configure.ac
@@ -17,6 +17,9 @@ RTEMS_BSPOPTS_HELP_DATA_CACHE_ENABLED
RTEMS_BSPOPTS_SET_INSTRUCTION_CACHE_ENABLED([*],[1])
RTEMS_BSPOPTS_HELP_INSTRUCTION_CACHE_ENABLED
+RTEMS_CHECK_SMP
+AM_CONDITIONAL(HAS_SMP,[test "$rtems_cv_HAS_SMP" = "yes"])
+
RTEMS_CHECK_NETWORKING
AM_CONDITIONAL(HAS_NETWORKING,test "$HAS_NETWORKING" = "yes")
diff --git a/c/src/lib/libbsp/powerpc/t32mppc/startup/bspstart.c b/c/src/lib/libbsp/powerpc/t32mppc/startup/bspstart.c
index f3e1474317..73d1d8cf56 100644
--- a/c/src/lib/libbsp/powerpc/t32mppc/startup/bspstart.c
+++ b/c/src/lib/libbsp/powerpc/t32mppc/startup/bspstart.c
@@ -37,7 +37,7 @@ void BSP_panic(char *s)
{
rtems_interrupt_level level;
- rtems_interrupt_disable(level);
+ rtems_interrupt_local_disable(level);
(void) level;
printk("%s PANIC %s\n", rtems_get_version_string(), s);
@@ -51,7 +51,7 @@ void _BSP_Fatal_error(unsigned n)
{
rtems_interrupt_level level;
- rtems_interrupt_disable(level);
+ rtems_interrupt_local_disable(level);
(void) level;
printk("%s PANIC ERROR %u\n", rtems_get_version_string(), n);
diff --git a/cpukit/score/cpu/powerpc/rtems/score/cpuimpl.h b/cpukit/score/cpu/powerpc/rtems/score/cpuimpl.h
index bc03ab98ac..57c2db1822 100644
--- a/cpukit/score/cpu/powerpc/rtems/score/cpuimpl.h
+++ b/cpukit/score/cpu/powerpc/rtems/score/cpuimpl.h
@@ -193,6 +193,9 @@ typedef struct {
double F13;
uint64_t FPSCR;
#endif
+ #if !defined(PPC_MULTILIB_ALTIVEC) && !defined(PPC_MULTILIB_FPU)
+ uint32_t RESERVED_FOR_STACK_ALIGNMENT;
+ #endif
} CPU_Interrupt_frame;
#ifdef RTEMS_SMP