summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/shared
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2014-02-17 11:40:18 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2014-02-19 09:59:39 +0100
commit33cb8bf64d7b7551ea3a2e7ced5d4b56cd32d6db (patch)
tree9aca7c789c974a8e3d7538cfad7d40c4c9aef37a /c/src/lib/libbsp/shared
parentscore: Delete INTERNAL_ERROR_SHUTDOWN_WHEN_NOT_UP (diff)
downloadrtems-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.c16
-rw-r--r--c/src/lib/libbsp/shared/console_select.c4
-rw-r--r--c/src/lib/libbsp/shared/include/fatal.h113
-rw-r--r--c/src/lib/libbsp/shared/include/generic-fatal.h51
-rw-r--r--c/src/lib/libbsp/shared/include/irq-generic.h4
-rw-r--r--c/src/lib/libbsp/shared/src/irq-generic.c4
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();