source: rtems/c/src/lib/libbsp/powerpc/score603e/vectors/vectors.S @ 1c54724

4.104.114.84.95
Last change on this file since 1c54724 was 1c54724, checked in by Ralf Corsepius <ralf.corsepius@…>, on 04/01/04 at 10:11:08

2004-04-01 Ralf Corsepius <ralf_corsepius@…>

  • vectors/vectors.S: Include <rtems/asm.h> instead of <asm.h>.
  • startup/genpvec.c: Include <rtems/chain.h> instead of <chain.h>.
  • include/bsp.h: Include <rtems/clockdrv.h> instead of <clockdrv.h>.
  • include/bsp.h: Include <rtems/console.h> instead of <console.h>.
  • include/bsp.h: Include <rtems/iosupp.h> instead of <iosupp.h>.
  • console/consolebsp.h: Include <rtems/ringbuf.h> instead of <ringbuf.h>.
  • startup/vmeintr.c: Include <rtems/vmeintr.h> instead of <vmeintr.h>.
  • Property mode set to 100644
File size: 3.4 KB
Line 
1/*  vectors.s   1.1 - 95/12/04
2 *
3 *  This file contains the assembly code for the PowerPC
4 *  interrupt veneers for RTEMS.
5 *
6 */
7
8/*
9 *  The issue with this file is getting it loaded at the right place.
10 *  The first vector MUST be at address 0x????0100.
11 *  How this is achieved is dependant on the tool chain.
12 *
13 *  However the basic mechanism for ELF assemblers is to create a
14 *  section called ".vectors", which will be loaded to an address
15 *  between 0x????0000 and 0x????0100 (inclusive) via a link script.
16 *
17 *  The basic mechanism for XCOFF assemblers is to place it in the
18 *  normal text section, and arrange for this file to be located
19 *  at an appropriate position on the linker command line.
20 *
21 *  The variable 'PPC_VECTOR_FILE_BASE' must be defined to be the
22 *  offset from 0x????0000 to the first location in the file.  This
23 *  will usually be 0x0000 or 0x0100.
24 *
25 *  $Id$
26 */
27
28#include <bsp.h>
29#include <rtems/asm.h>
30
31#ifndef PPC_VECTOR_FILE_BASE
32#error "PPC_VECTOR_FILE_BASE is not defined."
33#endif
34
35#if (SCORE603E_USE_NONE)
36
37        /* Where this file will be loaded */
38        .set    file_base, PPC_VECTOR_FILE_BASE
39
40        /* Vector offsets                        */
41        .set    reset_vector,0x0100
42        .set    mach_vector,0x0200
43        .set    prot_vector,0x0300
44        .set    isi_vector,0x0400
45        .set    ext_vector,0x0500
46        .set    align_vector,0x0600
47        .set    prog_vector,0x0700
48        .set    float_vector,0x0800
49        .set    dec_vector,0x0900
50        .set    sys_vector,0x00C00
51        .set    trace_vector, 0x0d00
52        .set    itm_vector,0x01000
53        .set    dltm_vector,0x1100
54        .set    dstm_vector,0x1200
55        .set    addr_vector,0x1300
56        .set    sysmgmt_vector,0x1400
57
58/* Go to the right section */
59#if PPC_ASM == PPC_ASM_ELF
60        .section .vectors,"awx",@progbits
61#elif PPC_ASM == PPC_ASM_XCOFF
62        .csect  .text[PR]
63#endif
64
65        PUBLIC_VAR (__vectors)
66SYM (__vectors):
67       
68  /* Decrementer interrupt */
69        .org    reset_vector - file_base   
70        ba  0x00100 
71        ba  0xfff00100 
72        ba  0xfff00100 
73        ba  0xfff00100
74         
75        .org    mach_vector - file_base 
76        ba  0x00200
77        ba  0xfff00200
78        ba  0xfff00200
79        ba  0xfff00200
80       
81        .org    prot_vector - file_base 
82        ba  0x00300
83        ba  0xfff00300
84        ba  0xfff00300
85        ba  0xfff00300
86       
87        .org    isi_vector - file_base 
88        ba  0x00400
89        ba  0xfff00400
90        ba  0xfff00400
91        ba  0xfff00400
92               
93        .org    ext_vector - file_base   
94        ba  0x0500 
95        ba  0xfff00500 
96        ba  0xfff00500 
97        ba  0xfff00500 
98       
99        .org    align_vector - file_base   
100        ba  0x00600 
101        ba  0xfff00600 
102        ba  0xfff00600 
103        ba  0xfff00600 
104       
105        .org    prog_vector - file_base   
106        ba  0x00700 
107        ba  0xfff00700 
108        ba  0xfff00700 
109        ba  0xfff00700 
110
111        .org    float_vector - file_base 
112        ba  0x00800
113        ba  0xfff00800
114        ba  0xfff00800
115        ba  0xfff00800
116
117        .org    dec_vector - file_base 
118        rfi
119        ba  0xfff00900
120        ba  0xfff00900
121        ba  0xfff00900
122       
123        .org    sys_vector - file_base   
124        ba  0x0c00 
125        ba  0xfff00C00 
126        ba  0xfff00C00 
127        ba  0xfff00C00 
128               
129        .org    trace_vector - file_base 
130        ba  0x0d00 
131        ba  0xfff00d00 
132        ba  0xfff00d00 
133        ba  0xfff00d00 
134       
135        .org    itm_vector - file_base   
136        ba  0x01000 
137        ba  0xfff01000 
138        ba  0xfff01000 
139        ba  0xfff01000 
140       
141        .org    dltm_vector - file_base   
142        ba  0x01100 
143        ba  0xfff01100 
144        ba  0xfff01100 
145        ba  0xfff01100 
146       
147        .org    dstm_vector - file_base   
148        ba  0x1200 
149        ba  0xfff01200 
150        ba  0xfff01200 
151        ba  0xfff01200 
152       
153        .org    addr_vector - file_base   
154        ba  0x1300 
155        ba  0xfff01300 
156        ba  0xfff01300 
157        ba  0xfff01300 
158       
159        .org    sysmgmt_vector - file_base   
160        ba  0x1400 
161        ba  0xfff01400 
162        ba  0xfff01400 
163        ba  0xfff01400 
164#endif
165
166
167
168
169
170
171
172
173
174
175
176
177
178
Note: See TracBrowser for help on using the repository browser.