diff options
Diffstat (limited to 'arch/cris/arch-v10/kernel/entry.S')
-rw-r--r-- | arch/cris/arch-v10/kernel/entry.S | 249 |
1 files changed, 4 insertions, 245 deletions
diff --git a/arch/cris/arch-v10/kernel/entry.S b/arch/cris/arch-v10/kernel/entry.S index d1361dc119e2..3a65f322ae07 100644 --- a/arch/cris/arch-v10/kernel/entry.S +++ b/arch/cris/arch-v10/kernel/entry.S | |||
@@ -1,252 +1,9 @@ | |||
1 | /* $Id: entry.S,v 1.28 2005/06/20 05:06:30 starvik Exp $ | 1 | /* |
2 | * | ||
3 | * linux/arch/cris/entry.S | 2 | * linux/arch/cris/entry.S |
4 | * | 3 | * |
5 | * Copyright (C) 2000, 2001, 2002 Axis Communications AB | 4 | * Copyright (C) 2000, 2001, 2002 Axis Communications AB |
6 | * | 5 | * |
7 | * Authors: Bjorn Wesen (bjornw@axis.com) | 6 | * Authors: Bjorn Wesen (bjornw@axis.com) |
8 | * | ||
9 | * $Log: entry.S,v $ | ||
10 | * Revision 1.28 2005/06/20 05:06:30 starvik | ||
11 | * Remove unnecessary diff to kernel.org tree | ||
12 | * | ||
13 | * Revision 1.27 2005/03/04 08:16:16 starvik | ||
14 | * Merge of Linux 2.6.11. | ||
15 | * | ||
16 | * Revision 1.26 2005/01/11 13:49:47 starvik | ||
17 | * Added NMI handler. | ||
18 | * | ||
19 | * Revision 1.25 2004/12/27 11:18:32 starvik | ||
20 | * Merge of Linux 2.6.10 (not functional yet). | ||
21 | * | ||
22 | * Revision 1.24 2004/12/22 10:41:23 starvik | ||
23 | * Updates to make v10 compile with the latest SMP aware generic code (even | ||
24 | * though v10 will never have SMP). | ||
25 | * | ||
26 | * Revision 1.23 2004/10/19 13:07:37 starvik | ||
27 | * Merge of Linux 2.6.9 | ||
28 | * | ||
29 | * Revision 1.22 2004/06/21 10:29:55 starvik | ||
30 | * Merge of Linux 2.6.7 | ||
31 | * | ||
32 | * Revision 1.21 2004/06/09 05:30:27 starvik | ||
33 | * Clean up multiple interrupt handling. | ||
34 | * Prevent interrupts from interrupting each other. | ||
35 | * Handle all active interrupts. | ||
36 | * | ||
37 | * Revision 1.20 2004/06/08 08:55:32 starvik | ||
38 | * Removed unused code | ||
39 | * | ||
40 | * Revision 1.19 2004/06/04 11:56:15 starvik | ||
41 | * Implemented page table lookup for refills in assembler for improved performance. | ||
42 | * | ||
43 | * Revision 1.18 2004/05/11 12:28:25 starvik | ||
44 | * Merge of Linux 2.6.6 | ||
45 | * | ||
46 | * Revision 1.17 2003/09/11 07:29:49 starvik | ||
47 | * Merge of Linux 2.6.0-test5 | ||
48 | * | ||
49 | * Revision 1.16 2003/07/04 08:27:41 starvik | ||
50 | * Merge of Linux 2.5.74 | ||
51 | * | ||
52 | * Revision 1.15 2003/04/09 07:32:55 starvik | ||
53 | * resume should return task_struct, not thread_info | ||
54 | * | ||
55 | * Revision 1.14 2003/04/09 05:20:44 starvik | ||
56 | * Merge of Linux 2.5.67 | ||
57 | * | ||
58 | * Revision 1.13 2002/12/11 15:42:02 starvik | ||
59 | * Extracted v10 (ETRAX 100LX) specific stuff from arch/cris/kernel/*.c | ||
60 | * | ||
61 | * Revision 1.12 2002/12/10 09:00:10 starvik | ||
62 | * Merge of Linux 2.5.51 | ||
63 | * | ||
64 | * Revision 1.11 2002/12/05 07:53:10 starvik | ||
65 | * Corrected constants used with btstq | ||
66 | * | ||
67 | * Revision 1.10 2002/11/27 08:45:10 starvik | ||
68 | * pid is in task_struct, not thread_info | ||
69 | * | ||
70 | * Revision 1.9 2002/11/26 09:52:05 starvik | ||
71 | * Added preemptive kernel scheduling (if CONFIG_PREEMPT) | ||
72 | * | ||
73 | * Revision 1.8 2002/11/20 11:56:11 starvik | ||
74 | * Merge of Linux 2.5.48 | ||
75 | * | ||
76 | * Revision 1.7 2002/11/18 13:02:42 starvik | ||
77 | * Added fourth parameter to do_notify_resume | ||
78 | * Minor cleanup | ||
79 | * | ||
80 | * Revision 1.6 2002/11/11 10:37:50 starvik | ||
81 | * Use new asm-offset defines | ||
82 | * Modified for new location of current->work etc | ||
83 | * Removed SYMBOL_NAME from syscalls | ||
84 | * Added some new syscalls | ||
85 | * | ||
86 | * Revision 1.5 2002/11/05 06:45:11 starvik | ||
87 | * Merge of Linux 2.5.45 | ||
88 | * | ||
89 | * Revision 1.4 2002/02/05 15:41:31 bjornw | ||
90 | * Rewritten to conform better to current 2.5 code (similar to arch/i386) | ||
91 | * | ||
92 | * Revision 1.3 2002/01/21 15:22:20 bjornw | ||
93 | * NICE_DOGGY fix from 2.4 arch/cris | ||
94 | * | ||
95 | * Revision 1.37 2001/12/07 17:03:55 bjornw | ||
96 | * Call a c-hook called watchdog_bite_hook instead of show_registers directly | ||
97 | * | ||
98 | * Revision 1.36 2001/11/22 13:36:36 bjornw | ||
99 | * * In ret_from_intr, check regs->dccr for usermode reentrance instead of | ||
100 | * DCCR explicitly (because the latter might not reflect current reality) | ||
101 | * * In mmu_bus_fault, set $r9 _after_ calling the C-code instead of before | ||
102 | * since $r9 is call-clobbered and is potentially needed afterwards | ||
103 | * | ||
104 | * Revision 1.35 2001/10/30 17:10:15 bjornw | ||
105 | * Add some syscalls | ||
106 | * | ||
107 | * Revision 1.34 2001/10/01 14:45:03 bjornw | ||
108 | * Removed underscores and added register prefixes | ||
109 | * | ||
110 | * Revision 1.33 2001/08/21 13:48:01 jonashg | ||
111 | * Added fix by HP to avoid oops when doing a hard_reset_now. | ||
112 | * | ||
113 | * Revision 1.32 2001/08/14 04:32:02 hp | ||
114 | * In _resume, add comment why R9 is saved; don't sound like it's call-saved. | ||
115 | * | ||
116 | * Revision 1.31 2001/07/25 16:07:42 bjornw | ||
117 | * softirq_active/mask -> softirq_pending only | ||
118 | * | ||
119 | * Revision 1.30 2001/07/05 01:03:32 hp | ||
120 | * - include asm/errno.h to get ENOSYS. | ||
121 | * - Use ENOSYS, not local constant LENOSYS; tweak comments. | ||
122 | * - Explain why .include, not #include is used. | ||
123 | * - Make oops-register-dump if watchdog bits and it's not expected. | ||
124 | * - Don't jsr, use jump _hard_reset_now, and skip spurious nop. | ||
125 | * - Use correct section attribute for section .rodata. | ||
126 | * - Adjust sys_ni_syscall fill number. | ||
127 | * | ||
128 | * Revision 1.29 2001/06/25 14:07:00 hp | ||
129 | * Fix review comment. | ||
130 | * * head.S: Use IO_STATE, IO_FIELD and IO_MASK constructs instead of | ||
131 | * magic numbers. Add comment that -traditional must not be used. | ||
132 | * * entry.S (SYMBOL_NAME): Change redefinition to use ## concatenation. | ||
133 | * Correct and update comment. | ||
134 | * * Makefile (.S.o): Don't use -traditional. Add comment why the | ||
135 | * toplevel rule can't be used (now that there's a reason). | ||
136 | * | ||
137 | * Revision 1.28 2001/06/21 02:00:40 hp | ||
138 | * * entry.S: Include asm/unistd.h. | ||
139 | * (_sys_call_table): Use section .rodata, not .data. | ||
140 | * (_kernel_thread): Move from... | ||
141 | * * process.c: ... here. | ||
142 | * * entryoffsets.c (VAL): Break out from... | ||
143 | * (OF): Use VAL. | ||
144 | * (LCLONE_VM): New asmified value from CLONE_VM. | ||
145 | * | ||
146 | * Revision 1.27 2001/05/29 11:25:27 markusl | ||
147 | * In case of "spurious_interrupt", do hard_reset instead of hanging system in a loop... | ||
148 | * | ||
149 | * Revision 1.26 2001/05/15 15:46:03 bjornw | ||
150 | * Include config.h now that we use some CONFIG_ options | ||
151 | * | ||
152 | * Revision 1.25 2001/05/15 05:38:47 hp | ||
153 | * Tweaked code in _ret_from_sys_call | ||
154 | * | ||
155 | * Revision 1.24 2001/05/15 05:27:49 hp | ||
156 | * Save r9 in r1 over function call rather than on stack. | ||
157 | * | ||
158 | * Revision 1.23 2001/05/15 05:10:00 hp | ||
159 | * Generate entry.S structure offsets from C | ||
160 | * | ||
161 | * Revision 1.22 2001/04/17 13:58:39 orjanf | ||
162 | * * Renamed CONFIG_KGDB to CONFIG_ETRAX_KGDB. | ||
163 | * | ||
164 | * Revision 1.21 2001/04/17 11:33:29 orjanf | ||
165 | * Updated according to review: | ||
166 | * * Included asm/sv_addr_ag.h to get macro for internal register. | ||
167 | * * Corrected comment regarding system call argument passing. | ||
168 | * * Removed comment about instruction being in a delay slot. | ||
169 | * * Added comment about SYMBOL_NAME macro. | ||
170 | * | ||
171 | * Revision 1.20 2001/04/12 08:51:07 hp | ||
172 | * - Add entry for sys_fcntl64. In fact copy last piece from i386 including ... | ||
173 | * - .rept to fill table to safe state with sys_ni_syscall. | ||
174 | * | ||
175 | * Revision 1.19 2001/04/04 09:43:32 orjanf | ||
176 | * * Moved do_sigtrap from traps.c to entry.S. | ||
177 | * * LTASK_PID need not be global anymore. | ||
178 | * | ||
179 | * Revision 1.18 2001/03/26 09:25:02 markusl | ||
180 | * Updated after review, should now handle USB interrupts correctly. | ||
181 | * | ||
182 | * Revision 1.17 2001/03/21 16:12:55 bjornw | ||
183 | * * Always make room for the cpu status record in the frame, in order to | ||
184 | * use the same framelength and layout for both mmu busfaults and normal | ||
185 | * irqs. No need to check for the explicit CRIS_FRAME_FIXUP type anymore. | ||
186 | * * Fixed bug with using addq for popping the stack in the epilogue - it | ||
187 | * destroyed the flag register. Use instructions that don't affect the | ||
188 | * flag register instead. | ||
189 | * * Removed write to R_PORT_PA_DATA during spurious_interrupt | ||
190 | * | ||
191 | * Revision 1.16 2001/03/20 19:43:02 bjornw | ||
192 | * * Get rid of esp0 setting | ||
193 | * * Give a 7th argument to a systemcall - the stackframe | ||
194 | * | ||
195 | * Revision 1.15 2001/03/05 13:14:30 bjornw | ||
196 | * Spelling fix | ||
197 | * | ||
198 | * Revision 1.14 2001/02/23 08:36:36 perf | ||
199 | * New ABI; syscallnr=r9, arg5=mof, arg6=srp. | ||
200 | * Corrected tracesys call check. | ||
201 | * | ||
202 | * Revision 1.13 2001/02/15 08:40:55 perf | ||
203 | * H-P by way of perf; | ||
204 | * - (_system_call): Don't read system call function address into r1. | ||
205 | * - (RBFExit): There is no such thing as a null pop. Adjust sp by addq. | ||
206 | * - (_system_call): Don't use r10 and don't save and restore it. | ||
207 | * - (THREAD_ESP0): New constant. | ||
208 | * - (_system_call): Inline set_esp0. | ||
209 | * | ||
210 | * Revision 1.12 2001/01/31 17:56:25 orjanf | ||
211 | * Added definition of LTASK_PID and made it global. | ||
212 | * | ||
213 | * Revision 1.11 2001/01/10 21:13:29 bjornw | ||
214 | * SYMBOL_NAME is defined incorrectly for the compiler options we currently use | ||
215 | * | ||
216 | * Revision 1.10 2000/12/18 23:47:56 bjornw | ||
217 | * * Added syscall trace support (ptrace), completely untested of course | ||
218 | * * Removed redundant check for NULL entries in syscall_table | ||
219 | * | ||
220 | * Revision 1.9 2000/11/21 16:40:51 bjornw | ||
221 | * * New frame type used when an SBFS frame needs to be popped without | ||
222 | * actually restarting the instruction | ||
223 | * * Enable interrupts in signal_return (they did so in x86, I hope it's a good | ||
224 | * idea) | ||
225 | * | ||
226 | * Revision 1.8 2000/11/17 16:53:35 bjornw | ||
227 | * Added detection of frame-type in Rexit, so that mmu_bus_fault can | ||
228 | * use ret_from_intr in the return-path to check for signals (like SEGV) | ||
229 | * and other foul things that might have occurred during the fault. | ||
230 | * | ||
231 | * Revision 1.7 2000/10/06 15:04:28 bjornw | ||
232 | * Include mof in register savings | ||
233 | * | ||
234 | * Revision 1.6 2000/09/12 16:02:44 bjornw | ||
235 | * Linux-2.4.0-test7 derived updates | ||
236 | * | ||
237 | * Revision 1.5 2000/08/17 15:35:15 bjornw | ||
238 | * 2.4.0-test6 changed local_irq_count and friends API | ||
239 | * | ||
240 | * Revision 1.4 2000/08/02 13:59:30 bjornw | ||
241 | * Removed olduname and uname from the syscall list | ||
242 | * | ||
243 | * Revision 1.3 2000/07/31 13:32:58 bjornw | ||
244 | * * Export ret_from_intr | ||
245 | * * _resume updated (prev/last tjohejsan) | ||
246 | * * timer_interrupt obsolete | ||
247 | * * SIGSEGV detection in mmu_bus_fault temporarily disabled | ||
248 | * | ||
249 | * | ||
250 | */ | 7 | */ |
251 | 8 | ||
252 | /* | 9 | /* |
@@ -1167,9 +924,11 @@ sys_call_table: | |||
1167 | .long sys_epoll_pwait | 924 | .long sys_epoll_pwait |
1168 | .long sys_utimensat /* 320 */ | 925 | .long sys_utimensat /* 320 */ |
1169 | .long sys_signalfd | 926 | .long sys_signalfd |
1170 | .long sys_ni_syscall | 927 | .long sys_timerfd_create |
1171 | .long sys_eventfd | 928 | .long sys_eventfd |
1172 | .long sys_fallocate | 929 | .long sys_fallocate |
930 | .long sys_timerfd_settime /* 325 */ | ||
931 | .long sys_timerfd_gettime | ||
1173 | 932 | ||
1174 | /* | 933 | /* |
1175 | * NOTE!! This doesn't have to be exact - we just have | 934 | * NOTE!! This doesn't have to be exact - we just have |