From 33cb8bf64d7b7551ea3a2e7ced5d4b56cd32d6db Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Mon, 17 Feb 2014 11:40:18 +0100 Subject: score: Add RTEMS_FATAL_SOURCE_BSP Merge RTEMS_FATAL_SOURCE_BSP_GENERIC and RTEMS_FATAL_SOURCE_BSP_SPECIFIC into new fatal source RTEMS_FATAL_SOURCE_BSP. This makes it easier to figure out the code position given a fatal source and code. --- c/src/lib/libbsp/Makefile.am | 2 +- c/src/lib/libbsp/arm/lpc24xx/include/bsp.h | 10 -- c/src/lib/libbsp/arm/lpc24xx/startup/fb-config.c | 18 +--- c/src/lib/libbsp/arm/realview-pbx-a9/include/bsp.h | 10 -- .../libbsp/arm/realview-pbx-a9/startup/bspstart.c | 5 - .../libbsp/arm/shared/arm-a9mpcore-clock-config.c | 11 +- c/src/lib/libbsp/arm/shared/arm-pl111-fb.c | 16 +-- c/src/lib/libbsp/arm/xilinx-zynq/include/bsp.h | 7 -- .../lib/libbsp/arm/xilinx-zynq/startup/bspstart.c | 5 - c/src/lib/libbsp/m68k/mrm332/spurious/spinit.c | 4 +- .../powerpc/gen5200/ide/ata-dma-pio-single.c | 3 +- .../lib/libbsp/powerpc/gen5200/ide/ata-instance.c | 3 +- c/src/lib/libbsp/powerpc/gen5200/ide/ata.c | 7 +- c/src/lib/libbsp/powerpc/gen5200/include/bsp.h | 18 ---- c/src/lib/libbsp/powerpc/gen5200/include/tm27.h | 3 +- c/src/lib/libbsp/powerpc/gen5200/mscan/mscan.c | 9 +- .../libbsp/powerpc/gen5200/slicetimer/slicetimer.c | 5 +- .../lib/libbsp/powerpc/gen5200/startup/bspstart.c | 5 - c/src/lib/libbsp/powerpc/gen5200/tod/pcf8563.c | 3 +- .../libbsp/powerpc/mpc55xxevb/clock/clock-config.c | 9 +- .../powerpc/mpc55xxevb/console/console-esci.c | 7 +- .../powerpc/mpc55xxevb/console/console-generic.c | 7 +- .../powerpc/mpc55xxevb/console/console-linflex.c | 17 ++-- c/src/lib/libbsp/powerpc/mpc55xxevb/include/bsp.h | 26 ----- .../libbsp/powerpc/mpc55xxevb/startup/bspstart.c | 5 - .../powerpc/mpc55xxevb/startup/start-clock.c | 3 +- c/src/lib/libbsp/preinstall.am | 6 +- c/src/lib/libbsp/shared/console.c | 16 +-- c/src/lib/libbsp/shared/console_select.c | 4 +- c/src/lib/libbsp/shared/include/fatal.h | 113 +++++++++++++++++++++ c/src/lib/libbsp/shared/include/generic-fatal.h | 51 ---------- c/src/lib/libbsp/shared/include/irq-generic.h | 4 +- c/src/lib/libbsp/shared/src/irq-generic.c | 4 +- c/src/lib/libbsp/sparc/leon3/include/bsp.h | 4 - c/src/lib/libbsp/sparc/leon3/startup/cpucounter.c | 3 +- c/src/lib/libcpu/powerpc/mpc55xx/edma/edma.c | 5 +- .../new-exceptions/bspsupport/ppc_exc_initialize.c | 4 +- .../powerpc/new-exceptions/bspsupport/vectors.h | 4 +- cpukit/sapi/src/fatalsrctext.c | 3 +- cpukit/score/include/rtems/score/interr.h | 17 +--- .../spinternalerror02/spinternalerror02.scn | 3 +- 41 files changed, 205 insertions(+), 254 deletions(-) create mode 100644 c/src/lib/libbsp/shared/include/fatal.h delete mode 100644 c/src/lib/libbsp/shared/include/generic-fatal.h diff --git a/c/src/lib/libbsp/Makefile.am b/c/src/lib/libbsp/Makefile.am index 5e27b5b0e6..b6e43ea57f 100644 --- a/c/src/lib/libbsp/Makefile.am +++ b/c/src/lib/libbsp/Makefile.am @@ -33,7 +33,7 @@ include_bspdir = $(includedir)/bsp include_bsp_HEADERS = include_bsp_HEADERS += shared/include/default-initial-extension.h -include_bsp_HEADERS += shared/include/generic-fatal.h +include_bsp_HEADERS += shared/include/fatal.h include $(srcdir)/preinstall.am include $(top_srcdir)/automake/subdirs.am diff --git a/c/src/lib/libbsp/arm/lpc24xx/include/bsp.h b/c/src/lib/libbsp/arm/lpc24xx/include/bsp.h index d4a20658cd..15dc1109b3 100644 --- a/c/src/lib/libbsp/arm/lpc24xx/include/bsp.h +++ b/c/src/lib/libbsp/arm/lpc24xx/include/bsp.h @@ -117,16 +117,6 @@ bool lpc24xx_uart_probe_2(int minor); bool lpc24xx_uart_probe_3(int minor); -typedef enum { - BSP_ARM_PL111_FATAL_REGISTER_DEV, - BSP_ARM_PL111_FATAL_SEM_CREATE, - BSP_ARM_PL111_FATAL_SEM_RELEASE, - LPC24XX_FATAL_PL111_SET_UP, - LPC24XX_FATAL_PL111_PINS_SET_UP, - LPC24XX_FATAL_PL111_PINS_TEAR_DOWN, - LPC24XX_FATAL_PL111_TEAR_DOWN -} lpc24xx_fatal_code; - /** @} */ #ifdef __cplusplus diff --git a/c/src/lib/libbsp/arm/lpc24xx/startup/fb-config.c b/c/src/lib/libbsp/arm/lpc24xx/startup/fb-config.c index 320800188d..5ac870eae9 100644 --- a/c/src/lib/libbsp/arm/lpc24xx/startup/fb-config.c +++ b/c/src/lib/libbsp/arm/lpc24xx/startup/fb-config.c @@ -15,6 +15,7 @@ #include #include +#include #include #include #include @@ -48,7 +49,7 @@ static void fb_set_up(const pl111_fb_config *cfg) sc = lpc24xx_module_enable(LPC24XX_MODULE_LCD, LPC24XX_MODULE_PCLK_DEFAULT); if (sc != RTEMS_SUCCESSFUL) { - rtems_fatal(RTEMS_FATAL_SOURCE_BSP_SPECIFIC, LPC24XX_FATAL_PL111_SET_UP); + bsp_fatal(LPC24XX_FATAL_PL111_SET_UP); } #ifdef ARM_MULTILIB_ARCH_V4 @@ -68,10 +69,7 @@ static void fb_pins_set_up(const pl111_fb_config *cfg) sc = lpc24xx_pin_config(tft_16_bit_5_6_5_pins, LPC24XX_PIN_SET_FUNCTION); if (sc != RTEMS_SUCCESSFUL) { - rtems_fatal( - RTEMS_FATAL_SOURCE_BSP_SPECIFIC, - LPC24XX_FATAL_PL111_PINS_SET_UP - ); + bsp_fatal(LPC24XX_FATAL_PL111_PINS_SET_UP); } } @@ -81,10 +79,7 @@ static void fb_pins_tear_down(const pl111_fb_config *cfg) sc = lpc24xx_pin_config(tft_16_bit_5_6_5_pins, LPC24XX_PIN_SET_INPUT); if (sc != RTEMS_SUCCESSFUL) { - rtems_fatal( - RTEMS_FATAL_SOURCE_BSP_SPECIFIC, - LPC24XX_FATAL_PL111_PINS_TEAR_DOWN - ); + bsp_fatal(LPC24XX_FATAL_PL111_PINS_TEAR_DOWN); } } @@ -98,10 +93,7 @@ static void fb_tear_down(const pl111_fb_config *cfg) sc = lpc24xx_module_disable(LPC24XX_MODULE_LCD); if (sc != RTEMS_SUCCESSFUL) { - rtems_fatal( - RTEMS_FATAL_SOURCE_BSP_SPECIFIC, - LPC24XX_FATAL_PL111_TEAR_DOWN - ); + bsp_fatal(LPC24XX_FATAL_PL111_TEAR_DOWN); } } diff --git a/c/src/lib/libbsp/arm/realview-pbx-a9/include/bsp.h b/c/src/lib/libbsp/arm/realview-pbx-a9/include/bsp.h index 959ff92e8f..9e7c407951 100644 --- a/c/src/lib/libbsp/arm/realview-pbx-a9/include/bsp.h +++ b/c/src/lib/libbsp/arm/realview-pbx-a9/include/bsp.h @@ -51,16 +51,6 @@ extern "C" { #define BSP_ARM_GIC_DIST_BASE 0x1f001000 -typedef enum { - BSP_ARM_A9MPCORE_FATAL_CLOCK_IRQ_INSTALL, - BSP_ARM_A9MPCORE_FATAL_CLOCK_IRQ_REMOVE, - BSP_ARM_PL111_FATAL_REGISTER_DEV, - BSP_ARM_PL111_FATAL_SEM_CREATE, - BSP_ARM_PL111_FATAL_SEM_RELEASE -} rvpbxa9_fatal_code; - -void rvpbxa9_fatal(rvpbxa9_fatal_code code) RTEMS_COMPILER_NO_RETURN_ATTRIBUTE; - #ifdef __cplusplus } #endif /* __cplusplus */ diff --git a/c/src/lib/libbsp/arm/realview-pbx-a9/startup/bspstart.c b/c/src/lib/libbsp/arm/realview-pbx-a9/startup/bspstart.c index d744fbc91c..8715e1d0ea 100644 --- a/c/src/lib/libbsp/arm/realview-pbx-a9/startup/bspstart.c +++ b/c/src/lib/libbsp/arm/realview-pbx-a9/startup/bspstart.c @@ -16,11 +16,6 @@ #include #include -void rvpbxa9_fatal(rvpbxa9_fatal_code code) -{ - rtems_fatal(RTEMS_FATAL_SOURCE_BSP_SPECIFIC, code); -} - void bsp_start(void) { bsp_interrupt_initialize(); diff --git a/c/src/lib/libbsp/arm/shared/arm-a9mpcore-clock-config.c b/c/src/lib/libbsp/arm/shared/arm-a9mpcore-clock-config.c index 54f09fa13f..e32657d32e 100644 --- a/c/src/lib/libbsp/arm/shared/arm-a9mpcore-clock-config.c +++ b/c/src/lib/libbsp/arm/shared/arm-a9mpcore-clock-config.c @@ -15,6 +15,7 @@ #include #include +#include #include #include #include @@ -51,10 +52,7 @@ static void a9mpcore_clock_handler_install(void) NULL ); if (sc != RTEMS_SUCCESSFUL) { - rtems_fatal( - RTEMS_FATAL_SOURCE_BSP_SPECIFIC, - BSP_ARM_A9MPCORE_FATAL_CLOCK_IRQ_INSTALL - ); + bsp_fatal(BSP_ARM_A9MPCORE_FATAL_CLOCK_IRQ_INSTALL); } } @@ -121,10 +119,7 @@ static void a9mpcore_clock_cleanup(void) NULL ); if (sc != RTEMS_SUCCESSFUL) { - rtems_fatal( - RTEMS_FATAL_SOURCE_BSP_SPECIFIC, - BSP_ARM_A9MPCORE_FATAL_CLOCK_IRQ_REMOVE - ); + bsp_fatal(BSP_ARM_A9MPCORE_FATAL_CLOCK_IRQ_REMOVE); } } diff --git a/c/src/lib/libbsp/arm/shared/arm-pl111-fb.c b/c/src/lib/libbsp/arm/shared/arm-pl111-fb.c index fd9967d0ba..408047df3c 100644 --- a/c/src/lib/libbsp/arm/shared/arm-pl111-fb.c +++ b/c/src/lib/libbsp/arm/shared/arm-pl111-fb.c @@ -22,6 +22,7 @@ #include #include +#include typedef struct { rtems_id semaphore; @@ -154,10 +155,7 @@ static void pl111_fb_release(const pl111_fb_context *ctx) { rtems_status_code sc = rtems_semaphore_release(ctx->semaphore); if (sc != RTEMS_SUCCESSFUL) { - rtems_fatal( - RTEMS_FATAL_SOURCE_BSP_SPECIFIC, - BSP_ARM_PL111_FATAL_SEM_RELEASE - ); + bsp_fatal(BSP_ARM_PL111_FATAL_SEM_RELEASE); } } @@ -172,10 +170,7 @@ rtems_device_driver frame_buffer_initialize( sc = rtems_io_register_name(FRAMEBUFFER_DEVICE_0_NAME, major, 0); if (sc != RTEMS_SUCCESSFUL) { - rtems_fatal( - RTEMS_FATAL_SOURCE_BSP_SPECIFIC, - BSP_ARM_PL111_FATAL_REGISTER_DEV - ); + bsp_fatal(BSP_ARM_PL111_FATAL_REGISTER_DEV); } sc = rtems_semaphore_create( @@ -186,10 +181,7 @@ rtems_device_driver frame_buffer_initialize( &ctx->semaphore ); if (sc != RTEMS_SUCCESSFUL) { - rtems_fatal( - RTEMS_FATAL_SOURCE_BSP_SPECIFIC, - BSP_ARM_PL111_FATAL_SEM_CREATE - ); + bsp_fatal(BSP_ARM_PL111_FATAL_SEM_CREATE); } return sc; diff --git a/c/src/lib/libbsp/arm/xilinx-zynq/include/bsp.h b/c/src/lib/libbsp/arm/xilinx-zynq/include/bsp.h index 56e62a5633..c837d0ddbf 100644 --- a/c/src/lib/libbsp/arm/xilinx-zynq/include/bsp.h +++ b/c/src/lib/libbsp/arm/xilinx-zynq/include/bsp.h @@ -55,13 +55,6 @@ extern "C" { #define BSP_ARM_GIC_DIST_BASE 0xf8f01000 -typedef enum { - BSP_ARM_A9MPCORE_FATAL_CLOCK_IRQ_INSTALL, - BSP_ARM_A9MPCORE_FATAL_CLOCK_IRQ_REMOVE -} zynq_fatal_code; - -void zynq_fatal(zynq_fatal_code code) RTEMS_COMPILER_NO_RETURN_ATTRIBUTE; - /** * @brief Zynq specific set up of the MMU. * diff --git a/c/src/lib/libbsp/arm/xilinx-zynq/startup/bspstart.c b/c/src/lib/libbsp/arm/xilinx-zynq/startup/bspstart.c index e312c9ab19..8715e1d0ea 100644 --- a/c/src/lib/libbsp/arm/xilinx-zynq/startup/bspstart.c +++ b/c/src/lib/libbsp/arm/xilinx-zynq/startup/bspstart.c @@ -16,11 +16,6 @@ #include #include -void zynq_fatal(zynq_fatal_code code) -{ - rtems_fatal(RTEMS_FATAL_SOURCE_BSP_SPECIFIC, code); -} - void bsp_start(void) { bsp_interrupt_initialize(); diff --git a/c/src/lib/libbsp/m68k/mrm332/spurious/spinit.c b/c/src/lib/libbsp/m68k/mrm332/spurious/spinit.c index 1b659f0caf..031ded9941 100644 --- a/c/src/lib/libbsp/m68k/mrm332/spurious/spinit.c +++ b/c/src/lib/libbsp/m68k/mrm332/spurious/spinit.c @@ -15,7 +15,7 @@ */ #include -#include +#include #include const char * const _Spurious_Error_[] = {"Reset","Bus Error","Address Error", @@ -72,7 +72,7 @@ rtems_isr Spurious_Isr( RAW_PUTI(sp); RAW_PUTS("\n\r"); #endif - bsp_generic_fatal( BSP_GENERIC_FATAL_SPURIOUS_INTERRUPT ); + bsp_fatal( MRM332_FATAL_SPURIOUS_INTERRUPT ); } void Spurious_Initialize(void) diff --git a/c/src/lib/libbsp/powerpc/gen5200/ide/ata-dma-pio-single.c b/c/src/lib/libbsp/powerpc/gen5200/ide/ata-dma-pio-single.c index dee1ca10be..f16a958f78 100644 --- a/c/src/lib/libbsp/powerpc/gen5200/ide/ata-dma-pio-single.c +++ b/c/src/lib/libbsp/powerpc/gen5200/ide/ata-dma-pio-single.c @@ -19,6 +19,7 @@ #include #include +#include #include typedef enum { @@ -182,7 +183,7 @@ void ata_driver_dma_pio_single_create(ata_driver_dma_pio_single *self, const cha self ); if (sc != RTEMS_SUCCESSFUL) { - mpc5200_fatal(MPC5200_FATAL_ATA_DMA_SINGLE_IRQ_INSTALL); + bsp_fatal(MPC5200_FATAL_ATA_DMA_SINGLE_IRQ_INSTALL); } } } diff --git a/c/src/lib/libbsp/powerpc/gen5200/ide/ata-instance.c b/c/src/lib/libbsp/powerpc/gen5200/ide/ata-instance.c index 60380a8008..20e8f26904 100644 --- a/c/src/lib/libbsp/powerpc/gen5200/ide/ata-instance.c +++ b/c/src/lib/libbsp/powerpc/gen5200/ide/ata-instance.c @@ -13,6 +13,7 @@ */ #include +#include #include @@ -33,7 +34,7 @@ rtems_status_code rtems_ata_initialize( ata_driver_dma_pio_single_create(&ata_driver_instance, "/dev/hda", TASK_PCI_TX); } else { - mpc5200_fatal(MPC5200_FATAL_ATA_DISK_IO_INIT); + bsp_fatal(MPC5200_FATAL_ATA_DISK_IO_INIT); } return sc; diff --git a/c/src/lib/libbsp/powerpc/gen5200/ide/ata.c b/c/src/lib/libbsp/powerpc/gen5200/ide/ata.c index 54a31d1473..5230f5d3e1 100644 --- a/c/src/lib/libbsp/powerpc/gen5200/ide/ata.c +++ b/c/src/lib/libbsp/powerpc/gen5200/ide/ata.c @@ -17,6 +17,7 @@ #include #include +#include #include #include @@ -125,7 +126,7 @@ static void create_lock(ata_driver *self) &self->lock ); if (sc != RTEMS_SUCCESSFUL) { - mpc5200_fatal(MPC5200_FATAL_ATA_LOCK_CREATE); + bsp_fatal(MPC5200_FATAL_ATA_LOCK_CREATE); } } @@ -133,7 +134,7 @@ static void destroy_lock(const ata_driver *self) { rtems_status_code sc = rtems_semaphore_delete(self->lock); if (sc != RTEMS_SUCCESSFUL) { - mpc5200_fatal(MPC5200_FATAL_ATA_LOCK_DESTROY); + bsp_fatal(MPC5200_FATAL_ATA_LOCK_DESTROY); } } @@ -162,7 +163,7 @@ void ata_driver_create(ata_driver *self, const char *device_file_path, rtems_blo ); if (sc != RTEMS_SUCCESSFUL) { - mpc5200_fatal(MPC5200_FATAL_ATA_DISK_CREATE); + bsp_fatal(MPC5200_FATAL_ATA_DISK_CREATE); } } } diff --git a/c/src/lib/libbsp/powerpc/gen5200/include/bsp.h b/c/src/lib/libbsp/powerpc/gen5200/include/bsp.h index b8c46dc268..463417ac73 100644 --- a/c/src/lib/libbsp/powerpc/gen5200/include/bsp.h +++ b/c/src/lib/libbsp/powerpc/gen5200/include/bsp.h @@ -254,24 +254,6 @@ void BSP_IRQ_Benchmarking_Report(void); void cpu_init(void); -typedef enum { - MPC5200_FATAL_PCF8563_INVALID_YEAR, - MPC5200_FATAL_SLICETIMER_0_IRQ_INSTALL, - MPC5200_FATAL_SLICETIMER_1_IRQ_INSTALL, - MPC5200_FATAL_TM27_IRQ_INSTALL, - MPC5200_FATAL_MSCAN_A_INIT, - MPC5200_FATAL_MSCAN_B_INIT, - MPC5200_FATAL_MSCAN_A_SET_MODE, - MPC5200_FATAL_MSCAN_B_SET_MODE, - MPC5200_FATAL_ATA_DISK_IO_INIT, - MPC5200_FATAL_ATA_DISK_CREATE, - MPC5200_FATAL_ATA_DMA_SINGLE_IRQ_INSTALL, - MPC5200_FATAL_ATA_LOCK_CREATE, - MPC5200_FATAL_ATA_LOCK_DESTROY -} mpc5200_fatal_code; - -void mpc5200_fatal(mpc5200_fatal_code code) RTEMS_COMPILER_NO_RETURN_ATTRIBUTE; - #ifdef __cplusplus } #endif diff --git a/c/src/lib/libbsp/powerpc/gen5200/include/tm27.h b/c/src/lib/libbsp/powerpc/gen5200/include/tm27.h index 612714cb9d..55ada2c66b 100644 --- a/c/src/lib/libbsp/powerpc/gen5200/include/tm27.h +++ b/c/src/lib/libbsp/powerpc/gen5200/include/tm27.h @@ -17,6 +17,7 @@ #ifndef __tm27_h #define __tm27_h +#include #include /* @@ -37,7 +38,7 @@ void Install_tm27_vector(void (*_handler)()) clockIrqData.hdl = _handler; if (!BSP_install_rtems_irq_handler (&clockIrqData)) { printk("Error installing clock interrupt handler!\n"); - mpc5200_fatal(MPC5200_FATAL_TM27_IRQ_INSTALL); + bsp_fatal(MPC5200_FATAL_TM27_IRQ_INSTALL); } } diff --git a/c/src/lib/libbsp/powerpc/gen5200/mscan/mscan.c b/c/src/lib/libbsp/powerpc/gen5200/mscan/mscan.c index 4be59503d0..3a804a3726 100644 --- a/c/src/lib/libbsp/powerpc/gen5200/mscan/mscan.c +++ b/c/src/lib/libbsp/powerpc/gen5200/mscan/mscan.c @@ -25,6 +25,7 @@ #include #include "../include/bsp.h" +#include #include #include "../mscan/mscan_int.h" @@ -770,20 +771,20 @@ rtems_device_driver mscan_initialize(rtems_device_major_number major, /* Initialization requested via RTEMS */ if ((status = mscan_channel_initialize(major, MSCAN_A)) != RTEMS_SUCCESSFUL) - mpc5200_fatal(MPC5200_FATAL_MSCAN_A_INIT); + bsp_fatal(MPC5200_FATAL_MSCAN_A_INIT); if ((status = mscan_channel_initialize(major, MSCAN_B)) != RTEMS_SUCCESSFUL) - mpc5200_fatal(MPC5200_FATAL_MSCAN_B_INIT); + bsp_fatal(MPC5200_FATAL_MSCAN_B_INIT); if ((status = mpc5200_mscan_set_mode(MSCAN_A, MSCAN_INIT_NORMAL_MODE)) != RTEMS_SUCCESSFUL) - mpc5200_fatal(MPC5200_FATAL_MSCAN_A_SET_MODE); + bsp_fatal(MPC5200_FATAL_MSCAN_A_SET_MODE); if ((status = mpc5200_mscan_set_mode(MSCAN_B, MSCAN_INIT_NORMAL_MODE)) != RTEMS_SUCCESSFUL) - mpc5200_fatal(MPC5200_FATAL_MSCAN_B_SET_MODE); + bsp_fatal(MPC5200_FATAL_MSCAN_B_SET_MODE); return status; diff --git a/c/src/lib/libbsp/powerpc/gen5200/slicetimer/slicetimer.c b/c/src/lib/libbsp/powerpc/gen5200/slicetimer/slicetimer.c index 8c54976de4..0c3bf0d38b 100644 --- a/c/src/lib/libbsp/powerpc/gen5200/slicetimer/slicetimer.c +++ b/c/src/lib/libbsp/powerpc/gen5200/slicetimer/slicetimer.c @@ -99,6 +99,7 @@ #include #include +#include #include #include @@ -338,7 +339,7 @@ rtems_device_driver slt_initialize { printk("Unable to connect PSC Irq handler\n"); - mpc5200_fatal(MPC5200_FATAL_SLICETIMER_0_IRQ_INSTALL); + bsp_fatal(MPC5200_FATAL_SLICETIMER_0_IRQ_INSTALL); } @@ -353,7 +354,7 @@ rtems_device_driver slt_initialize { printk("Unable to connect PSC Irq handler\n"); - mpc5200_fatal(MPC5200_FATAL_SLICETIMER_1_IRQ_INSTALL); + bsp_fatal(MPC5200_FATAL_SLICETIMER_1_IRQ_INSTALL); } diff --git a/c/src/lib/libbsp/powerpc/gen5200/startup/bspstart.c b/c/src/lib/libbsp/powerpc/gen5200/startup/bspstart.c index 8324b44dc9..bea818042d 100644 --- a/c/src/lib/libbsp/powerpc/gen5200/startup/bspstart.c +++ b/c/src/lib/libbsp/powerpc/gen5200/startup/bspstart.c @@ -124,11 +124,6 @@ void _BSP_Fatal_error(unsigned int v) __asm__ __volatile ("sc"); } -void mpc5200_fatal(mpc5200_fatal_code code) -{ - rtems_fatal(RTEMS_FATAL_SOURCE_BSP_SPECIFIC, code); -} - void bsp_start(void) { ppc_cpu_id_t myCpu; diff --git a/c/src/lib/libbsp/powerpc/gen5200/tod/pcf8563.c b/c/src/lib/libbsp/powerpc/gen5200/tod/pcf8563.c index 2f38ea86fb..0b584a013b 100644 --- a/c/src/lib/libbsp/powerpc/gen5200/tod/pcf8563.c +++ b/c/src/lib/libbsp/powerpc/gen5200/tod/pcf8563.c @@ -41,6 +41,7 @@ */ #include +#include #include #include #include "../tod/pcf8563.h" @@ -185,7 +186,7 @@ pcf8563_set_time(int minor, const rtems_time_of_day *time) addr = RTC_Table[minor].ulDataPort; if ((time->year >= 2100) || (time->year < 1900)) { - mpc5200_fatal(MPC5200_FATAL_PCF8563_INVALID_YEAR); + bsp_fatal(MPC5200_FATAL_PCF8563_INVALID_YEAR); } info[0] = PCF8563_SECOND_ADR; info[1 + PCF8563_YEAR_ADR -PCF8563_SECOND_ADR] = To_BCD(time->year % 100); diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/clock/clock-config.c b/c/src/lib/libbsp/powerpc/mpc55xxevb/clock/clock-config.c index 48c592245b..69a45d33f8 100644 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/clock/clock-config.c +++ b/c/src/lib/libbsp/powerpc/mpc55xxevb/clock/clock-config.c @@ -21,6 +21,7 @@ */ #include +#include #include #include @@ -53,7 +54,7 @@ static void mpc55xx_clock_handler_install(rtems_isr_entry isr) NULL ); if (sc != RTEMS_SUCCESSFUL) { - mpc55xx_fatal(MPC55XX_FATAL_CLOCK_EMIOS_IRQ_INSTALL); + bsp_fatal(MPC55XX_FATAL_CLOCK_EMIOS_IRQ_INSTALL); } } @@ -73,12 +74,12 @@ static void mpc55xx_clock_initialize(void) if (prescaler > 0) { interval /= (uint64_t) prescaler; } else { - mpc55xx_fatal(MPC55XX_FATAL_CLOCK_EMIOS_PRESCALER); + bsp_fatal(MPC55XX_FATAL_CLOCK_EMIOS_PRESCALER); } /* Check interval */ if (interval == 0 || interval > MPC55XX_EMIOS_VALUE_MAX) { - mpc55xx_fatal(MPC55XX_FATAL_CLOCK_EMIOS_INTERVAL); + bsp_fatal(MPC55XX_FATAL_CLOCK_EMIOS_INTERVAL); } /* Configure eMIOS channel */ @@ -159,7 +160,7 @@ static void mpc55xx_clock_handler_install(rtems_isr_entry isr) NULL ); if (sc != RTEMS_SUCCESSFUL) { - mpc55xx_fatal(MPC55XX_FATAL_CLOCK_PIT_IRQ_INSTALL); + bsp_fatal(MPC55XX_FATAL_CLOCK_PIT_IRQ_INSTALL); } } diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/console/console-esci.c b/c/src/lib/libbsp/powerpc/mpc55xxevb/console/console-esci.c index c54dd353fc..0620cda304 100644 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/console/console-esci.c +++ b/c/src/lib/libbsp/powerpc/mpc55xxevb/console/console-esci.c @@ -21,6 +21,7 @@ #include #include +#include #include #ifdef MPC55XX_HAS_ESCI @@ -268,12 +269,12 @@ static int mpc55xx_esci_first_open(int major, int minor, void *arg) rv = rtems_termios_set_initial_baud(tty, BSP_DEFAULT_BAUD_RATE); if (rv != 0) { - mpc55xx_fatal(MPC55XX_FATAL_CONSOLE_ESCI_BAUD); + bsp_fatal(MPC55XX_FATAL_CONSOLE_ESCI_BAUD); } rv = mpc55xx_esci_set_attributes(minor, &tty->termios); if (rv != 0) { - mpc55xx_fatal(MPC55XX_FATAL_CONSOLE_ESCI_ATTRIBUTES); + bsp_fatal(MPC55XX_FATAL_CONSOLE_ESCI_ATTRIBUTES); } sc = mpc55xx_interrupt_handler_install( @@ -285,7 +286,7 @@ static int mpc55xx_esci_first_open(int major, int minor, void *arg) self ); if (sc != RTEMS_SUCCESSFUL) { - mpc55xx_fatal(MPC55XX_FATAL_CONSOLE_ESCI_IRQ_INSTALL); + bsp_fatal(MPC55XX_FATAL_CONSOLE_ESCI_IRQ_INSTALL); } mpc55xx_esci_interrupts_clear_and_enable(self); diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/console/console-generic.c b/c/src/lib/libbsp/powerpc/mpc55xxevb/console/console-generic.c index 2f71948f74..14cb65ffbc 100644 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/console/console-generic.c +++ b/c/src/lib/libbsp/powerpc/mpc55xxevb/console/console-generic.c @@ -22,6 +22,7 @@ #include #include +#include #include @@ -80,7 +81,7 @@ rtems_device_driver console_initialize( rtems_device_minor_number console = console_generic_minor; if (count <= 0) { - mpc55xx_fatal(MPC55XX_FATAL_CONSOLE_GENERIC_COUNT); + bsp_fatal(MPC55XX_FATAL_CONSOLE_GENERIC_COUNT); } rtems_termios_initialize(); @@ -90,13 +91,13 @@ rtems_device_driver console_initialize( sc = rtems_io_register_name(info->device_path, major, minor); if (sc != RTEMS_SUCCESSFUL) { - mpc55xx_fatal(MPC55XX_FATAL_CONSOLE_GENERIC_REGISTER); + bsp_fatal(MPC55XX_FATAL_CONSOLE_GENERIC_REGISTER); } } sc = rtems_io_register_name(CONSOLE_DEVICE_NAME, major, console); if (sc != RTEMS_SUCCESSFUL) { - mpc55xx_fatal(MPC55XX_FATAL_CONSOLE_GENERIC_REGISTER_CONSOLE); + bsp_fatal(MPC55XX_FATAL_CONSOLE_GENERIC_REGISTER_CONSOLE); } console_generic_char_out_do_init(); diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/console/console-linflex.c b/c/src/lib/libbsp/powerpc/mpc55xxevb/console/console-linflex.c index 20ffcf3d57..71be4dc424 100644 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/console/console-linflex.c +++ b/c/src/lib/libbsp/powerpc/mpc55xxevb/console/console-linflex.c @@ -21,6 +21,7 @@ #include #include +#include #include #ifdef MPC55XX_HAS_LINFLEX @@ -261,12 +262,12 @@ static int mpc55xx_linflex_first_open(int major, int minor, void *arg) rv = rtems_termios_set_initial_baud(tty, BSP_DEFAULT_BAUD_RATE); if (rv != 0) { - mpc55xx_fatal(MPC55XX_FATAL_CONSOLE_LINFLEX_BAUD); + bsp_fatal(MPC55XX_FATAL_CONSOLE_LINFLEX_BAUD); } rv = mpc55xx_linflex_set_attributes(minor, &tty->termios); if (rv != 0) { - mpc55xx_fatal(MPC55XX_FATAL_CONSOLE_LINFLEX_ATTRIBUTES); + bsp_fatal(MPC55XX_FATAL_CONSOLE_LINFLEX_ATTRIBUTES); } sc = mpc55xx_interrupt_handler_install( @@ -278,7 +279,7 @@ static int mpc55xx_linflex_first_open(int major, int minor, void *arg) self ); if (sc != RTEMS_SUCCESSFUL) { - mpc55xx_fatal(MPC55XX_FATAL_CONSOLE_LINFLEX_RX_IRQ_INSTALL); + bsp_fatal(MPC55XX_FATAL_CONSOLE_LINFLEX_RX_IRQ_INSTALL); } sc = mpc55xx_interrupt_handler_install( @@ -290,7 +291,7 @@ static int mpc55xx_linflex_first_open(int major, int minor, void *arg) self ); if (sc != RTEMS_SUCCESSFUL) { - mpc55xx_fatal(MPC55XX_FATAL_CONSOLE_LINFLEX_TX_IRQ_INSTALL); + bsp_fatal(MPC55XX_FATAL_CONSOLE_LINFLEX_TX_IRQ_INSTALL); } /* @@ -303,7 +304,7 @@ static int mpc55xx_linflex_first_open(int major, int minor, void *arg) self ); if (sc != RTEMS_SUCCESSFUL) { - mpc55xx_fatal(MPC55XX_FATAL_CONSOLE_LINFLEX_ERR_IRQ_INSTALL); + bsp_fatal(MPC55XX_FATAL_CONSOLE_LINFLEX_ERR_IRQ_INSTALL); } */ @@ -333,7 +334,7 @@ static int mpc55xx_linflex_last_close(int major, int minor, void* arg) self ); if (sc != RTEMS_SUCCESSFUL) { - mpc55xx_fatal(MPC55XX_FATAL_CONSOLE_LINFLEX_RX_IRQ_REMOVE); + bsp_fatal(MPC55XX_FATAL_CONSOLE_LINFLEX_RX_IRQ_REMOVE); } sc = rtems_interrupt_handler_remove( @@ -342,7 +343,7 @@ static int mpc55xx_linflex_last_close(int major, int minor, void* arg) self ); if (sc != RTEMS_SUCCESSFUL) { - mpc55xx_fatal(MPC55XX_FATAL_CONSOLE_LINFLEX_TX_IRQ_REMOVE); + bsp_fatal(MPC55XX_FATAL_CONSOLE_LINFLEX_TX_IRQ_REMOVE); } /* @@ -352,7 +353,7 @@ static int mpc55xx_linflex_last_close(int major, int minor, void* arg) self ); if (sc != RTEMS_SUCCESSFUL) { - mpc55xx_fatal(MPC55XX_FATAL_CONSOLE_LINFLEX_ERR_IRQ_REMOVE); + bsp_fatal(MPC55XX_FATAL_CONSOLE_LINFLEX_ERR_IRQ_REMOVE); } */ diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/include/bsp.h b/c/src/lib/libbsp/powerpc/mpc55xxevb/include/bsp.h index 70dbea75a4..596a9bd11b 100644 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/include/bsp.h +++ b/c/src/lib/libbsp/powerpc/mpc55xxevb/include/bsp.h @@ -99,32 +99,6 @@ LINKER_SYMBOL(bsp_section_sysram_load_end) #define BSP_SYSRAM_SECTION __attribute__((section(".bsp_sysram"))) -typedef enum { - MPC55XX_FATAL_FMPLL_LOCK, - MPC55XX_FATAL_CLOCK_EMIOS_IRQ_INSTALL, - MPC55XX_FATAL_CLOCK_EMIOS_PRESCALER, - MPC55XX_FATAL_CLOCK_EMIOS_INTERVAL, - MPC55XX_FATAL_CLOCK_PIT_IRQ_INSTALL, - MPC55XX_FATAL_CONSOLE_GENERIC_COUNT, - MPC55XX_FATAL_CONSOLE_GENERIC_REGISTER, - MPC55XX_FATAL_CONSOLE_GENERIC_REGISTER_CONSOLE, - MPC55XX_FATAL_CONSOLE_ESCI_BAUD, - MPC55XX_FATAL_CONSOLE_ESCI_ATTRIBUTES, - MPC55XX_FATAL_CONSOLE_ESCI_IRQ_INSTALL, - MPC55XX_FATAL_CONSOLE_LINFLEX_BAUD, - MPC55XX_FATAL_CONSOLE_LINFLEX_ATTRIBUTES, - MPC55XX_FATAL_CONSOLE_LINFLEX_RX_IRQ_INSTALL, - MPC55XX_FATAL_CONSOLE_LINFLEX_TX_IRQ_INSTALL, - MPC55XX_FATAL_CONSOLE_LINFLEX_ERR_IRQ_INSTALL, - MPC55XX_FATAL_CONSOLE_LINFLEX_RX_IRQ_REMOVE, - MPC55XX_FATAL_CONSOLE_LINFLEX_TX_IRQ_REMOVE, - MPC55XX_FATAL_CONSOLE_LINFLEX_ERR_IRQ_REMOVE, - MPC55XX_FATAL_EDMA_IRQ_INSTALL, - MPC55XX_FATAL_EDMA_IRQ_REMOVE -} mpc55xx_fatal_code; - -void mpc55xx_fatal(mpc55xx_fatal_code code) RTEMS_COMPILER_NO_RETURN_ATTRIBUTE; - #ifdef __cplusplus } #endif /* __cplusplus */ diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/bspstart.c b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/bspstart.c index ed3ef537b5..2c8ceed3a4 100644 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/bspstart.c +++ b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/bspstart.c @@ -61,11 +61,6 @@ void _BSP_Fatal_error(unsigned n) } } -void mpc55xx_fatal(mpc55xx_fatal_code code) -{ - rtems_fatal(RTEMS_FATAL_SOURCE_BSP_SPECIFIC, code); -} - static void null_pointer_protection(void) { #ifdef MPC55XX_NULL_POINTER_PROTECTION diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-clock.c b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-clock.c index f99efa22a5..b4c47579e4 100644 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-clock.c +++ b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-clock.c @@ -21,6 +21,7 @@ */ #include +#include #include #include #include @@ -38,7 +39,7 @@ } if (!lock) { - mpc55xx_fatal(MPC55XX_FATAL_FMPLL_LOCK); + bsp_fatal(MPC55XX_FATAL_FMPLL_LOCK); } } #endif diff --git a/c/src/lib/libbsp/preinstall.am b/c/src/lib/libbsp/preinstall.am index 07c18f17a8..abaf028942 100644 --- a/c/src/lib/libbsp/preinstall.am +++ b/c/src/lib/libbsp/preinstall.am @@ -22,7 +22,7 @@ $(PROJECT_INCLUDE)/bsp/default-initial-extension.h: shared/include/default-initi $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/default-initial-extension.h PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/default-initial-extension.h -$(PROJECT_INCLUDE)/bsp/generic-fatal.h: shared/include/generic-fatal.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/generic-fatal.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/generic-fatal.h +$(PROJECT_INCLUDE)/bsp/fatal.h: shared/include/fatal.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/fatal.h +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/fatal.h diff --git a/c/src/lib/libbsp/shared/console.c b/c/src/lib/libbsp/shared/console.c index 00174956e4..7d2a30af87 100644 --- a/c/src/lib/libbsp/shared/console.c +++ b/c/src/lib/libbsp/shared/console.c @@ -16,7 +16,7 @@ */ #include -#include +#include #include #include #include @@ -49,7 +49,7 @@ static void console_initialize_pointers(void) Console_Port_Count = Console_Configuration_Count; Console_Port_Tbl = malloc( Console_Port_Count * sizeof( console_tbl * ) ); if (Console_Port_Tbl == NULL) - bsp_generic_fatal( BSP_GENERIC_FATAL_CONSOLE_NO_MEMORY_0 ); + bsp_fatal( BSP_FATAL_CONSOLE_NO_MEMORY_0 ); for (i=0 ; i < Console_Port_Count ; i++) Console_Port_Tbl[i] = &Console_Configuration_Ports[i]; @@ -76,7 +76,7 @@ void console_register_devices( * register devices. */ if ( console_initialized ) { - bsp_generic_fatal( BSP_GENERIC_FATAL_CONSOLE_MULTI_INIT ); + bsp_fatal( BSP_FATAL_CONSOLE_MULTI_INIT ); } /* @@ -89,12 +89,12 @@ void console_register_devices( Console_Port_Count * sizeof( console_tbl * ) ); if ( Console_Port_Tbl == NULL ) { - bsp_generic_fatal( BSP_GENERIC_FATAL_CONSOLE_NO_MEMORY_1 ); + bsp_fatal( BSP_FATAL_CONSOLE_NO_MEMORY_1 ); } Console_Port_Data = calloc( Console_Port_Count, sizeof( console_data ) ); if ( Console_Port_Data == NULL ) { - bsp_generic_fatal( BSP_GENERIC_FATAL_CONSOLE_NO_MEMORY_2 ); + bsp_fatal( BSP_FATAL_CONSOLE_NO_MEMORY_2 ); } /* @@ -255,7 +255,7 @@ rtems_device_driver console_initialize( console_initialize_pointers(); Console_Port_Data = calloc( Console_Port_Count, sizeof( console_data ) ); if ( Console_Port_Data == NULL ) { - bsp_generic_fatal( BSP_GENERIC_FATAL_CONSOLE_NO_MEMORY_3 ); + bsp_fatal( BSP_FATAL_CONSOLE_NO_MEMORY_3 ); } } @@ -290,14 +290,14 @@ rtems_device_driver console_initialize( if (port->sDeviceName != NULL) { status = rtems_io_register_name( port->sDeviceName, major, minor ); if (status != RTEMS_SUCCESSFUL) { - bsp_generic_fatal( BSP_GENERIC_FATAL_CONSOLE_REGISTER_DEV_0 ); + bsp_fatal( BSP_FATAL_CONSOLE_REGISTER_DEV_0 ); } } if (minor == Console_Port_Minor) { status = rtems_io_register_name( CONSOLE_DEVICE_NAME, major, minor ); if (status != RTEMS_SUCCESSFUL) { - bsp_generic_fatal( BSP_GENERIC_FATAL_CONSOLE_REGISTER_DEV_1 ); + bsp_fatal( BSP_FATAL_CONSOLE_REGISTER_DEV_1 ); } } diff --git a/c/src/lib/libbsp/shared/console_select.c b/c/src/lib/libbsp/shared/console_select.c index 392748704d..7c91112cc4 100644 --- a/c/src/lib/libbsp/shared/console_select.c +++ b/c/src/lib/libbsp/shared/console_select.c @@ -19,7 +19,7 @@ */ #include -#include +#include #include #include #include @@ -72,7 +72,7 @@ static rtems_device_minor_number bsp_First_Available_Device( void ) /* * Error No devices were found. We will want to bail here. */ - bsp_generic_fatal(BSP_GENERIC_FATAL_CONSOLE_NO_DEV); + bsp_fatal(BSP_FATAL_CONSOLE_NO_DEV); } void bsp_console_select(void) diff --git a/c/src/lib/libbsp/shared/include/fatal.h b/c/src/lib/libbsp/shared/include/fatal.h new file mode 100644 index 0000000000..16d20b84b7 --- /dev/null +++ b/c/src/lib/libbsp/shared/include/fatal.h @@ -0,0 +1,113 @@ +/* + * Copyright (c) 2012-2014 embedded brains GmbH. All rights reserved. + * + * embedded brains GmbH + * Dornierstr. 4 + * 82178 Puchheim + * Germany + * + * + * 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. + */ + +#ifndef LIBBSP_SHARED_BSP_FATAL_H +#define LIBBSP_SHARED_BSP_FATAL_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +#define BSP_FATAL_CODE_BLOCK(idx) ((unsigned long) (idx) * 256UL) + +/** + * @brief BSP fatal error codes. + */ +typedef enum { + /* Generic BSP fatal codes */ + BSP_FATAL_INTERRUPT_INITIALIZATION = BSP_FATAL_CODE_BLOCK(0), + BSP_FATAL_SPURIOUS_INTERRUPT, + BSP_FATAL_CONSOLE_MULTI_INIT, + BSP_FATAL_CONSOLE_NO_MEMORY_0, + BSP_FATAL_CONSOLE_NO_MEMORY_1, + BSP_FATAL_CONSOLE_NO_MEMORY_2, + BSP_FATAL_CONSOLE_NO_MEMORY_3, + BSP_FATAL_CONSOLE_REGISTER_DEV_0, + BSP_FATAL_CONSOLE_REGISTER_DEV_1, + BSP_FATAL_CONSOLE_NO_DEV, + + /* ARM fatal codes */ + BSP_ARM_A9MPCORE_FATAL_CLOCK_IRQ_INSTALL = BSP_FATAL_CODE_BLOCK(1), + BSP_ARM_A9MPCORE_FATAL_CLOCK_IRQ_REMOVE, + BSP_ARM_PL111_FATAL_REGISTER_DEV, + BSP_ARM_PL111_FATAL_SEM_CREATE, + BSP_ARM_PL111_FATAL_SEM_RELEASE, + + /* LEON3 fatal codes */ + LEON3_FATAL_CPU_COUNTER_INIT = BSP_FATAL_CODE_BLOCK(2), + + /* LPC24XX fatal codes */ + LPC24XX_FATAL_PL111_SET_UP = BSP_FATAL_CODE_BLOCK(3), + LPC24XX_FATAL_PL111_PINS_SET_UP, + LPC24XX_FATAL_PL111_PINS_TEAR_DOWN, + LPC24XX_FATAL_PL111_TEAR_DOWN, + + /* MPC5200 fatal codes */ + MPC5200_FATAL_PCF8563_INVALID_YEAR = BSP_FATAL_CODE_BLOCK(4), + MPC5200_FATAL_SLICETIMER_0_IRQ_INSTALL, + MPC5200_FATAL_SLICETIMER_1_IRQ_INSTALL, + MPC5200_FATAL_TM27_IRQ_INSTALL, + MPC5200_FATAL_MSCAN_A_INIT, + MPC5200_FATAL_MSCAN_B_INIT, + MPC5200_FATAL_MSCAN_A_SET_MODE, + MPC5200_FATAL_MSCAN_B_SET_MODE, + MPC5200_FATAL_ATA_DISK_IO_INIT, + MPC5200_FATAL_ATA_DISK_CREATE, + MPC5200_FATAL_ATA_DMA_SINGLE_IRQ_INSTALL, + MPC5200_FATAL_ATA_LOCK_CREATE, + MPC5200_FATAL_ATA_LOCK_DESTROY, + + /* MPC55XX fatal codes */ + MPC55XX_FATAL_FMPLL_LOCK = BSP_FATAL_CODE_BLOCK(5), + MPC55XX_FATAL_CLOCK_EMIOS_IRQ_INSTALL, + MPC55XX_FATAL_CLOCK_EMIOS_PRESCALER, + MPC55XX_FATAL_CLOCK_EMIOS_INTERVAL, + MPC55XX_FATAL_CLOCK_PIT_IRQ_INSTALL, + MPC55XX_FATAL_CONSOLE_GENERIC_COUNT, + MPC55XX_FATAL_CONSOLE_GENERIC_REGISTER, + MPC55XX_FATAL_CONSOLE_GENERIC_REGISTER_CONSOLE, + MPC55XX_FATAL_CONSOLE_ESCI_BAUD, + MPC55XX_FATAL_CONSOLE_ESCI_ATTRIBUTES, + MPC55XX_FATAL_CONSOLE_ESCI_IRQ_INSTALL, + MPC55XX_FATAL_CONSOLE_LINFLEX_BAUD, + MPC55XX_FATAL_CONSOLE_LINFLEX_ATTRIBUTES, + MPC55XX_FATAL_CONSOLE_LINFLEX_RX_IRQ_INSTALL, + MPC55XX_FATAL_CONSOLE_LINFLEX_TX_IRQ_INSTALL, + MPC55XX_FATAL_CONSOLE_LINFLEX_ERR_IRQ_INSTALL, + MPC55XX_FATAL_CONSOLE_LINFLEX_RX_IRQ_REMOVE, + MPC55XX_FATAL_CONSOLE_LINFLEX_TX_IRQ_REMOVE, + MPC55XX_FATAL_CONSOLE_LINFLEX_ERR_IRQ_REMOVE, + MPC55XX_FATAL_EDMA_IRQ_INSTALL, + MPC55XX_FATAL_EDMA_IRQ_REMOVE, + + /* MRM332 fatal codes */ + MRM332_FATAL_SPURIOUS_INTERRUPT = BSP_FATAL_CODE_BLOCK(6), + + /* PowerPC fatal codes */ + PPC_FATAL_EXCEPTION_INITIALIZATION = BSP_FATAL_CODE_BLOCK(7) +} bsp_fatal_code; + +RTEMS_COMPILER_NO_RETURN_ATTRIBUTE static inline void +bsp_fatal( bsp_fatal_code code ) +{ + rtems_fatal( RTEMS_FATAL_SOURCE_BSP, (rtems_fatal_code) code ); +} + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* LIBBSP_SHARED_BSP_FATAL_H */ diff --git a/c/src/lib/libbsp/shared/include/generic-fatal.h b/c/src/lib/libbsp/shared/include/generic-fatal.h deleted file mode 100644 index 4565271d77..0000000000 --- a/c/src/lib/libbsp/shared/include/generic-fatal.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 2012-2013 embedded brains GmbH. All rights reserved. - * - * embedded brains GmbH - * Dornierstr. 4 - * 82178 Puchheim - * Germany - * - * - * 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. - */ - -#ifndef LIBBSP_SHARED_BSP_GENERIC_FATAL_H -#define LIBBSP_SHARED_BSP_GENERIC_FATAL_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/** - * @brief Generic BSP fatal error codes. - */ -typedef enum { - BSP_GENERIC_FATAL_EXCEPTION_INITIALIZATION, - BSP_GENERIC_FATAL_INTERRUPT_INITIALIZATION, - BSP_GENERIC_FATAL_SPURIOUS_INTERRUPT, - BSP_GENERIC_FATAL_CONSOLE_MULTI_INIT, - BSP_GENERIC_FATAL_CONSOLE_NO_MEMORY_0, - BSP_GENERIC_FATAL_CONSOLE_NO_MEMORY_1, - BSP_GENERIC_FATAL_CONSOLE_NO_MEMORY_2, - BSP_GENERIC_FATAL_CONSOLE_NO_MEMORY_3, - BSP_GENERIC_FATAL_CONSOLE_REGISTER_DEV_0, - BSP_GENERIC_FATAL_CONSOLE_REGISTER_DEV_1, - BSP_GENERIC_FATAL_CONSOLE_NO_DEV -} bsp_generic_fatal_code; - -RTEMS_COMPILER_NO_RETURN_ATTRIBUTE static inline void -bsp_generic_fatal( bsp_generic_fatal_code code ) -{ - rtems_fatal( RTEMS_FATAL_SOURCE_BSP_GENERIC, (rtems_fatal_code) code ); -} - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* LIBBSP_SHARED_BSP_GENERIC_FATAL_H */ diff --git a/c/src/lib/libbsp/shared/include/irq-generic.h b/c/src/lib/libbsp/shared/include/irq-generic.h index 329b120b3c..82267f4ef5 100644 --- a/c/src/lib/libbsp/shared/include/irq-generic.h +++ b/c/src/lib/libbsp/shared/include/irq-generic.h @@ -171,8 +171,8 @@ void bsp_interrupt_handler_default(rtems_vector_number vector); * specific bsp_interrupt_facility_initialize() function will be called after * all internals are initialized. If the BSP specific initialization fails, * then this is a fatal error. The fatal error source is - * RTEMS_FATAL_SOURCE_BSP_GENERIC and the fatal error code is - * BSP_GENERIC_FATAL_INTERRUPT_INITIALIZATION. + * RTEMS_FATAL_SOURCE_BSP and the fatal error code is + * BSP_FATAL_INTERRUPT_INITIALIZATION. */ void bsp_interrupt_initialize(void); diff --git a/c/src/lib/libbsp/shared/src/irq-generic.c b/c/src/lib/libbsp/shared/src/irq-generic.c index 69ed55ac83..f31b397032 100644 --- a/c/src/lib/libbsp/shared/src/irq-generic.c +++ b/c/src/lib/libbsp/shared/src/irq-generic.c @@ -23,7 +23,7 @@ */ #include -#include +#include #include @@ -171,7 +171,7 @@ void bsp_interrupt_initialize(void) sc = bsp_interrupt_facility_initialize(); if (sc != RTEMS_SUCCESSFUL) { - bsp_generic_fatal(BSP_GENERIC_FATAL_INTERRUPT_INITIALIZATION); + bsp_fatal(BSP_FATAL_INTERRUPT_INITIALIZATION); } bsp_interrupt_set_initialized(); diff --git a/c/src/lib/libbsp/sparc/leon3/include/bsp.h b/c/src/lib/libbsp/sparc/leon3/include/bsp.h index 18ae87f239..b0a17305af 100644 --- a/c/src/lib/libbsp/sparc/leon3/include/bsp.h +++ b/c/src/lib/libbsp/sparc/leon3/include/bsp.h @@ -209,10 +209,6 @@ extern void BSP_shared_interrupt_unmask(int irq); */ extern void BSP_shared_interrupt_mask(int irq); -typedef enum { - LEON3_FATAL_CPU_COUNTER_INIT -} leon3_fatal_code; - #ifdef __cplusplus } #endif diff --git a/c/src/lib/libbsp/sparc/leon3/startup/cpucounter.c b/c/src/lib/libbsp/sparc/leon3/startup/cpucounter.c index 2863f359e7..e773d4d6b6 100644 --- a/c/src/lib/libbsp/sparc/leon3/startup/cpucounter.c +++ b/c/src/lib/libbsp/sparc/leon3/startup/cpucounter.c @@ -13,6 +13,7 @@ */ #include +#include #include #include @@ -37,7 +38,7 @@ void leon3_cpu_counter_initialize(void) &idx ); if (adev == NULL) { - rtems_fatal(RTEMS_FATAL_SOURCE_BSP_SPECIFIC, LEON3_FATAL_CPU_COUNTER_INIT); + bsp_fatal(LEON3_FATAL_CPU_COUNTER_INIT); } gpt = (volatile struct gptimer_regs *) DEV_TO_APB(adev)->start; diff --git a/c/src/lib/libcpu/powerpc/mpc55xx/edma/edma.c b/c/src/lib/libcpu/powerpc/mpc55xx/edma/edma.c index 0856ad7535..a2f687b013 100644 --- a/c/src/lib/libcpu/powerpc/mpc55xx/edma/edma.c +++ b/c/src/lib/libcpu/powerpc/mpc55xx/edma/edma.c @@ -26,6 +26,7 @@ #include #include +#include #include #define EDMA_CHANNELS_PER_GROUP 32U @@ -199,7 +200,7 @@ void mpc55xx_edma_init(void) NULL ); if (sc != RTEMS_SUCCESSFUL) { - mpc55xx_fatal(MPC55XX_FATAL_EDMA_IRQ_INSTALL); + bsp_fatal(MPC55XX_FATAL_EDMA_IRQ_INSTALL); } } } @@ -283,7 +284,7 @@ void mpc55xx_edma_release_channel(edma_channel_context *ctx) ctx ); if (sc != RTEMS_SUCCESSFUL) { - mpc55xx_fatal(MPC55XX_FATAL_EDMA_IRQ_REMOVE); + bsp_fatal(MPC55XX_FATAL_EDMA_IRQ_REMOVE); } } diff --git a/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_initialize.c b/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_initialize.c index 07dfbeaf6b..8a685d769c 100644 --- a/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_initialize.c +++ b/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_initialize.c @@ -25,7 +25,7 @@ #include #include -#include +#include #define PPC_EXC_ASSERT_OFFSET(field, off) \ RTEMS_STATIC_ASSERT( \ @@ -145,7 +145,7 @@ static void ppc_exc_initialize_booke(void *vector_base) static void ppc_exc_fatal_error(void) { - bsp_generic_fatal(BSP_GENERIC_FATAL_EXCEPTION_INITIALIZATION); + bsp_fatal(PPC_FATAL_EXCEPTION_INITIALIZATION); } void ppc_exc_initialize_with_vector_base( diff --git a/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/vectors.h b/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/vectors.h index d928d70662..dc2487cddd 100644 --- a/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/vectors.h +++ b/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/vectors.h @@ -370,8 +370,8 @@ void ppc_exc_initialize_with_vector_base( * @brief Initializes the exception handling. * * If the initialization fails, then this is a fatal error. The fatal error - * source is RTEMS_FATAL_SOURCE_BSP_GENERIC and the fatal error code is - * BSP_GENERIC_FATAL_EXCEPTION_INITIALIZATION. + * source is RTEMS_FATAL_SOURCE_BSP and the fatal error code is + * PPC_FATAL_EXCEPTION_INITIALIZATION. * * Possible error reasons are * - no category set available for the current CPU, diff --git a/cpukit/sapi/src/fatalsrctext.c b/cpukit/sapi/src/fatalsrctext.c index 902a269b59..7f7bccc195 100644 --- a/cpukit/sapi/src/fatalsrctext.c +++ b/cpukit/sapi/src/fatalsrctext.c @@ -33,8 +33,7 @@ static const char *const fatal_source_text[] = { "RTEMS_FATAL_SOURCE_BDBUF", "RTEMS_FATAL_SOURCE_APPLICATION", "RTEMS_FATAL_SOURCE_EXIT", - "RTEMS_FATAL_SOURCE_BSP_GENERIC", - "RTEMS_FATAL_SOURCE_BSP_SPECIFIC", + "RTEMS_FATAL_SOURCE_BSP", "RTEMS_FATAL_SOURCE_ASSERT", "RTEMS_FATAL_SOURCE_STACK_CHECKER", "RTEMS_FATAL_SOURCE_EXCEPTION" diff --git a/cpukit/score/include/rtems/score/interr.h b/cpukit/score/include/rtems/score/interr.h index f181c55560..4ad52c9fb0 100644 --- a/cpukit/score/include/rtems/score/interr.h +++ b/cpukit/score/include/rtems/score/interr.h @@ -69,21 +69,14 @@ typedef enum { RTEMS_FATAL_SOURCE_EXIT, /** - * @brief Fatal source for generic BSP errors. + * @brief Fatal source for BSP errors. * - * The fatal codes are defined in . Examples are - * interrupt and exception initialization. + * The fatal codes are defined in . Examples are interrupt and + * exception initialization. * - * @see bsp_generic_fatal_code and bsp_generic_fatal(). + * @see bsp_fatal_code and bsp_fatal(). */ - RTEMS_FATAL_SOURCE_BSP_GENERIC, - - /** - * @brief Fatal source for BSP specific errors. - * - * The fatal code is BSP specific. - */ - RTEMS_FATAL_SOURCE_BSP_SPECIFIC, + RTEMS_FATAL_SOURCE_BSP, /** * @brief Fatal source of assert(). diff --git a/testsuites/sptests/spinternalerror02/spinternalerror02.scn b/testsuites/sptests/spinternalerror02/spinternalerror02.scn index ecf39625ab..dc2ef6f171 100644 --- a/testsuites/sptests/spinternalerror02/spinternalerror02.scn +++ b/testsuites/sptests/spinternalerror02/spinternalerror02.scn @@ -32,8 +32,7 @@ INTERNAL_ERROR_POSIX_API RTEMS_FATAL_SOURCE_BDBUF RTEMS_FATAL_SOURCE_APPLICATION RTEMS_FATAL_SOURCE_EXIT -RTEMS_FATAL_SOURCE_BSP_GENERIC -RTEMS_FATAL_SOURCE_BSP_SPECIFIC +RTEMS_FATAL_SOURCE_BSP RTEMS_FATAL_SOURCE_ASSERT RTEMS_FATAL_SOURCE_STACK_CHECKER RTEMS_FATAL_SOURCE_EXCEPTION -- cgit v1.2.3