2000-03-20  Jonathan Larmour  <jlarmour@redhat.co.uk>

	* include/mips-stub.h: Make C++ safe

	* include/hal_cache.h (_hal_asm_mips_cpp_stringize): Add as a separate
	macro because the compiler has got more picky

2000-03-16  Jonathan Larmour  <jlarmour@redhat.co.uk>

	* src/vectors.S (_start): Set return address to 0 and unconditionally
	jump to cyg_start, so that GDB doesn't get confused with backtraces

2000-03-13  Nick Garnett  <nickg@cygnus.co.uk>

	* src/context.S :
	Added jmpbuf_regsize to insulate jumb buffer from changes in
	mips_regsize. This will need extra work if we go to a full 64 bit
	variant, but for now is the simplest solution to this problem.

2000-02-25  Jonathan Larmour  <jlarmour@redhat.co.uk>

	* include/arch.inc: Add lpc and spc macros to save and restore PC
	* src/context.S (hal_thread_switch_context): Restore RA into PC
	location in context so that thread debugging works

2000-02-23  Jonathan Larmour  <jlarmour@redhat.co.uk>

	* src/hal_misc.c (hal_idle_thread_action):
	CYG_HAL_MIPS_SIM -> CYGPKG_HAL_MIPS_SIM
	CYG_HAL_MIPS_JMR3904 -> CYGPKG_HAL_MIPS_TX39_JMR3904

	* include/arch.inc: CYG_HAL_MIPS_SIM -> CYGPKG_HAL_MIPS_SIM

2000-02-16  Jesper Skov  <jskov@redhat.com>

	* cdl/hal_mips.cdl: removed fix me.

2000-01-14  Nick Garnett  <nickg@cygnus.co.uk>

	* include/hal_arch.h: 
	* include/arch.inc: 
	* src/vectors.S: 
	* src/context.S: 
	Several fixes to allow the GPRs to be saved
	and restored as 64 bit values on some architectures. This is not
	full 64 bit support since it only covers the GPRs, HI and LO,
	there is more to be done in the CP0 registers (however it is a
	start).

1999-12-21  Jonathan Larmour  <jlarmour@cygnus.co.uk>

	* src/vectors.S (__default_exception_vsr): Rename
	CYG_HAL_USE_ROM_MONITOR_CYGMON -> CYGSEM_HAL_USE_ROM_MONITOR_CygMon
	Rename CYG_HAL_ROM_MONITOR -> CYGSEM_HAL_ROM_MONITOR

	* src/hal_misc.c (hal_default_isr): Rename
	CYG_HAL_USE_ROM_MONITOR_CYGMON ->
	CYGSEM_HAL_USE_ROM_MONITOR_CygMon

	* include/arch.inc: Rename CYG_HAL_USE_ROM_MONITOR ->
	CYGSEM_HAL_USE_ROM_MONITOR

1999-12-20  John Dallaway  <jld@cygnus.co.uk>

	* cdl/hal_mips.cdl:

	Fix syntax error.

1999-12-17  Jonathan Larmour  <jlarmour@cygnus.co.uk>

	* src/mipsfp.c (flt2reg): New inline function to convert between
	float union and register type
	(reg2flt): Likewise in reverse
	(cyg_hal_mips_process_fpe): Handle endianness correctly using the above
	functions. Avoid possible aliasing problems with the compiler. Ensure
	values are zeroed with the correct sign. Check for denormalized operands
	for all remaining FPU opcodes.

	* src/hal_misc.c (cyg_hal_exception_handler): Allow handling of
	unimplemented operation FPU exceptions to be configurable
	* include/pkgconf/hal_mips.h: Provide
	CYGSEM_HAL_MIPS_EMULATE_UNIMPLEMENTED_FPU_OPS to do this
	* cdl/hal_mips.cdl: Likewise

	All the above required for cases 102817 and 102820

1999-12-15  Jonathan Larmour  <jlarmour@cygnus.co.uk>

	* include/hal_intr.h (CYGNUM_HAL_EXCEPTION_COUNT): Ensure you can
	handle FPU exceptions if present
	Reported in case 102817

1999-12-02  John Dallaway  <jld@cygnus.co.uk>

	* cdl/hal_mips.cdl:

	Use the <PACKAGE> token in custom rules.

1999-12-01  John Dallaway  <jld@cygnus.co.uk>

	* cdl/hal_mips.cdl:

	Use the <PREFIX> token in custom rules.

1999-11-04  John Dallaway  <jld@cygnus.co.uk>

	* cdl/hal_mips.cdl:

	Output custom rule dependency information to .deps files in
	the current directory.

	Dispense with the need to create a 'src' sub-directory.

1999-11-04  Nick Garnett  <nickg@cygnus.co.uk>

	* src/vectors.S: Added code in reset vector to reset the config0
	register to a known state. This is because on some MIPS variants
	the K0 field comes up in an undefined state.
	[Later] Moved this code to just work in the case of a cold boot.
	NMIs and warm boots should leave it as it was.

1999-11-02  Jesper Skov  <jskov@cygnus.co.uk>

	* cdl/hal_mips.cdl: Added.

1999-10-29  Nick Garnett  <nickg@cygnus.co.uk>

	* include/pkgconf/hal_mips.h: Added condition to set a
	MIPS-private option (CYGDBG_HAL_MIPS_DEBUG_GDB_CTRLC_SUPPORT) if
	either CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT or
	CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT are defined. In the MIPS HAL
	these are implmented with the same code.

	* src/hal_misc.c: Changed CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT to
	CYGDBG_HAL_MIPS_DEBUG_GDB_CTRLC_SUPPORT.

	* src/vectors.S: Space for old SP after switching to interrupt
	stack must be 8 bytes to preserve alignment of SP. Otherwise any
	nested interrupts or exceptions will get an address error
	exception if the FP regs are saved, which then recurses.
	Changed CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT to
	CYGDBG_HAL_MIPS_DEBUG_GDB_CTRLC_SUPPORT.
	
	* src/mips-stub.c (__is_breakpoint_function): Fixed comparison
	between PC register and label. On 64 bit CPUs these are both 32
	bit values in 64 bit types, but the way that they are generated,
	the PC is zero extended and the label is sign extended. This
	caused them to always differ. Fixed by casting label to unsigned
	long before widening.

1999-10-22  Nick Garnett  <nickg@cygnus.co.uk>

	* src/vectors.S: Replaced ifdef with call to hal_intc_translate
	macro so the behaviour here may be customized by variant or
	platform HALs.

	* include/arch.inc: Added default implementations of
	hal_intc_translate macro.

1999-10-05  Nick Garnett  <nickg@cygnus.co.uk>

	* include/basetype.h: Made definition of CYG_BYTEORDER dependent
	on definition of CYGPKG_HAL_MIPS_[L|M]SBFIRST.

1999-09-17  Jonathan Larmour  <jlarmour@cygnus.co.uk>

	* src/vectors.S (__default_exception_vsr):
	Rename exception_handler()->cyg_hal_exception_handler()
	After all, we will just do a jump rather than a jal into
	cyg_hal_exception_handler()
	(restore_state): Make the change below (by Hugo) be conditional
	on CYG_HAL_USE_ROM_MONITOR_CYGMON.
	Add explanatory comment about the additions for Cygmon

	* src/hal_misc.c (hal_default_isr): Use new format HAL_DIAG_IRQ_CHECK()
	and check return code is negative; if so, return
	(cyg_hal_exception_handler): Rename from exception_handler()
	Now return cyg_uint32, but default to returning 0 always

1999-09-16  Hugo Tyson  <hmt@cygnus.co.uk>

	This set of changes with matching ones in jmr3904 comes from Mark
	Salter's work to make jmr3904 CygMon talk Ethernet.
	
	* src/vectors.S (restore_state): Call CygMon for exceptions or
	unhandled interrupts if CYG_HAL_USE_ROM_MONITOR.  This is why the
	return value from the ISR is preserved.  Don't fully understand
	this.

	* src/hal_misc.c (hal_default_isr): Call into hal_diag via
	HAL_DIAG_IRQ_CHECK if it's defined and CYG_HAL_USE_ROM_MONITOR.
	This lets CygMon check for network interrupts &c.

1999-09-09  Nick Garnett  <nickg@cygnus.co.uk>

	* include/arch.inc:
	Moved code to initialize cache out to variant header since it is
	variant specific.

1999-09-08  Jonathan Larmour  <jlarmour@cygnus.co.uk>

	* src/hal_misc.c (exception_handler): Catch exceptions that come from
	within GDB stubs and return if that's what the stubs intend

1999-08-19  Nick Garnett  <nickg@cygnus.co.uk>

	* include/hal_io.h: Added include of plf_io.h.

1999-08-10  Jonathan Larmour  <jlarmour@cygnus.co.uk>

	* src/mipsfp.c (cyg_hal_mips_process_fpe): CYG_REPORT_FUNCNAMETYPE()
	must be first in a C file

1999-07-15  Jonathan Larmour  <jlarmour@cygnus.co.uk>

	* include/arch.inc (hal_fpu_save_caller): Save fcr31 first as
	recommended by user's manual
	(hal_fpu_load_caller): Similarly restore fcr31 last

	Rename CYG_HAL_MIPS_FSR_INIT to CYG_HAL_MIPS_FCSR_INIT since that's
	closer to its documented name

	* include/mips-regs.h: 
	Add floating point register definitions, and bitfields/masks for FCR31
	in particular

	* src/mips-stub.c (__single_step):
	Enable FP branch support if the hardware has an FPU.

	Change register access to FCR using HAL macro names from mips-regs.h

	When comparing branch tests with 0, cast the result of get_register()
	to int so that it works on 64-bit MIPS targets even in 32-bit mode,
	when GDB still insists REG_SIZE must be 8 (in which case negative
	results would otherwise go positive)
	
	* src/mipsfp.c: New file to emulate unimplemented MIPS FP operations
	* src/PKGconf.mak (COMPILE): compile it

	* src/hal_misc.c (exception_handler): If we have an FPU and get an FP
	exception, call cyg_hal_mips_process_fpe() from mipsfp.c to process
	it


1999-07-09  Jonathan Larmour  <jlarmour@cygnus.co.uk>

	* include/mips.inc:
	* include/arch.inc:
	* src/vectors.S:
	Rename "cache" register to "cachectrl" to prevent confusion with
	the "cache" instruction.
	For symmetry therefore also rename mipsreg_cache to mipsreg_cachectrl

	* include/arch.inc (hal_cache_init):
	Invalidate caches at startup

	* include/hal_cache.h:
	Allow cache invalidation when cache disabled
	Add _HAL_ASM_SET_MIPS_ISA() to allow use of cache macros in code
	compiled with a MIPS ISA below 3

1999-06-25  Nick Garnett  <nickg@cygnus.co.uk>

	* include/arch.inc:
	* include/hal_arch.h:
	Added initializer for FPU FSR register.

1999-06-22  Nick Garnett  <nickg@cygnus.co.uk>

	* src/hal_misc.c (hal_default_isr): When chaining, always try the
	ctrlc ISR, the passed-in vector number can be bogus.

1999-06-18  Nick Garnett  <nickg@cygnus.co.uk>

	* src/hal_misc.c:
	Added cyg_hal_clock_period variable.	
	
	* include/hal_intr.h:
	Modified HAL_CLOCK_LATENCY() macro to do the right thing.
	Added cyg_hal_clock_period variable.	

	* include/hal_cache.h: Modified implementations of cache macros to
	only do anything if the appropriate cache is enabled.

1999-06-17  Nick Garnett  <nickg@cygnus.co.uk>

	* src/vectors.S: Added code to discriminate different entry
	conditions to the reset vector. Added code to translate an NMI
	into a standard exception and added a new vector in the VSR table
	for it.
	Made above code not be present in RAM. Tidied away some debug
	code.

1999-06-11  Jonathan Larmour  <jlarmour@cygnus.co.uk>

	* src/hal_misc.c: Make sure all symbol addresses are given an
	appropriate type that they won't be relocated relative to $gp
	Fix for CR 100800
	
1999-06-10  Nick Garnett  <nickg@cygnus.co.uk>

	* include/hal_arch.h: Added macros to copy FPU registers between
	HAL and GDB register save states.

1999-06-08  Nick Garnett  <nickg@cygnus.co.uk>

	* src/vectors.S: Dummy __gccmain did not have a delay slot after
	the "jr ra".

	* include/hal_arch.h: Make value of CYGNUM_HAL_STACK_SIZE_TYPICAL
	always be greater than CYGNUM_HAL_STACK_SIZE_MINIMUM.

1999-06-02  Jonathan Larmour  <jlarmour@cygnus.co.uk>

	* src/hal_misc.c (cyg_hal_invoke_constructors): 
	Rework for new constructor scheme for new compilers. Should work
	with old compilers too.

1999-05-28  Nick Garnett  <nickg@cygnus.co.uk>

	* src/vectors.S:
	Removed references to CYG_HAL_STARTUP_STUBS.
	Removed some defunct code.

	* include/hal_cache.h (HAL_ICACHE_INVALIDATE_ALL): Fixed typo.

1999-05-27  Nick Garnett  <nickg@cygnus.co.uk>

	* src/vectors.S:
	Move call to hal_diag_intr_start to a more useful place.
	Added a save of the current state pointer to memory for ctrl-c
	support. Ensure that exceptions are enabled before calling the ISR
	to allow breakpoints to function.

	* src/mips-stub.c: Imported asynchronous interrupt support from
	libstub/cygmon.

	* include/hal_intr.h: Added HAL_DEFAULT_ISR to contain the name of
	the default ISR.

	* src/hal_misc.c: Added code to call HAL_CTRLC_ISR to default ISR
	if it is enabled. Added some (disabled) debug code.

	* include/hal_cache.h: Added default implementation of
	HAL_DCACHE_IS_ENABLED(). Made use of it in some cache macros.
	Also fixed some typos in some macros.

1999-05-21  Hugo Tyson  <hmt@cygnus.co.uk>

	* include/hal_intr.h: Define HAL_INTERRUPT_STACK_BASE and
	HAL_INTERRUPT_STACK_TOP so that stack usage macros in
	kernel/.../stackmon.hxx can work.

	* src/vectors.S (cyg_interrupt_stack_base): Define this symbol for
	the interrupt stack and its friend for the stack top so that we
	can publish them with nice names.

1999-05-21  Nick Garnett  <nickg@cygnus.co.uk>

	* src/vectors.S: 
	Rationalized use of "at" and "noat" setting.
	Made use of "lar" where necessary.
	
	* src/mips-stub.c (__install_breakpoints): Added cache flushes to
	ensure that the just-set breakpoint is migrated to main memory and
	will be fetched by the instruction cache.

	* src/context.S:
	Rationalized use of "at" and "noat" setting.

	* include/arch.inc:
	Added initial value for the config0 register and added code to set
	it to hal_cpu_init.
	Added default "lar" macro.

1999-05-16  Gary Thomas  <gthomas@cygnus.co.uk>

	* include/hal_intr.h (HAL_INTERRUPT_STACK_CALL_PENDING_DSRS): 
	Add macro for new DSR handling mechanism (was override of a
	"weak" symbol in kernel).	

1999-05-13  Nick Garnett  <nickg@cygnus.co.uk>
	The following have been merged from a branch:
	
    1999-05-11  Nick Garnett  <nickg@cygnus.co.uk>

	* include/hal_arch.h: 
	* include/hal_intr.h: 
	* include/hal_cache.h: 
	* include/arch.inc:
	Changed references to "imp" and "implementation" to "var" and
	"variant" respectively. These are better names for these files and
	functions.

	* src/vectors.S: 
	Removed or disabled some development/debug code.
	Same imp->var changes as above.
	
    1999-05-06  Nick Garnett  <nickg@cygnus.co.uk>

	* src/vectors.S: Added call to hal_cpu_except_enable in
	__default_exception_vsr to re-enable nested exceptions.

	* src/mips-stub.c: Use _registers[X] rather that register[X] for
	accessing CPU registers, since the former may point to per-thread
	register sets while the latter only refers to the current trap
	register set.

	* include/arch.inc: Added hal_cpu_except_enable macro to
	(re-)enable exception processing and disable interrupts. This is
	necessary if we are to allow nested exceptions (like breakpoints
	in exception handlers).

    1999-04-29  Nick Garnett  <nickg@cygnus.co.uk>

	* src/vectors.S: Reenable interrupts while processing exceptions.
	Several temporary kludges to permit us to test ROM code from RAM
	under PMON.

	* include/mips.inc: Extended list of CP0 register aliases.

	* include/mips-stub.h: The stubs must behave as if we are on a 64
	bit processor when debugging the VR4300, since that is what GDB
	expects.
	
	* include/arch.inc: Added generic version of hal_cache_init to
	disable kseg0 caching in config0 register.

	* include/hal_cache.h: Moved dummy addresses used in index
	operations to 0x80000000, zero caused MMU exceptions.
	Fixed looping bugs in all macros that use them.

    1999-04-28  Gary Thomas  <gthomas@cygnus.co.uk>

	[v1_2_2_beta branch]
	* src/vectors.S: Add dummy "__gccmain()"

    1999-04-27  Gary Thomas  <gthomas@cygnus.co.uk>

	* include/hal_arch.h: Make minimum stack sizes more realistic.
	Also fix size of interrupt stack frame when FPU present.

    1999-04-23  Nick Garnett  <nickg@cygnus.co.uk>

	* src/vectors.S: Added support for floating point register save
	and restore. Fixed hal_interrupt_stack_call_pending_DSRs to use
	hal_cpu_int_merge macro.

	* src/context.S: Added support for floating point register save
	and restore. Started some preparations for 64 bit processor
	support.

	* include/mips.inc: Added floating point register aliases. Moved
	saved state to arch.inc.

	* include/hal_arch.h: Completed support for floating point state
	save and restore. Parameterized GDB support macros a little to
	enable GDB to work properly.

	* include/arch.inc: Added support for floating point state save
	and restore. Moved assembler version of saved state layout here
	from mips.inc.

    1999-04-22  Nick Garnett  <nickg@cygnus.co.uk>

	* src/context.S (hal_thread_load_context): Substituted explicit
	code to reload the interrupt enable state with a macro.

	* include/hal_cache.h: Removed default implementations of
	HAL_[D/I]CACHE_[EN/DIS]ABLE since these were actually TX39
	specific. There is aparrently no standard way of implementing
	these function in the MIPS architecture.

	* include/mips.inc: Added a comment to point out a TX39-only
	register.
	
	* src/vectors.S: Modified hal_interrupt_stack_call_pending_DSRs()
	to also call DSRs with interrupts enabled. Returns interrupt state
	to original value when finished.
	Use hal_cpu_int_ensable macro in place of explicit code in
	hal_interrupt_stack_call_pending_DSRs().

    1999-04-21  Nick Garnett  <nickg@cygnus.co.uk>

	* include/arch.inc: Ifdeffed definition of hal_intc_init macro to
	allow it to be defined elsewhere. Added default versions of diag
	macros.

	* src/vectors.S: Added some low-level diagnostic macros to show
	HAL events if there is adequate hardware (such as leds).
	Removed interrupt enable/disables in interrupt processing since we
	can now go through a thread switch with interrupts disabled.
	Ifdeffed ISR tables so they can be defined elsewhere.
	Added implementation of hal_interrupt_stack_call_pending_DSRs.
	Added calls to implementation and platform init routines.
	
	* src/hal_misc.c: Many changes to hal_idle_thread_action() to
	print or instrument various CPU registers. Left with code to
	wiggle an led in the idle loop.
	Stripped out TX39 specific code and moved it to plf_misc.c.
	
	* src/context.S: Added code to save and restore the interrupt mask
	state in thread contexts.

	* include/hal_intr.h:
	Renamed default interrupts to match the hardware more closely.
	Added ifdef around HAL_TRANSLATE_VECTOR() so it can be made
	platform/variant specific. Added implementation of
	HAL_INTERRUPT_ACKNOWLEDGE().

	* include/hal_arch.h (HAL_THREAD_INIT_CONTEXT): Aligned the
	intitial stack pointer to 16 byte boundary, added an initial value
	for the status register.

	* include/arch.inc: Added some nops to eret macros.

    1999-04-13  John Dallaway  <jld@cygnus.co.uk>

	* src/mips.ld: Migrate global MIPS linker script to individual
	MIPS variant directories

1999-04-30  Hugo Tyson  <hmt@cygnus.co.uk>

	Merge the following changes from the 1.2.1 release branch,
	but without any CDL for CYGDBG_HAL_MIPS_INSTALL_CTRL_C_ISR,
	it is always on.

    1999-04-30  Jesper Skov  <jskov@cygnus.co.uk>
	* src/hal_misc.c: Added vector decoding to the below.
    1999-04-30  Hugo Tyson  <hmt@masala.cygnus.co.uk>
	* src/hal_misc.c (hal_init_ctrlc_intr): Chain onto the old value
	of the ISR when attaching the ctrl-c ISR; this allows chained
	interrupts to work (otherwise a stack-wrecking interrupt loop
	occurs).
    1999-04-29  Hugo Tyson  <hmt@cygnus.co.uk>
	* include/pkgconf/hal_tx39.h (CYGDBG_HAL_MIPS_INSTALL_CTRL_C_ISR): 
	New config option, on by default.
	* src/hal_misc.c (hal_ctrlc_isr): Enable these features on
	CYGDBG_HAL_MIPS_INSTALL_CTRL_C_ISR new config option.

1999-04-28  Bart Veer  <bartv@cygnus.co.uk>

	* src/PKGconf.mak:
	Remove the -n argument to tail, it does not appear to be required
	on any supported host and causes problems with some
	implementations of tail.

1999-04-20  Jonathan Larmour  <jlarmour@cygnus.co.uk>

	* include/hal_intr.h: Don't sync TRR if platform sim - it doesn't need
	it

	* include/pkgconf/hal_tx39.h: 
	Allow CYGARC_TX39_PR19846 to override
	CYGHWR_HAL_MIPS_TX3904_TRR_REQUIRES_SYNC so that we can do something
	sensible in the simulators
	
	Related to PR 19846

1999-04-15  Jonathan Larmour  <jlarmour@cygnus.co.uk>

	* src/tx39.ld: Define __bss_end at the end of the BSS
	* src/hal_misc.c (hal_zero_bss): Stop at __bss_end rather than _end
	when clearing BSS
	These fix PR 19750

1999-04-15  Jonathan Larmour  <jlarmour@cygnus.co.uk>

	* src/hal_misc.c:
	* src/vectors.S:
	Separate parts of cyg_hal_invoke_constructors() out into new functions
	cyg_hal_enable_caches() and cyg_hal_debug_init() so that
	cyg_hal_invoke_constructors() can be called again safely if
	necessary
	Related fix to that of PR19642

1999-04-14  Jonathan Larmour  <jlarmour@cygnus.co.uk>

	* src/PKGconf.mak (EXTRAS): Don't generate extras.o here any more
	But do define EXTRAS every time for the linker script

1999-04-13  Jonathan Larmour  <jlarmour@cygnus.co.uk>

	* include/hal_intr.h (HAL_CLOCK_READ): 
	Add workaround for tx39 bug - needs to sync and wait for the
	write buffer to clear before reading the clock.
	Submitted by akira.yokosawa@toshiba.co.jp

	* include/pkgconf/hal_tx39.h
	(CYGHWR_HAL_MIPS_TX3904_TRR_REQUIRES_SYNC): Define this by default
	to implement above

1999-04-12  Jonathan Larmour  <jlarmour@cygnus.co.uk>

	* include/hal_intr.h (HAL_VSR_SET_TO_ECOS_HANDLER): Added.
	(HAL_VSR_SET): Cast types to CYG_ADDRESS to prevent warnings

	Part of fix for PRs 19731/19607

1999-04-09  Jesper Skov  <jskov@cygnus.co.uk>

	* src/mips-stub.c: 
	Moved get_register and put_register to hal_stub.c.

1999-04-08  John Dallaway  <jld@cygnus.co.uk>

	* src/*.ld: Use double underscore substitution for period
	character in SECTION_* macro names (PR 19787)

1999-04-08  John Dallaway  <jld@cygnus.co.uk>

	* src/*.ld: Revised SECTION_* macro arguments to
	avoid padded output sections (PR 19787)

1999-03-31  Nick Garnett  <nickg@cygnus.co.uk>

	* include/hal_cache.h: Added include of hal.h and a test that a
	valid set of macros have been added.
	Also moved address used in HAL_DCACHE_INVALIDATE_ALL() to
	0x9fc00000, which is the cached ROM space.

1999-03-24  Nick Garnett  <nickg@cygnus.co.uk>

	* src/vectors.S:
	Added options to allow different settings for DRAM initialization.
	Fixed some ifdef bugs. 

	* src/hal_misc.c (cyg_hal_invoke_constructors):
	Added ifdefs to control enabling and disabling of timeout
	exceptions.

	* include/pkgconf/hal_tx39.h:
	Added translations from the user friendly CPU speed settings into
	the real CPU frequencies in Hz.

	* include/hal_intr.h:
	Added HAL_TX39_DEBUG_TOE_ENABLE() and ...DISABLE, to switch
	timeout exceptions on and off.

1999-03-23  Nick Garnett  <nickg@cygnus.co.uk>

	* include/hal_arch.h:
	Modified stack size definitions to be more accurate.

1999-03-22  Jonathan Larmour  <jlarmour@cygnus.co.uk>

	* include/mips-regs.h: Update copyright

	* include/mips-stub.h: Update copyright

	* src/mips-stub.c: Update copyright

1999-03-22  Hugo Tyson  <hmt@cygnus.co.uk>

	* include/hal_arch.h: 
	Use CYGNUM_HAL_STACK_SIZE_TYPICAL for the stack size instead of
	CYGNUM_HAL_MINIMUM_STACK_SIZE.

1999-03-17  Jonathan Larmour  <jlarmour@cygnus.co.uk>

	* src/hal_misc.c (cyg_hal_user_break): Remove #warning - it doesn't
	really provide any useful info, and may unnecessarily worry a user
	since it fires in normal situations

1999-03-17  John Dallaway  <jld@cygnus.co.uk>

	* src/PKGconf.mak: Remove dependence on echo '-e' switch.

1999-03-16  Nick Garnett  <nickg@cygnus.co.uk>

	* src/vectors.S: Removed definition of idle thread stack. 

1999-03-15  Nick Garnett  <nickg@cygnus.co.uk>

	* include/hal_cache.h:
	Changed implementation of HAL_DCACHE_INVALIDATE_ALL() to read from
	ROM space rather than RAM. This fixes PR 19510.

1999-03-12  Nick Garnett  <nickg@cygnus.co.uk>

	* src/vectors.S: Modified ROMC and SCS settings in line with
	Toshiba's suggestions for compatibility with other CPU variants.

1999-03-12  Gary Thomas  <gthomas@cygnus.co.uk>

	* include/hal_arch.h: Add definition for 'CYGNUM_HAL_MINIMUM_STACK_SIZE'

1999-03-11  Nick Garnett  <nickg@cygnus.co.uk>

	* src/hal_misc.c:
	Disabled use of stand-alone ^C detection interrupt. This is now
	done in the serial driver. Added cyg_hal_is_break() and
	cyg_hal_user_break() to detect and provoke ^C processing. These
	are used by the serial driver and will one day interact with the
	BSP/Cygmon/GDB stubs to do the right thing.

1999-03-10  Jesper Skov  <jskov@cygnus.co.uk>

	* include/hal_intr.h (HAL_INTERRUPT_IN_USE): Added.

1999-03-10  Nick Garnett  <nickg@cygnus.co.uk>

	* include/pkgconf/hal_tx39.h: 
	* src/vectors.S:
	Changed names used to control CPU frequency into something more
	generic. Moved definition into hal_tx39.h from hal_tx39_jmr3904.h.

1999-03-09  Jesper Skov  <jskov@cygnus.co.uk>
        PR 19370
	* src/hal_misc.c (cyg_hal_invoke_constructors): Changed
	constructor loop.

1999-03-05  Gary Thomas  <gthomas@cygnus.co.uk>

	* src/tx39.ld: 
	* src/PKGconf.mak: Clean up I/O package changes.

1999-03-04  Jonathan Larmour  <jlarmour@cygnus.co.uk>

	* src/tx39.ld: 
	Add INPUT(libextras.a), include libextras.a in GROUP() and include 
	new __DEVTAB__ section for new device drivers

1999-02-25  Nick Garnett  <nickg@cygnus.co.uk>

	* src/vectors.S:
	Changed label used to access scheduler lock to one that is not
	mangled by C++. This is intended to make support for interrupt
	handling in non-kernel configurations easier.
	Added some code to initialize DRAM in ROM-only configurations.

1999-02-23  Nick Garnett  <nickg@cygnus.co.uk>

	* src/hal_misc.c: 
	Added support for SIGINT-causing magic breakpoint. This involves
	passing a third, hidden argument to hal_ctrlc_isr() which is a
	pointer to the saved CPU state.
	
	* src/vectors.S:
	Added support for 66MHz part (untested).
	Added support for SIGINT-causing magic breakpoint to allow
	continuation after ^C. This also relies on CYGMON changes.

1999-02-20  Jonathan Larmour  <jlarmour@cygnus.co.uk>

	* include/hal_arch.h: 
	Rename deliver_exception() -> cyg_hal_deliver_exception()
	QA improvements

	* include/hal_intr.h:
	Reorganise vector/interrupt/exception names according to purpose
	QA improvements

	* src/hal_misc.c:
	Rename deliver_exception() -> cyg_hal_deliver_exception()
	Rename CYG_VECTOR_SIO_0 -> CYGNUM_HAL_INTERRUPT_SIO_0

1999-02-16  Jesper Skov  <jskov@cygnus.co.uk>

	* src/vectors.S: Added call to initialize_stub.

	* src/mips-stub.c: 
	* include/mips-stub.h:
	Cleaned up to only include arch specific stub code.

	* include/hal_arch.h (HAL_BREAKPOINT): Added SIM breakpoint code
	from (now dead) jmr3904/.../hal_stub.c.

1999-02-05  John Dallaway  <jld@cygnus.co.uk>

	* src/mips.ld: Rename to tx39.ld since this is the target name
        * src/PKGconf.mak: Process tx39.ld instead of mips.ld

1999-02-05  John Dallaway  <jld@cygnus.co.uk>

	* src/mips.ld: Add LMA_EQ_VMA macro definition.

1999-02-03  Jesper Skov  <jskov@cygnus.co.uk>

	* src/hal_misc.c: 
	* include/hal_cache.h:
	Moved nested external declarations into top-level scope to avoid
	compiler warnings.

1999-02-02  Nick Garnett  <nickg@cygnus.co.uk>

	* include/hal_cache.h :
	In HAL_ICACHE_INVALIDATE_ALL() and HAL_ICACHE_INVALIDATE(), fixed
	typos in passing arguments to asm sections.
	Fixes PR 18951.

1999-01-26  Hugo Tyson  <hmt@masala.cygnus.co.uk>

	* src/mips.ld:
	Add copyright notice.  (Though these files will later be generated
	by a tool and so not copyright, these default setups are.)

1999-01-21  Jonathan Larmour  <jlarmour@cygnus.co.uk>

	* src/hal_misc.c (cyg_hal_invoke_constructors): 
	Add code to deal with CYGSEM_HAL_STOP_CONSTRUCTORS_ON_FLAG
	Tidy up and update description header
	Shorten needlessly long lines
	Remove all traces of non-CYG_KERNEL_USE_INIT_PRIORITY code

1999-01-15  Hugo Tyson  <hmt@cygnus.co.uk>

	* src/mips.ld:
	Provide alternate definition of macro SECTION_rom_vectors() for
	RAM startup (CYG_HAL_STARTUP_RAM) so that minimal sim testing
	works.  Note: this is an instance where two definitions (of
	identical "API") of a macro occur in the prototype <target>.ld
	file; the MLT is required not to be confused by this.

1999-01-15  John Dallaway  <jld@cygnus.co.uk>

      * src/mips.ld: add section macro for .vsr_table

1999-01-13  John Dallaway  <jld@cygnus.co.uk>

      * src/mips.ld: add section macro for .rel.dyn

1999-01-13  John Dallaway  <jld@cygnus.co.uk>

      * src/mips.ld: new linker script for MLT
      * src/PKGconf.mak: add mips.ld rules for MLT

1999-01-13  Gary Thomas  <gthomas@cygnus.co.uk>

	* include/basetype.h: CYG_DOUBLE_BYTEORDER now in <infra/cyg_type.h>

1999-01-12  Gary Thomas  <gthomas@cygnus.co.uk>

	* include/basetype.h (CYG_DOUBLE_BYTEORDER): Define ordering
	for words within doubles.

1999-01-12  Nick Garnett  <nickg@cygnus.co.uk>

	* include/hal_cache.h: 
	Modified HAL_DCACHE_INVALIDATE_ALL() to correctly touch all cache
	lines twice to ensure that the cache and memory are
	consistent. This is the best we can do without direct support for
	invalidation.
	
	* src/hal_misc.c: Altered call to patch_dbg_syscalls() to pass
	pointer to base of vector rather than a single vector entry.

1998-12-15  Jesper Skov  <jskov@cygnus.co.uk>
        PR 18543

	* include/hal_cache.h (HAL_DCACHE_INVALIDATE): Fixed variable
	name.

1998-12-15  Jesper Skov  <jskov@cygnus.co.uk>

	* include/hal_arch.h: 
	* src/context.S (hal_setjmp, hal_longjump):
	Added CYGARC definitions for jmpbuf entries.
	Corrected jmpbuf size.

1998-12-10  Jesper Skov  <jskov@cygnus.co.uk>

	* include/hal_cache.h (HAL_DCACHE_UNLOCK_ALL,
	HAL_ICACHE_UNLOCK_ALL): Added.

1998-11-26  Jesper Skov  <jskov@cygnus.co.uk>

	* include/mips-regs.h:
	* src/mips-stub.c:
	Added use of CYGARC_HAL_COMMON_EXPORT_CPU_MACROS.

1998-11-18  Gary Thomas  <gthomas@cygnus.co.uk>

	* include/hal_intr.h: Add support for interrupt latency
	measurements, controlled by CYGVAR_KERNEL_COUNTERS_CLOCK_LATENCY.

1998-10-27  Jesper Skov  <jskov@cygnus.co.uk>
        PR 18033

	* include/hal_intr.h: Replaced CYGIMP_HAL_INTERRUPTS_CHAIN
	with the correct CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN.

1998-10-27  Jesper Skov  <jskov@cygnus.co.uk>
        PR 18021
	* src/hal_misc.c (hal_ctrlc_isr): Removed break; to prevent
	compiler error.

1998-10-25  Jesper Skov  <jskov@cygnus.co.uk>

	* src/mips-stub.c (__build_t_packet): Replaced
	CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT with
	CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT. 
	Fixed #endif comment.

	* src/hal_misc.c (hal_ctrlc_isr): Replaced
	CYGDBG_KERNEL_DEBUG_GDB_INCLUDE_STUBS with
	CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS.

	* include/hal_intr.h: Replaced CYGIMP_KERNEL_INTERRUPTS_CHAIN with
	CYGIMP_HAL_INTERRUPTS_CHAIN.

1998-10-23  Jesper Skov  <jskov@cygnus.co.uk>

	* include/hal_intr.h: Include pkgconf/hal.h.

1998-10-16  Bart Veer  <bartv@cygnus.co.uk>

	* src/vectors.S (__interrupt_stack):
	Made the interrupt stack size configurable.

1998-10-16  Nick Garnett  <nickg@cygnus.co.uk>

	* src/hal_misc.c:
	Enabled caches by default.

1998-10-14  Nick Garnett  <nickg@cygnus.co.uk>

	* src/context.S (hal_thread_switch_context):
	Store copy of R31(RA) in PC slot in register state to keep GDB
	happy.
	* include/hal_arch.h (HAL_THREAD_INIT_CONTEXT):
	Intialize PC slot in register state.

	* src/hal_misc.c:
	Altered ifdefs to allow building without kernel present.

	* include/mips-stub.h:
	Include generic-stub.h from HAL rather than from kernel.

	* src/mips-stub.c:
	Added signal definitions to avoid including signal.h.

	* include/hal_intr.h:
	Added implementations of HAL_INTERRUPT_ACKNOWLEDGE() and
	HAL_INTERRUPT_SET_LEVEL().

1998-10-13  Jesper Skov  <jskov@cygnus.co.uk>

	* src/hal_misc.c: Use GDB array rather than HAL_SavedRegisters
	structure. Rely on generic stub to pack/unpack the array.

	* include/hal_arch.h (HAL_GET_GDB_REGISTERS,
	HAL_SET_GDB_REGISTERS): get/set full register set.

1998-10-13  Jesper Skov  <jskov@cygnus.co.uk>

	* include/mips-stub.h: Moved first use of regnames below
	definition.

Sun Sep 27 12:17:42 1998  Jesper Skov  <jskov@cygnus.co.uk>

	* include/hal_cache.h (HAL_DCACHE_LOCK): Terminate asm string.

1998-09-26  Nick Garnett  <nickg@cygnus.co.uk>

	* include/hal_cache.h:
	Cleaned up some compilation errors.

Tue Sep 15 19:13:43 1998  David Moore  <dsm@keema.cygnus.co.uk>

	* src/vectors.S: Cleaned up comments.

1998-09-15  Nick Garnett  <nickg@cygnus.co.uk>

	* include/hal_arch.h (HAL_GET_GDB_REGISTERS):
	Initialized R30 to a copy of SP to avoid GDB making bogus memory
	references.

	* src/hal_misc.c:
	Added support for Ctrl-C processing when running under Cygmon.
	Fixed a compiler warning.

1998-09-14  Bart Veer  <bartv@cygnus.co.uk>

	* src/PKGconf.mak:
	Made vectors.o dependent on the various files that can contain
	makefile variables or rules. This is needed after changes to
	pkgconf.tcl for PRs 17195 and 17286.

Mon Sep 14 11:10:20 1998  Jesper Skov  <jskov@lassi.cygnus.co.uk>
        PR 17230
	
	* src/vectors.S: Replaced CYGIMP_KERNEL_INTERRUPTS_CHAIN with new
 	CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN.

1998-09-14  Nick Garnett  <nickg@cygnus.co.uk>
        PR 17230

	* include/hal_intr.h:
	Added HAL_TRANSLATE_VECTOR() to translate a supplied vector number
	into one that can be used in the HAL. Added calls to it in
	HAL_INTERRUPT_ATTACH() and HAL_INTERRUPT_DETACH().

1998-09-12  Bart Veer  <bartv@cygnus.co.uk>

	* include/pkgconf/hal_tx39.h:
	Added missing descriptions (PR 17184)

	* src/vectors.S:
	<pkgconf/kernel.h> was being included without properly checking
	that the kernel package was enabled.

	* src/hal_misc.c (exception_handler): 
	Sort out exception handling options (PR 16953)

1998-09-11  Nick Garnett  <nickg@cygnus.co.uk>
        PR 17230
	
	* src/vectors.S (__default_interrupt_vsr):
	Modified interrupt decode code to preserve raising interrupt
	number to pass to ISR, even when using chained interrupts.

1998-09-03  Bart Veer  <bartv@cygnus.co.uk>

	* src/mips-stub.c:
	Fixed type in config option name.

1998-09-02  Bart Veer  <bartv@cygnus.co.uk>

	* include/pkgconf/hal_tx39.h: 
	New header file for architecture-specific configuration options
	
	* tests/PKGconf.mak: 
	* src/PKGconf.mak: 
	Sort out package naming conventions.
	
Tue Sep  1 19:26:45 1998  Hugo Tyson  <hmt@cygnus.co.uk>

	* src/hal_misc.c: 
	Use CYGDBG_INFRA_DIAG_USE_DEVICE (from infra.h) instead of
	CYG_DIAG_USE_DEVICE (badly named, from kernel.h).

1998-09-01  Nick Garnett  <nickg@cygnus.co.uk>

	* include/hal_intr.h:
	Added CYG_EXCEPTION_COUNT.

1998-08-28  Bart Veer  <bartv@cygnus.co.uk>

	* src/vectors.S, src/context.S, src/hal_misc.c, src/mips-stub.c:
	Updated for new kernel configuration option symbol names

Fri Aug 28 10:01:24 1998  Jonathan Larmour  <jlarmour@cygnus.co.uk>

	* src/hal_misc.c:
	Rename __main() to cyg_hal_invoke_constructors() to prevent the
	implied link with things called, or related to main(). Remove static
	initialised variable as we can now guarantee it is only called
	once.

	* src/vectors.S:
	Instead of calling main(), call cyg_start() which lives in the infra
	package.
	Explicitly invoke constructors as it isn't done magically for us
	any more, now that main() is no longer used.
	

1998-08-25  Nick Garnett  <nickg@cygnus.co.uk>

	* src/vectors.S:
	Now pass pointer to saved registers as third argument to
	interrupt_end().

	* include/hal_arch.h:
	Added macros to support GDB.

Tue Aug 25 02:33:59 1998  Jonathan Larmour  <jlarmour@cygnus.co.uk>

	* include/mips_stub.h, src/hal_misc.c: 
	Add void to prototypes and typedefs that want it to silence warnings

1998-08-21  Nick Garnett  <nickg@cygnus.co.uk>

	* include/hal_cache.h:
	Now includes cyg_type.h rather than ktypes.h.	

1998-08-18  Nick Garnett  <nickg@cygnus.co.uk>

	* src/context.S: 
	* include/hal_arch.h: 
	* include/hal_io.h: 
	* include/hal_intr.h:
	Now uses cyg_type.h rather than ktypes.h.

	* src/hal_misc.c: 
	* src/vectors.S:
	Now uses hal.h rather than kernel.h.

1998-07-23  Nick Garnett  <nickg@cygnus.co.uk>

	* include/hal_intr.h: Fixed some issues raised bt code review.

	* src/context.S: 
	* include/hal_arch.h: Fixed some typos raised by code review.

	* include/hal_intr.h (HAL_INTERRUPT_MASK): 
	* src/vectors.S (hal_interrupt_level): Added hal_interrupt_level
	to allow for interaction between HAL_INTERRUPT_UNMASK() and
	HAL_INTERRUPT_SET_LEVEL().
	

//===========================================================================
//####COPYRIGHTBEGIN####
//                                                                          
// -------------------------------------------                              
// The contents of this file are subject to the Red Hat eCos Public License 
// Version 1.1 (the "License"); you may not use this file except in         
// compliance with the License.  You may obtain a copy of the License at    
// http://www.redhat.com/                                                   
//                                                                          
// Software distributed under the License is distributed on an "AS IS"      
// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
// License for the specific language governing rights and limitations under 
// the License.                                                             
//                                                                          
// The Original Code is eCos - Embedded Configurable Operating System,      
// released September 30, 1998.                                             
//                                                                          
// The Initial Developer of the Original Code is Red Hat.                   
// Portions created by Red Hat are                                          
// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
// All Rights Reserved.                                                     
// -------------------------------------------                              
//                                                                          
//####COPYRIGHTEND####
//===========================================================================
