summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/powerpc
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2012-11-14 09:59:10 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2012-11-15 15:33:12 +0100
commita052181ca2e243540342315cde990b9471331a8e (patch)
tree2e8dfd9152bfc1d37fcb05f58de9d6b0e80eb8b3 /c/src/lib/libbsp/powerpc
parentscore: Add RTEMS_FATAL_SOURCE_APPLICATION (diff)
downloadrtems-a052181ca2e243540342315cde990b9471331a8e.tar.bz2
score: Add RTEMS_FATAL_SOURCE_EXIT
Include <bsp/default-initial-extension.h> in all BSPs. Call rtems_fatal() with RTEMS_FATAL_SOURCE_EXIT as source and the exit() status code as fatal code in every bsp_cleanup(). Move previous bsp_cleanup() code into bsp_fatal_extension().
Diffstat (limited to 'c/src/lib/libbsp/powerpc')
-rw-r--r--c/src/lib/libbsp/powerpc/beatnik/include/bsp.h1
-rw-r--r--c/src/lib/libbsp/powerpc/beatnik/startup/bspclean.c15
-rw-r--r--c/src/lib/libbsp/powerpc/ep1a/include/bsp.h1
-rw-r--r--c/src/lib/libbsp/powerpc/gen5200/include/bsp.h1
-rw-r--r--c/src/lib/libbsp/powerpc/gen83xx/include/bsp.h9
-rw-r--r--c/src/lib/libbsp/powerpc/haleakala/include/bsp.h1
-rw-r--r--c/src/lib/libbsp/powerpc/mbx8xx/include/bsp.h1
-rw-r--r--c/src/lib/libbsp/powerpc/motorola_powerpc/include/bsp.h1
-rw-r--r--c/src/lib/libbsp/powerpc/mpc55xxevb/include/bsp.h25
-rw-r--r--c/src/lib/libbsp/powerpc/mpc8260ads/include/bsp.h1
-rw-r--r--c/src/lib/libbsp/powerpc/mvme3100/include/bsp.h1
-rw-r--r--c/src/lib/libbsp/powerpc/mvme5500/include/bsp.h1
-rw-r--r--c/src/lib/libbsp/powerpc/mvme5500/startup/bspclean.c13
-rw-r--r--c/src/lib/libbsp/powerpc/psim/include/bsp.h3
-rw-r--r--c/src/lib/libbsp/powerpc/qemuppc/include/bsp.h1
-rw-r--r--c/src/lib/libbsp/powerpc/qoriq/include/bsp.h6
-rw-r--r--c/src/lib/libbsp/powerpc/score603e/include/bsp.h1
-rw-r--r--c/src/lib/libbsp/powerpc/ss555/include/bsp.h1
-rw-r--r--c/src/lib/libbsp/powerpc/t32mppc/include/bsp.h2
-rw-r--r--c/src/lib/libbsp/powerpc/tqm8xx/include/bsp.h8
-rw-r--r--c/src/lib/libbsp/powerpc/virtex/include/bsp.h1
-rw-r--r--c/src/lib/libbsp/powerpc/virtex4/include/bsp.h2
-rw-r--r--c/src/lib/libbsp/powerpc/virtex4/startup/bspclean.c15
-rw-r--r--c/src/lib/libbsp/powerpc/virtex5/include/bsp.h1
-rw-r--r--c/src/lib/libbsp/powerpc/virtex5/startup/bspclean.c15
25 files changed, 96 insertions, 31 deletions
diff --git a/c/src/lib/libbsp/powerpc/beatnik/include/bsp.h b/c/src/lib/libbsp/powerpc/beatnik/include/bsp.h
index 32fd3b47ca..a7f312dced 100644
--- a/c/src/lib/libbsp/powerpc/beatnik/include/bsp.h
+++ b/c/src/lib/libbsp/powerpc/beatnik/include/bsp.h
@@ -15,6 +15,7 @@
#define LIBBSP_BEATNIK_BSP_H
#include <bspopts.h>
+#include <bsp/default-initial-extension.h>
#include <rtems.h>
#include <rtems/console.h>
diff --git a/c/src/lib/libbsp/powerpc/beatnik/startup/bspclean.c b/c/src/lib/libbsp/powerpc/beatnik/startup/bspclean.c
index 1b63003e1c..1539e44cf5 100644
--- a/c/src/lib/libbsp/powerpc/beatnik/startup/bspclean.c
+++ b/c/src/lib/libbsp/powerpc/beatnik/startup/bspclean.c
@@ -2,16 +2,25 @@
#include <bsp/bootcard.h>
#include <rtems/bspIo.h>
-void bsp_cleanup(
- uint32_t status
+void bsp_fatal_extension(
+ rtems_fatal_source source,
+ bool is_internal,
+ rtems_fatal_code error
)
{
/* We can't go back to MotLoad since we blew it's memory area
* and vectors. Just pull the reset line...
*/
printk(
- "bsp_cleanup(): RTEMS terminated -- no way back to MotLoad "
+ "bsp_fatal_extension(): RTEMS terminated -- no way back to MotLoad "
"so I reset the card\n"
);
bsp_reset();
}
+
+void bsp_cleanup(
+ uint32_t status
+)
+{
+ rtems_fatal( RTEMS_FATAL_SOURCE_EXIT, status );
+}
diff --git a/c/src/lib/libbsp/powerpc/ep1a/include/bsp.h b/c/src/lib/libbsp/powerpc/ep1a/include/bsp.h
index dd6955555f..aaae56021e 100644
--- a/c/src/lib/libbsp/powerpc/ep1a/include/bsp.h
+++ b/c/src/lib/libbsp/powerpc/ep1a/include/bsp.h
@@ -11,6 +11,7 @@
#define _BSP_H
#include <bspopts.h>
+#include <bsp/default-initial-extension.h>
#include <rtems.h>
#include <rtems/console.h>
diff --git a/c/src/lib/libbsp/powerpc/gen5200/include/bsp.h b/c/src/lib/libbsp/powerpc/gen5200/include/bsp.h
index c54846f8e7..fab12cb3f2 100644
--- a/c/src/lib/libbsp/powerpc/gen5200/include/bsp.h
+++ b/c/src/lib/libbsp/powerpc/gen5200/include/bsp.h
@@ -122,6 +122,7 @@ extern "C" {
#include <bsp/irq.h>
#include <bsp/vectors.h>
#include <bsp/u-boot.h>
+#include <bsp/default-initial-extension.h>
/*
* Network driver configuration
diff --git a/c/src/lib/libbsp/powerpc/gen83xx/include/bsp.h b/c/src/lib/libbsp/powerpc/gen83xx/include/bsp.h
index b8bcec7121..fcead98b7e 100644
--- a/c/src/lib/libbsp/powerpc/gen83xx/include/bsp.h
+++ b/c/src/lib/libbsp/powerpc/gen83xx/include/bsp.h
@@ -63,15 +63,16 @@ LINKER_SYMBOL(IMMRBAR);
#ifndef ASM
-#ifdef __cplusplus
-extern "C" {
-#endif
-
#include <rtems.h>
#include <rtems/console.h>
#include <rtems/clockdrv.h>
#include <bsp/vectors.h>
#include <bsp/irq.h>
+#include <bsp/default-initial-extension.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
/*
* indicate, that BSP has no IDE driver
diff --git a/c/src/lib/libbsp/powerpc/haleakala/include/bsp.h b/c/src/lib/libbsp/powerpc/haleakala/include/bsp.h
index f0f6010839..627c8f172a 100644
--- a/c/src/lib/libbsp/powerpc/haleakala/include/bsp.h
+++ b/c/src/lib/libbsp/powerpc/haleakala/include/bsp.h
@@ -67,6 +67,7 @@ extern "C" {
#include <rtems/iosupp.h>
#include <bsp/irq.h>
#include <bsp/vectors.h>
+ #include <bsp/default-initial-extension.h>
/* Network Defines */
#define RTEMS_BSP_NETWORK_DRIVER_NAME "eth0"
diff --git a/c/src/lib/libbsp/powerpc/mbx8xx/include/bsp.h b/c/src/lib/libbsp/powerpc/mbx8xx/include/bsp.h
index 3d4180a399..d346901e49 100644
--- a/c/src/lib/libbsp/powerpc/mbx8xx/include/bsp.h
+++ b/c/src/lib/libbsp/powerpc/mbx8xx/include/bsp.h
@@ -20,6 +20,7 @@ extern "C" {
#endif
#include <bspopts.h>
+#include <bsp/default-initial-extension.h>
#include <rtems.h>
#include <rtems/console.h>
diff --git a/c/src/lib/libbsp/powerpc/motorola_powerpc/include/bsp.h b/c/src/lib/libbsp/powerpc/motorola_powerpc/include/bsp.h
index d150e1552b..7df9a53c1e 100644
--- a/c/src/lib/libbsp/powerpc/motorola_powerpc/include/bsp.h
+++ b/c/src/lib/libbsp/powerpc/motorola_powerpc/include/bsp.h
@@ -11,6 +11,7 @@
#define _BSP_H
#include <bspopts.h>
+#include <bsp/default-initial-extension.h>
#include <rtems.h>
#include <rtems/console.h>
diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/include/bsp.h b/c/src/lib/libbsp/powerpc/mpc55xxevb/include/bsp.h
index a72f4daa03..251404fcde 100644
--- a/c/src/lib/libbsp/powerpc/mpc55xxevb/include/bsp.h
+++ b/c/src/lib/libbsp/powerpc/mpc55xxevb/include/bsp.h
@@ -23,28 +23,27 @@
#ifndef LIBBSP_POWERPC_MPC55XXEVB_BSP_H
#define LIBBSP_POWERPC_MPC55XXEVB_BSP_H
-#include <stdint.h>
+#include <bspopts.h>
+
+#define BSP_SMALL_MEMORY 1
+
+#define BSP_INTERRUPT_STACK_AT_WORK_AREA_BEGIN
+
+#define BSP_FEATURE_IRQ_EXTENSION
+
+#ifndef ASM
#include <rtems.h>
#include <rtems/console.h>
#include <rtems/clockdrv.h>
-#include <bspopts.h>
-
#include <bsp/tictac.h>
+#include <bsp/default-initial-extension.h>
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
-#define BSP_SMALL_MEMORY 1
-
-#define BSP_INTERRUPT_STACK_AT_WORK_AREA_BEGIN
-
-#define BSP_FEATURE_IRQ_EXTENSION
-
-#ifndef ASM
-
/** @brief System clock frequency */
extern unsigned int bsp_clock_speed;
@@ -78,10 +77,10 @@ void *bsp_idle_thread(uintptr_t arg);
#define BSP_IDLE_TASK_BODY bsp_idle_thread
-#endif /* ASM */
-
#ifdef __cplusplus
}
#endif /* __cplusplus */
+#endif /* ASM */
+
#endif /* LIBBSP_POWERPC_MPC55XXEVB_BSP_H */
diff --git a/c/src/lib/libbsp/powerpc/mpc8260ads/include/bsp.h b/c/src/lib/libbsp/powerpc/mpc8260ads/include/bsp.h
index e16a2b3292..3f03ea1f9e 100644
--- a/c/src/lib/libbsp/powerpc/mpc8260ads/include/bsp.h
+++ b/c/src/lib/libbsp/powerpc/mpc8260ads/include/bsp.h
@@ -20,6 +20,7 @@ extern "C" {
#endif
#include <bspopts.h>
+#include <bsp/default-initial-extension.h>
#include <rtems.h>
#include <rtems/console.h>
diff --git a/c/src/lib/libbsp/powerpc/mvme3100/include/bsp.h b/c/src/lib/libbsp/powerpc/mvme3100/include/bsp.h
index 636945c878..22e55f5a6d 100644
--- a/c/src/lib/libbsp/powerpc/mvme3100/include/bsp.h
+++ b/c/src/lib/libbsp/powerpc/mvme3100/include/bsp.h
@@ -13,6 +13,7 @@
#define _BSP_H
#include <bspopts.h>
+#include <bsp/default-initial-extension.h>
#include <rtems.h>
#include <rtems/console.h>
diff --git a/c/src/lib/libbsp/powerpc/mvme5500/include/bsp.h b/c/src/lib/libbsp/powerpc/mvme5500/include/bsp.h
index 0ae64e7f71..80159cc99e 100644
--- a/c/src/lib/libbsp/powerpc/mvme5500/include/bsp.h
+++ b/c/src/lib/libbsp/powerpc/mvme5500/include/bsp.h
@@ -16,6 +16,7 @@
#define _BSP_H
#include <bspopts.h>
+#include <bsp/default-initial-extension.h>
#include <rtems.h>
#include <rtems/console.h>
diff --git a/c/src/lib/libbsp/powerpc/mvme5500/startup/bspclean.c b/c/src/lib/libbsp/powerpc/mvme5500/startup/bspclean.c
index bf92820828..fc488eab29 100644
--- a/c/src/lib/libbsp/powerpc/mvme5500/startup/bspclean.c
+++ b/c/src/lib/libbsp/powerpc/mvme5500/startup/bspclean.c
@@ -8,8 +8,10 @@
#define AUTO_BOOT 0
-void bsp_cleanup(
- uint32_t status
+void bsp_fatal_extension(
+ rtems_fatal_source source,
+ bool is_internal,
+ rtems_fatal_code error
)
{
#if AUTO_BOOT
@@ -22,3 +24,10 @@ void bsp_cleanup(
printk("RTEMS terminated; Boot manually or turn on AUTO_BOOT.\n");
#endif
}
+
+void bsp_cleanup(
+ uint32_t status
+)
+{
+ rtems_fatal( RTEMS_FATAL_SOURCE_EXIT, status );
+}
diff --git a/c/src/lib/libbsp/powerpc/psim/include/bsp.h b/c/src/lib/libbsp/powerpc/psim/include/bsp.h
index a90aecb77a..e3e4c9ca0f 100644
--- a/c/src/lib/libbsp/powerpc/psim/include/bsp.h
+++ b/c/src/lib/libbsp/powerpc/psim/include/bsp.h
@@ -36,6 +36,8 @@ extern "C" {
#include <bspopts.h>
+#define BSP_RESET_BOARD_AT_EXIT 1
+
#ifdef ASM
/* Definition of where to store registers in alignment handler */
#define ALIGN_REGS 0x0140
@@ -47,6 +49,7 @@ extern "C" {
#include <rtems/clockdrv.h>
#include <rtems/iosupp.h>
#include <bsp/vectors.h>
+#include <bsp/default-initial-extension.h>
/* Constants */
diff --git a/c/src/lib/libbsp/powerpc/qemuppc/include/bsp.h b/c/src/lib/libbsp/powerpc/qemuppc/include/bsp.h
index 9632bf9052..116854091f 100644
--- a/c/src/lib/libbsp/powerpc/qemuppc/include/bsp.h
+++ b/c/src/lib/libbsp/powerpc/qemuppc/include/bsp.h
@@ -18,6 +18,7 @@ extern "C" {
#endif
#include <bspopts.h>
+#include <bsp/default-initial-extension.h>
#include <rtems.h>
#include <rtems/iosupp.h>
diff --git a/c/src/lib/libbsp/powerpc/qoriq/include/bsp.h b/c/src/lib/libbsp/powerpc/qoriq/include/bsp.h
index 47f9e52099..70dc7477d4 100644
--- a/c/src/lib/libbsp/powerpc/qoriq/include/bsp.h
+++ b/c/src/lib/libbsp/powerpc/qoriq/include/bsp.h
@@ -29,6 +29,8 @@
#include <rtems.h>
+#include <bsp/default-initial-extension.h>
+
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
@@ -57,10 +59,10 @@ int qoriq_if_intercom_attach_detach(
#define RTEMS_BSP_NETWORK_DRIVER_NAME3 "tsec3"
#define RTEMS_BSP_NETWORK_DRIVER_NAME4 "intercom1"
-#endif /* ASM */
-
#ifdef __cplusplus
}
#endif /* __cplusplus */
+#endif /* ASM */
+
#endif /* LIBBSP_POWERPC_QORIQ_BSP_H */
diff --git a/c/src/lib/libbsp/powerpc/score603e/include/bsp.h b/c/src/lib/libbsp/powerpc/score603e/include/bsp.h
index c977510e64..94e5290281 100644
--- a/c/src/lib/libbsp/powerpc/score603e/include/bsp.h
+++ b/c/src/lib/libbsp/powerpc/score603e/include/bsp.h
@@ -20,6 +20,7 @@ extern "C" {
#define BSP_ZERO_WORKSPACE_AUTOMATICALLY TRUE
#include <bspopts.h>
+#include <bsp/default-initial-extension.h>
#include <rtems.h>
#include <rtems/console.h>
#include <libcpu/io.h>
diff --git a/c/src/lib/libbsp/powerpc/ss555/include/bsp.h b/c/src/lib/libbsp/powerpc/ss555/include/bsp.h
index ae8bbce7da..6f12273a5c 100644
--- a/c/src/lib/libbsp/powerpc/ss555/include/bsp.h
+++ b/c/src/lib/libbsp/powerpc/ss555/include/bsp.h
@@ -26,6 +26,7 @@ extern "C" {
#endif
#include <bspopts.h>
+#include <bsp/default-initial-extension.h>
#include <rtems.h>
#include <rtems/console.h>
diff --git a/c/src/lib/libbsp/powerpc/t32mppc/include/bsp.h b/c/src/lib/libbsp/powerpc/t32mppc/include/bsp.h
index 5266fea19c..f44663d989 100644
--- a/c/src/lib/libbsp/powerpc/t32mppc/include/bsp.h
+++ b/c/src/lib/libbsp/powerpc/t32mppc/include/bsp.h
@@ -21,6 +21,8 @@
#include <rtems.h>
+#include <bsp/default-initial-extension.h>
+
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
diff --git a/c/src/lib/libbsp/powerpc/tqm8xx/include/bsp.h b/c/src/lib/libbsp/powerpc/tqm8xx/include/bsp.h
index 36ee87df2a..23062739c9 100644
--- a/c/src/lib/libbsp/powerpc/tqm8xx/include/bsp.h
+++ b/c/src/lib/libbsp/powerpc/tqm8xx/include/bsp.h
@@ -74,9 +74,6 @@ LINKER_SYMBOL( bsp_interrupt_stack_size);
LINKER_SYMBOL( bsp_work_area_start);
#ifndef ASM
-#ifdef __cplusplus
-extern "C" {
-#endif
#include <bspopts.h>
@@ -90,6 +87,11 @@ extern "C" {
#include <bsp/vectors.h>
#include <bsp/tqm.h>
#include <libcpu/powerpc-utility.h>
+#include <bsp/default-initial-extension.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
/*
* Network driver configuration
diff --git a/c/src/lib/libbsp/powerpc/virtex/include/bsp.h b/c/src/lib/libbsp/powerpc/virtex/include/bsp.h
index c5bb631d3f..034ee543fd 100644
--- a/c/src/lib/libbsp/powerpc/virtex/include/bsp.h
+++ b/c/src/lib/libbsp/powerpc/virtex/include/bsp.h
@@ -59,6 +59,7 @@ extern "C" {
#include <rtems/iosupp.h>
#include <bsp/irq.h>
#include <bsp/vectors.h>
+#include <bsp/default-initial-extension.h>
/* miscellaneous stuff assumed to exist */
extern bool bsp_timer_internal_clock; /* TRUE, when timer runs with CPU clk */
diff --git a/c/src/lib/libbsp/powerpc/virtex4/include/bsp.h b/c/src/lib/libbsp/powerpc/virtex4/include/bsp.h
index cb45b66e1b..7078ba8313 100644
--- a/c/src/lib/libbsp/powerpc/virtex4/include/bsp.h
+++ b/c/src/lib/libbsp/powerpc/virtex4/include/bsp.h
@@ -63,6 +63,8 @@ extern "C" {
#include <rtems/clockdrv.h>
#include <rtems/iosupp.h>
+#include <bsp/default-initial-extension.h>
+
/* miscellaneous stuff assumed to exist */
extern bool bsp_timer_internal_clock; /* TRUE, when timer runs with CPU clk */
diff --git a/c/src/lib/libbsp/powerpc/virtex4/startup/bspclean.c b/c/src/lib/libbsp/powerpc/virtex4/startup/bspclean.c
index 75f95e645b..3a2af5525b 100644
--- a/c/src/lib/libbsp/powerpc/virtex4/startup/bspclean.c
+++ b/c/src/lib/libbsp/powerpc/virtex4/startup/bspclean.c
@@ -40,10 +40,21 @@ static void _noopfun(void) {}
void app_bsp_cleanup(void)
__attribute__(( weak, alias("_noopfun") ));
-void bsp_cleanup( uint32_t status )
+void bsp_fatal_extension(
+ rtems_fatal_source source,
+ bool is_internal,
+ rtems_fatal_code error
+)
{
- app_bsp_cleanup();
+ if ( source == RTEMS_FATAL_SOURCE_EXIT ) {
+ app_bsp_cleanup();
+ }
/* All done. Hang out. */
BSP_ask_for_reset();
}
+
+void bsp_cleanup( uint32_t status )
+{
+ rtems_fatal( RTEMS_FATAL_SOURCE_EXIT, status );
+}
diff --git a/c/src/lib/libbsp/powerpc/virtex5/include/bsp.h b/c/src/lib/libbsp/powerpc/virtex5/include/bsp.h
index cb45b66e1b..5ed0f702fc 100644
--- a/c/src/lib/libbsp/powerpc/virtex5/include/bsp.h
+++ b/c/src/lib/libbsp/powerpc/virtex5/include/bsp.h
@@ -62,6 +62,7 @@ extern "C" {
#include <rtems/console.h>
#include <rtems/clockdrv.h>
#include <rtems/iosupp.h>
+#include <bsp/default-initial-extension.h>
/* miscellaneous stuff assumed to exist */
extern bool bsp_timer_internal_clock; /* TRUE, when timer runs with CPU clk */
diff --git a/c/src/lib/libbsp/powerpc/virtex5/startup/bspclean.c b/c/src/lib/libbsp/powerpc/virtex5/startup/bspclean.c
index 75f95e645b..3a2af5525b 100644
--- a/c/src/lib/libbsp/powerpc/virtex5/startup/bspclean.c
+++ b/c/src/lib/libbsp/powerpc/virtex5/startup/bspclean.c
@@ -40,10 +40,21 @@ static void _noopfun(void) {}
void app_bsp_cleanup(void)
__attribute__(( weak, alias("_noopfun") ));
-void bsp_cleanup( uint32_t status )
+void bsp_fatal_extension(
+ rtems_fatal_source source,
+ bool is_internal,
+ rtems_fatal_code error
+)
{
- app_bsp_cleanup();
+ if ( source == RTEMS_FATAL_SOURCE_EXIT ) {
+ app_bsp_cleanup();
+ }
/* All done. Hang out. */
BSP_ask_for_reset();
}
+
+void bsp_cleanup( uint32_t status )
+{
+ rtems_fatal( RTEMS_FATAL_SOURCE_EXIT, status );
+}