diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2012-11-14 09:59:10 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2012-11-15 15:33:12 +0100 |
commit | a052181ca2e243540342315cde990b9471331a8e (patch) | |
tree | 2e8dfd9152bfc1d37fcb05f58de9d6b0e80eb8b3 /c/src/lib/libbsp/powerpc | |
parent | score: Add RTEMS_FATAL_SOURCE_APPLICATION (diff) | |
download | rtems-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')
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 ); +} |