OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [rtos/] [rtems/] [c/] [src/] [lib/] [libbsp/] [powerpc/] [score603e/] [vectors/] [vectors.S] - Blame information for rev 173

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 30 unneback
/*  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: vectors.S,v 1.2 2001-09-27 12:01:05 chris Exp $
26
 */
27
 
28
#include "asm.h"
29
 
30
#ifndef PPC_VECTOR_FILE_BASE
31
#error "PPC_VECTOR_FILE_BASE is not defined."
32
#endif
33
 
34
#if (SCORE603E_USE_NONE)
35
 
36
        /* Where this file will be loaded */
37
        .set    file_base, PPC_VECTOR_FILE_BASE
38
 
39
        /* Vector offsets                        */
40
        .set    reset_vector,0x0100
41
        .set    mach_vector,0x0200
42
        .set    prot_vector,0x0300
43
        .set    isi_vector,0x0400
44
        .set    ext_vector,0x0500
45
        .set    align_vector,0x0600
46
        .set    prog_vector,0x0700
47
        .set    float_vector,0x0800
48
        .set    dec_vector,0x0900
49
        .set    sys_vector,0x00C00
50
        .set    trace_vector, 0x0d00
51
        .set    itm_vector,0x01000
52
        .set    dltm_vector,0x1100
53
        .set    dstm_vector,0x1200
54
        .set    addr_vector,0x1300
55
        .set    sysmgmt_vector,0x1400
56
 
57
/* Go to the right section */
58
#if PPC_ASM == PPC_ASM_ELF
59
        .section .vectors,"awx",@progbits
60
#elif PPC_ASM == PPC_ASM_XCOFF
61
        .csect  .text[PR]
62
#endif
63
 
64
        PUBLIC_VAR (__vectors)
65
SYM (__vectors):
66
 
67
  /* Decrementer interrupt */
68
        .org    reset_vector - file_base
69
        ba  0x00100
70
        ba  0xfff00100
71
        ba  0xfff00100
72
        ba  0xfff00100
73
 
74
        .org    mach_vector - file_base
75
        ba  0x00200
76
        ba  0xfff00200
77
        ba  0xfff00200
78
        ba  0xfff00200
79
 
80
        .org    prot_vector - file_base
81
        ba  0x00300
82
        ba  0xfff00300
83
        ba  0xfff00300
84
        ba  0xfff00300
85
 
86
        .org    isi_vector - file_base
87
        ba  0x00400
88
        ba  0xfff00400
89
        ba  0xfff00400
90
        ba  0xfff00400
91
 
92
        .org    ext_vector - file_base
93
        ba  0x0500
94
        ba  0xfff00500
95
        ba  0xfff00500
96
        ba  0xfff00500
97
 
98
        .org    align_vector - file_base
99
        ba  0x00600
100
        ba  0xfff00600
101
        ba  0xfff00600
102
        ba  0xfff00600
103
 
104
        .org    prog_vector - file_base
105
        ba  0x00700
106
        ba  0xfff00700
107
        ba  0xfff00700
108
        ba  0xfff00700
109
 
110
        .org    float_vector - file_base
111
        ba  0x00800
112
        ba  0xfff00800
113
        ba  0xfff00800
114
        ba  0xfff00800
115
 
116
        .org    dec_vector - file_base
117
        rfi
118
        ba  0xfff00900
119
        ba  0xfff00900
120
        ba  0xfff00900
121
 
122
        .org    sys_vector - file_base
123
        ba  0x0c00
124
        ba  0xfff00C00
125
        ba  0xfff00C00
126
        ba  0xfff00C00
127
 
128
        .org    trace_vector - file_base
129
        ba  0x0d00
130
        ba  0xfff00d00
131
        ba  0xfff00d00
132
        ba  0xfff00d00
133
 
134
        .org    itm_vector - file_base
135
        ba  0x01000
136
        ba  0xfff01000
137
        ba  0xfff01000
138
        ba  0xfff01000
139
 
140
        .org    dltm_vector - file_base
141
        ba  0x01100
142
        ba  0xfff01100
143
        ba  0xfff01100
144
        ba  0xfff01100
145
 
146
        .org    dstm_vector - file_base
147
        ba  0x1200
148
        ba  0xfff01200
149
        ba  0xfff01200
150
        ba  0xfff01200
151
 
152
        .org    addr_vector - file_base
153
        ba  0x1300
154
        ba  0xfff01300
155
        ba  0xfff01300
156
        ba  0xfff01300
157
 
158
        .org    sysmgmt_vector - file_base
159
        ba  0x1400
160
        ba  0xfff01400
161
        ba  0xfff01400
162
        ba  0xfff01400
163
#endif
164
 
165
 
166
 
167
 
168
 
169
 
170
 
171
 
172
 
173
 
174
 
175
 
176
 
177
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.