diff options
-rw-r--r-- | c/src/lib/libbsp/powerpc/mpc55xxevb/Makefile.am | 1 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/mpc55xxevb/include/bsp.h | 4 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/mpc55xxevb/startup/restart.c | 24 |
3 files changed, 28 insertions, 1 deletions
diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/Makefile.am b/c/src/lib/libbsp/powerpc/mpc55xxevb/Makefile.am index 606e9b7617..1a9259ee21 100644 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/Makefile.am +++ b/c/src/lib/libbsp/powerpc/mpc55xxevb/Makefile.am @@ -72,6 +72,7 @@ libbsp_a_SOURCES += startup/bspstart.c libbsp_a_SOURCES += startup/exc-vector-base.S libbsp_a_SOURCES += startup/get-system-clock.c libbsp_a_SOURCES += startup/reset.c +libbsp_a_SOURCES += startup/restart.c libbsp_a_SOURCES += startup/start-config-clock.c libbsp_a_SOURCES += startup/start-config-ebi-cs.c libbsp_a_SOURCES += startup/start-config-ebi-cs-cal.c diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/include/bsp.h b/c/src/lib/libbsp/powerpc/mpc55xxevb/include/bsp.h index 0a55cb2361..b4868200c4 100644 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/include/bsp.h +++ b/c/src/lib/libbsp/powerpc/mpc55xxevb/include/bsp.h @@ -7,7 +7,7 @@ */ /* - * Copyright (c) 2008-2011 embedded brains GmbH. All rights reserved. + * Copyright (c) 2008-2012 embedded brains GmbH. All rights reserved. * * embedded brains GmbH * Obere Lagerstr. 30 @@ -72,6 +72,8 @@ int smsc9218i_attach_detach( rtems_status_code bsp_register_i2c(void); +void bsp_restart(void *addr); + #endif /* ASM */ #ifdef __cplusplus diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/restart.c b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/restart.c new file mode 100644 index 0000000000..c09547872c --- /dev/null +++ b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/restart.c @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2008-2012 embedded brains GmbH. All rights reserved. + * + * embedded brains GmbH + * Obere Lagerstr. 30 + * 82178 Puchheim + * Germany + * <rtems@embedded-brains.de> + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.com/license/LICENSE. + */ + +#include <bsp.h> + +void bsp_restart(void *addr) +{ + rtems_interrupt_level level; + void (*start)(void) = addr; + + rtems_interrupt_disable(level); + (*start)(); +} |