]> git.kernelconcepts.de Git - karo-tx-redboot.git/blob - packages/hal/arm/arch/v2_0/ChangeLog
unified MX27, MX25, MX37 trees
[karo-tx-redboot.git] / packages / hal / arm / arch / v2_0 / ChangeLog
1 2007-10-15  Sergei Gavrikov <w3sg@SoftHome.net>
2
3         * cdl/hal_arm.cdl: Use ACTUAL_CFLAGS whenever possible to avoid
4         warnings and complaints from newer compilers.
5
6 2007-09-11  Andrew Lunn  <andrew.lunn@ascom.ch>
7
8         * src/hal_misc.c: Include <cyg/infra/diag.h> to prevent compiler
9         warning when CYGHWR_HAL_ARM_DUMP_EXCEPTIONS is enabled.
10         Reported by Sergei Gavrikov <w3sg@SoftHome.net.
11
12 2007-02-03  Sergei Gavrikov  <sg@sgs.gomel.by>
13
14         * src/vectors.S: Added a possibility to fix ARM vector 0x14
15         (unused vector). Some platforms need itself in that.
16
17 2007-01-09  Sergei Gavrikov  <sg@sgs.gomel.by>
18
19         * src/arm-stub.c: Added string.h header (`memcpy' declaration).
20         
21 2006-09-06  Daniel Néri  <daniel.neri@sigicom.se>
22  
23         * include/basetype.h: (CYG_DOUBLE_BYTEORDER): Add proper
24         definition for VFP floating point format (uses "natural" byte
25         order) on little-endian ARM.
26  
27 2006-02-06  Sergei Organov  <osv@javad.com>
28
29         * src/vectors.S: disable FIQ in IRQ handler to fix race condition
30         of recursively entering IRQ handler through FIQ handler. Remove
31         unreferenced handle_IRQ_or_FIQ label.
32         
33 2006-01-18  Jay Foster    <jay@systech.com>
34
35         * src/context.S (hal_thread_switch_context): Close race condition
36         that could cause corruption of the sp or lr registers.
37
38 2005-04-21  Ian Campbell  <icampbell@arcom.com>
39
40         * src/redboot_linux_exec.c: Added -t option which takes the
41         physical address to copy to. Very useful for booting non-Linux
42         operating systems.
43
44 2005-03-03  Andrew Lunn  <andrew.lunn@ascom.ch>
45
46         * src/redboot_linux_exec.c (CYGARC_HAL_MMU_OFF_X): Fix compiler
47         warning about spaces after continuation character.
48
49 2004-11-23  Jani Monoses <jani@iv.ro>
50
51         * src/vectors.S: Allow DSRs in non-kernel configuration.
52         
53 2004-10-07  Andrew Lunn  <andrew.lunn@ascom.ch>
54
55         * src/arm_stub.c (target_ins): Added a cast to prevent a compiler
56         warning.
57
58 2004-09-02  Mark Salter  <msalter@redhat.com>
59
60         * cdl/hal_arm.cdl (CYGHWR_REDBOOT_LINUX_EXEC_X_SWITCH): New
61         option used to enable "-x" option to exec command.
62         
63         * src/redboot_linux_exec.c (do_exec): Add support for booting
64         kernels built for endianess oppposite of RedBoot.
65
66 2004-07-07  Gary Thomas  <gary@mlbassoc.com>
67
68         * src/redboot_linux_exec.c (do_exec): Fix test for valid entry
69         (was being overwritten by command line parameter)
70
71 2004-05-27  Gary Thomas  <gary@mlbassoc.com>
72
73         * src/redboot_linux_exec.c (do_exec): Be sensitive to value in
74         "entry_address" as this can indicate if the image to be executed
75         is valid (the "load" functions set it to "NO_MEMORY" when invalid)
76
77 2004-05-24   Ian Campbell <icampbell@arcom.com>
78
79         * src/hal_misc.c: __mem_fault_handler: Only do this if we have
80         CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS. This allows the HAL to be 
81         compiled without stubs.
82
83 2004-04-22  Jani Monoses <jani@iv.ro>
84
85          * cdl/hal_arm.cdl :
86          Invoke tail with stricter syntax that works in latest coreutils. 
87
88 2003-11-05  Roland Caßebohm  <roland.cassebohm@visionsystems.de>
89
90         * include/hal_io.h: If defined HAL_IO_MACROS_NO_ADDRESS_MUNGING
91         use macros which don't mung the addresses even if the platform
92         is big-endian. Platforms which don't need address munging can
93         just define HAL_IO_MACROS_NO_ADDRESS_MUNGING in plf_io.h .
94  
95 2003-10-23  Thomas Koeller  <thomas.koeller@baslerweb.com>
96
97         * src/vectors.S: Acknowlege spurious interrupts.
98
99 2003-10-13  Thomas Koeller  <thomas.koeller@baslerweb.com>
100
101         * src/vectors.S: Fixed broken thumb mode exception handling.
102
103 2003-06-30  Mark Salter  <msalter@redhat.com>
104
105         * src/vectors.S: Fix CYGOPT_HAL_ARM_PRESERVE_SVC_SPSR handling.
106
107 2003-06-24  Jonathan Larmour  <jifl@eCosCentric.com>
108
109         * include/hal_arch.h: Include plf_arch.h or var_arch.h if platform
110         or variant requires it to do overrides.
111         (HAL_IDLE_THREAD_ACTION): Default to empty statement but allow to be
112         overridden.
113         
114         * src/hal_misc.c: Remove hal_idle_thread_action. It's no use.
115
116 2003-05-06  Pierre Habraken  <Pierre.Habraken@imag.fr>
117
118         * src/arm_stub.c (target_ins, target_thumb_ins): Added code to
119         enable stepping into swi instructions.
120         
121         * cdl/hal_arm.cdl: Added option CYGOPT_HAL_ARM_PRESERVE_SVC_SPSR for
122         securing exception and breakpoint processing triggered during
123         execution of application specific SWI handlers. Added option
124         CYGOPT_HAL_ARM_WITH_USER_MODE for supporting programs running in
125         user mode.
126         * src/vectors.S (return_from_exception): Added code to exception
127         handling for preserving svc spsr before returning to svc mode.
128         Added code to allow exceptions in user mode.
129         (call_exception_handler, handle_IRQ_or_FIQ): Added code to allow
130         exceptions in user mode.
131         * include/hal_arch.h: Defined CPSR_USER_MODE.
132         * src/hal_mk_defs.c.: Added definition for CPSR_USER_MODE.
133
134 2003-04-30  Jonathan Larmour  <jifl@eCosCentric.com>
135
136         * src/vectors.S (handle_IRQ_or_FIQ): Tweak below to be conditional on
137         __thumb__.
138
139 2003-04-26  Daniel Néri  <daniel.neri@sigicom.se>
140
141         * vectors.S (handle_IRQ_or_FIQ):
142         Use thumb-aware call to hal_spurious_IRQ.
143
144 2003-04-13  Bart Veer  <bartv@ecoscentric.com>
145
146         * src/vectors.S (start): fix build problem with -mthumb
147
148 2003-03-11  Mark Salter  <msalter@redhat.com>
149
150         * src/redboot_linux_exec.c (do_exec): Call eth_drv_stop as necessary.
151
152 2003-02-13  Mark Salter  <msalter@redhat.com>
153
154         * src/redboot_linux_exec.c (do_exec): Add missing semicolon.
155
156 2003-02-13  Gary Thomas  <gary@mlbassoc.com>
157
158         * src/redboot_linux_exec.c (CYGHWR_REDBOOT_LINUX_ATAG_MEM): 
159         Add CYG_MACRO_START/END markers.
160
161 2003-02-12  Gary Thomas  <gary@mlbassoc.com> inspired by
162 2003-02-12  Robin Farine <robin.farine@acn-group.ch>    
163
164         * src/redboot_linux_exec.c: Allow platform to override memory layout.
165         Also, give error if no "-b" option and base/load address unknown.       
166 2003-02-06  Gary Thomas  <gary@mlbassoc.com>
167
168         * src/redboot_linux_exec.c: Make sure RAM description is sane.
169
170 2003-01-31  Mark Salter  <msalter@redhat.com>
171
172         * src/hal_syscall.c (hal_syscall_handler): Let generic syscall code
173         handle exit.
174
175 2003-01-17  Patrick Doyle  <wpd@delcomsys.com>
176
177         * src/redboot_linux_exec.c (do_exec): Round the length up to a
178         multiple of 4 so that the copy loop (which decrements the count by
179         4 each time through) runs a finite length of time.
180         
181         Fixed the calculation of params->u.mem.size so that it doesn't
182         double the memory size if it is already a power of two.
183
184 2003-01-06  Patrick Doyle  <wpd@delcomsys.com>
185
186         * src/redboot_linux_exec.c (do_exec): Added support for, and
187         changed to use, ATAG_INITRD2 instead of ATAG_INITRD.  ATAG_INITRD
188         specifies the virtual address of the ramdisk while ATAG_INITRD2
189         specifies the physical address.
190
191 2002-12-11  Mark Salter  <msalter@redhat.com>
192
193         * include/hal_io.h: Allow variant or platform HALs to override
194         default IO macros.
195
196 2002-11-12  Mark Salter  <msalter@redhat.com>
197
198         * src/arm_stub.c (target_ins): Account for PC prefetch when PC is
199         source register in data processing insns.
200
201 2002-08-29  Mark Salter  <msalter@redhat.com>
202
203         * src/vectors.S: Avoid entering thumb mode in exception handlers.
204
205 2002-08-27  Mark Salter  <msalter@redhat.com>
206
207         * src/arm.ld: Undefine arm to avoid problem with .note.arm.ident.
208
209 2002-08-22  Mark Salter  <msalter@redhat.com>
210
211         * src/arm.ld: Add .note.arm.ident section used by tools to identify
212         architecture variants.
213
214 2002-08-21  Mark Salter  <msalter@redhat.com>
215
216         * src/arm_stub.c: Add support for large registers (e.g. FPU).
217         * include/arm_stub.h: Add infrastructure for support of coprocessors.
218         * include/hal_arch.h: Ditto.
219
220 2002-08-02  Andrew Lunn <Andrew.Lunn@ascom.ch>
221
222         * cdl/hal_arm.cdl: Redboot exec command can now be disabled by CDL
223         
224 2002-07-15  Mark Salter  <msalter@redhat.com>
225
226         * include/arm_stub.h: Comment out NUMREGBYTES.
227
228 2002-05-28  Mark Salter  <msalter@redhat.com>
229
230         * cdl/hal_arm.cdl: Tweaked description for
231         CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS.
232         Add CYGHWR_REDBOOT_ARM_LINUX_TAGS_ADDRESS.
233
234         * src/redboot_linux_exec.c (do_exec): Rework transition to MMU
235         off and jump to kernel so that it works for non 1-1 mapped
236         platforms.
237
238 2002-05-20  Gary Thomas  <gthomas@redhat.com>
239
240         * include/hal_io.h: Fix ...STRING macros - not using index.
241         Pointed out by Thomas Koeller <thomas@koeller.dyndns.org>.
242
243 2002-05-09  Nick Garnett  <nickg@redhat.com>
244
245         * src/vectors.S (handle_IRQ_or_FIQ): Save SVC mode LR in interrupt
246         handling as well as exceptions.
247
248         * src/context.S (hal_thread_switch_context): Use correct size
249         for skipping new HAL_SavedRegisters fields.
250         
251 2002-05-08  Jonathan Larmour  <jlarmour@redhat.com>
252
253         * cdl/hal_arm.cdl: Remove -malignment-traps here - add it only from
254         packages when needed.
255
256 2002-05-08  Nick Garnett  <nickg@redhat.com>
257
258         * src/vectors.S: Added code to save and restore value of SVC mode
259         LR during exception processing. If the exception comes from a
260         non-SVC mode then handling it originally corrupted the SVC mode
261         LR. If the program subsequent returned to SVC mode it was likely
262         to have problems. The registers for modes other than SVC and the
263         exception mode are not touched, so we do not have to save/restore
264         those.
265
266         * src/hal_mk_defs.c: Added definitions for armreg_r10 and
267         armreg_svclr.
268
269         * include/hal_arch.h: Added svc_lr field to HAL_SavedRegisters to
270         save SVC mode link register during exception handling.
271
272 2002-04-30  Jesper Skov  <jskov@redhat.com>
273
274         * cdl/hal_arm.cdl: Forcibly add -malignment-traps to the compiler
275         options to work around problem with recent compiler. This can be
276         removed when the tools are respun.
277
278 2002-04-29  Jonathan Larmour  <jlarmour@redhat.com>
279
280         * src/vectors.S:
281         Don't use .file as it can confuse debugging since the .file
282         doesn't contain the path and therefore the debugger will never
283         know where it lives! This conflicts with using -Wa,--gstabs.
284
285 2002-04-25  Gary Thomas  <gthomas@redhat.com>
286
287         * src/vectors.S: Safer clearing of BSS.
288
289 2002-04-15  Jonathan Larmour  <jlarmour@redhat.com>
290
291         * src/hal_syscall.c (hal_syscall_handler): Add extra sig argument to
292         __do_syscall.
293
294 2002-04-15  Mark Salter  <msalter@redhat.com>
295
296         * src/vectors.S: Rewrite exception handling to allow exceptions
297         in any privileged mode.
298         * src/hal_mk_defs.c (main): Add some regs.
299         * include/hal_arch.h (HAL_SavedRegisters): Slight rearrangement.
300         * src/context.S (hal_thread_switch_context): Use new context layout.
301         (hal_thread_load_context): Ditto.
302
303 2002-04-11  Jesper Skov  <jskov@redhat.com>
304
305         * src/arm.ld: Fixed .sbss rule.
306
307 2002-04-10  Jonathan Larmour  <jlarmour@redhat.com>
308
309         * src/arm.ld: Define .gnu.linkonce sections properly.
310         Remove sbss from data section.
311
312 2002-03-27  Gary Thomas  <gthomas@redhat.com>
313
314         * src/vectors.S: Use interrupt stack during system initialzation
315         if configured since this stack will be much larger than the default
316         idle thread stack.  Some configurations (think networking) may use
317         lots of stack space during system startup and the assumption that
318         the idle thread stack does not need much space fails miserably.
319
320 2002-02-19  Mark Salter  <msalter@redhat.com>
321
322         * src/arm_stub.c (target_thumb_ins): Check architecture version
323         to decide how to handle pop insn.
324         (v5T_semantics): New function. Returns true for v5 and later.
325
326 2002-02-08  Jesper Skov  <jskov@redhat.com>
327
328         * src/arm_stub.c (target_thumb_ins): The result of a POP
329         instruction changing the PC must be the address of a THUMB
330         instruction.
331
332 2002-01-29  Jesper Skov  <jskov@redhat.com>
333
334         * src/redboot_linux_exec.c: Include hal_io.h instead of CRUFT_H.
335         (do_exec): Add nops after loop copying trampoline code. Removed
336         one argument to the assembly: code only works if virt==phys
337         mapping anyway. This should be rewritten to be safe for all
338         possible targets.
339
340 2002-01-28  Jesper Skov  <jskov@redhat.com>
341
342         * include/hal_io.h: Include var_io.h if present, otherwise include
343         plf_io.h. This makes the ARM HAL match the other HALs better in
344         this regard, allowing platform IO definitions to override variant
345         IO definitions while allowing sharing code between platforms of
346         the same variant.
347
348 2002-01-25  Jesper Skov  <jskov@redhat.com>
349
350         * cdl/hal_arm.cdl: Added RedBoot options.
351         * src/redboot_linux_exec.c: Added generic version of the RedBoot
352         exec command to be shared by all ARM platforms. Still needs some
353         cleaning up after CYGARC_ memory macros find their proper home.
354
355 2002-01-08  Hugo Tyson  <hmt@redhat.com>
356
357         * cdl/hal_arm.cdl (CYGOPT_HAL_ARM_SYSCALL_GPROF_SUPPORT): New
358         option, implements CYGINT_REDBOOT_BSP_SYSCALLS_GPROF_SUPPORT so
359         RedBoot knows we can do this.  Only active if indeed we can.
360
361         * include/hal_arch.h (HAL_GET_PROFILE_INFO): New macro, to extract
362         the interrupted PC and SP from a struct HAL_SavedRegisters.  Used
363         for histogram-style profiling.
364
365 2001-11-02  Hugo Tyson  <hmt@redhat.com>
366
367         * include/arm_stub.h (CYG_HAL_GDB_LEAVE_CRITICAL_IO_REGION): Nasty
368         bodge to fix a tools issue where an "unused" label is migrated to
369         where some real code is, ie. the wrong place in this case.
370         Problem applies to arm9e-elf tools and other arm variants also.
371
372 2001-10-29  Hugo Tyson  <hmt@redhat.com>
373
374         * src/arm.ld (SECTION_rom_vectors): Define symbols used for ROMRAM
375         startup; for some reason these were not in the trunk.  They are:
376         __rom_vectors_vma and __rom_vectors_lma
377
378 2001-10-24  Gary Thomas  <gthomas@redhat.com>
379
380         * src/hal_misc.c (hal_msbindex): Fix calculation.
381
382 2001-10-23  Hugo Tyson  <hmt@redhat.com>
383
384         * include/hal_mmu.h (MMU_Control_Z,F,RR): Some extra defines for
385         newer ARM architectures.
386
387 2001-10-11  Fabrice Gautier  <Fabrice_Gautier@sdesigns.com>
388
389         * include/hal_io.h: Add _STRING variants of I/O macros to allow
390         writing of consecutive items to the same registers.
391
392 2001-10-02  Jonathan Larmour  <jlarmour@redhat.com>
393
394         * include/hal_arch.h: Remove CYG_HAL_TABLE_BEGIN and CYG_HAL_TABLE_END
395         as the common versions are acceptable.
396
397 2001-10-01  Jonathan Larmour  <jlarmour@redhat.com>
398
399         * src/arm.ld: Make separate section for GOT and .eh_frame.
400         Make macro section for all reloc sections.
401         Input extras.o unconditionally.
402         * cdl/hal_arm.cdl: Don't bother with -DEXTRAS=1 - unconditional now.
403
404 2001-08-24  Mark Salter  <msalter@redhat.com>
405
406         * src/arm_stub.c (target_thumb_ins): Add support for pop insn.
407
408 2001-08-21  Hugo Tyson  <hmt@redhat.com>
409
410         * include/hal_intr.h: Only define HAL_CLOCK_LATENCY() if it's not
411         defined already (if it's needed at all).  This is for platforms
412         which need a separate routine, such as sa11x0.
413
414 2001-07-19  Gary Thomas  <gthomas@redhat.com>
415
416         * src/vectors.S: Support ROMRAM startup mode.  Note: most of
417         the support for this mode will be in the platform setup code.
418
419 2001-07-18  Gary Thomas  <gthomas@redhat.com>
420
421         * src/hal_mk_defs.c (main): FIQ no longer listed as an exception.
422
423 2001-07-17  Jonathan Larmour  <jlarmour@redhat.com>
424
425         * include/hal_intr.h: Define range of exceptions more accurately.
426
427 2001-07-16  Gary Thomas  <gthomas@redhat.com>
428
429         * src/hal_misc.c (exception_handler): Allow memory faults to be
430         caught, even when GDB stubs are not included.
431
432 2001-06-22  Gary Thomas  <gthomas@redhat.com>
433
434         * include/arm_stub.h (NUMREGBYTES): Define - this tells GDB how 
435         large it's communications buffers need to be.
436
437 2001-06-05  Gary Thomas  <gthomas@redhat.com>
438 2001-06-05  Thomas Fähnle <thomas.faehnle@tst-ag.de>
439
440         * src/vectors.S (spurious_IRQ): Better handling of spurious ints.
441         Pass register frame to handler.
442
443 2001-05-23  Gary Thomas  <gthomas@redhat.com>
444
445         * src/vectors.S: Allow platforms to define a 'preamble' which gets
446         included _before_ the vectors.  This is often required for modules
447         which are run from ROM/Flash.
448
449 2001-04-30  Gary Thomas  <gthomas@redhat.com>
450
451         * src/vectors.S (__exception_handlers): Platforms must explicitly 
452         define CYGSEM_HAL_ROM_RESET_USES_JUMP if required.
453
454 2001-04-27  Hugo Tyson  <hmt@redhat.com>
455
456         * src/vectors.S: Platforms without CYGHWR_HAL_ARM_HAS_MMU defined
457         require that the reset jump be straight up to ROM.  So you can't
458         just use a local branch.  This is needed to make RedBoot in the
459         EBSA285 work, for example.
460
461 2001-04-19  Gary Thomas  <gthomas@redhat.com>
462
463         * cdl/hal_arm.cdl: Fix typo for ARM9 systems.
464
465 2001-04-18  Gary Thomas  <gthomas@redhat.com>
466
467         * src/vectors.S: Add new flag 'CYG_HAL_ROM_RESET_USES_JUMP' to control
468         how RESET is handled.  This is normally set for ROM applications, but
469         can be overridden by platform code for situations when it is unsuitable
470         to have a branch as the RESET instruction.
471
472 2001-04-16  Gary Thomas  <gthomas@redhat.com>
473
474         * cdl/hal_arm.cdl: Add new interfaces to describe CPU family and
475         option possiblities.
476
477 2001-04-07  Mark Salter  <msalter@redhat.com>
478
479         * src/arm_stub.c: Add support for v5T BLX insn.
480
481 2001-03-30  Mark Salter  <msalter@redhat.com>
482
483         * src/vectors.S (__exception_handlers): Don't use relative branch
484         for reset on iq80310.
485
486 2001-03-28  Hugo Tyson  <hmt@redhat.com>
487
488         * src/vectors.S (__GDB_stack_base): Increase stubs stack size to
489         "enough".  We tend to have either RedBoot (with no interrupt
490         stack) or an app (with no stubs stack) these days, so I used
491         CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE.  It defaults to 4k in
492         RedBoot which is enough compared to the previous hard-wired 1k.
493         The overflow occurred in RedBoot, with i82559 ether driver, during
494         GDB connection - but manifested as "network stack out of buffers"
495         because of a recursion in trying to report a trap.
496
497 2001-02-24  Gary Thomas  <gthomas@redhat.com>
498
499         * include/hal_mmu.h (MMU_Control_X): Add - used by Win/CE.
500
501         * src/vectors.S (__exception_handlers): Change RESET vector
502         to use jump for ROM based applications [safer].
503         (warm_reset): Only do 'swi' contortions when starting RAM
504         applications from Angel.
505
506 2001-02-22  Jesper Skov  <jskov@redhat.com>
507
508         * src/arm.ld: Relocate .2ram sections to the .data section.
509
510 2001-02-20  Jesper Skov  <jskov@redhat.com>
511
512         * cdl/hal_arm.cdl: Added CYGBLD_ARM_ENABLE_THUMB_INTERWORK.
513
514 2001-02-13  Gary Thomas  <gthomas@redhat.com>
515
516         * src/vectors.S (handle_IRQ_or_FIQ): Change behaviour for
517         handling spurious interrupts.
518
519         * src/hal_misc.c (hal_spurious_IRQ): New function - called
520         when a spurious interrupt is detected.  Defined as "weak"
521         so platforms can provide localized support.
522
523         * src/hal_mk_defs.c: 
524         * include/hal_intr.h (CYGNUM_HAL_INTERRUPT_NONE): Define.
525
526 2001-02-09  Hugo Tyson  <hmt@redhat.com>
527
528         * src/vectors.S (UNMAPPED()): Handle CYGHWR_HAL_ROM_VADDR if so
529         defined; this is used when compiling for a different location from
530         the base of ROM.  hal_platform_setup.h might define it.  For
531         example, if flash is from 0x50000000 upwards (as on SA11x0), and
532         we are to execute at 0x50040000, then we want the reset vector to
533         point to 0x0004pqrs - the unmapped ROM address of the code -
534         rather than 0x0000pqrs, which is the offset into our flash block.
535         But usually it's not defined, so the behaviour is the obvious.
536
537 2001-02-08  Jesper Skov  <jskov@redhat.com>
538
539         * include/arm_vv.h: Removed again, compiler does magic to thumb
540         function pointers.
541         * include/hal_arch.h: Same.
542
543 2001-02-07  Jesper Skov  <jskov@redhat.com>
544
545         * include/arm_vv.h: Added virtual vector accessor macros that will
546         properly mangle function pointers in thumb mode.
547         * include/hal_arch.h: Include arm_vv.h
548         * src/vectors.S: ctrlc_init can be called for thumb now (but
549         requires ROM monitor to be built with -mthumb-interwork)
550
551 2001-02-02  Mark Salter  <msalter@redhat.com>
552
553         * src/arm_stub.c (__arm_breakinst): New ARM breakpoint insn.
554         (__thumb_breakinst): New thumb breakpoint insn.
555         (__is_bsp_syscall): Check for actual SWI number and support
556         thumb.
557
558         * include/hal_arch.h (HAL_BREAKINST_ADDR): New macro to provide
559         address of correct breakpoint insn of the given length.
560
561 2001-02-01  Jesper Skov  <jskov@redhat.com>
562
563         * src/hal_misc.c: Don't use diag_printf directly (rely on tracing
564         macros).
565
566 2001-01-31  Mark Salter  <msalter@redhat.com>
567
568         * src/vectors.S (FIQ): Fix broken fiq handling.
569
570 2001-01-31  Jesper Skov  <jskov@redhat.com>
571
572         * cdl/hal_arm.cdl:  Get rid of CYGDBG_HAL_DIAG_DISABLE_GDB_PROTOCOL
573         options. They are replaced by the
574         CYGSEM_HAL_DIAG_MANGLER option.
575
576 2001-01-24  Jonathan Larmour  <jlarmour@redhat.com>
577
578         * src/vectors.S (init_flag): Add explicit alignment, just in case.
579         From Ilko Iliev <iliev@caretec.at>
580
581 2001-01-11  Hugo Tyson  <hmt@redhat.com>
582
583         * src/vectors.S (hal_dram_size): Create hal_dram_type in memory at
584         0x44, right after hal_dram_size.
585
586         * include/hal_intr.h: Add an extern for the word at 0x44, named
587         hal_dram_type (as in hal_dram_size).  This can be used for
588         platform HALs to know how to decode VIRT_TO_PHYS addresses and
589         vice versa.
590
591 2000-12-13  Hugo Tyson  <hmt@redhat.com>
592
593         * include/hal_intr.h: Handle variant-, and possible overriding
594         platform-, specific interrupt files <cyg/hal/hal_platform_ints.h>.
595         This is to simplify the multiple SA11x0 targets which have no
596         variation there.        
597
598 2000-12-11  Gary Thomas  <gthomas@redhat.com>
599
600         * src/vectors.S (warm_reset): 'hal_dram_size' is now only set in
601         platform code - no need to mess with (pure pollution) it here.
602
603 2000-11-19  Gary Thomas  <gthomas@redhat.com>
604
605         * include/hal_io.h: Use CYGBLD_HAL_PLATFORM_IO_H for those platforms
606         which define it (relieves this file of messy includes).
607
608 2000-11-16  Jesper Skov  <jskov@redhat.com>
609
610         * include/basetype.h: Define LABEL mangling macros.
611
612         * include/arch.inc: Added.
613
614 2000-11-06  Mark Salter  <msalter@redhat.com>
615
616         * src/hal_syscall.c: New file. Arm interface to redboot's
617         handler for GNUPro based application library syscalls.
618
619         * src/arm_stub.c (__is_bsp_syscall): New function. Return
620         true if exception caused by bsp SWI.
621
622         * include/arm_stub.h: Add declaration for __is_bp_syscall.
623
624         * cdl/hal_arm.cdl: Add hal_syscall.c to compile list.
625
626 2000-11-04  Mark Salter  <msalter@redhat.com>
627
628         * include/hal_io.h: Include cyg/hal/plf_io.h for IQ80310.
629
630         * src/arm_stub.c (__computeSignal): New interface for
631         HAL_STUB_IS_STOPPED_BY_HARDWARE
632
633 2000-10-27  Mark Salter  <msalter@redhat.com>
634
635         * src/arm_stub.c: Removed uneccesary include.
636
637         * src/vectors.S (start): Fix use of registers which may have
638         been destroyed by an LED macro.
639
640 2000-10-26  Mark Salter  <msalter@redhat.com>
641
642         * src/arm_stub.c (__computeSignal): Add hook for platforms to
643         check for hw watchpoint/breakpoint events.
644         (__install_breakpoints): Support HAL breakpoint list.
645         (__clear_breakpoints): Ditto.
646
647         * include/hal_arch.h (HAL_BREAKINST_TYPE): Define. Needed by
648         hw watchpoint/breakpoint support in stub.
649
650 2000-10-20  Jesper Skov  <jskov@redhat.com>
651
652         * src/hal_misc.c: Update __mem_fault_handler declaration.
653
654 2000-09-05  Andrew Lunn <andrew.lunn@ascom.ch>
655
656         * include/basetype.h: Override the alignment macros for the ARM
657         architecture. The ARM compiler only alows a maximum of 4 bytes
658         of alignment where as the default is 8
659         
660 2000-08-15  Hugo Tyson  <hmt@cygnus.co.uk>
661
662         * src/arm.ld (SECTION_text): Change it back so that
663         infra/... range checking can see them.  _stext and _etext as seen
664         from C are the eventual destination, so this is a step in the
665         right direction.  You must hack if building redboot, for now.
666
667 2000-08-14  Hugo Tyson  <hmt@cygnus.co.uk>
668
669         * src/arm.ld (SECTION_text): Change to stext and etext unadorned
670         with underlines so that RedBoot can see them.
671
672 2000-08-14  Gary Thomas  <gthomas@redhat.com>
673
674         * include/hal_arch.h: 
675         * src/arm.ld: Changes to support new [anonymous] tables.
676
677 2000-07-17  Jesper Skov  <jskov@redhat.com>
678
679         * src/vectors.S (start): Hack to allow thumb tests to run in farm
680         until vector table Thumb/ARM API is fixed.
681
682 2000-07-07  Jesper Skov  <jskov@redhat.com>
683
684         * src/arm_stub.c: Changes to support CygMon changes.
685
686         * src/hal_misc.c: Fix warnings.
687
688 2000-07-05  Jesper Skov  <jskov@redhat.com>
689
690         * src/hal_misc.c: 
691         * src/vectors.S:
692         All platforms now has VECTOR_SUPPORT (or provide alternative
693         implementations). Removed checks for the option.
694
695 2000-07-04  Jonathan Larmour  <jlarmour@redhat.co.uk>
696
697         * cdl/hal_arm.cdl: Add CYGINT_HAL_ARM_MEM_REAL_REGION_TOP
698         interface
699
700         * include/hal_intr.h: If the platform implements the
701         CYGINT_HAL_ARM_MEM_REAL_REGION_TOP interface, define a new
702         HAL_MEM_REAL_REGION_TOP macro appropriately
703
704 2000-06-28  Jesper Skov  <jskov@redhat.com>
705
706         * src/hal_mk_defs.c:
707         * src/arm_stub.c: 
708         Fix compiler warnings.
709
710 2000-06-21  Nick Garnett  <nickg@cygnus.co.uk>
711
712         * include/hal_arch.h:
713         Added local variants of CYG_HAL_TABLE_BEGIN() and
714         CYG_HAL_TABLE_END() since the ARM assembler implements some of
715         this code with a slightly different syntax to all the other
716         targets.
717
718         * include/basetype.h:
719         Removed definition of CYG_LABEL_NAME(). Now dealt with by default
720         definition in cyg_type.h.
721         
722         * src/hal_misc.c: 
723         * src/arm_stub.c:
724         Removed use of CYG_LABEL_NAME(), added underscore to _breakinst.
725
726         * src/arm.ld:
727         Added extra underscores to _stext and _etext.
728         Switched over to new table creation mechanism.  
729
730 2000-06-19  Gary Thomas  <gthomas@redhat.com>
731
732         * src/vectors.S: Changes for virtual vector support.
733         (hal_virtual_vector_table): Need to protect if virtual vector
734         stuff not defined.
735
736         * src/hal_mk_defs.c: Add symbols for virtual vector table.
737
738         * src/hal_misc.c (hal_arch_default_isr): New function.  Used in
739         place of 'hal_default_isr' if virtual vector support is enabled.
740
741         * include/hal_intr.h: "Fixed" items now exported in 'vectors.S'
742
743         * src/vectors.S: Add notion of "fixed vectors" to all platforms.
744
745 2000-06-08  Jesper Skov  <jskov@redhat.com>
746
747         * include/hal_arch.h (CYGARC_HAL_SAVE_GP, CYGARC_HAL_RESTORE_GP):
748         Added.
749
750 2000-06-04  Gary Thomas  <gthomas@redhat.com>
751
752         * src/vectors.S: Add support for platform specific "vectors"
753         which may need to end up in predefined memory locations.
754         * src/arm.ld: Add separate 'fixed_vectors' section.
755
756 2000-06-01  Gary Thomas  <gthomas@redhat.com>
757
758         * include/hal_mmu.h (MMU_Control_I): Added for StrongARM support.
759
760 2000-04-10  Hugo Tyson  <hmt@cygnus.co.uk>
761
762         * include/arm_stub.h (CYG_HAL_GDB_ENTER_CRITICAL_IO_REGION): Only
763         use this complex version if we have
764         CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT ie. the place_break &c routines
765         existed anyway.  This is an artificial limitation, somewhat, but
766         not so painful in reality.
767
768 2000-04-04  Jesper Skov  <jskov@redhat.com>
769
770         * src/context.S: 
771         * src/vectors.S: 
772         Wrap the trivial thumb stuff in macros so the important bits stand
773         out.
774         Fix dumb bug.
775         
776 2000-03-24  Jesper Skov  <jskov@redhat.com>
777
778         * src/arm_stub.c: Make place_break thumb-aware.
779
780         * include/arm_stub.h (CYG_HAL_GDB_ENTER_CRITICAL_IO_REGION): 
781         Thumb-aware definition.
782         
783 2000-03-01  Gary Thomas  <gthomas@cygnus.co.uk>
784
785         * cdl/hal_arm.cdl: 
786         Implement CYGINT_HAL_DIAG_DISABLE_GDB_PROTOCOL_SUPPORTED.
787         
788 2000-02-29  Jonathan Larmour  <jlarmour@redhat.co.uk>
789
790         * include/arm_stub.h: Make header C++ safe
791
792 2000-02-28  Gary Thomas  <gthomas@cygnus.co.uk>
793
794         * src/hal_misc.c: Use standard 'diag_dump_buf()' instead of
795         private version.
796
797 2000-02-16  Jesper Skov  <jskov@redhat.com>
798
799         * src/arm_stub.c: CYG_HAL_ARM -> CYGPKG_HAL_ARM
800
801 2000-02-10  Jesper Skov  <jskov@redhat.com>
802
803         * src/vectors.S (reset_platform):
804         Removed handling of stubs startup type.
805
806 2000-02-09  Jesper Skov  <jskov@redhat.com>
807
808         * cdl/hal_arm.cdl: Removed some fix mes.
809
810 2000-02-01  Jonathan Larmour  <jlarmour@redhat.co.uk>
811
812         * cdl/hal_arm.cdl: Add missing CYGIMP_HAL_PROCESS_ALL_EXCEPTIONS
813         and CYGHWR_HAL_ARM_ICE_THREAD_SUPPORT
814         options from include/pkgconf/hal_arm.h
815
816 2000-02-01  Jesper Skov  <jskov@redhat.com>
817
818         * src/vectors.S: Treat ROM startup+ROM monitor as STUBS startup.
819
820         * src/arm.ld: Changed PID BE workaround to work with ROM startup.
821         Not just when building stubs.
822         
823 2000-01-28  Gary Thomas  <gthomas@cygnus.co.uk>
824
825         * src/arm.ld: Add new section 'netdevtab' used to support
826         network device initialization.
827
828 2000-01-26  Jonathan Larmour  <jlarmour@redhat.co.uk>
829
830         * src/hal_misc.c (exception_handler): Replace CYGDAT_CYGMON_ENABLE
831         dependency with just CYGPKG_CYGMON
832         * src/arm_stub.c (__clear_breakpoints): Likewise
833
834 1999-12-16  Gary Thomas  <gthomas@cygnus.co.uk>
835
836         * src/arm.ld: Include all SRAM (*.sram*) sections.
837
838 1999-12-09  John Dallaway  <jld@cygnus.co.uk>
839
840         * cdl/hal_arm.cdl: Add big-endian option.
841
842 1999-12-08  Gary Thomas  <gthomas@cygnus.co.uk>
843
844         * src/arm.ld: Add ".sram" section support (used by platforms
845         that have separate SRAM and DRAM).
846
847 1999-12-07  Jesper Skov  <jskov@cygnus.co.uk>
848
849         * cdl/hal_arm.cdl: Added ARM7/ARM9 family option.
850
851 1999-12-06  Gary Thomas  <gthomas@cygnus.co.uk>
852
853         * src/vectors.S (software_interrupt): Context save was incorrect
854         for this mode.  Note that when entering from supervisor mode, the
855         link register (LR) is destroyed.
856
857 1999-12-02  John Dallaway  <jld@cygnus.co.uk>
858
859         * cdl/hal_arm.cdl:
860
861         Use the <PACKAGE> token in custom rules.
862
863 1999-12-01  John Dallaway  <jld@cygnus.co.uk>
864
865         * cdl/hal_arm.cdl:
866
867         Use the <PREFIX> token in custom rules.
868
869 1999-11-22  Gary Thomas  <gthomas@cygnus.co.uk>
870
871         * src/arm.ld: Add section for definining static MMU tables.
872
873         * src/vectors.S: Introduce PLATFORM_EXTRAS, which if defined provides
874         a hook to include platform code in the "vectors.S" file.  In particular,
875         some platforms will define this to be <cyg/hal/hal_platform_extras.h> 
876         and define static MMU tables there.
877
878 1999-11-19  Jonathan Larmour  <jlarmour@cygnus.co.uk>
879
880         * include/basetype.h (CYG_BYTEORDER): If the toolchain tells us to be
881         big-endian, be big-endian
882         Reported by Grant Edwards
883
884 1999-11-12  Gary Thomas  <gthomas@cygnus.co.uk>
885
886         * src/vectors.S (reset_platform): New function used to reset board
887         in the absense of real hardware reset (not possible on all boards).
888
889 1999-11-11  John Dallaway  <jld@cygnus.co.uk>
890
891         * cdl/hal_arm.cdl:
892
893         Generate 'arm.inc' in the build tree.
894
895 1999-11-05  John Dallaway  <jld@cygnus.co.uk>
896
897         * cdl/hal_arm.cdl:
898
899         Add complete dependency analysis to the custom
900         rule for 'arm.inc'.
901
902 1999-11-04  John Dallaway  <jld@cygnus.co.uk>
903
904         * cdl/hal_arm.cdl:
905
906         Tidy up custom rules.
907
908 1999-11-04  John Dallaway  <jld@cygnus.co.uk>
909
910         * cdl/hal_arm.cdl:
911
912         Output custom rule dependency information to .deps files in
913         the current directory.
914
915         Dispense with the need to create a 'src' sub-directory.
916
917 1999-11-01  Jonathan Larmour  <jlarmour@cygnus.co.uk>
918
919         * src/hal_misc.c (exception_handler): Check for CYGDAT_CYGMON_ENABLE
920         rather than just CYGPKG_CYGMON
921         Include <pkgconf/cygmon.h> to get this define
922
923 1999-10-29 Simon FitzMaurice <sdf@cygnus.co.uk>
924
925         * cdl/hal_arm.cdl:
926
927         Use fgrep instead of grep in custom rules.  The latter seems
928         to behave weirdly under win32.
929
930 1999-10-27  Gary Thomas  <gthomas@cygnus.co.uk>
931
932         * src/arm_stub.c: Fix typo (CYGDAT_CYGMON_ENABLE).  Also need
933         to include <pkgconf/cygmon.h>
934
935 1999-10-27  Gary Thomas  <gthomas@cygnus.co.uk>
936
937         * src/arm_stub.c: Add explicit enable for CygMon package.
938
939 1999-10-27  Hugo Tyson  <hmt@cygnus.co.uk>
940
941         * src/arm_stub.c (cyg_hal_gdb_interrupt): Bugfix to previous: ^Cs
942         were being ignored when received by the diag output code, because
943         there was already a break in place.  Solution is to let
944         cyg_hal_gdb_interrupt() override any previous break, and tidy up
945         state of course.
946
947 1999-10-26  Hugo Tyson  <hmt@cygnus.co.uk>
948
949         * src/arm_stub.c (cyg_hal_gdb_place_break): Add this to the
950         ARM-specific GDB stub code.  See hal/common/.../hal_stub for
951         details.
952
953 1999-10-26  John Dallaway  <jld@cygnus.co.uk>
954
955         * cdl/hal_arm.cdl:
956
957         Invoke 'sh' version of 'mkdir' explicitly in custom rules.
958
959 1999-10-26  Jesper Skov  <jskov@cygnus.co.uk>
960
961         * src/vectors.S: Cleaned up LED code a bit.
962
963 1999-10-25  Gary Thomas  <gthomas@cygnus.co.uk>
964
965         * src/hal_misc.c (exception_handler): If building for CygMon, defer
966         exception processing to it, not here.
967
968         * src/arm_stub.c (__install_breakpoints, __clear_breakpoints): 
969         Leave out these [dummy] functions if building CygMon.
970
971         * include/pkgconf/hal_arm.h: Add new configuration option to let
972         programs which do not include GDB stubs still process "illegal
973         instruction" exceptions.
974
975         * src/vectors.S: Reorder context restore so stack changes are
976         protected (interrupts off).
977
978 1999-10-26  Jesper Skov  <jskov@cygnus.co.uk>
979
980         * src/arm.ld: Added support for merging RODATA sections into DATA
981         * include/hal_io.h: Added BE support.
982         
983         * src/vectors.S (LED): Added definition for PID board.
984
985 1999-10-26  John Dallaway  <jld@cygnus.co.uk>
986
987         * cdl/hal_arm.cdl:
988
989         Modify custom make rules to specify file paths relative
990         to the package version directory.
991
992 1999-10-22  Hugo Tyson  <hmt@cygnus.co.uk>
993
994         * src/arm_stub.c (cyg_hal_gdb_running_step):
995         (cyg_hal_gdb_break_is_set): Provide dummies for these two for now.
996         See changelog for hal/common/ hal_stub and generic_stub for info.
997
998 1999-10-21  Jonathan Larmour  <jlarmour@cygnus.co.uk>
999
1000         * include/hal_arch.h: Tidy a bit so the breakpoint instruction is only
1001         defined in one place
1002         Change thumb breakpoint instruction to 0xbebe
1003
1004 1999-10-18  John Dallaway  <jld@cygnus.co.uk>
1005
1006         * cdl/hal_arm.cdl:
1007
1008         Add cdl_option CYGHWR_THUMB.
1009
1010 1999-10-14  Jesper Skov  <jskov@cygnus.co.uk>
1011         From James Ingham <jingham@cygnus.com>:
1012         * src/PKGconf.mak: Make sed invocation Solaris safe.
1013
1014 1999-10-11  Jesper Skov  <jskov@cygnus.co.uk>
1015
1016         * src/vectors.S (reset_vector): Always execute PLATFORM_SETUP1.
1017
1018 1999-10-10  Gary Thomas  <gthomas@cygnus.co.uk>
1019
1020         * include/pkgconf/hal_arm.h: 
1021         * src/vectors.S: 
1022         * src/arm_stub.c: Add thread debug support via Multi-ICE.
1023
1024 1999-10-08  Jonathan Larmour  <jlarmour@cygnus.co.uk>
1025
1026         * src/arm.ld (SECTION_bss): Make *(.bss*) rather than just .bss, to
1027         cater for nickc's BSS gc improvements.
1028
1029 1999-10-06  Jesper Skov  <jskov@cygnus.co.uk>
1030
1031         * include/basetype.h: Set endian to BE if required.
1032
1033 1999-10-05  Jesper Skov  <jskov@cygnus.co.uk>
1034
1035         * src/arm.ld: Force output format to BE if required.
1036
1037 1999-09-30  Jesper Skov  <jskov@cygnus.co.uk>
1038
1039         * src/vectors.S: Add thumb_func before thumb code where switching
1040         so GDB/objdump knows how to disassemble it.
1041         * include/hal_arch.h: Change thumb breakpoint to undefined
1042         instruction.
1043         * src/arm_stub.c (target_thumb_ins): Corrected branch offsets.
1044
1045 1999-09-23  Gary Thomas  <gthomas@cygnus.co.uk>
1046
1047         * src/vectors.S (call_exception_handler): Change on 09-19 messed up
1048         status register wrt breakpoints, single stepping, etc.
1049
1050 1999-09-21  Gary Thomas  <gthomas@cygnus.co.uk>
1051
1052         * include/hal_arch.h: Remove FIXME about GDB register layout.
1053
1054         * src/context.S (hal_thread_save_context): Change function prologue
1055         to match APCS more closely (keeps GDB happier).
1056
1057 1999-09-19  Gary Thomas  <gthomas@cygnus.co.uk>
1058
1059         * src/vectors.S (spurious_IRQ): Make sure interrupts are masked
1060         when switching to IRQ mode.
1061
1062         * src/hal_misc.c (exception_handler): GDB stubs only take over
1063         memory exceptions.  This allows proper handling when an application
1064         has it's own IRQ/FIQ VSR.
1065
1066 1999-09-16  Jesper Skov  <jskov@cygnus.co.uk>
1067
1068         * src/arm.ld: Handle thumb glue sections.
1069
1070 1999-09-16  Jesper Skov  <jskov@cygnus.co.uk>
1071
1072         * src/vectors.S: Always include thumb exception support.
1073
1074 1999-09-15  Jesper Skov  <jskov@cygnus.co.uk>
1075
1076         * src/context.S: Don't trash r0 which holds the thread's initial
1077         argument.
1078
1079         * include/hal_arch.h: 
1080         * src/arm_stub.c: 
1081         Added thumb-aware GDB interrupt functions.
1082         
1083 1999-09-14  Jesper Skov  <jskov@cygnus.co.uk>
1084
1085         * src/vectors.S (undefined_instruction): Adjusted wrong register.
1086         * src/arm_stub.c (target_thumb_ins): Set thumb flag when required.
1087         (target_ins): Added BX handling.
1088
1089         * src/vectors.S:
1090         * include/hal_arch.h: 
1091         * src/hal_mk_defs.c:
1092         * src/arm_stub.c (__single_step): 
1093         Determine thumb mode by looking at T bit.
1094
1095 1999-09-10  Jesper Skov  <jskov@cygnus.co.uk>
1096
1097         * src/arm_stub.c (target_thumb_ins): BL is a double instruction.
1098
1099 1999-09-13  Gary Thomas  <gthomas@cygnus.co.uk>
1100
1101         * src/vectors.S (handle_IRQ_or_FIQ): Allow spurious interrupts
1102         to be ignored.  Some platforms (CL7xxx) have non-debounced 
1103         interrupt sources which can vanish before the hardware can be
1104         queried.
1105
1106 1999-09-11  Jonathan Larmour  <jlarmour@cygnus.co.uk>
1107
1108         * src/arm_stub.c (__computeSignal): Synchronise return value with
1109         what libbsp does and GDB expects
1110         (__get_trap_number): Don't shift right 8 - it's already the right number
1111
1112 1999-09-10  Jesper Skov  <jskov@cygnus.co.uk>
1113
1114         * src/vectors.S (start): Moved stub vector changeover to after
1115         stub init.
1116
1117 1999-09-09  Jesper Skov  <jskov@cygnus.co.uk>
1118
1119         * include/hal_arch.h (HAL_BREAKPOINT):
1120         * src/arm_stub.c:
1121         * src/vectors.S:
1122         Added thumb stub support (except C-c support).
1123         
1124 1999-08-24  Gary Thomas  <gthomas@cygnus.co.uk>
1125
1126         * src/vectors.S: Fix misc THUMB procedures.
1127
1128 1999-08-24  Hugo Tyson  <hmt@masala.cygnus.co.uk>
1129
1130         * src/vectors.S (handle_IRQ_or_FIQ): Set up the pointer-to-regset
1131         in r2 for calling the ISR as well as the DSR.  This is needed for
1132         the cyg_hal_gdb_isr() for those platforms that handle ^C's
1133         incoming that way - the ISR needs a regset to know where to plant
1134         a breakpoint to stop the system in the interrupted context.
1135
1136 1999-08-24  Jesper Skov  <jskov@cygnus.co.uk>
1137
1138         * src/vectors.S (LED): Check XBUS setting jumper and behave
1139         accordingly.
1140
1141 1999-08-23  Jesper Skov  <jskov@cygnus.co.uk>
1142
1143         * src/arm_stub.c 
1144         (target_ins): Check whether branches execute.
1145         (ins_will_execute): Fixed HI and LS.
1146
1147 1999-08-13  John Dallaway  <jld@cygnus.co.uk>
1148
1149         * cdl/hal_arm.cdl: Add path to CYGBLD_LINKER_SCRIPT value.
1150
1151 1999-08-12  John Dallaway  <jld@cygnus.co.uk>
1152
1153         * cdl/hal_arm.cdl: Define CYGBLD_LINKER_SCRIPT.
1154
1155 1999-08-12  Jesper Skov  <jskov@cygnus.co.uk>
1156
1157         * include/hal_io.h: Include plf_io.h when appropriate.
1158
1159 1999-08-06  Jesper Skov  <jskov@cygnus.co.uk>
1160         CR 101032
1161         * src/vectors.S (handle_IRQ_or_FIQ): Moved setup of register_frame
1162         argument to just before the interrupt_end call.
1163
1164 1999-07-28  Hugo Tyson  <hmt@cygnus.co.uk>
1165
1166         * src/vectors.S (_eCos_id): Remove bogus version string.
1167
1168 1999-07-26  Hugo Tyson  <hmt@cygnus.co.uk>
1169
1170         * src/hal_misc.c (hal_default_isr): Call the special platform HAL
1171         routine to see whether there is a ^C lurking in the serial device
1172         through a macro, if it's defined.  Problem is that
1173         CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT *is* defined for platforms that
1174         do not support it.
1175
1176 1999-07-23  Hugo Tyson  <hmt@cygnus.co.uk>
1177
1178         * src/hal_misc.c (hal_default_isr): If we are including
1179         CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT, then poll a special platform
1180         HAL routine to see whether there is a ^C lurking in the serial
1181         device.  This has to be done from the default ISR so that others
1182         (which must know about ^Cs is they are still to be handled) can
1183         install over the top.  Not all platforms support this, so enabling
1184         CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT will not necessarily work.
1185
1186 1999-07-21  Hugo Tyson  <hmt@cygnus.co.uk>
1187
1188         * src/vectors.S (vectors): Re-organize startup a little to support
1189         ROMming of the image and stubrom creation.  Withdraw publication
1190         of cyg_startup_stack; it's necessary to do this a different way,
1191         using...
1192
1193         * include/hal_intr.h (hal_dram_size): reserve location 0x40 for
1194         communicating DRAM size between boot ROMs and app during startup,
1195         and remembering it within ROM startup.  Platforms that don't need
1196         this should zero the location.
1197
1198 1999-07-19  Hugo Tyson  <hmt@cygnus.co.uk>
1199
1200         * src/vectors.S (cyg_startup_stack): Publish this object for
1201         passing some DRAM size info around during startup.
1202         Remove the unused [well, ignored] array hal_vsr_table - the VSR
1203         table is defined to be at 0x20 by the code here in vectors.S
1204
1205         * include/hal_intr.h (HAL_VSR_SET): define hal_vsr_table to be at
1206         0x20 where the hardware vectors actually read VSR entries from.
1207         Renumber VSR symbols to match.  Do not use the external
1208         "hal_vsr_table" symbol.
1209
1210 1999-07-15  Hugo Tyson  <hmt@cygnus.co.uk>
1211
1212         * src/vectors.S (reset_vector): Invalidate and disable caches for
1213         EBSA-285 startup is now in PLATFORM_SETUP1 as intended.  Cache
1214         enabling is in hal_hardware_init; so, same results as before, but
1215         tidier.
1216
1217 1999-07-14  Hugo Tyson  <hmt@cygnus.co.uk>
1218
1219         * src/vectors.S: Add some startup debug via a LED macro - which
1220         has different content depending on platform, of course.
1221         For the EBSA-285, flush caches when writing vectors and the like,
1222         since RAM startup occurs with caches enabled, otherwise you get
1223         mysterious traps as CygMon is entered regardless at the first
1224         clock tick, for example.  This may be taken out again as ROM
1225         startup is dealt with via PLATFORM_SETUP1, but for now...
1226
1227 1999-06-22  Gary Thomas  <gthomas@cygnus.co.uk>
1228
1229         * src/vectors.S: Fix names of 'report' functions (debug dumps
1230         for various exceptions).  These needed changes for two reasons:
1231         name pollution and naming clashes after new ABI adopted.
1232         Improve support for FIQ interrupts.
1233
1234 1999-06-16  Gary Thomas  <gthomas@cygnus.co.uk>
1235
1236         * src/vectors.S: Add ".pool" directives which cause assembler 
1237         to dump it's literal pool early.  This is necessary because
1238         of the limited addressing available in THUMB mode.
1239
1240 1999-06-15  Gary Thomas  <gthomas@cygnus.co.uk>
1241
1242         * src/vectors.S (vectors): Some boards have an MMU, but the
1243         reset vector needs to have an unmapped address!
1244
1245 1999-06-09  Gary Thomas  <gthomas@cygnus.co.uk>
1246
1247         * src/vectors.S (reset_vector): Streamline ROM/STUBS code.
1248
1249 1999-05-25  Gary Thomas  <gthomas@cygnus.co.uk>
1250
1251         * src/vectors.S (_eCos_id): Add version string.  Useful for
1252         tracking when a system was configured (especially ROMs).
1253         Add initial pure-thumb support - only for kernel+application
1254         in thumb mode.
1255         
1256         * include/hal_intr.h: Update interrupt support macros for
1257         thumb mode system.
1258
1259         * src/context.S: Add initial pure-thumb mode support.
1260
1261 1999-05-21  Hugo Tyson  <hmt@cygnus.co.uk>
1262
1263         * include/hal_intr.h: Define HAL_INTERRUPT_STACK_BASE and
1264         HAL_INTERRUPT_STACK_TOP so that stack usage macros in
1265         kernel/.../stackmon.hxx can work.
1266
1267         * src/vectors.S (cyg_interrupt_stack_base): Define this symbol for
1268         the interrupt stack and its friend for the stack top so that we
1269         can publish them with nice names.
1270
1271 1999-05-19  Gary Thomas  <gthomas@cygnus.co.uk>
1272
1273         * src/arm.ld: Change symbols to match new no-underscore ABI.
1274
1275 1999-05-19  Gary Thomas  <gthomas@cygnus.co.uk>
1276
1277         * include/hal_intr.h: Define interrupt support functions for 
1278         Thumb mode.
1279
1280 1999-05-16  Gary Thomas  <gthomas@cygnus.co.uk>
1281
1282         * include/hal_intr.h (HAL_INTERRUPT_STACK_CALL_PENDING_DSRS): 
1283         Add macro for new DSR handling mechanism (was override of a
1284         "weak" symbol in kernel).       
1285
1286 1999-05-13  Hugo Tyson  <hmt@cygnus.co.uk>
1287
1288         * include/hal_arch.h (HAL_THREAD_INIT_CONTEXT): Align stack
1289         (rather conservatively) before use.
1290
1291 1999-05-11  Gary Thomas  <gthomas@cygnus.co.uk>
1292
1293         * src/vectors.S: No separate interrupt stack if no kernel.
1294
1295 1999-05-10  Gary Thomas  <gthomas@cygnus.co.uk>
1296
1297         * src/vectors.S: 
1298         * src/hal_mk_defs.c: 
1299         * include/hal_arch.h: Fix up machine states, initialize stacks.
1300
1301 1999-04-28  Bart Veer  <bartv@cygnus.co.uk>
1302
1303         * src/PKGconf.mak:
1304         Remove the -n argument to tail, it does not appear to be required
1305         on any supported host and causes problems with some
1306         implementations of tail.
1307
1308 1999-04-25  Gary Thomas  <gthomas@cygnus.co.uk>
1309
1310         * src/vectors.S: Fix use of 'RAISE_INTR' which cannot be used in 'mov'
1311         instruction (doesn't fit). PR 19906
1312
1313 1999-04-23  John Dallaway  <jld@cygnus.co.uk>
1314
1315         * src/PKGconf.mak: Avoid backslash in grep search pattern to
1316         workaround PR 19923.
1317
1318 1999-04-15  Jonathan Larmour  <jlarmour@cygnus.co.uk>
1319
1320         * src/arm.ld: Define __bss_end at the end of the BSS
1321         * src/vectors.S (start): Use __bss_end rather than _end when clearing
1322         BSS
1323         These fix PR 19750
1324
1325 1999-04-14  Jonathan Larmour  <jlarmour@cygnus.co.uk>
1326
1327         * src/PKGconf.mak (EXTRAS): Don't generate extras.o here any more
1328         But do define EXTRAS every time for the linker script
1329         
1330 1999-04-13  Gary Thomas  <gthomas@cygnus.co.uk>
1331
1332         * src/vectors.S: Use new include <cyg/hal/hal_platform_setup.h>
1333         which includes macros and definitions for platform specifics.
1334         This keeps 'ifdef's out of "vectors.S" and makes cleaner code.
1335         Major restructuring of interrupt handling to support full use
1336         of a separate interrupt stack.
1337
1338 1999-04-09  Jesper Skov  <jskov@cygnus.co.uk>
1339
1340         * src/arm_stub.c: 
1341         Moved get_register and put_register to hal_stub.c.
1342
1343 1999-04-08  John Dallaway  <jld@cygnus.co.uk>
1344
1345         * src/*.ld: Revised SECTION_* macro arguments to
1346         avoid padded output sections (PR 19787)
1347
1348 1999-03-22  Jonathan Larmour  <jlarmour@cygnus.co.uk>
1349
1350         * include/arm_stub.h: Update copyright
1351
1352         * src/arm_stub.c: Update copyright
1353
1354 1999-03-22  Hugo Tyson  <hmt@cygnus.co.uk>
1355
1356         * include/hal_arch.h: 
1357         Use CYGNUM_HAL_STACK_SIZE_TYPICAL for the stack size instead of
1358         CYGNUM_HAL_MINIMUM_STACK_SIZE.
1359
1360 1999-03-16  Gary Thomas  <gthomas@cygnus.co.uk>
1361
1362         * src/hal_misc.c: Change how breakpoint is described (just a long).
1363
1364         * src/vectors.S: Pass registers to ISR for GDB break support.
1365
1366 1999-03-17  John Dallaway  <jld@cygnus.co.uk>
1367
1368         * src/PKGconf.mak: Remove dependence on echo '-e' switch.
1369
1370 1999-03-12  Gary Thomas  <gthomas@cygnus.co.uk>
1371
1372         * include/hal_arch.h: Add definition of 'CYGNUM_HAL_MINIMUM_STACK_SIZE'
1373
1374 1999-03-11  Gary Thomas  <gthomas@cygnus.co.uk>
1375
1376         * include/pkgconf/hal_arm.h: Fix comment (name was incorrect)
1377
1378 1999-03-10  Jesper Skov  <jskov@cygnus.co.uk>
1379
1380         * include/hal_intr.h (HAL_INTERRUPT_ATTACH): Added.
1381
1382 1999-03-09  Gary Thomas  <gthomas@cygnus.co.uk>
1383
1384         * src/hal_misc.c: Move declaration of __CTOR_LIST__ to avoid warning.
1385
1386 1999-03-09  Gary Thomas  <gthomas@cygnus.co.uk>
1387
1388         * src/vectors.S: Remove warning on stack size redefine.
1389
1390 1999-03-08  Gary Thomas  <gthomas@cygnus.co.uk>
1391
1392         * src/vectors.S: Override default stack size on AEB.
1393
1394 1999-03-05  Gary Thomas  <gthomas@cygnus.co.uk>
1395
1396         * src/vectors.S: 
1397         * include/pkgconf/hal_arm.h: DOn't print exception info if GDB stubs enabled.
1398
1399         * src/PKGconf.mak: 
1400         * src/arm.ld: Clean up I/O package changes.     
1401
1402 1999-03-04  Jonathan Larmour  <jlarmour@cygnus.co.uk>
1403
1404         * src/arm.ld: 
1405         Unconditionalize use of libextras.a and add libextras.a to GROUP()
1406
1407 1999-03-04  Gary Thomas  <gthomas@cygnus.co.uk>
1408
1409         These changes merged from 'ecos-new_devs-19990216-branch'
1410
1411         (1999-02-18  Gary Thomas  <gthomas@cygnus.co.uk>)
1412
1413         * src/PKGconf.mak (DRIVERS): 
1414         * src/arm.ld: Support special linking requirements for I/O drivers.
1415
1416         (1999-02-16  Gary Thomas  <gthomas@cygnus.co.uk>)
1417
1418         * src/arm.ld: Changes for new I/O [device drivers] subsystem.
1419
1420 1999-02-26  Gary Thomas  <gthomas@cygnus.co.uk>
1421
1422         * src/vectors.S: Add separate interrupt stack handling.
1423
1424         Fix memory region layouts for AEB allowing better error detection.
1425
1426 1999-02-25  Nick Garnett  <nickg@cygnus.co.uk>
1427
1428         * src/vectors.S:
1429         Changed label used to access scheduler lock to one that is not
1430         mangled by C++. This is intended to make support for interrupt
1431         handling in non-kernel configurations easier.
1432
1433 1999-02-20  Jonathan Larmour  <jlarmour@cygnus.co.uk>
1434
1435         * include/hal_arch.h: 
1436         Rename deliver_exception -> cyg_hal_deliver_exception
1437         QA improvements
1438
1439         * include/hal_intr.h:
1440         Reorganise vector/interrupt/exception names according to purpose
1441         QA improvements
1442
1443         * arch/current/src/hal_misc.c:
1444         Rename deliver_exception -> cyg_hal_deliver_exception
1445         Rename vectors due to hal_intr.h changes
1446         QA improvements
1447
1448         * arch/current/src/hal_mk_defs.c:
1449         * arch/current/src/vectors.S
1450         Rename vectors due to hal_intr.h changes
1451         QA improvements 
1452
1453 1999-02-16  Jesper Skov  <jskov@cygnus.co.uk>
1454
1455         * src/vectors.S: Changed set_debug_traps to initialize_stub.
1456
1457         * src/arm_stub.c:
1458         * include/arm_stub.h: 
1459         Cleaned up to only include arch specific stub code.
1460
1461 1999-02-16  Gary Thomas  <gthomas@cygnus.co.uk>
1462
1463         * src/arm.ld: Changes for new I/O [device drivers] subsystem.
1464
1465 1999-02-10  Gary Thomas  <gthomas@cygnus.co.uk>
1466
1467         * src/hal_misc.c (hal_default_isr): Add diagnostic message for PR 19145-19147
1468
1469 1999-02-05  John Dallaway  <jld@cygnus.co.uk>
1470
1471         * src/arm.ld: Add LMA_EQ_VMA macro definition.
1472
1473 1999-02-04  Gary Thomas  <gthomas@cygnus.co.uk>
1474
1475         * src/vectors.S: Use symbolic 'raise interrupt' instead of hard coded value.
1476         Better GDB stubs stack handling.
1477         
1478         * src/hal_mk_defs.c: Add symbolic symbol for 'raise interrupt' instrumentation.
1479
1480 1999-02-03  Gary Thomas  <gthomas@cygnus.co.uk>
1481
1482         * src/hal_misc.c (cyg_hal_invoke_constructors): 
1483         * src/vectors.S (start): Use C coded 'cyg_hal_invoke_constructors()'
1484
1485         * src/hal_misc.c (exception_handler): Remove debug message ...oops!
1486
1487         * include/hal_arch.h (HAL_SET_GDB_REGISTERS): Restore PSR.
1488
1489         * src/vectors.S: Use separate stack for GDB stubs exception handlers.
1490
1491 1999-02-01  Gary Thomas  <gthomas@cygnus.co.uk>
1492
1493         * src/hal_misc.c: Need <pkgconf/hal_arm.h> for 'dump exception' option.
1494
1495         * src/vectors.S: Fix ROM startup machine initialization.
1496
1497 1999-01-25  Gary Thomas  <gthomas@cygnus.co.uk>
1498
1499         * src/arm.ld: Add Copyright
1500
1501 1999-01-25  Jesper Skov  <jskov@cygnus.co.uk>
1502
1503         * src/arm_stub.c (__build_t_packet): Rewrote fix me text. Added PR
1504         number, but otherwise left the note.
1505
1506 1999-01-21  Gary Thomas  <gthomas@cygnus.co.uk>
1507
1508         * src/arm_stub.c (ins_will_execute): Computation of LS/HI
1509         was incorrect.
1510
1511 1999-01-20  Gary Thomas  <gthomas@cygnus.co.uk>
1512
1513         * src/arm.ld: Change "etext" to "__etext".
1514
1515 1999-01-19  Gary Thomas  <gthomas@cygnus.co.uk>
1516
1517         * src/vectors.S: Rework exception handlers.
1518         (start): Fix for new startup type (STUBS)
1519
1520         * src/hal_misc.c (exception_handler): Allow GDB stubs to take over all
1521         exceptions while the stubs are executing.  Also move some common stubs
1522         initialization into this file.
1523
1524 1999-01-18  Gary Thomas  <gthomas@cygnus.co.uk>
1525
1526         * include/pkgconf/hal_arm.h: Add configurations for GDB stubs/normal ROM.
1527
1528         * src/arm.ld: Include HAL/ARM specifics.
1529
1530         * include/pkgconf/hal_arm.h: 
1531         * src/hal_misc.c: 
1532         * src/vectors.S: Add configure option 'CYGHWR_HAL_ARM_DUMP_EXCEPTIONS'
1533         which is used to chose whether to print diagnostic exception dumps
1534         or not.
1535
1536 1999-01-15  Gary Thomas  <gthomas@cygnus.co.uk>
1537
1538         * src/hal_misc.c: Clean up warnings
1539
1540         * include/hal_arch.h: 
1541         * include/hal_intr.h: Add function prototypes to avoid warnings.
1542
1543         * src/arm.ld: Add definition of _stext.  Take out
1544         GLOBAL_OFFSET_TABLE.
1545
1546 1999-01-14  Gary Thomas  <gthomas@cygnus.co.uk>
1547
1548         * src/PKGconf.mak: Set up for MLT based linker scripts.
1549
1550         * src/arm.ld: New file
1551
1552         * include/hal_intr.h (HAL_QUERY_INTERRUPTS): Test was backwards
1553
1554 1999-01-13  Gary Thomas  <gthomas@cygnus.co.uk>
1555
1556         * include/hal_intr.h (HAL_TRANSLATE_VECTOR): Add new macro
1557
1558 1999-01-12  Gary Thomas  <gthomas@cygnus.co.uk>
1559
1560         * include/basetype.h (CYG_DOUBLE_BYTEORDER): Define ordering
1561         of words within doubles.
1562
1563 1999-01-05  Gary Thomas  <gthomas@cygnus.co.uk>
1564
1565         * src/vectors.S: Force AEB-1 memory configuration.
1566         
1567 1998-12-16  Gary Thomas  <gthomas@cygnus.co.uk>
1568
1569         * src/arm_stub.c (ins_will_execute): Fix warning.
1570
1571         * include/hal_intr.h: Add <hal/hal_platform_ints.h>
1572         for platform specifics.
1573
1574 1998-12-15  Gary Thomas  <gthomas@cygnus.co.uk>
1575
1576         * src/hal_mk_defs.c: 
1577         * include/hal_io.h: 
1578         * src/vectors.S: Changes to support kernel-less configuration.
1579         (___gccmain): Add new dummy function.
1580
1581         * src/hal_misc.c: Merge in platform independent code from
1582         old "pid/.../hal_misc.c"
1583
1584 1998-12-15  Jesper Skov  <jskov@cygnus.co.uk>
1585
1586         * include/hal_arch.h: Changed HAL_JMP_BUF_SIZE to
1587         CYGARC_JMP_BUF_SIZE.
1588
1589 1998-12-14  Gary Thomas  <gthomas@cygnus.co.uk>
1590
1591         * src/hal_misc.c (exception_handler): Change config option
1592         to be consistent "CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS"
1593
1594         * include/hal_arch.h (HAL_THREAD_INIT_CONTEXT): Set initial
1595         PC for GDB thread info.
1596
1597         * src/arm_stub.c (__build_t_packet): Fix thread id's which
1598         must be send to GDB in big-endian.
1599
1600 1998-12-10  Jesper Skov  <jskov@cygnus.co.uk>
1601
1602         * include/hal_cache.h (HAL_DCACHE_UNLOCK_ALL,
1603         HAL_ICACHE_UNLOCK_ALL): Added.
1604
1605 1998-12-09  Gary Thomas  <gthomas@cygnus.co.uk>
1606
1607         * src/vectors.S (abort_prefetch): Clean up all exception
1608         handlers (some were just broken).
1609
1610         * src/hal_misc.c (exception_handler): Improved exception
1611         handling for GDB stubs while accessing memory.
1612
1613 1998-12-04  Gary Thomas  <gthomas@cygnus.co.uk>
1614
1615         * src/arm_stub.c (target_ins): Finish single step support.
1616
1617 1998-12-03  Gary Thomas  <gthomas@cygnus.co.uk>
1618
1619         * src/vectors.S (_name): Add undefined instruction handling
1620         (for breakpoint/single step support).  Plus some rework and
1621         general cleanup.
1622
1623         * src/arm_stub.c (single_step): 
1624         * include/hal_arch.h (HAL_BREAKPOINT): Make breakpoint use
1625         an illegal instruction rather than SWI.
1626
1627 1998-12-02  Gary Thomas  <gthomas@cygnus.co.uk>
1628
1629         * src/arm_stub.c (ins_will_execute): Take out debug messages
1630
1631         * include/pkgconf/hal_arm.h: New file
1632
1633         * include/arm_stub.h: Add PSR register definitions
1634
1635         * src/arm_stub.c (single_step): Support single stepping
1636
1637 1998-12-01  Gary Thomas  <gthomas@cygnus.co.uk>
1638
1639         * src/vectors.S (reset_vector): Rework exception handing to leave
1640         vectors in place unless GDB stubs are included (or started in
1641         user mode via Angel)
1642
1643 1998-11-26  Gary Thomas  <gthomas@cygnus.co.uk>
1644
1645         * src/vectors.S (_vectors): Rework to handle SWI exception
1646         Changes to make GDB stubs work.
1647
1648         * src/hal_misc.c (exception_handler): 
1649         Save registers in global "_hal_registers"
1650
1651         * src/PKGconf.mak (COMPILE): Add arm_stub.c
1652
1653         * include/hal_io.h: Need to include <pkgconf/kernel.h>
1654
1655         * include/hal_arch.h (HAL_THREAD_INIT_CONTEXT): 
1656         Clean up stack usage - no need for 56 byte padding (PPC holdover)
1657         (HAL_BREAKPOINT): 
1658         (HAL_GET_GDB_REGISTERS): 
1659         (HAL_SET_GDB_REGISTERS): Clean up for working stubs
1660
1661         * src/arm_stub.c: New file, GDB stubs support
1662
1663 1998-11-18  Gary Thomas  <gthomas@cygnus.co.uk>
1664
1665         * src/hal_mk_defs.c: Add define for 'HAL_SavedRegisters'
1666
1667         * include/hal_arch.h: cleanup comments
1668
1669         * include/basetype.h: cleanup comments
1670
1671         * src/vectors.S: Improved interrupt stack handling.
1672
1673         * include/hal_intr.h: Add support for interrupt latency
1674         measurement, controlled by CYGVAR_KERNEL_COUNTERS_CLOCK_LATENCY.
1675
1676 1998-10-16  Bart Veer  <bartv@cygnus.co.uk>
1677
1678         * src/vectors.S (__interrupt_stack):
1679         Made the interrupt stack size configurable.
1680
1681 //===========================================================================
1682 //####ECOSGPLCOPYRIGHTBEGIN####
1683 // -------------------------------------------
1684 // This file is part of eCos, the Embedded Configurable Operating System.
1685 // Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
1686 //
1687 // eCos is free software; you can redistribute it and/or modify it under
1688 // the terms of the GNU General Public License as published by the Free
1689 // Software Foundation; either version 2 or (at your option) any later version.
1690 //
1691 // eCos is distributed in the hope that it will be useful, but WITHOUT ANY
1692 // WARRANTY; without even the implied warranty of MERCHANTABILITY or
1693 // FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
1694 // for more details.
1695 //
1696 // You should have received a copy of the GNU General Public License along
1697 // with eCos; if not, write to the Free Software Foundation, Inc.,
1698 // 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
1699 //
1700 // As a special exception, if other files instantiate templates or use macros
1701 // or inline functions from this file, or you compile this file and link it
1702 // with other works to produce a work based on this file, this file does not
1703 // by itself cause the resulting work to be covered by the GNU General Public
1704 // License. However the source code for this file must still be made available
1705 // in accordance with section (3) of the GNU General Public License.
1706 //
1707 // This exception does not invalidate any other reasons why a work based on
1708 // this file might be covered by the GNU General Public License.
1709 //
1710 // Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
1711 // at http://sources.redhat.com/ecos/ecos-license/
1712 // -------------------------------------------
1713 //####ECOSGPLCOPYRIGHTEND####
1714 //===========================================================================