source: rtems/bsps/m68k/mrm332/start/spinit.c @ 100c9723

5
Last change on this file since 100c9723 was 100c9723, checked in by Sebastian Huber <sebastian.huber@…>, on 04/25/18 at 08:31:53

bsp/mrm332: Move spinit.c to bsps

This patch is a part of the BSP source reorganization.

Update #3285.

  • Property mode set to 100644
File size: 3.3 KB
Line 
1/*
2 *  This routine installs spurious interrupt handlers for the mrm.
3 */
4
5/*
6 *  COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993.
7 *  On-Line Applications Research Corporation (OAR).
8 *
9 *  The license and distribution terms for this file may be
10 *  found in the file LICENSE in this distribution or at
11 *  http://www.rtems.org/license/LICENSE.
12 */
13
14#include <bsp.h>
15#include <bsp/fatal.h>
16#include <stdio.h>
17
18const char * const _Spurious_Error_[] = {"Reset","Bus Error","Address Error",
19   "Illegal Instruction","Zero Division","CHK, CHK2 Instruction",
20   "TRAPcc, TRAPV Instruction","Privilege Violation","Trace",
21   "Line 1010 Emulation","Line 1111 Emulation","Hardware Breakpoint",
22   "Coprocessor Protocal Violation",
23   "Format Error ans Uninitialized Interrupt","Unassigned",
24   "Spurious Interrupt","AVec1","AVec2","AVec3","AVec4","AVec5","AVec6",
25   "AVec7","Trap Instruction","Debug","Reboot","Reserved Coprocessor",
26   "Reserved Unassigned","User Defined"};
27
28static rtems_isr Spurious_Isr(
29  rtems_vector_number vector
30)
31{
32  /*int sp = 0; */
33#if 0
34  const char * const VectDescrip[] = {
35    _Spurious_Error_[0],   _Spurious_Error_[0],  _Spurious_Error_[1],
36    _Spurious_Error_[2],   _Spurious_Error_[3],  _Spurious_Error_[4],
37    _Spurious_Error_[5],   _Spurious_Error_[6],  _Spurious_Error_[7],
38    _Spurious_Error_[8],   _Spurious_Error_[9], _Spurious_Error_[10],
39    _Spurious_Error_[11], _Spurious_Error_[12], _Spurious_Error_[13],
40    _Spurious_Error_[13], _Spurious_Error_[14], _Spurious_Error_[14],
41    _Spurious_Error_[14], _Spurious_Error_[14], _Spurious_Error_[14],
42    _Spurious_Error_[14], _Spurious_Error_[14], _Spurious_Error_[14],
43    _Spurious_Error_[15], _Spurious_Error_[16], _Spurious_Error_[17],
44    _Spurious_Error_[18], _Spurious_Error_[19], _Spurious_Error_[20],
45    _Spurious_Error_[21], _Spurious_Error_[22], _Spurious_Error_[23],
46    _Spurious_Error_[24], _Spurious_Error_[23], _Spurious_Error_[23],
47    _Spurious_Error_[23], _Spurious_Error_[23], _Spurious_Error_[23],
48    _Spurious_Error_[23], _Spurious_Error_[23], _Spurious_Error_[23],
49    _Spurious_Error_[23], _Spurious_Error_[23], _Spurious_Error_[23],
50    _Spurious_Error_[23], _Spurious_Error_[23], _Spurious_Error_[25],
51    _Spurious_Error_[26], _Spurious_Error_[26], _Spurious_Error_[26],
52    _Spurious_Error_[26], _Spurious_Error_[26], _Spurious_Error_[26],
53    _Spurious_Error_[26], _Spurious_Error_[26], _Spurious_Error_[26],
54    _Spurious_Error_[26], _Spurious_Error_[26], _Spurious_Error_[27],
55    _Spurious_Error_[27], _Spurious_Error_[27], _Spurious_Error_[27],
56    _Spurious_Error_[27], _Spurious_Error_[28]};
57#endif
58
59  /*asm volatile ( "movea.l   %%sp,%0 " : "=a" (sp) : "0" (sp) ); */
60
61  _CPU_ISR_Set_level( 7 );
62  /*_UART_flush(); */
63#if 0
64  RAW_PUTS("\n\rRTEMS: Spurious interrupt: ");
65  RAW_PUTS((char *)VectDescrip[( (vector>64) ? 64 : vector )]);
66  RAW_PUTS("\n\rRTEMS:    Vector: ");
67  RAW_PUTI(vector);
68  RAW_PUTS(" sp: ");
69  RAW_PUTI(sp);
70  RAW_PUTS("\n\r");
71#endif
72  bsp_fatal( MRM332_FATAL_SPURIOUS_INTERRUPT );
73}
74
75void Spurious_Initialize(void)
76{
77  rtems_vector_number vector;
78
79  for ( vector = 0x0 ; vector <= 0xFF ; vector++ )
80    {
81      switch (vector)
82        {
83        case 4:
84        case 9:
85        case 31:
86        case 47:
87        case 66:
88          /* These vectors used by CPU32bug - don't overwrite them. */
89          break;
90
91        default:
92          (void) set_vector( Spurious_Isr, vector, 1 );
93          break;
94        }
95    }
96}
Note: See TracBrowser for help on using the repository browser.