OSDN Git Service

* m68k/cf-crt1.C, m68k/cf.sc, m68k/fido.sc, m68k/fido-crt0.S:
[pf3gnuchains/pf3gnuchains3x.git] / libgloss / m68k / fido-crt0.S
1 /**
2  * fido-crt0.S -- Simple startup code
3  *
4  * Copyright (c) 1995, 1996, 1998 Cygnus Support
5  *
6  * The authors hereby grant permission to use, copy, modify, distribute,
7  * and license this software and its documentation for any purpose, provided
8  * that existing copyright notices are retained in all copies and that this
9  * notice is included verbatim in any distributions. No written agreement,
10  * license, or royalty fee is required for any of the authorized uses.
11  * Modifications to this software may be copyrighted by their authors
12  * and need not follow the licensing terms described here, provided that
13  * the new terms are clearly indicated on the first page of each file where
14  * they apply.
15  *
16  * Copyright 2006 Innovasic Semiconductor, All Rights Reserved.
17  * Part of the fido Realtime Support Library
18  *
19  * Description:
20  *   This routine performs initializations assuming a Fido
21  *   development board.  In order, the following functions are performed:
22  *
23  *     -- memory offset register initialization
24  *     -- chip select register initialization for external memory
25  *     -- SDRAM ctrl register initialization for external memory
26  *     -- in line test of external SRAM
27  *     -- sets user SP for MasterContext0 (main)
28  *     -- copies the bss section to RAM
29  *     -- transfers control to MasterContext0 (main)
30  * 
31  */
32
33 #include "asm.h"
34 #include "fido.h"
35
36 .title "fido-crt0.S for Fido"
37
38 /*----------------------------------------------------------------------------*/
39 //--------- 66 MHz values --------
40 // set up CS0 for flash
41 #define CS0_CTRL_VAL         0x0000024A
42 #define CS0_TIMING_VAL       0x01000000
43
44 // set up CS1 for SDRAM
45 #define CS1_CTRL_VAL         0x0200030A   /* selects SDRAM ctrl instead of CS1 */
46 #define CS1_TIMING_VAL       0x00000000   /* N/A for SDRAM operation */
47 #define SDRAM_TIMING_0_VAL   0x00022522   /* TRP=0x2, TRCD=0x2, TRF=0x5, TWR=0x5 TCL=0x5 */
48 #define SDRAM_TIMING_1_VAL   0x00120407   /* INI_PREC=0x1, INI_REFT=0x2, REF_INTV=0x407 */
49 #define SDRAM_CONFIG_0_VAL   0x00002113   /* MA2T=0, DDW=x16device=0x2, dsz=64MBit, mbw=16bit, bnksz=8Mbyte */
50 #define SDRAM_CONFIG_1_VAL   0x00000000   /* IPREC=0, IREF=0, ISMR=0, PWDN=0, SREF=0 */
51 #define SDRAM_EXT_BANK_1_VAL 0x00001020   /* SDRAM memory bank 0 at addr 0x0200_0000 */ 
52
53 // set up CS2 for SRAM        
54 #define CS2_CTRL_VAL         0x03000267
55 #define CS2_TIMING_VAL       0x08400000
56 /*----------------------------------------------------------------------------*/
57
58 #define EXT_SRAM_END_ADDR  0x30FFFFC /* 1 MB of ext. SRAM (2-512Kx8 chips) */
59 #define PERP_PWRUP_MASK    0x0000       /* turn on all peripherals */
60
61 /*
62  * Define an empty environment.
63  */
64     .data  2
65     .align 2
66 SYM (environ):
67     .long 0
68
69         .align  2
70         .text   2
71
72 /*
73  * These symbols are defined in C code, so they need to always be
74  * named with SYM because of the difference between object file formats.
75  */
76
77 /* These are defined in C code. */
78 /*      .extern SYM (main)    */
79         .extern SYM (exit)
80         .extern SYM (hardware_init_hook)
81         .extern SYM (software_init_hook)
82         .extern SYM (atexit)
83         .extern SYM (__do_global_dtors)
84 /* 
85  * These values are set in the linker script, so they must be
86  * explicitly named here without SYM.
87  */
88 #ifdef FIDO_rom
89         .extern __stack
90 #endif
91         .extern __bss_start
92         .extern _end
93
94 /*
95  * set things up so application will run. This *must* be called _start.
96  */
97         .global SYM (_start)
98
99 SYM (_start):
100
101 #ifdef FIDO_rom
102     /* save initial value of base offset register */
103     movec  mbb,d7
104
105     /* Initialize memory offset register to offset value in FIDOmemmap.h */ 
106     movel #FIDO_MEM_OFFSET,d0          /* Load memory offset into REG d0 */
107     movec d0,mbb
108
109     movel #0x011, FIDO_DBG_CTRL       /* set the debug control reg */
110     
111     /* At POR the PerpPowerCtrlReg is set to 0x3F0F, all peripherals off
112        See PerpPowerCtrlReg definition, this example turns ON everything */
113     movel   #PERP_PWRUP_MASK,FIDO_CLOCK_MASK_REGISTER
114
115         /* Set up chip selects for ROM, SRAM, and SDRAM (all external mem.) */
116     movel   #CS0_CTRL_VAL, FIDO_BIU_CS0_CONTROL   /* flash memory CS0    */
117     movel   #CS0_TIMING_VAL, FIDO_BIU_CS0_TIMING 
118
119     movel   #CS2_CTRL_VAL, FIDO_BIU_CS2_CONTROL   /* SRAM memory CS2     */
120     movel   #CS2_TIMING_VAL, FIDO_BIU_CS2_TIMING 
121
122     /* if this is not POR then say so */
123     movel FIDO_POR_REG,d6
124
125         /* test external SRAM -- */
126         /*   a0 == working pointer           */
127         /*   a1 == pointer to base of memory */
128         /*   a2 == pointer to end of memory  */
129         /*   d0,d1,d2,d3 working registers   */
130         
131         moveal #0x3000000,a1
132         moveal #0x30FFFFC,a2
133
134         movel  a1,a0
135         /*   walking ones  */
136         movel #1,d0
137
138 .LWalkOnes:
139         movel d0, (a0)       /* write value out */
140         cmpl  (a0), d0       /* read it back    */
141         bne   .LFailOnes
142         lsl.l  #1, d0        /* move to next value */
143         bne   .LWalkOnes       /* when it goes to zero you're done */
144         bra   .LValTest
145 .LFailOnes:
146         movel #0x01, d0
147         bra   .LMemTestEnd
148
149 .LValTest:
150         /*   ffff's    */
151         /*   5555's        */
152         /*   aaaa's        */
153         /*   0000's    */
154         movel a1,a0
155         movel  #0xFFFFFFFF,d0
156
157 .LValLoop:
158         movel d0,(a0)        /* write value out */
159         cmpl  (a0)+, d0      /* compare and move to next */
160         bne   .LFailVal
161         cmpl  a0,a2          /* at end of memory?  */
162         bge   .LValLoop
163         movel d0,d0          /* done writing zeros?  */
164         beq   .LAddrTest
165         movel a1,a0          /* go back to start with next value */
166         subl  #0x55555555,d0 /* get next value (f->a->5->0) */
167         bra   .LValLoop
168 .LFailVal:
169         movel #0x02, d0
170         bra   .LMemTestEnd
171
172 .LAddrTest:
173         /*   unique values */
174         movel  a1,a0
175 .LWriteLoop:
176         movel  a0, (a0)+     /* write value out and move one */
177         cmpl   a0,a2         /* look for end of memory */
178         bge    .LWriteLoop
179
180         movel  a1,a0
181 .LReadLoop:
182         cmpl   (a0), a0      /* compare value and move on */
183         bne    .LFailAddr
184         addql  #4,a0
185         cmpl   a0,a2         /* look for end of memory */
186         bge    .LReadLoop
187         clrl   d0            /* everything passed */
188         bra    .LMemTestEnd
189
190 .LFailAddr:
191         movel  #0x03, d0
192
193 .LMemTestEnd:
194     movel   d0,d4        /* mem test result in d4 0 == pass */
195 #endif /* ROM */
196         
197         /* See if user supplied their own stack (__stack != 0).  If not, then
198          * default to using the value of %sp as set by the ROM monitor      */
199         movel   IMM(__stack), a0
200         cmpl    IMM(0), a0
201         jbeq    .Lloc1
202         movel   a0, sp
203 .Lloc1:
204         /* set up initial stack frame */
205         link    a6, IMM(-8)
206
207 #ifdef FIDO_rom
208 /* 
209  * Now set up the SDRAM (waited to let the controller spin up)
210 */
211     /* always initialize SDRAM regs, they're cleared by any reset */    
212     /* SDRAM enbl bit set in CS1 re-directs to SDRAM controller regs    */
213
214     movel   #CS1_CTRL_VAL,         FIDO_BIU_CS1_CONTROL  /* SDRAM memory CS1    */
215     movel   #SDRAM_TIMING_0_VAL,   FIDO_SDRAM_TIMING_0   /* SDRAM TIMING REG0 */
216     movel   #SDRAM_TIMING_1_VAL,   FIDO_SDRAM_TIMING_1   /* SDRAM TIMING REG1 */
217     movel   #SDRAM_CONFIG_0_VAL,   FIDO_SDRAM_CONFIG_0   /* SDRAM CONFIG REG */
218     movel   #0x0000001c,           FIDO_SDRAM_CONFIG_1   /* SDRAM CONFIG REG */
219         
220 .LsdConfigLoop:
221     movel   FIDO_SDRAM_CONFIG_1,d0
222     cmpl    #0x00000000,d0
223     bne     .LsdConfigLoop   
224
225     movel   #SDRAM_EXT_BANK_1_VAL, FIDO_SDRAM_EXT_BANK_1 /* BANK 1 REG    */
226
227 /*
228  * copy data from ROM to RAM
229  */
230
231     moval   IMM(__start_romdata),a0 /* begin data in ROM */
232     moval   IMM(_data), a1         /* begin data in RAM */
233     moval   IMM(_edata),a2         /* end of data in RAM */
234
235     /* while(a1 < a2) *a1++ = *a0++; */
236 .LdataCopyLoop:
237     movel   (a0)+,(a1)+
238     cmpal    a1,a2
239     bgt     .LdataCopyLoop
240 #endif /* ROM */
241
242 #ifdef FIDO_ram
243         /* For ROM configs, the linker script ensures that
244            _vector_table is placed at the proper place.  For RAM
245            configs, we have to adjust it ourselves.  */
246         movel   IMM (SYM (_vector_table)), FIDO_CTX0_VBR
247 #endif
248
249 #ifndef FIDO_redboot
250         /* Setup interrupt vectors for secondary contexts.  */
251         movel   IMM (SYM (_vector_table1)), FIDO_CTX1_VBR
252         movel   IMM (SYM (_vector_table2)), FIDO_CTX2_VBR
253         movel   IMM (SYM (_vector_table3)), FIDO_CTX3_VBR
254         movel   IMM (SYM (_vector_table4)), FIDO_CTX4_VBR
255 #endif
256
257 /*
258  * zero out the bss section.
259  */
260         movel   IMM(__bss_start), d1
261         movel   IMM(_end), d0
262         cmpl    d0, d1
263         jbeq    .Lloc3
264         movl    d1, a0
265         subl    d1, d0
266         subql   IMM(1), d0
267 2:
268         clrb    (a0)+
269 #ifndef __mcf5200__
270         dbra    d0, 2b
271         clrw    d0
272         subql   IMM(1), d0
273         jbcc    2b
274 #else
275         subql   IMM(1), d0
276         jbpl    2b
277 #endif
278
279 .Lloc3:
280
281 #ifdef ADD_DTORS
282         /* put __do_global_dtors in the atexit list so the destructors get run */
283         movel   IMM (SYM(__do_global_dtors)),(sp)
284         jsr     SYM (atexit)
285 #endif
286         movel   IMM (_fini),(sp)
287         jsr     SYM (atexit)
288
289         jsr     _init
290
291 /*
292  * call the main routine from the application to get it going.
293  * main (argc, argv, environ)
294  * we pass argv as a pointer to NULL.
295  */
296
297     pea     0
298     pea     SYM (environ)
299     pea     sp@(4)
300     pea     0
301     jsr     SYM (main)   /* call to main */
302         movel   d0, sp@-
303
304 /*
305  * drop down into exit in case the user doesn't. This should drop
306  * control back to the ROM monitor, if there is one. This calls the
307  * exit() from the C library so the C++ tables get cleaned up right.
308  */
309         jsr     SYM (exit)
310
311 #ifndef FIDO_redboot
312         /* Define the interrupt vector table.  The linker script
313            ensures that the table is placed at address zero.  */
314         .section  .vector_table,"a"
315
316         .global SYM (_vector_table)
317
318 SYM (_vector_table):
319
320         dc.l    __stack                          /* 000 Initial Stack              */
321         dc.l    _start                           /* 001 Context 0 Start            */
322         dc.l    _BusErrorHandler                 /* 002 Bus Error                  */
323         dc.l    _AddressErrorHandler             /* 003 Address Error              */
324         dc.l    _IllegalInstructionHandler       /* 004 Illegal Instruction        */
325         dc.l    _DivideByZeroHandler             /* 005 Divide by Zero             */
326         dc.l    _ChkHandler                      /* 006 CHK, CHK2 Instructions     */  
327         dc.l    _TrapccHandler                   /* 007 TRAPcc, TRAPV Instructions */
328         dc.l    _PrivilegeViolationHandler       /* 008 Privilege Violation        */
329         dc.l    _TraceHandler                    /* 009 Trace                      */
330         dc.l    _ALineHandler                    /* 010 A-Line Unimplemented Instr */
331         dc.l    _FLineHandler                    /* 011 F-Line Unimplemented Instr */
332         dc.l    _HwBreakpointHandler             /* 012 Hardware Breakpoint        */
333         dc.l    _Reserved0Handler                /* 013 Reserved                   */
334         dc.l    _FormatErrorHandler              /* 014 Format Error               */
335         dc.l    _UnitializedIntHandler           /* 015 Unitialized Interrupt      */
336         dc.l    _SoftwareIntHandler              /* 016 Software Interrupt         */
337         dc.l    _Unassigned0Handler              /* 017 Unassigned                 */
338         dc.l    _Unassigned1Handler              /* 018 Unassigned                 */
339         dc.l    _Unassigned2Handler              /* 019 Unassigned                 */
340         dc.l    _Unassigned3Handler              /* 020 Unassigned                 */
341         dc.l    _Unassigned4Handler              /* 021 Unassigned                 */
342         dc.l    _Unassigned5Handler              /* 022 Unassigned                 */
343         dc.l    _Unassigned6Handler              /* 023 Unassigned                 */     
344         dc.l    _Int0Handler                     /* 024 Interrupt 0                */
345         dc.l    _Int1Handler                     /* 025 Interrupt 1                */
346         dc.l    _Int2Handler                     /* 026 Interrupt 2                */
347         dc.l    _Int3Handler                     /* 027 Interrupt 3                */
348         dc.l    _Int4Handler                     /* 028 Interrupt 4                */
349         dc.l    _Int5Handler                     /* 029 Interrupt 5                */
350         dc.l    _Int6Handler                     /* 030 Interrupt 6                */
351         dc.l    _Int7Handler                     /* 031 Interrupt 7                */
352         dc.l    _Trap00Handler                   /* 032 Trap #00 Instruction       */
353         dc.l    _Trap01Handler                   /* 033 Trap #01 Instruction       */
354         dc.l    _Trap02Handler                   /* 034 Trap #02 Instruction       */
355         dc.l    _Trap03Handler                   /* 035 Trap #03 Instruction       */
356         dc.l    _Trap04Handler                   /* 036 Trap #04 Instruction       */
357         dc.l    _Trap05Handler                   /* 037 Trap #05 Instruction       */
358         dc.l    _Trap06Handler                   /* 038 Trap #06 Instruction       */
359         dc.l    _Trap07Handler                   /* 039 Trap #07 Instruction       */
360         dc.l    _Trap08Handler                   /* 040 Trap #08 Instruction       */
361         dc.l    _Trap09Handler                   /* 041 Trap #09 Instruction       */
362         dc.l    _Trap10Handler                   /* 042 Trap #10 Instruction       */
363         dc.l    _Trap11Handler                   /* 043 Trap #11 Instruction       */
364         dc.l    _Trap12Handler                   /* 044 Trap #12 Instruction       */
365         dc.l    _Trap13Handler                   /* 045 Trap #13 Instruction       */
366         dc.l    _Trap14Handler                   /* 046 Trap #14 Instruction       */
367         dc.l    _Trap15Handler                   /* 047 Trap #15 Instruction       */
368         dc.l    _Reserved048Handler              /* 048 Reserved                   */
369         dc.l    _Reserved049Handler              /* 049 Reserved                   */
370         dc.l    _Reserved050Handler              /* 050 Reserved                   */
371         dc.l    _Reserved051Handler              /* 051 Reserved                   */
372         dc.l    _Reserved052Handler              /* 052 Reserved                   */
373         dc.l    _Reserved053Handler              /* 053 Reserved                   */
374         dc.l    _Reserved054Handler              /* 054 Reserved                   */
375         dc.l    _Reserved055Handler              /* 055 Reserved                   */
376         dc.l    _Reserved056Handler              /* 056 Reserved                   */
377         dc.l    _Reserved057Handler              /* 057 Reserved                   */
378         dc.l    _Reserved058Handler              /* 058 Reserved                   */
379         dc.l    _Reserved059Handler              /* 059 Reserved                   */
380         dc.l    _Reserved060Handler              /* 060 Reserved                   */
381         dc.l    _Reserved061Handler              /* 061 Reserved                   */
382         dc.l    _Reserved062Handler              /* 062 Reserved                   */
383         dc.l    _Reserved063Handler              /* 063 Reserved                   */
384         dc.l    _ContextOvertimeHandler          /* 064 Context Overtime           */
385         dc.l    _MpuErrorHandler                 /* 065 MPU Error                  */
386         dc.l    _SystemTimer0Handler             /* 066 System Timer 0             */
387         dc.l    _SystemTimer1Handler             /* 067 System Timer 1             */
388         dc.l    _SystemTimer2Handler             /* 068 System Timer 2             */
389         dc.l    _SystemTimer3Handler             /* 069 System Timer 3             */
390         dc.l    _SystemTimer4Handler             /* 070 System Timer 4             */
391         dc.l    _WatchdogTimerHandler            /* 071 Watchdog Timer             */
392         dc.l    _TimerCounter0Handler            /* 072 Timer Counter 1            */
393         dc.l    _TimerCounter1Handler            /* 073 Timer Counter 2            */
394         dc.l    _DMA0Handler                     /* 074 DMA Channel 0              */
395         dc.l    _DMA1Handler                     /* 075 DMA Channel 1              */
396         dc.l    _AtoDConversionHandler           /* 076 A/D Conversion Complete    */
397         dc.l    _Pdma0Handler                    /* 077 PDMA Ch 0 Interrupt        */
398         dc.l    _Pdma1Handler                    /* 078 PDMA Ch 1 Interrupt        */
399         dc.l    _Pdma2Handler                    /* 079 PDMA Ch 2 Interrupt        */
400         dc.l    _Pdma3Handler                    /* 080 PDMA Ch 3 Interrupt        */
401         dc.l    _Reserved081Handler              /* 081 Reserved                   */
402         dc.l    _Reserved082Handler              /* 082 Reserved                   */
403         dc.l    _Reserved083Handler              /* 083 Reserved                   */
404         dc.l    _Reserved084Handler              /* 084 Reserved                   */
405         dc.l    _Reserved085Handler              /* 085 Reserved                   */
406         dc.l    _Reserved086Handler              /* 086 Reserved                   */
407         dc.l    _Reserved087Handler              /* 087 Reserved                   */
408         dc.l    _Reserved088Handler              /* 088 Reserved                   */
409         dc.l    _Reserved089Handler              /* 089 Reserved                   */
410         dc.l    _Reserved090Handler              /* 090 Reserved                   */
411         dc.l    _Reserved091Handler              /* 091 Reserved                   */
412         dc.l    _Reserved092Handler              /* 092 Reserved                   */
413         dc.l    _Reserved093Handler              /* 093 Reserved                   */
414         dc.l    _Reserved094Handler              /* 094 Reserved                   */
415         dc.l    _Reserved095Handler              /* 095 Reserved                   */
416         dc.l    _Trapx00Handler                  /* 096 Trapx 00 Instruction       */
417         dc.l    _Trapx01Handler                  /* 097 Trapx 01 Instruction       */
418         dc.l    _Trapx02Handler                  /* 098 Trapx 02 Instruction       */
419         dc.l    _Trapx03Handler                  /* 099 Trapx 03 Instruction       */
420         dc.l    _Trapx04Handler                  /* 100 Trapx 04 Instruction       */
421         dc.l    _Trapx05Handler                  /* 101 Trapx 05 Instruction       */
422         dc.l    _Trapx06Handler                  /* 102 Trapx 06 Instruction       */
423         dc.l    _Trapx07Handler                  /* 103 Trapx 07 Instruction       */
424         dc.l    _Trapx08Handler                  /* 104 Trapx 08 Instruction       */
425         dc.l    _Trapx09Handler                  /* 105 Trapx 09 Instruction       */
426         dc.l    _Trapx10Handler                  /* 106 Trapx 10 Instruction       */
427         dc.l    _Trapx11Handler                  /* 107 Trapx 11 Instruction       */
428         dc.l    _Trapx12Handler                  /* 108 Trapx 12 Instruction       */
429         dc.l    _Trapx13Handler                  /* 109 Trapx 13 Instruction       */
430         dc.l    _Trapx14Handler                  /* 110 Trapx 14 Instruction       */
431         dc.l    _Trapx15Handler                  /* 111 Trapx 15 Instruction       */
432         dc.l    _DummyHandler                    /* 112  */
433         dc.l    _DummyHandler                    /* 113  */
434         dc.l    _DummyHandler                    /* 114  */
435         dc.l    _DummyHandler                    /* 115  */
436         dc.l    _DummyHandler                    /* 116  */
437         dc.l    _DummyHandler                    /* 117  */
438         dc.l    _DummyHandler                    /* 118  */
439         dc.l    _DummyHandler                    /* 119  */
440         dc.l    _DummyHandler                    /* 120  */
441         dc.l    _DummyHandler                    /* 121  */
442         dc.l    _DummyHandler                    /* 122  */
443         dc.l    _DummyHandler                    /* 123  */
444         dc.l    _DummyHandler                    /* 124  */
445         dc.l    _DummyHandler                    /* 125  */
446         dc.l    _DummyHandler                    /* 126  */
447         dc.l    _DummyHandler                    /* 127  */
448         dc.l    _DummyHandler                    /* 128  */
449         dc.l    _DummyHandler                    /* 129  */
450         dc.l    _DummyHandler                    /* 130  */
451         dc.l    _DummyHandler                    /* 131  */
452         dc.l    _DummyHandler                    /* 132  */
453         dc.l    _DummyHandler                    /* 133  */
454         dc.l    _DummyHandler                    /* 134  */
455         dc.l    _DummyHandler                    /* 135  */
456         dc.l    _DummyHandler                    /* 136  */
457         dc.l    _DummyHandler                    /* 137  */
458         dc.l    _DummyHandler                    /* 138  */
459         dc.l    _DummyHandler                    /* 139  */
460         dc.l    _DummyHandler                    /* 140  */
461         dc.l    _DummyHandler                    /* 141  */
462         dc.l    _DummyHandler                    /* 142  */
463         dc.l    _DummyHandler                    /* 143  */
464         dc.l    _DummyHandler                    /* 144  */
465         dc.l    _DummyHandler                    /* 145  */
466         dc.l    _DummyHandler                    /* 146  */
467         dc.l    _DummyHandler                    /* 147  */
468         dc.l    _DummyHandler                    /* 148  */
469         dc.l    _DummyHandler                    /* 149  */
470         dc.l    _DummyHandler                    /* 150  */
471         dc.l    _DummyHandler                    /* 151  */
472         dc.l    _DummyHandler                    /* 152  */
473         dc.l    _DummyHandler                    /* 153  */
474         dc.l    _DummyHandler                    /* 154  */
475         dc.l    _DummyHandler                    /* 155  */
476         dc.l    _DummyHandler                    /* 156  */
477         dc.l    _DummyHandler                    /* 157  */
478         dc.l    _DummyHandler                    /* 158  */
479         dc.l    _DummyHandler                    /* 159  */
480         dc.l    _DummyHandler                    /* 160  */
481         dc.l    _DummyHandler                    /* 161  */
482         dc.l    _DummyHandler                    /* 162  */
483         dc.l    _DummyHandler                    /* 163  */
484         dc.l    _DummyHandler                    /* 164  */
485         dc.l    _DummyHandler                    /* 165  */
486         dc.l    _DummyHandler                    /* 166  */
487         dc.l    _DummyHandler                    /* 167  */
488         dc.l    _DummyHandler                    /* 168  */
489         dc.l    _DummyHandler                    /* 169  */
490         dc.l    _DummyHandler                    /* 170  */
491         dc.l    _DummyHandler                    /* 171  */
492         dc.l    _DummyHandler                    /* 172  */
493         dc.l    _DummyHandler                    /* 173  */
494         dc.l    _DummyHandler                    /* 174  */
495         dc.l    _DummyHandler                    /* 175  */
496         dc.l    _DummyHandler                    /* 176  */
497         dc.l    _DummyHandler                    /* 177  */
498         dc.l    _DummyHandler                    /* 178  */
499         dc.l    _DummyHandler                    /* 179  */
500         dc.l    _DummyHandler                    /* 180  */
501         dc.l    _DummyHandler                    /* 181  */
502         dc.l    _DummyHandler                    /* 182  */
503         dc.l    _DummyHandler                    /* 183  */
504         dc.l    _DummyHandler                    /* 184  */
505         dc.l    _DummyHandler                    /* 185  */
506         dc.l    _DummyHandler                    /* 186  */
507         dc.l    _DummyHandler                    /* 187  */
508         dc.l    _DummyHandler                    /* 188  */
509         dc.l    _DummyHandler                    /* 189  */
510         dc.l    _DummyHandler                    /* 190  */
511         dc.l    _DummyHandler                    /* 191  */
512         dc.l    _DummyHandler                    /* 192  */
513         dc.l    _DummyHandler                    /* 193  */
514         dc.l    _DummyHandler                    /* 194  */
515         dc.l    _DummyHandler                    /* 195  */
516         dc.l    _DummyHandler                    /* 196  */
517         dc.l    _DummyHandler                    /* 197  */
518         dc.l    _DummyHandler                    /* 198  */
519         dc.l    _DummyHandler                    /* 199  */
520         dc.l    _DummyHandler                    /* 200  */
521         dc.l    _DummyHandler                    /* 201  */
522         dc.l    _DummyHandler                    /* 202  */
523         dc.l    _DummyHandler                    /* 203  */
524         dc.l    _DummyHandler                    /* 204  */
525         dc.l    _DummyHandler                    /* 205  */
526         dc.l    _DummyHandler                    /* 206  */
527         dc.l    _DummyHandler                    /* 207  */
528         dc.l    _DummyHandler                    /* 208  */
529         dc.l    _DummyHandler                    /* 209  */
530         dc.l    _DummyHandler                    /* 210  */
531         dc.l    _DummyHandler                    /* 211  */
532         dc.l    _DummyHandler                    /* 212  */
533         dc.l    _DummyHandler                    /* 213  */
534         dc.l    _DummyHandler                    /* 214  */
535         dc.l    _DummyHandler                    /* 215  */
536         dc.l    _DummyHandler                    /* 216  */
537         dc.l    _DummyHandler                    /* 217  */
538         dc.l    _DummyHandler                    /* 218  */
539         dc.l    _DummyHandler                    /* 219  */
540         dc.l    _DummyHandler                    /* 220  */
541         dc.l    _DummyHandler                    /* 221  */
542         dc.l    _DummyHandler                    /* 222  */
543         dc.l    _DummyHandler                    /* 223  */
544         dc.l    _DummyHandler                    /* 224  */
545         dc.l    _DummyHandler                    /* 225  */
546         dc.l    _DummyHandler                    /* 226  */
547         dc.l    _DummyHandler                    /* 227  */
548         dc.l    _DummyHandler                    /* 228  */
549         dc.l    _DummyHandler                    /* 229  */
550         dc.l    _DummyHandler                    /* 230  */
551         dc.l    _DummyHandler                    /* 231  */
552         dc.l    _DummyHandler                    /* 232  */
553         dc.l    _DummyHandler                    /* 233  */
554         dc.l    _DummyHandler                    /* 234  */
555         dc.l    _DummyHandler                    /* 235  */
556         dc.l    _DummyHandler                    /* 236  */
557         dc.l    _DummyHandler                    /* 237  */
558         dc.l    _DummyHandler                    /* 238  */
559         dc.l    _DummyHandler                    /* 239  */
560         dc.l    _DummyHandler                    /* 240  */
561         dc.l    _DummyHandler                    /* 241  */
562         dc.l    _DummyHandler                    /* 242  */
563         dc.l    _DummyHandler                    /* 243  */
564         dc.l    _DummyHandler                    /* 244  */
565         dc.l    _DummyHandler                    /* 245  */
566         dc.l    _DummyHandler                    /* 246  */
567         dc.l    _DummyHandler                    /* 247  */
568         dc.l    _DummyHandler                    /* 248  */
569         dc.l    _DummyHandler                    /* 249  */
570         dc.l    _DummyHandler                    /* 250  */
571         dc.l    _DummyHandler                    /* 251  */
572         dc.l    _DummyHandler                    /* 252  */
573         dc.l    _DummyHandler                    /* 253  */
574         dc.l    _DummyHandler                    /* 254  */
575         dc.l    _DummyHandler                    /* 255  */
576
577 /*
578  * Define weak symbols for four alternate interrupt vectors.
579  * These will be used as the interrupt vectors for the four
580  * secondary contexts.
581  */
582         .section .data
583
584         .global SYM (_vector_table1)
585         .weak SYM (_vector_table1)
586         .set SYM (_vector_table1), SYM (_vector_table)
587
588         .global SYM (_vector_table2)
589         .weak SYM (_vector_table2)
590         .set SYM (_vector_table2), SYM (_vector_table)
591
592         .global SYM (_vector_table3)
593         .weak SYM (_vector_table3)
594         .set SYM (_vector_table3), SYM (_vector_table)
595
596         .global SYM (_vector_table4)
597         .weak SYM (_vector_table4)
598         .set SYM (_vector_table4), SYM (_vector_table)
599
600 #endif