diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2014-02-17 11:40:18 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2014-02-19 09:59:39 +0100 |
commit | 33cb8bf64d7b7551ea3a2e7ced5d4b56cd32d6db (patch) | |
tree | 9aca7c789c974a8e3d7538cfad7d40c4c9aef37a /c/src/lib/libbsp/shared | |
parent | score: Delete INTERNAL_ERROR_SHUTDOWN_WHEN_NOT_UP (diff) | |
download | rtems-33cb8bf64d7b7551ea3a2e7ced5d4b56cd32d6db.tar.bz2 |
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.
Diffstat (limited to 'c/src/lib/libbsp/shared')
-rw-r--r-- | c/src/lib/libbsp/shared/console.c | 16 | ||||
-rw-r--r-- | c/src/lib/libbsp/shared/console_select.c | 4 | ||||
-rw-r--r-- | c/src/lib/libbsp/shared/include/fatal.h | 113 | ||||
-rw-r--r-- | c/src/lib/libbsp/shared/include/generic-fatal.h | 51 | ||||
-rw-r--r-- | c/src/lib/libbsp/shared/include/irq-generic.h | 4 | ||||
-rw-r--r-- | c/src/lib/libbsp/shared/src/irq-generic.c | 4 |
6 files changed, 127 insertions, 65 deletions
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 <bsp.h> -#include <bsp/generic-fatal.h> +#include <bsp/fatal.h> #include <rtems/libio.h> #include <rtems/console.h> #include <stdlib.h> @@ -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 <bsp.h> -#include <bsp/generic-fatal.h> +#include <bsp/fatal.h> #include <rtems/libio.h> #include <stdlib.h> #include <assert.h> @@ -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 + * <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. + */ + +#ifndef LIBBSP_SHARED_BSP_FATAL_H +#define LIBBSP_SHARED_BSP_FATAL_H + +#include <rtems.h> + +#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 - * <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. - */ - -#ifndef LIBBSP_SHARED_BSP_GENERIC_FATAL_H -#define LIBBSP_SHARED_BSP_GENERIC_FATAL_H - -#include <rtems.h> - -#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 <bsp/irq-generic.h> -#include <bsp/generic-fatal.h> +#include <bsp/fatal.h> #include <stdlib.h> @@ -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(); |