source: rtems/bsps/include/bsp/fatal.h @ fe6d96c

Last change on this file since fe6d96c was fe6d96c, checked in by Joel Sherrill <joel@…>, on 03/01/22 at 21:39:06

bsps/include/: Scripted embedded brains header file clean up

Updates #4625.

  • Property mode set to 100644
File size: 6.0 KB
Line 
1/*
2 * Copyright (c) 2012, 2018 embedded brains GmbH.  All rights reserved.
3 *
4 * The license and distribution terms for this file may be
5 * found in the file LICENSE in this distribution or at
6 * http://www.rtems.org/license/LICENSE.
7 */
8
9#ifndef LIBBSP_SHARED_BSP_FATAL_H
10#define LIBBSP_SHARED_BSP_FATAL_H
11
12#include <rtems.h>
13
14#ifdef __cplusplus
15extern "C" {
16#endif /* __cplusplus */
17
18#define BSP_FATAL_CODE_BLOCK(idx) ((unsigned long) (idx) * 256UL)
19
20/**
21 * @brief BSP fatal error codes.
22 */
23typedef enum {
24  /* Generic BSP fatal codes */
25  BSP_FATAL_INTERRUPT_INITIALIZATION = BSP_FATAL_CODE_BLOCK(0),
26  BSP_FATAL_SPURIOUS_INTERRUPT,
27  BSP_FATAL_CONSOLE_MULTI_INIT,
28  BSP_FATAL_CONSOLE_NO_MEMORY_0,
29  BSP_FATAL_CONSOLE_NO_MEMORY_1,
30  BSP_FATAL_CONSOLE_NO_MEMORY_2,
31  BSP_FATAL_CONSOLE_NO_MEMORY_3,
32  BSP_FATAL_CONSOLE_REGISTER_DEV_0,
33  BSP_FATAL_CONSOLE_REGISTER_DEV_1,
34  BSP_FATAL_CONSOLE_NO_DEV,
35  BSP_FATAL_CONSOLE_INSTALL_0,
36  BSP_FATAL_CONSOLE_INSTALL_1,
37  BSP_FATAL_CONSOLE_REGISTER_DEV_2,
38
39  /* ARM fatal codes */
40  BSP_ARM_A9MPCORE_FATAL_CLOCK_IRQ_INSTALL = BSP_FATAL_CODE_BLOCK(1),
41  BSP_ARM_A9MPCORE_FATAL_CLOCK_IRQ_REMOVE,
42  BSP_ARM_PL111_FATAL_REGISTER_DEV,
43  BSP_ARM_PL111_FATAL_SEM_CREATE,
44  BSP_ARM_PL111_FATAL_SEM_RELEASE,
45  BSP_ARM_A9MPCORE_FATAL_CLOCK_SMP_INIT,
46  BSP_ARM_ARMV7M_CPU_COUNTER_INIT,
47  BSP_ARM_FATAL_GENERIC_TIMER_CLOCK_IRQ_INSTALL,
48
49  /* LEON3 fatal codes */
50  LEON3_FATAL_NO_IRQMP_CONTROLLER = BSP_FATAL_CODE_BLOCK(2),
51  LEON3_FATAL_CONSOLE_REGISTER_DEV,
52  LEON3_FATAL_CLOCK_INITIALIZATION,
53  LEON3_FATAL_INVALID_CACHE_CONFIG_BOOT_PROCESSOR,
54  LEON3_FATAL_INVALID_CACHE_CONFIG_SECONDARY_PROCESSOR,
55  LEON3_FATAL_CLOCK_NO_IRQMP_TIMESTAMP_SUPPORT,
56
57  /* LPC24XX fatal codes */
58  LPC24XX_FATAL_PL111_SET_UP = BSP_FATAL_CODE_BLOCK(3),
59  LPC24XX_FATAL_PL111_PINS_SET_UP,
60  LPC24XX_FATAL_PL111_PINS_TEAR_DOWN,
61  LPC24XX_FATAL_PL111_TEAR_DOWN,
62
63  /* MPC5200 fatal codes */
64  MPC5200_FATAL_PCF8563_INVALID_YEAR = BSP_FATAL_CODE_BLOCK(4),
65  MPC5200_FATAL_SLICETIMER_0_IRQ_INSTALL,
66  MPC5200_FATAL_SLICETIMER_1_IRQ_INSTALL,
67  MPC5200_FATAL_TM27_IRQ_INSTALL,
68  MPC5200_FATAL_MSCAN_A_INIT,
69  MPC5200_FATAL_MSCAN_B_INIT,
70  MPC5200_FATAL_MSCAN_A_SET_MODE,
71  MPC5200_FATAL_MSCAN_B_SET_MODE,
72  MPC5200_FATAL_ATA_DISK_IO_INIT,
73  MPC5200_FATAL_ATA_DISK_CREATE,
74  MPC5200_FATAL_ATA_DMA_SINGLE_IRQ_INSTALL,
75  MPC5200_FATAL_ATA_LOCK_CREATE,
76  MPC5200_FATAL_ATA_LOCK_DESTROY,
77
78  /* MPC55XX fatal codes */
79  MPC55XX_FATAL_FMPLL_LOCK = BSP_FATAL_CODE_BLOCK(5),
80  MPC55XX_FATAL_CLOCK_EMIOS_IRQ_INSTALL,
81  MPC55XX_FATAL_CLOCK_EMIOS_PRESCALER,
82  MPC55XX_FATAL_CLOCK_EMIOS_INTERVAL,
83  MPC55XX_FATAL_CLOCK_PIT_IRQ_INSTALL,
84  MPC55XX_FATAL_CONSOLE_GENERIC_COUNT,
85  MPC55XX_FATAL_CONSOLE_GENERIC_REGISTER,
86  MPC55XX_FATAL_CONSOLE_GENERIC_REGISTER_CONSOLE,
87  MPC55XX_FATAL_CONSOLE_ESCI_BAUD,
88  MPC55XX_FATAL_CONSOLE_ESCI_ATTRIBUTES,
89  MPC55XX_FATAL_CONSOLE_ESCI_IRQ_INSTALL,
90  MPC55XX_FATAL_CONSOLE_LINFLEX_BAUD,
91  MPC55XX_FATAL_CONSOLE_LINFLEX_ATTRIBUTES,
92  MPC55XX_FATAL_CONSOLE_LINFLEX_RX_IRQ_INSTALL,
93  MPC55XX_FATAL_CONSOLE_LINFLEX_TX_IRQ_INSTALL,
94  MPC55XX_FATAL_CONSOLE_LINFLEX_ERR_IRQ_INSTALL,
95  MPC55XX_FATAL_CONSOLE_LINFLEX_RX_IRQ_REMOVE,
96  MPC55XX_FATAL_CONSOLE_LINFLEX_TX_IRQ_REMOVE,
97  MPC55XX_FATAL_CONSOLE_LINFLEX_ERR_IRQ_REMOVE,
98  MPC55XX_FATAL_EDMA_IRQ_INSTALL,
99  MPC55XX_FATAL_EDMA_IRQ_REMOVE,
100
101  /* MRM332 fatal codes */
102  MRM332_FATAL_SPURIOUS_INTERRUPT = BSP_FATAL_CODE_BLOCK(6),
103
104  /* PowerPC fatal codes */
105  PPC_FATAL_EXCEPTION_INITIALIZATION = BSP_FATAL_CODE_BLOCK(7),
106
107  /* Libchip fatal codes */
108  DWMAC_FATAL_TOO_MANY_RBUFS_CONFIGURED = BSP_FATAL_CODE_BLOCK(8),
109
110  /* ARM fatal codes */
111  ARM_FATAL_L2C_310_UNEXPECTED_ID = BSP_FATAL_CODE_BLOCK(9),
112  ARM_FATAL_L2C_310_UNEXPECTED_NUM_WAYS,
113  ARM_FATAL_L2C_310_EXCLUSIVE_CONFIG,
114
115  /* QorIQ fatal codes */
116  QORIQ_FATAL_SMP_IPI_HANDLER_INSTALL = BSP_FATAL_CODE_BLOCK(10),
117  QORIQ_FATAL_FDT_NO_BUS_FREQUENCY,
118  QORIQ_FATAL_FDT_NO_CLOCK_FREQUENCY,
119  QORIQ_FATAL_FDT_NO_TIMEBASE_FREQUENCY,
120  QORIQ_FATAL_RESTART_FAILED,
121  QORIQ_FATAL_RESTART_INSTALL_INTERRUPT,
122  QORIQ_FATAL_RESTART_INTERRUPT_FAILED,
123
124  /* ATSAM fatal codes */
125  ATSAM_FATAL_XDMA_IRQ_INSTALL = BSP_FATAL_CODE_BLOCK(11),
126  ATSAM_FATAL_PIO_IRQ_A,
127  ATSAM_FATAL_PIO_IRQ_B,
128  ATSAM_FATAL_PIO_IRQ_C,
129  ATSAM_FATAL_PIO_IRQ_D,
130  ATSAM_FATAL_PIO_IRQ_E,
131  ATSAM_FATAL_PIO_CONFIGURE_IT,
132
133  /* i.MX fatal codes */
134  IMX_FATAL_GENERIC_TIMER_FREQUENCY = BSP_FATAL_CODE_BLOCK(12),
135  IMX_FATAL_GPIO_UNEXPECTED_FDT,
136
137  /* RISC-V fatal codes */
138  RISCV_FATAL_NO_TIMEBASE_FREQUENCY_IN_DEVICE_TREE = BSP_FATAL_CODE_BLOCK(13),
139  RISCV_FATAL_NO_NS16550_REG_IN_DEVICE_TREE,
140  RISCV_FATAL_NO_NS16550_CLOCK_FREQUENCY_IN_DEVICE_TREE,
141  RISCV_FATAL_UNEXPECTED_INTERRUPT_EXCEPTION,
142  RISCV_FATAL_CLOCK_IRQ_INSTALL,
143  RISCV_FATAL_NO_CLINT_REG_IN_DEVICE_TREE,
144  RISCV_FATAL_INVALID_HART_REG_IN_DEVICE_TREE,
145  RISCV_FATAL_INVALID_CLINT_IRQS_EXTENDED_IN_DEVICE_TREE,
146  RISCV_FATAL_NO_PLIC_REG_IN_DEVICE_TREE,
147  RISCV_FATAL_INVALID_PLIC_NDEV_IN_DEVICE_TREE,
148  RISCV_FATAL_TOO_LARGE_PLIC_NDEV_IN_DEVICE_TREE,
149  RISCV_FATAL_INVALID_INTERRUPT_AFFINITY,
150  RISCV_FATAL_NO_NS16550_INTERRUPTS_IN_DEVICE_TREE,
151  RISCV_FATAL_NO_TLCLOCK_FREQUENCY_IN_DEVICE_TREE,
152  RISCV_FATAL_CLOCK_SMP_INIT,
153
154  /* GRLIB fatal codes */
155  GRLIB_FATAL_CLOCK_NO_IRQMP_TIMESTAMP_SUPPORT = BSP_FATAL_CODE_BLOCK(14),
156
157  /* i.MXRT fatal codes */
158  IMXRT_FATAL_NO_CONSOLE = BSP_FATAL_CODE_BLOCK(15),
159  IMXRT_FATAL_LPUART_INVALID_FDT,
160  IMXRT_FATAL_LPUART_ALLOC_FAILED,
161  IMXRT_FATAL_LPUART_INSTALL_FAILED,
162  IMXRT_FATAL_LPSPI_INVALID_FDT,
163  IMXRT_FATAL_LPSPI_ALLOC_FAILED,
164  IMXRT_FATAL_LPSPI_HW_INIT_FAILED,
165  IMXRT_FATAL_LPSPI_REGISTER_FAILED,
166  IMXRT_FATAL_LPI2C_INVALID_FDT,
167  IMXRT_FATAL_LPI2C_ALLOC_FAILED,
168  IMXRT_FATAL_LPI2C_HW_INIT_FAILED,
169  IMXRT_FATAL_LPI2C_REGISTER_FAILED,
170  IMXRT_FATAL_LPI2C_UNSUPPORTED_HARDWARE,
171
172  /* MicroBlaze fatal codes */
173  MICROBLAZE_FATAL_CLOCK_IRQ_INSTALL = BSP_FATAL_CODE_BLOCK(16),
174} bsp_fatal_code;
175
176RTEMS_NO_RETURN static inline void
177bsp_fatal( bsp_fatal_code code )
178{
179  rtems_fatal( RTEMS_FATAL_SOURCE_BSP, (rtems_fatal_code) code );
180}
181
182#ifdef __cplusplus
183}
184#endif /* __cplusplus */
185
186#endif /* LIBBSP_SHARED_BSP_FATAL_H */
Note: See TracBrowser for help on using the repository browser.