source: SVN/rincon/u-boot/cpu/microblaze/irq.S @ 55

Last change on this file since 55 was 55, checked in by Tim Harvey, 22 months ago

rincon: added latest u-boot source

restored form server backup

Signed-off-by: Tim Harvey <tharvey@…>

File size: 3.2 KB
Line 
1/*
2 * (C) Copyright 2007 Michal Simek
3 *
4 * Michal  SIMEK <monstr@monstr.eu>
5 *
6 * See file CREDITS for list of people who contributed to this
7 * project.
8 *
9 * This program is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of
12 * the License, or (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software
21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
22 * MA 02111-1307 USA
23 */
24
25#include <config.h>
26#include <asm/asm.h>
27        .text
28        .global _interrupt_handler
29_interrupt_handler:
30        addi    r1, r1, -4
31        swi     r2, r1, 0
32        addi    r1, r1, -4
33        swi     r3, r1, 0
34        addi    r1, r1, -4
35        swi     r4, r1, 0
36        addi    r1, r1, -4
37        swi     r5, r1, 0
38        addi    r1, r1, -4
39        swi     r6, r1, 0
40        addi    r1, r1, -4
41        swi     r7, r1, 0
42        addi    r1, r1, -4
43        swi     r8, r1, 0
44        addi    r1, r1, -4
45        swi     r9, r1, 0
46        addi    r1, r1, -4
47        swi     r10, r1, 0
48        addi    r1, r1, -4
49        swi     r11, r1, 0
50        addi    r1, r1, -4
51        swi     r12, r1, 0
52        addi    r1, r1, -4
53        swi     r13, r1, 0
54        addi    r1, r1, -4
55        swi     r14, r1, 0
56        addi    r1, r1, -4
57        swi     r15, r1, 0
58        addi    r1, r1, -4
59        swi     r16, r1, 0
60        addi    r1, r1, -4
61        swi     r17, r1, 0
62        addi    r1, r1, -4
63        swi     r18, r1, 0
64        addi    r1, r1, -4
65        swi     r19, r1, 0
66        addi    r1, r1, -4
67        swi     r20, r1, 0
68        addi    r1, r1, -4
69        swi     r21, r1, 0
70        addi    r1, r1, -4
71        swi     r22, r1, 0
72        addi    r1, r1, -4
73        swi     r23, r1, 0
74        addi    r1, r1, -4
75        swi     r24, r1, 0
76        addi    r1, r1, -4
77        swi     r25, r1, 0
78        addi    r1, r1, -4
79        swi     r26, r1, 0
80        addi    r1, r1, -4
81        swi     r27, r1, 0
82        addi    r1, r1, -4
83        swi     r28, r1, 0
84        addi    r1, r1, -4
85        swi     r29, r1, 0
86        addi    r1, r1, -4
87        swi     r30, r1, 0
88        addi    r1, r1, -4
89        swi     r31, r1, 0
90        brlid   r15, interrupt_handler
91        nop
92        nop
93        lwi     r31, r1, 0
94        addi    r1, r1, 4
95        lwi     r30, r1, 0
96        addi    r1, r1, 4
97        lwi     r29, r1, 0
98        addi    r1, r1, 4
99        lwi     r28, r1, 0
100        addi    r1, r1, 4
101        lwi     r27, r1, 0
102        addi    r1, r1, 4
103        lwi     r26, r1, 0
104        addi    r1, r1, 4
105        lwi     r25, r1, 0
106        addi    r1, r1, 4
107        lwi     r24, r1, 0
108        addi    r1, r1, 4
109        lwi     r23, r1, 0
110        addi    r1, r1, 4
111        lwi     r22, r1, 0
112        addi    r1, r1, 4
113        lwi     r21, r1, 0
114        addi    r1, r1, 4
115        lwi     r20, r1, 0
116        addi    r1, r1, 4
117        lwi     r19, r1, 0
118        addi    r1, r1, 4
119        lwi     r18, r1, 0
120        addi    r1, r1, 4
121        lwi     r17, r1, 0
122        addi    r1, r1, 4
123        lwi     r16, r1, 0
124        addi    r1, r1, 4
125        lwi     r15, r1, 0
126        addi    r1, r1, 4
127        lwi     r14, r1, 0
128        addi    r1, r1, 4
129        lwi     r13, r1, 0
130        addi    r1, r1, 4
131        lwi     r12, r1, 0
132        addi    r1, r1, 4
133        lwi     r11, r1, 0
134        addi    r1, r1, 4
135        lwi     r10, r1, 0
136        addi    r1, r1, 4
137        lwi     r9, r1, 0
138        addi    r1, r1, 4
139        lwi     r8, r1, 0
140        addi    r1, r1, 4
141        lwi     r7, r1, 0
142        addi    r1, r1, 4
143        lwi     r6, r1, 0
144        addi    r1, r1, 4
145        lwi     r5, r1, 0
146        addi    r1, r1, 4
147        lwi     r4, r1, 0
148        addi    r1, r1, 4
149        lwi     r3, r1, 0
150        addi    r1, r1, 4
151        lwi     r2, r1, 0
152        addi    r1, r1, 4
153
154        /* enable_interrupt */
155#ifdef XILINX_USE_MSR_INSTR
156        msrset  r0, 2
157#else
158        /* FIXME unstable in stressed mode - two irqs */
159        nop
160        addi    r1, r1, -4
161        swi     r12, r1, 0
162        mfs     r12, rmsr
163        ori     r12, r12, 2
164        mts     rmsr, r12
165        lwi     r12, r1, 0
166        addi    r1, r1, 4
167        nop
168#endif
169        bra     r14
170        nop
171        nop
172        .size _interrupt_handler,.-_interrupt_handler
Note: See TracBrowser for help on using the repository browser.