1 |
27 |
unneback |
2003-04-10 Nick Garnett
|
2 |
|
|
|
3 |
|
|
* src/sparclite.ld:
|
4 |
|
|
Added libsupc++.a to GROUP() directive for GCC versions later than
|
5 |
|
|
3.0.
|
6 |
|
|
|
7 |
|
|
2002-04-29 Jonathan Larmour
|
8 |
|
|
|
9 |
|
|
* src/vectors.S:
|
10 |
|
|
* src/vec_xvsr.S:
|
11 |
|
|
* src/vec_ivsr.S:
|
12 |
|
|
Don't use .file as it can confuse debugging since the .file
|
13 |
|
|
doesn't contain the path and therefore the debugger will never
|
14 |
|
|
know where it lives! This conflicts with using -Wa,--gstabs.
|
15 |
|
|
|
16 |
|
|
2000-10-16 Jonathan Larmour
|
17 |
|
|
|
18 |
|
|
* include/hal_arch.h (CYGARC_JMP_BUF_SIZE): Define hal_jmp_buf in
|
19 |
|
|
terms of this.
|
20 |
|
|
|
21 |
|
|
2000-08-07 Jonathan Larmour
|
22 |
|
|
|
23 |
|
|
* src/sparclite.ld: Remove extra underscore from below. It was
|
24 |
|
|
correct before.
|
25 |
|
|
|
26 |
|
|
2000-06-21 Nick Garnett
|
27 |
|
|
|
28 |
|
|
* include/basetype.h:
|
29 |
|
|
Removed definition of CYG_LABEL_NAME(). Now dealt with by default
|
30 |
|
|
definition in cyg_type.h.
|
31 |
|
|
|
32 |
|
|
* src/sparclite.ld:
|
33 |
|
|
Added extra underscore to _stext and _etext.
|
34 |
|
|
Switched over to new table creation mechanism.
|
35 |
|
|
|
36 |
|
|
2000-06-08 Jesper Skov
|
37 |
|
|
|
38 |
|
|
* include/hal_arch.h (CYGARC_HAL_SAVE_GP, CYGARC_HAL_RESTORE_GP):
|
39 |
|
|
Added.
|
40 |
|
|
|
41 |
|
|
2000-02-16 Jesper Skov
|
42 |
|
|
|
43 |
|
|
* src/vectors.S:
|
44 |
|
|
* src/hal_boot.c:
|
45 |
|
|
CYG_HAL_SPARCLITE_ > CYGPKG_HAL_SPARCELITE_
|
46 |
|
|
|
47 |
|
|
2000-02-16 Jesper Skov
|
48 |
|
|
|
49 |
|
|
* cdl/hal_sparclite.cdl: removed fix me
|
50 |
|
|
|
51 |
|
|
2000-01-28 Gary Thomas
|
52 |
|
|
|
53 |
|
|
* src/sparclite.ld: Add support for network package.
|
54 |
|
|
|
55 |
|
|
2000-01-19 Hugo Tyson
|
56 |
|
|
|
57 |
|
|
* cdl/*.cdl: Add descriptions to a number of options &c which were
|
58 |
|
|
lacking same, also tidied up other typos as noticed en passant.
|
59 |
|
|
|
60 |
|
|
1999-12-02 John Dallaway
|
61 |
|
|
|
62 |
|
|
* cdl/hal_sparclite.cdl:
|
63 |
|
|
|
64 |
|
|
Use the token in custom rules.
|
65 |
|
|
|
66 |
|
|
1999-12-01 John Dallaway
|
67 |
|
|
|
68 |
|
|
* cdl/hal_sparclite.cdl:
|
69 |
|
|
|
70 |
|
|
Use the token in custom rules.
|
71 |
|
|
|
72 |
|
|
1999-11-04 John Dallaway
|
73 |
|
|
|
74 |
|
|
* cdl/hal_sparclite.cdl:
|
75 |
|
|
|
76 |
|
|
Output custom rule dependency information to .deps files in
|
77 |
|
|
the current directory.
|
78 |
|
|
|
79 |
|
|
Dispense with the need to create a 'src' sub-directory.
|
80 |
|
|
|
81 |
|
|
1999-11-03 John Dallaway
|
82 |
|
|
|
83 |
|
|
* cdl/hal_sparclite.cdl: Define build options.
|
84 |
|
|
|
85 |
|
|
1999-11-01 Jesper Skov
|
86 |
|
|
|
87 |
|
|
* cdl/hal_sparclite.cdl: Addded.
|
88 |
|
|
|
89 |
|
|
1999-10-15 Hugo Tyson
|
90 |
|
|
|
91 |
|
|
* src/vectors.S (not_window_overflow): Actually the dispatcher
|
92 |
|
|
into exception VSRs. Bugfix: wrong number was placed in %l3 for
|
93 |
|
|
call to xvsr, so for *some* types of trap, including user traps
|
94 |
|
|
other than those handled directly in-HAL, a vector way off the end
|
95 |
|
|
of the array would be used. Apparently those other types of trap
|
96 |
|
|
never happen, but just in case...
|
97 |
|
|
|
98 |
|
|
1999-10-13 Hugo Tyson
|
99 |
|
|
|
100 |
|
|
* src/vectors.S: Optionally implement Multiple (rather than
|
101 |
|
|
Single) Vector Trapping. The config options to control this are
|
102 |
|
|
in the platform HAL because some SPARCs do not support SVT, where
|
103 |
|
|
it is optional the platform says so. This demands a variable
|
104 |
|
|
sized region be reserved for trampoline code or the vectors in
|
105 |
|
|
RAM, which is done via section .ram_vectors, defined herein.
|
106 |
|
|
|
107 |
|
|
* src/sparclite.ld: Define SECTION_ram_vectors(...) to deal with
|
108 |
|
|
the new .ram_vectors section. This is to provide a variable sized
|
109 |
|
|
area at the start of RAM to hold either trampoline code when SVT
|
110 |
|
|
is selected, or a fill 4k + handlers of vectors when MVT is
|
111 |
|
|
selected. Previously this was bodged by pretending RAM starts at
|
112 |
|
|
0x4000200 in ROM startup builds.
|
113 |
|
|
(comment from the example .ldi files...)
|
114 |
|
|
The ram_vectors section is to allow some free space to copy
|
115 |
|
|
vectors into from the ROM. This is required to be variable size
|
116 |
|
|
to accomodate SVT or MVT; 80 bytes vs 4kB. Copying is not
|
117 |
|
|
necessary with MVT, but it is optional because it may offer
|
118 |
|
|
performance gains. Copying is required for SVT because the
|
119 |
|
|
(aligned) start of ROM contains initialization instructions. RAM
|
120 |
|
|
copy is used rather than leave a big gap in the ROM to get an
|
121 |
|
|
aligned address for the trampoline code. For RAM startup,
|
122 |
|
|
ram_vectors will usually be of size zero, unless MVT and copying
|
123 |
|
|
are enabled for memory estimation reasons.
|
124 |
|
|
|
125 |
|
|
1999-09-29 Hugo Tyson
|
126 |
|
|
|
127 |
|
|
[src/vectors.S: needed no change!]
|
128 |
|
|
|
129 |
|
|
* include/vectors.h: Potentially accept a register window count
|
130 |
|
|
from the platform HAL, or according to platform selection. Make
|
131 |
|
|
more of the dependent macros computed.
|
132 |
|
|
|
133 |
|
|
* src/vec_ivsr.S (hal_default_interrupt_vsr): Handle other register
|
134 |
|
|
window sizes correctly; particularly when handling underflow trap
|
135 |
|
|
by hand.
|
136 |
|
|
|
137 |
|
|
* src/vec_xvsr.S (hal_default_exception_vsr): Handle other register
|
138 |
|
|
window sizes correctly; particularly when handling underflow trap
|
139 |
|
|
by hand.
|
140 |
|
|
|
141 |
|
|
* src/context.S (hal_thread_load_context): Handle other register
|
142 |
|
|
window sizes correctly.
|
143 |
|
|
|
144 |
|
|
* src/icontext.c (cyg_hal_sparc_get_gdb_regs): Handle other register
|
145 |
|
|
window sizes correctly; set up initial context differently.
|
146 |
|
|
|
147 |
|
|
1999-06-07 Hugo Tyson
|
148 |
|
|
|
149 |
|
|
* include/hal_arch.h (hal_jmp_buf): force this to be 64-bit
|
150 |
|
|
aligned so that std ops in hal_setjmp(), hal_longjmp() work.
|
151 |
|
|
|
152 |
|
|
1999-06-03 Hugo Tyson
|
153 |
|
|
|
154 |
|
|
* src/hal_boot.c: Add a dummy __gccmain() to prevent ctors being
|
155 |
|
|
called twice. This seems to be a recent compiler change:
|
156 |
|
|
[from gcc/ChangeLog]
|
157 |
|
|
Sat May 22 18:18:43 1999 Jason Merrill
|
158 |
|
|
* sparc/liteelf.h: Handle ctors like MIPS crosses.
|
159 |
|
|
* sparc/lite.h (STARTFILE_SPEC, LIB_SPEC): Define to "".
|
160 |
|
|
* configure.in: Don't use libgloss.h on sparclite-elf.
|
161 |
|
|
Use collect2 on sparclite-aout.
|
162 |
|
|
|
163 |
|
|
1999-05-20 Hugo Tyson
|
164 |
|
|
|
165 |
|
|
* include/hal_intr.h (HAL_INTERRUPT_STACK_CALL_PENDING_DSRS):
|
166 |
|
|
Define this if CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK;
|
167 |
|
|
ie. we are running a separate interrupt stack. Also define
|
168 |
|
|
symbols for it so that we can monitor its usage easily.
|
169 |
|
|
|
170 |
|
|
* src/vec_ivsr.S (hal_interrupt_stack_call_pending_DSRs): Add this
|
171 |
|
|
function to run DSRs on the interrupt stack (if using it). Switch
|
172 |
|
|
over to executing on the interrupt stack when needed.
|
173 |
|
|
|
174 |
|
|
* src/vectors.S (cyg_interrupt_stack_base): Define the interrupt
|
175 |
|
|
stack either if we need it as an interrupt stack or if we need it
|
176 |
|
|
as a bootup stack (simulator); if it's there, use it as a bootup
|
177 |
|
|
stack anyway.
|
178 |
|
|
|
179 |
|
|
* src/context.S (hal_thread_load_context): Install the PSR that
|
180 |
|
|
was saved in its entirety, including the interrupt and trap enable
|
181 |
|
|
state. This is needed for running a separate interrupt stack, but
|
182 |
|
|
harmless when not so doing.
|
183 |
|
|
|
184 |
|
|
* src/icontext.c (hal_thread_init_context): Install an initial PSR
|
185 |
|
|
which includes ET, S and PS (Enable traps, Supermode, prevSuper)
|
186 |
|
|
and a PIL (processor interrupt level) of 15 (maximum)
|
187 |
|
|
so that a context switch which preserves interrupt mode will work.
|
188 |
|
|
|
189 |
|
|
1999-05-13 Hugo Tyson
|
190 |
|
|
|
191 |
|
|
* include/hal_arch.h (HAL_THREAD_INIT_CONTEXT): Align stack
|
192 |
|
|
(rather conservatively) before use.
|
193 |
|
|
|
194 |
|
|
1999-04-28 Bart Veer
|
195 |
|
|
|
196 |
|
|
* src/PKGconf.mak:
|
197 |
|
|
Remove the -n argument to tail, it does not appear to be required
|
198 |
|
|
on any supported host and causes problems with some
|
199 |
|
|
implementations of tail.
|
200 |
|
|
|
201 |
|
|
1999-04-15 Jonathan Larmour
|
202 |
|
|
|
203 |
|
|
* src/sparclite.ld: Define __bss_end at the end of the BSS
|
204 |
|
|
* src/hal_boot.c (hal_zero_bss): Stop at __bss_end rather than _end
|
205 |
|
|
when clearing BSS
|
206 |
|
|
|
207 |
|
|
These fix PR 19750
|
208 |
|
|
|
209 |
|
|
1999-04-14 Jonathan Larmour
|
210 |
|
|
|
211 |
|
|
* src/PKGconf.mak (EXTRAS): Don't generate extras.o here any more
|
212 |
|
|
But do define EXTRAS every time for the linker script.
|
213 |
|
|
|
214 |
|
|
1999-04-09 Hugo Tyson
|
215 |
|
|
|
216 |
|
|
* include/hal_intr.h (HAL_RESTORE_INTERRUPTS et al): Put in 3 nops
|
217 |
|
|
after any writes to the psr; TBH I don't think they're strictly
|
218 |
|
|
necessary when not altering the window state, but for complete
|
219 |
|
|
safety and adherence to the book of words....
|
220 |
|
|
|
221 |
|
|
1999-04-08 John Dallaway
|
222 |
|
|
|
223 |
|
|
* src/*.ld: Revised SECTION_* macro arguments to
|
224 |
|
|
avoid padded output sections (PR 19787)
|
225 |
|
|
|
226 |
|
|
1999-04-07 Hugo Tyson
|
227 |
|
|
|
228 |
|
|
* include/hal_io.h: If not the simulator, get hal_hwio.h too -
|
229 |
|
|
which describes board-and-CPUvariant-specific IO needs.
|
230 |
|
|
|
231 |
|
|
1999-04-07 Hugo Tyson
|
232 |
|
|
|
233 |
|
|
* include/hal_intr.h (HAL_VSR_SET_TO_ECOS_HANDLER): Define this
|
234 |
|
|
macro for use in tests that are interested in exception diddling.
|
235 |
|
|
Redefine CYGNUM_HAL_ISR_MIN to describe the number of interrupt
|
236 |
|
|
sources; while there are XSRs too, this definition is better for
|
237 |
|
|
the error checking in kernel interrupt stuff. Changed the symbols
|
238 |
|
|
used for defining tables sizes to match, since there are still 27
|
239 |
|
|
VSRs and ISRs/XSRs and their data.
|
240 |
|
|
|
241 |
|
|
* src/hal_intr.c: Use the correct symbol for the size of the
|
242 |
|
|
isr/vsr/their-data tables.
|
243 |
|
|
|
244 |
|
|
1999-03-26 Hugo Tyson
|
245 |
|
|
|
246 |
|
|
* tests/sparc_ex.c (cyg_[user_]start):
|
247 |
|
|
If there is no kernel, cyg_user_start() is never called, main gets
|
248 |
|
|
in and steals the CPU. So we hang. So if there is no kernel,
|
249 |
|
|
define cyg_start() instead to wrest control.
|
250 |
|
|
|
251 |
|
|
1999-03-22 Hugo Tyson
|
252 |
|
|
|
253 |
|
|
* include/hal_arch.h (CYGNUM_HAL_STACK_SIZE_TYPICAL):
|
254 |
|
|
And this time make the edit correctly ;-/
|
255 |
|
|
|
256 |
|
|
1999-03-22 Hugo Tyson
|
257 |
|
|
|
258 |
|
|
* include/hal_arch.h:
|
259 |
|
|
Use CYGNUM_HAL_STACK_SIZE_TYPICAL for the stack size instead of
|
260 |
|
|
CYGNUM_HAL_MINIMUM_STACK_SIZE.
|
261 |
|
|
|
262 |
|
|
1999-03-17 Hugo Tyson
|
263 |
|
|
|
264 |
|
|
* src/vectors.S (rom_vectors_end, rom_vectors): Add two new
|
265 |
|
|
symbols for copying trampoline code into RAM in ROM startup. This
|
266 |
|
|
keeps ROM startup as similar as possible to RAM, for simplicity;
|
267 |
|
|
no re-ordering of vectors.S's contents.
|
268 |
|
|
|
269 |
|
|
* src/hal_boot.c (hal_copy_data): Copy in long sized units rather
|
270 |
|
|
than long longs, better to cope with ROM data alignment.
|
271 |
|
|
Also add some LED output (if SLEB hardware) for startup to help
|
272 |
|
|
with debugging ROM start.
|
273 |
|
|
|
274 |
|
|
1999-03-17 John Dallaway
|
275 |
|
|
|
276 |
|
|
* src/PKGconf.mak: Remove dependence on echo '-e' switch.
|
277 |
|
|
|
278 |
|
|
1999-03-16 Hugo Tyson
|
279 |
|
|
|
280 |
|
|
* src/vectors.S (genuine_reset): Add a little extra debug to SLEB
|
281 |
|
|
LEDs, and use the genuine top-of-memory stack when running on
|
282 |
|
|
hardware; only define cyg_bootup_stack in the simulator case.
|
283 |
|
|
|
284 |
|
|
* src/sparclite.ld: Define rom_data_start, regardless of start
|
285 |
|
|
type, no harm is done.
|
286 |
|
|
|
287 |
|
|
1999-03-12 Gary Thomas
|
288 |
|
|
|
289 |
|
|
* include/pkgconf/hal_sparclite.h:
|
290 |
|
|
* include/hal_arch.h: Moved definition of 'CYGNUM_HAL_MINIMUM_STACK_SIZE'
|
291 |
|
|
|
292 |
|
|
1999-03-11 Hugo Tyson
|
293 |
|
|
|
294 |
|
|
* src/icontext.c (cyg_hal_sparc_[gs]et_gdb_regs):
|
295 |
|
|
Two new routines to communicate our nice, optimized stack save
|
296 |
|
|
states to a reg list for GDB. My maximal register saves are not
|
297 |
|
|
really suitable for passing to GDB in any case, they're for humans
|
298 |
|
|
to debug the interrupt code more than anything else, and my
|
299 |
|
|
minimal save sets naturally contain pointers and ways of finding
|
300 |
|
|
the rest of the reg set, but it depends on whether it's an
|
301 |
|
|
interrupt save or a synchronous one, and given the SPARClite's
|
302 |
|
|
stack layout, it's a bit hairy.
|
303 |
|
|
|
304 |
|
|
* src/vec_ivsr.S (hal_default_interrupt_vsr):
|
305 |
|
|
Do save %g0 even in a minimal context, so that the code for
|
306 |
|
|
communicating register state with GDB can tell it's a minimum
|
307 |
|
|
context. Costs one store cycle per interrupt.
|
308 |
|
|
|
309 |
|
|
* include/hal_arch.h (HAL_[GS]ET_GDB_REGISTERS):
|
310 |
|
|
Define and call routines cyg_hal_sparc_[gs]et_gdb_regs for
|
311 |
|
|
communicating register state of a thread to GDB.
|
312 |
|
|
|
313 |
|
|
* src/vectors.S (real_vector): Reinstate the anullment of the
|
314 |
|
|
instructions that were blamed for register corruption earlier;
|
315 |
|
|
they are correct and safe.
|
316 |
|
|
|
317 |
|
|
1999-03-10 Jesper Skov
|
318 |
|
|
|
319 |
|
|
* include/hal_intr.h (HAL_INTERRUPT_IN_USE): Added.
|
320 |
|
|
|
321 |
|
|
1999-03-09 Gary Thomas
|
322 |
|
|
|
323 |
|
|
* src/hal_boot.c: Added missing include file.
|
324 |
|
|
|
325 |
|
|
1999-03-05 Gary Thomas
|
326 |
|
|
|
327 |
|
|
* src/sparclite.ld:
|
328 |
|
|
* src/PKGconf.mak: Clean up I/O package changes.
|
329 |
|
|
|
330 |
|
|
1999-03-04 Jonathan Larmour
|
331 |
|
|
|
332 |
|
|
* src/sparclite.ld:
|
333 |
|
|
Unconditionalize use of libextras.a and add to GROUP()
|
334 |
|
|
|
335 |
|
|
1999-03-04 Gary Thomas
|
336 |
|
|
|
337 |
|
|
* src/PKGconf.mak:
|
338 |
|
|
* src/sparclite.ld: New I/O package support.
|
339 |
|
|
|
340 |
|
|
* src/vectors.S: Fix register corruption problem - stems from
|
341 |
|
|
use of annulled instructions in window overflow/underflow code.
|
342 |
|
|
|
343 |
|
|
1999-02-25 Hugo Tyson
|
344 |
|
|
|
345 |
|
|
These log entries from 1999-02-22 to 1999-02-24 were executed in
|
346 |
|
|
a branch; this change is a merge of that branch into the trunk.
|
347 |
|
|
|
348 |
|
|
(1999-02-24 Hugo Tyson )
|
349 |
|
|
|
350 |
|
|
* tests/sparc_ex.c (sparc_ex_main):
|
351 |
|
|
For all traps except the USER_TRAP, install the default VSR
|
352 |
|
|
hal_default_exception_vsr(); this is so that this test catches
|
353 |
|
|
exception ie. is able to work, even when we are playing nice with
|
354 |
|
|
CygMon and GDB. The USER_TRAP is left so that breakpoints work,
|
355 |
|
|
for the test infrastructure.
|
356 |
|
|
|
357 |
|
|
(1999-02-22 Hugo Tyson )
|
358 |
|
|
|
359 |
|
|
* src/vectors.S (real_vector): Remove old testing code. Add delay
|
360 |
|
|
NOPs after writes to %wim and %psr for safety. Leave installing
|
361 |
|
|
the trap vector to platform-specific code, along with RAM control
|
362 |
|
|
and cache initialization.
|
363 |
|
|
|
364 |
|
|
* src/vec_ivsr.S (hal_default_interrupt_vsr): Add delay NOPs after
|
365 |
|
|
writing the %wim before doing a restore; that was a bug that was.
|
366 |
|
|
|
367 |
|
|
* src/vec_xvsr.S (hal_default_exception_vsr): same change.
|
368 |
|
|
|
369 |
|
|
* src/hal_intr.c: Remove platform-specific clock period variable; it
|
370 |
|
|
happens that both platforms sim and sleb have one, but it's not a
|
371 |
|
|
requirement of the target architecture.
|
372 |
|
|
|
373 |
|
|
* src/hal_boot.c (cyg_hal_start): Move diddling the sim-specific
|
374 |
|
|
watchdog into platform-specific startup code viz. new routines
|
375 |
|
|
hal_board_{pre/post}start().
|
376 |
|
|
|
377 |
|
|
* src/context.S: a couple of extra NOPs to ensure that %wim and
|
378 |
|
|
%psr changes work on real hardware.
|
379 |
|
|
|
380 |
|
|
(1999-02-22 Hugo Tyson )
|
381 |
|
|
|
382 |
|
|
* include/hal_arch.h (HAL_SET_GDB_REGISTERS):
|
383 |
|
|
Remove warning about unused var 'cos of the incompleteness of
|
384 |
|
|
these macros; gdb interworking is not yet supported.
|
385 |
|
|
|
386 |
|
|
1999-02-25 Nick Garnett
|
387 |
|
|
|
388 |
|
|
* include/vectors.h:
|
389 |
|
|
Changed label used to access scheduler lock to one that is not
|
390 |
|
|
mangled by C++. This is intended to make support for interrupt
|
391 |
|
|
handling in non-kernel configurations easier.
|
392 |
|
|
|
393 |
|
|
1999-02-20 Jonathan Larmour
|
394 |
|
|
|
395 |
|
|
* include/hal_arch.h:
|
396 |
|
|
Rename deliver_exception() -> cyg_hal_deliver_exception()
|
397 |
|
|
QA improvements
|
398 |
|
|
|
399 |
|
|
* include/hal_intr.h:
|
400 |
|
|
Reorganise vector/interrupt/exception names according to purpose
|
401 |
|
|
Rename exception_handler() -> cyg_hal_exception_handler()
|
402 |
|
|
QA improvements
|
403 |
|
|
|
404 |
|
|
* src/hal_intr.c:
|
405 |
|
|
Rename exception_handler() -> cyg_hal_exception_handler()
|
406 |
|
|
Rename deliver_exception() -> cyg_hal_deliver_exception()
|
407 |
|
|
Rename CYG_ISR_COUNT -> CYGNUM_HAL_ISR_COUNT
|
408 |
|
|
QA improvements
|
409 |
|
|
|
410 |
|
|
* src/vec_ivsr.S:
|
411 |
|
|
* src/vec_xvsr.S:
|
412 |
|
|
Rename CYG_ISR_COUNT -> CYGNUM_HAL_ISR_COUNT
|
413 |
|
|
QA improvements
|
414 |
|
|
|
415 |
|
|
* tests/sparc_ex.c:
|
416 |
|
|
Rename CYG_EXCEPTION_* -> CYGNUM_HAL_EXCEPTION_*
|
417 |
|
|
Rename CYG_VECTOR_UNALIGNED -> CYGNUM_HAL_VECTOR_UNALIGNED
|
418 |
|
|
|
419 |
|
|
1999-02-12 Hugo Tyson
|
420 |
|
|
|
421 |
|
|
* src/context.S (hal_thread_load_context, hal_setjmp):
|
422 |
|
|
Disable interrupts (but not traps) while doing the flush of all my
|
423 |
|
|
callers and their callers' callers register sets to the stack.
|
424 |
|
|
There is evidence that the inconsistency in the stack during this
|
425 |
|
|
is a bad thing, though I have to admit that I don't see exactly
|
426 |
|
|
how it goes wrong. Partly, it's impossible to debug, so if the
|
427 |
|
|
problem I saw (a SEGV in instrumentation of interrupt_end()) is
|
428 |
|
|
reproduced with this change, I'll have more to go on. This is a
|
429 |
|
|
conservative change in that sense.
|
430 |
|
|
|
431 |
|
|
* include/hal_arch.h (HAL_FLUSH_REGISTERS_TO_STACK):
|
432 |
|
|
Disable interrupts but not traps while doing this. Ditto.
|
433 |
|
|
|
434 |
|
|
1999-02-12 Hugo Tyson
|
435 |
|
|
|
436 |
|
|
* include/pkgconf/hal_sparclite.h (CYGNUM_HAL_MINIMUM_STACK_SIZE):
|
437 |
|
|
Define a minimal sensible stack size for apps to use. Note that
|
438 |
|
|
this file is included by hal_arch.h and so is available to all HAL
|
439 |
|
|
users, and in fact almost everyone by default.
|
440 |
|
|
|
441 |
|
|
1999-02-12 Hugo Tyson
|
442 |
|
|
|
443 |
|
|
* src/hal_intr.c (exception_handler):
|
444 |
|
|
Include so that the CYG_FAIL() in some
|
445 |
|
|
configurations actually compiles (actually: links).
|
446 |
|
|
combo{22,18,10,6} were thus afflicted.
|
447 |
|
|
|
448 |
|
|
1999-02-11 Hugo Tyson
|
449 |
|
|
|
450 |
|
|
* tests/sparc_ex.c (do_test): Make the test run for much less time
|
451 |
|
|
when CYG_USE_TRACING and in any case bleat periodically about how
|
452 |
|
|
successful it is to prevent testing system timeouts. Also move
|
453 |
|
|
the test routines (those which provoke the exception) to the end
|
454 |
|
|
so that (ever helpful) -O3 cannot inline them and then "optimize"
|
455 |
|
|
the result and thus spoil the whole damned test too.
|
456 |
|
|
|
457 |
|
|
1999-02-08 John Dallaway
|
458 |
|
|
|
459 |
|
|
* include/pkgconf/hal_sparclite.h: Correct capitalization of
|
460 |
|
|
'SPARClite'.
|
461 |
|
|
|
462 |
|
|
1999-02-08 John Dallaway
|
463 |
|
|
|
464 |
|
|
* src/sparclite.ld: New MLT-compatible linker script
|
465 |
|
|
* src/PKGconf.mak: Add build rules for sparclite.ld
|
466 |
|
|
|
467 |
|
|
1999-02-04 Hugo Tyson
|
468 |
|
|
|
469 |
|
|
* src/vec_ivsr.S (hal_default_interrupt_vsr): Preserve global
|
470 |
|
|
registers over interrupts, and implement support for
|
471 |
|
|
CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT ie. save a
|
472 |
|
|
minimal register set rather than a maximal. Create a saved
|
473 |
|
|
register set whose address is passed to the interrupt handler
|
474 |
|
|
(though it may well be mostly empty).
|
475 |
|
|
[also tidied up trailing tabs and long blank lines]
|
476 |
|
|
|
477 |
|
|
* src/vec_xvsr.S (hal_default_exception_vsr): Preserve all
|
478 |
|
|
registers over interrupts; create a saved register set whose
|
479 |
|
|
address is passed to the exception handler so it can modify it.
|
480 |
|
|
[also tidied up trailing tabs and long blank lines]
|
481 |
|
|
|
482 |
|
|
* src/context.S( hal_setjmp, hal_longjmp):
|
483 |
|
|
(hal_thread_switch_context,hal_thread_load_context): Implement
|
484 |
|
|
CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM support; ie. save a minimal
|
485 |
|
|
register set rather than a maximal.
|
486 |
|
|
|
487 |
|
|
* include/hal_arch.h (HAL_FLUSH_REGISTERS_TO_STACK): New macro
|
488 |
|
|
useful for writing exception handlers, for example.
|
489 |
|
|
(HAL_GET_GDB_REGISTERS, HAL_SET_GDB_REGISTERS): provided initial
|
490 |
|
|
dummy versions of these.
|
491 |
|
|
|
492 |
|
|
* tests/sparc_ex.c: A test of the exception mechanism:
|
493 |
|
|
deliberately cause unaligned accesses of various sizes and check
|
494 |
|
|
we get exactly one trap and correctly step over it by modifying
|
495 |
|
|
the saved register set whose address the exception ISR is handed.
|
496 |
|
|
This test should be regarded as documentation for the exception
|
497 |
|
|
handler API/ABI.
|
498 |
|
|
|
499 |
|
|
* tests/PKGconf.mak (TESTS): Build sparc_ex.
|
500 |
|
|
|
501 |
|
|
1999-02-01 Hugo Tyson
|
502 |
|
|
|
503 |
|
|
* src/vectors.S (genuine_reset):
|
504 |
|
|
Include to set up RAM controllers, cache and
|
505 |
|
|
the like - this is rather platform dependant.
|
506 |
|
|
|
507 |
|
|
1999-02-01 Hugo Tyson
|
508 |
|
|
|
509 |
|
|
* include/hal_intr.h (HAL_TRANSLATE_VECTOR):
|
510 |
|
|
Include a definition of this important macro. Not.
|
511 |
|
|
It's used when interrupt chaining is selected, BUT we the HAL make
|
512 |
|
|
no distinction, it's up to the kernel to look after things. So
|
513 |
|
|
this macro is an assignment.
|
514 |
|
|
|
515 |
|
|
1999-01-28 Hugo Tyson
|
516 |
|
|
|
517 |
|
|
* include/hal_intr.h:
|
518 |
|
|
Get interrupt controller definitions from a board-specific file:
|
519 |
|
|
#include
|
520 |
|
|
Get clock control definitions from a board-specific file:
|
521 |
|
|
#include
|
522 |
|
|
Delete the original definitions from this central file.
|
523 |
|
|
|
524 |
|
|
* include/hal_cache.h: REMOVED to the simulator tree in the first
|
525 |
|
|
instance; more generally to various board-specific files.
|
526 |
|
|
|
527 |
|
|
|
528 |
|
|
1999-01-26 Hugo Tyson
|
529 |
|
|
|
530 |
|
|
* include/hal_cache.h (HAL_DCACHE_ENABLE) (and its friends):
|
531 |
|
|
Define initial empty placeholder versions of these so that cache
|
532 |
|
|
tests build. Well it's a start.
|
533 |
|
|
|
534 |
|
|
1999-01-21 Jonathan Larmour
|
535 |
|
|
|
536 |
|
|
* src/hal_boot.c (cyg_hal_invoke_constructors):
|
537 |
|
|
Add code to deal with CYGSEM_HAL_STOP_CONSTRUCTORS_ON_FLAG
|
538 |
|
|
Tidy up and update description header
|
539 |
|
|
Shorten needlessly long lines
|
540 |
|
|
Remove all traces of non-CYG_KERNEL_USE_INIT_PRIORITY code
|
541 |
|
|
|
542 |
|
|
1999-01-21 Hugo Tyson
|
543 |
|
|
|
544 |
|
|
* src/vectors.S (genuine_reset): Set the RAM size to 4MB in the
|
545 |
|
|
erc32 simulator.
|
546 |
|
|
|
547 |
|
|
* include/hal_io.h: New file; macros to access IO space, really a
|
548 |
|
|
place holder at present.
|
549 |
|
|
|
550 |
|
|
* include/hal_intr.h: Do not define WATCHDOG() macro.
|
551 |
|
|
|
552 |
|
|
* src/hal_intr.c (hal_default_isr): Do not mess with the watchdog
|
553 |
|
|
in the the default interrupt handler.
|
554 |
|
|
|
555 |
|
|
* src/hal_boot.c (hal_zero_bss): use an efficient 8-byte zero.
|
556 |
|
|
(hal_copy_data): use an efficient 8-byte copy.
|
557 |
|
|
(cyg_hal_start): turn off the ERC32 watchdog timer before we start
|
558 |
|
|
anything very time consuming.
|
559 |
|
|
|
560 |
|
|
NB: the 8-byte copy changes require alignment in the linker
|
561 |
|
|
script: see the Changelog in hal/sparclite/sim/... for details.
|
562 |
|
|
|
563 |
|
|
1999-01-19 Hugo Tyson
|
564 |
|
|
|
565 |
|
|
Modified files in arch:
|
566 |
|
|
* include/hal_arch.h
|
567 |
|
|
* include/hal_intr.h
|
568 |
|
|
* src/PKGconf.mak
|
569 |
|
|
* src/context.S
|
570 |
|
|
* src/hal_intr.c
|
571 |
|
|
* src/vec_ivsr.S
|
572 |
|
|
* src/vec_xvsr.S
|
573 |
|
|
* src/vectors.S
|
574 |
|
|
|
575 |
|
|
New files in arch:
|
576 |
|
|
* src/hal_boot.c (bss initialization, constructors &c)
|
577 |
|
|
* include/hal_cache.h (empty but required header)
|
578 |
|
|
|
579 |
|
|
Modified files in sim:
|
580 |
|
|
* include/hal_diag.h
|
581 |
|
|
|
582 |
|
|
Lots more progress; essentially, everything now works.
|
583 |
|
|
|
584 |
|
|
Simulator's treatment of stdio is poor though, it doesn't work
|
585 |
|
|
under pkgtest. This has been slowing me up.
|
586 |
|
|
|
587 |
|
|
1999-01-14 Hugo Tyson
|
588 |
|
|
|
589 |
|
|
* ecc/ecc/hal/sparclite/...:
|
590 |
|
|
|
591 |
|
|
Initial checkin of SPARClite HAL; it doesn't work yet, except the
|
592 |
|
|
most trivial of tests - timer and interrupt manipulation stuff is
|
593 |
|
|
entirely absent.
|
594 |
|
|
|
595 |
|
|
Here's some documentation of the initial checkin tree; this will
|
596 |
|
|
change, as platform dependent stuff moves correctly into the sim
|
597 |
|
|
or directories.
|
598 |
|
|
|
599 |
|
|
arch/current/include:
|
600 |
|
|
basetype.h nothing much here.
|
601 |
|
|
vectors.h definitions of symbols shared between the
|
602 |
|
|
various vector code assembler files, can be
|
603 |
|
|
included in both C and assembler.
|
604 |
|
|
hal_intr.h various macros for clock and interrupt
|
605 |
|
|
control plus the eCos vector numbering scheme; we
|
606 |
|
|
map thus:
|
607 |
|
|
what SPARC trap type eCos vector numbers
|
608 |
|
|
-----------------------------------------------
|
609 |
|
|
(not used) --- 0
|
610 |
|
|
interrupts (17-31) 1-15
|
611 |
|
|
user traps (128-255) 16
|
612 |
|
|
exceptions (1-9,36==4) 17-25
|
613 |
|
|
others (10,?) 26
|
614 |
|
|
-----------------------------------------------
|
615 |
|
|
Trap types 5 and 6 which would be eCos vectors 21
|
616 |
|
|
and 22 are handled in the trampoline code in
|
617 |
|
|
file src/vectors.S
|
618 |
|
|
hal_arch.h definition of a thread context, plus
|
619 |
|
|
macros for thread switching and the like. Some
|
620 |
|
|
ancillary bit twiddling macros and cache barriers
|
621 |
|
|
too.
|
622 |
|
|
|
623 |
|
|
arch/current/include/pkgconf:
|
624 |
|
|
hal_sparclite.h pkgconf config/header file.
|
625 |
|
|
|
626 |
|
|
arch/current/src:
|
627 |
|
|
vectors.S boot-up stuff, trampoline code that hangs
|
628 |
|
|
on the interrupt/trap vector, handlers for window
|
629 |
|
|
under/overflow. Saves some state in registers
|
630 |
|
|
then jumps to the interrupt or exception VSR
|
631 |
|
|
respectively.
|
632 |
|
|
Also instantiates the VSR table.
|
633 |
|
|
vec_ivsr.S the default interrupt VSR; it establishes
|
634 |
|
|
a C calling environment (ie. anticipates a window
|
635 |
|
|
overflow) then locks the scheduler, calls the ISR
|
636 |
|
|
with appropriate arguments, and then interrupt_end()
|
637 |
|
|
before undoing that environment, anticipating
|
638 |
|
|
window underflow and returning to the interrupted
|
639 |
|
|
instruction.
|
640 |
|
|
vec_xvsr.S the default exception AKA trap VSR; does
|
641 |
|
|
the same as the interrupt one but without the
|
642 |
|
|
scheduler lock or interrupt end.
|
643 |
|
|
hal_intr.c instantiates the ISR table used by the
|
644 |
|
|
code above.
|
645 |
|
|
context.S context switch code, saves and loads up a
|
646 |
|
|
whole register state, coroutine or longjump-like.
|
647 |
|
|
icontext.c initializes a context to "jump" to in
|
648 |
|
|
context.S at the birth of a new thread.
|
649 |
|
|
|
650 |
|
|
sim/current/include:
|
651 |
|
|
hal_diag.h macros to deal with debugging output via a
|
652 |
|
|
fake serial device of some kind; initially empty,
|
653 |
|
|
but definitely board/sim dependent.
|
654 |
|
|
|
655 |
|
|
sim/current/include/pkgconf:
|
656 |
|
|
hal_sparclite_sim.h pkgconf config/header file.
|
657 |
|
|
|
658 |
|
|
sim/current/src:
|
659 |
|
|
sim.ld linker script bits for "sim" target.
|
660 |
|
|
|
661 |
|
|
//===========================================================================
|
662 |
|
|
//####ECOSGPLCOPYRIGHTBEGIN####
|
663 |
|
|
// -------------------------------------------
|
664 |
|
|
// This file is part of eCos, the Embedded Configurable Operating System.
|
665 |
|
|
// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
|
666 |
|
|
//
|
667 |
|
|
// eCos is free software; you can redistribute it and/or modify it under
|
668 |
|
|
// the terms of the GNU General Public License as published by the Free
|
669 |
|
|
// Software Foundation; either version 2 or (at your option) any later version.
|
670 |
|
|
//
|
671 |
|
|
// eCos is distributed in the hope that it will be useful, but WITHOUT ANY
|
672 |
|
|
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
673 |
|
|
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
674 |
|
|
// for more details.
|
675 |
|
|
//
|
676 |
|
|
// You should have received a copy of the GNU General Public License along
|
677 |
|
|
// with eCos; if not, write to the Free Software Foundation, Inc.,
|
678 |
|
|
// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
679 |
|
|
//
|
680 |
|
|
// As a special exception, if other files instantiate templates or use macros
|
681 |
|
|
// or inline functions from this file, or you compile this file and link it
|
682 |
|
|
// with other works to produce a work based on this file, this file does not
|
683 |
|
|
// by itself cause the resulting work to be covered by the GNU General Public
|
684 |
|
|
// License. However the source code for this file must still be made available
|
685 |
|
|
// in accordance with section (3) of the GNU General Public License.
|
686 |
|
|
//
|
687 |
|
|
// This exception does not invalidate any other reasons why a work based on
|
688 |
|
|
// this file might be covered by the GNU General Public License.
|
689 |
|
|
//
|
690 |
|
|
// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
|
691 |
|
|
// at http://sources.redhat.com/ecos/ecos-license/
|
692 |
|
|
// -------------------------------------------
|
693 |
|
|
//####ECOSGPLCOPYRIGHTEND####
|
694 |
|
|
//===========================================================================
|
695 |
|
|
|
696 |
|
|
//EOF ChangeLog
|