summaryrefslogtreecommitdiffstats
path: root/c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2012-07-18 09:20:46 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2012-07-18 09:46:14 +0200
commitb9b3f3b7ce57a3c1f94bb2118cd0dd1c4bea7db1 (patch)
tree8b6c1ec326b83552b02c2817b6c371f8fad89189 /c
parentbsp/mpc55xx: Add MPC55XX_NEEDS_LOW_LEVEL_INIT (diff)
downloadrtems-b9b3f3b7ce57a3c1f94bb2118cd0dd1c4bea7db1.tar.bz2
bsp/mpc55xx: Add MPC55XX_NULL_POINTER_PROTECTION
Diffstat (limited to 'c')
-rw-r--r--c/src/lib/libbsp/powerpc/mpc55xxevb/configure.ac5
-rw-r--r--c/src/lib/libbsp/powerpc/mpc55xxevb/include/bspopts.h.in3
-rw-r--r--c/src/lib/libbsp/powerpc/mpc55xxevb/startup/bspstart.c2
3 files changed, 9 insertions, 1 deletions
diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/configure.ac b/c/src/lib/libbsp/powerpc/mpc55xxevb/configure.ac
index ccfa1050cf..68b90e211c 100644
--- a/c/src/lib/libbsp/powerpc/mpc55xxevb/configure.ac
+++ b/c/src/lib/libbsp/powerpc/mpc55xxevb/configure.ac
@@ -79,6 +79,11 @@ RTEMS_BSPOPTS_SET([MPC55XX_EMIOS_PRESCALER],[*] ,[1])
RTEMS_BSPOPTS_HELP([MPC55XX_EMIOS_PRESCALER],
[Must be defined to set the EMIOS prescaler])
+RTEMS_BSPOPTS_SET([MPC55XX_NULL_POINTER_PROTECTION],[mpc5566*],[1])
+RTEMS_BSPOPTS_SET([MPC55XX_NULL_POINTER_PROTECTION],[mpc5674f*],[1])
+RTEMS_BSPOPTS_HELP([MPC55XX_NULL_POINTER_PROTECTION],
+[enable NULL pointer protection])
+
RTEMS_BSPOPTS_SET([HAS_SMC91111],[phycore_mpc5554],[1])
RTEMS_BSPOPTS_HELP([HAS_SMC91111],
[If defined the board has the SMC91111 networking chip.])
diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/include/bspopts.h.in b/c/src/lib/libbsp/powerpc/mpc55xxevb/include/bspopts.h.in
index 124a22247d..1be8513259 100644
--- a/c/src/lib/libbsp/powerpc/mpc55xxevb/include/bspopts.h.in
+++ b/c/src/lib/libbsp/powerpc/mpc55xxevb/include/bspopts.h.in
@@ -76,6 +76,9 @@
/* if defined, do low level initialization */
#undef MPC55XX_NEEDS_LOW_LEVEL_INIT
+/* enable NULL pointer protection */
+#undef MPC55XX_NULL_POINTER_PROTECTION
+
/* Must be defined to be the external reference clock (in Hz) for clock
generation */
#undef MPC55XX_REFERENCE_CLOCK
diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/bspstart.c b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/bspstart.c
index 405d2d0f93..d511a43cd6 100644
--- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/bspstart.c
+++ b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/bspstart.c
@@ -78,7 +78,7 @@ void _BSP_Fatal_error( unsigned n)
static void null_pointer_protection(void)
{
-#if defined(MPC55XX_BOARD_MPC5674FEVB) || defined(MPC55XX_BOARD_MPC5566EVB)
+#ifdef MPC55XX_NULL_POINTER_PROTECTION
struct MMU_tag mmu = { .MAS0 = { .B = { .TLBSEL = 1, .ESEL = 1 } } };
PPC_SET_SPECIAL_PURPOSE_REGISTER(FSL_EIS_MAS0, mmu.MAS0.R);