Mercurial > ecos
diff packages/hal/sparclite/sleb/current/ChangeLog @ 2:443894e2e912 ecos-v1_2_1-release
Block commit of eCos version 1.2.1
| author | jlarmour |
|---|---|
| date | Tue, 11 May 1999 12:24:34 +0000 |
| parents | |
| children | 1d7f19c9e4d1 |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/packages/hal/sparclite/sleb/current/ChangeLog @@ -0,0 +1,376 @@ +1999-04-09 Hugo Tyson <hmt@cygnus.co.uk> + + * include/hal_cache.h (HAL_[DI]CACHE_IS_ENABLED): + Implement these macros. + +1999-04-09 Hugo Tyson <hmt@cygnus.co.uk> + + * include/halboot.si: Use 10 wait states for access to the 86940 + on CS1; it seems to make the Reliability Difference(tm). + +1999-04-08 Hugo Tyson <hmt@cygnus.co.uk> + + * tests/slebtime.cxx: Add CYG_INIT_PRIORITY( APPLICATION ) to the + two static thread objects so that the test works even when libc + steals away the default constructors. Unfortunately this also + means switching to an assignment constructor instead of a call. + +1999-04-08 John Dallaway <jld@cygnus.co.uk> + + * include/pkgconf/*.ldi: Revised SECTION_* macro arguments to + avoid padded output sections (PR 19787) + +1999-04-07 Hugo Tyson <hmt@cygnus.co.uk> + + * include/hal_hwio.h: New file: define accessors for 86940 via + alternate address space 4, register names and all that... just a + paste out of previous hal_diag.h - it was the wrong place, but + that's how it evolved. + + * include/hal_diag.h: Include hal_hwio.h to get accessors for + 86940 et al. Do not define them here, it was the wrong place. + + * include/hal_clock.h: + * include/hal_xpic.h: + Include hal_hwio.h instead of hal_diag.h + +1999-04-07 Hugo Tyson <hmt@cygnus.co.uk> + + * tests/slebintr.c (checkallbut): This is a more informative + version of the test when it fails: this is still under + investigation somewhat, and running the more verbose version + nightly will be useful. + +1999-03-30 Hugo Tyson <hmt@cygnus.co.uk> + + * tests/slebintr.c (start): After some thought, the timing code in + here could cause the test to take arbitrarily long; so some safety + features added. Normally the test loop is very fast, but with + cache effects and instrumentation and -O0 it could take ages; this + could explain the occasional timeouts we have seen for this test. + +1999-03-26 Hugo Tyson <hmt@cygnus.co.uk> + + * include/hal_cache.h: + Implement the cache control macros: at least + for x in ( D I ) + HAL_xCACHE_ENABLE/DISABLE + HAL_xCACHE_INVALIDATE_ALL, HAL_xCACHE_SYNC + in the first instance. kcache1 reports sensible numbers too! + +1999-03-26 Hugo Tyson <hmt@cygnus.co.uk> + + * tests/slebintr.c (HAL_CLOCK_READ): If there is no kernel, the + clock is not initialized, so looking at it is useless for a clue. + So provide a dummy so we perform a "few" loops when there's no + kernel. If there is no kernel, cyg_user_start() is never called, + main gets in and steals the CPU. So we hang. So if there is no + kernel, define cyg_start() instead to wrest control. Also very + much weaken the looping count check; kernel instrumentation, for + example, is more than enough to slow the world down too much. + + * tests/slebstak.c (cyg_[user_]start): + If there is no kernel, cyg_user_start() is never called, main gets + in and steals the CPU. So we hang. So if there is no kernel, + define cyg_start() instead to wrest control. + + * tests/slebtime.cxx: + Make this build when no kernel present; include of testcase &c + was the wrong side of the ifdef. Doh! + +1999-03-25 Hugo Tyson <hmt@cygnus.co.uk> + + * src/hal_priv.c (hal_clock_initialize): Oh dear, the clock was + only running half the speed it should have; this will make the + tm_basic figures look bad, maybe. It _appeared_ right because of + spurious interrupts, making two ISRs per tick, which covered the + error beautifully. So, the initialization is now corrected, now + that the interrupt management is better dealt with. + + * include/hal_xpic.h (HAL_INTERRUPT_ACKNOWLEDGE): Loop until + either the interrupt has stopped being asserted by the + prioritization latch (CLIRL) or the source has actually re-flagged + the interrupt, so that repeated, fast interrupts will re-interrupt + rather than causing a loop here. This is to prevent spurious + double interrupts caused by HAL_INTERRUPT_ACKNOWLEDGE() not taking + effect before the CPU re-enabled interrupts; this had been + covering the clock bug as well as confusing the serial system. + + Also placed a HAL_INTERRUPT_ACKNOWLEDGE() in + HAL_INTERRUPT_CONFIGURE() since the doc implies it is necessary + when changing that stuff; a spurious interrupt may be latched. + +1999-03-24 Hugo Tyson <hmt@cygnus.co.uk> + + * include/hal_xpic.h (HAL_INTERRUPT_CONFIGURE): + Implement this functionality, since Gary wanted to experiment with + it. Also add HAL_INTERRUPT_QUERY_INFO (platform specific) to read + back the settings of a particular interrupt source. + + * tests/slebintr.c: NEW FILE: test case for the above new macros. + * tests/slebstak.c: NEW FILE: tests the register save/restore code + by carrying out lots of factorial calculations. + * tests/slebtime.c: NEW FILE: tests HAL clocks for sanity; prints + useful diagnostics. Most useful when a human observes, if + it goes wrong this test is more likely to report a timeout + than a failure. + + * tests/sleb.c: FILE DELETED - moved to slebstak.c + + * tests/PKGconf.mak (TESTS): Reflect above changes. + +1999-03-23 John Dallaway <jld@cygnus.co.uk> + + * include/pkgconf/hal_sparclite_sleb.h: Modify display string + for consistency. + +1999-03-23 Hugo Tyson <hmt@cygnus.co.uk> + + * src/hal_diag.c (hal_diag_write_char): Precisely undo the + previous change: we disable interrupts to prevent the clock + advancing during the time taken to output to GDB. + +1999-03-18 Hugo Tyson <hmt@cygnus.co.uk> + + * src/hal_diag.c (hal_diag_write_char_serial): Do not disable + interrupts while calling the CygMon write-line routine; CygMon is + better now and can cope with interrupts there. + +1999-03-17 John Dallaway <jld@cygnus.co.uk> + + * include/pkgconf/mlt_sparclite_sleb_rom.mlt: Regenerate using + the eCos configuration tool to resolve errors. + +1999-03-17 Hugo Tyson <hmt@cygnus.co.uk> + + * include/pkgconf/mlt_sparclite_sleb_rom.mlt: + * include/pkgconf/mlt_sparclite_sleb_rom.ldi: + Move the start of RAM up 512 bytes; it is now at 0x04000200. This + is to leave space for the trampoline code ie. RAM trap vector + handler to live in RAM as is required. NB the vector must be on a + 4k boundary; its location is determined by rounding down the start + of "normal" RAM ie. the symbol ".data". So if the start of RAM + isn't on a 4k boundary, or the trampoline code gets > 4k, there + will be trouble. + + * include/halboot.si: Copy trampoline code into RAM base during + startup, and deal with associated caching issues. + + * src/hal_priv.c (LED): Add this tidier macro and some extra LED + debug during start for help with ROM start. + + * include/pkgconf/hal_sparclite_sleb.h + (CYGHWR_HAL_SPARCLITE_SLEB_STARTUP): Add this define and its + associated notCDL for the GUI Config tool. + +1999-03-16 Hugo Tyson <hmt@cygnus.co.uk> + + * include/pkgconf/mlt_sparclite_sleb_rom.ldi: + * include/pkgconf/mlt_sparclite_sleb_rom.mlt: + New files, linker script fragment and MLT doc for ROM startup. + + * include/halboot.si: Only copy real instructions into the vector + if RAM startup. Delete lots of obsolete debugging "printout". + Size RAM dynamically. Set up chip selects, wait states, refresh + timing, system services, caches, buffers, burst mode access, ... + In other words complete hardware initialization. + + * include/hal_cpu.h: new file, taken directly from CygMon sources, + which defines various MB8683x internal registers which are used in + the initialization in halboot.si. + + * include/hal_diag.h (HAL_SPARC_86940_PRS_ODIV2): Add lots more + definition of the MB86940 companion I/O chip, editted from CygMon + sources. This should move into a proper IO file later. + Also, in the non-CYG_KERNEL_DIAG_GDB case where we write output to + the serial line in clear, do perform initialization. + + * src/hal_diag.c (hal_diag_init): Properly initialize the serial + line when not using GDB encoding (if GDB coding is in use, then we + have CygMon). + + * include/hal_clock.h (HAL_CLOCK_INITIALIZE): Initialize the clock + more cleanly and correctly, as CygMon does: so ticks are actually + centiSeconds, pretty much. Actual init routine is in hal_priv.c. + + * src/hal_priv.c (hal_clock_initialize): Properly initialize the + system clock to centiSeconds. + +1999-03-11 Hugo Tyson <hmt@cygnus.co.uk> + + * src/hal_priv.c (hal_board_prestart): + Link in the multi-thread aware debugging routine if + CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT. + +1999-03-09 Hugo Tyson <hmt@cygnus.co.uk> + + * src/hal_priv.c (hal_board_prestart): If playing nice with + CygMon, unmask and pass through interrupt 14 (Ethernet + controller). Install and unmask interrupt 15 (NMI button) + likewise. + + * src/hal_cygm.S (hal_nmi_handler): Add new handler for the NMI + interrupt (like a PIN number) INT15, the button near the serial + connector on the board. The handler must wait for the interrupt + to go away, then acknowledge it to prevent CygMon getting in a + loop. + + * include/halboot.si: Set IRC channel 14 (Ethernet controller) + interrupt to active low so that we can pass such events on to + CygMon. Tidy up comments and ifdefs. + + * include/hal_cygm.h (BSP_NOTVEC_BSP_COMM_PROCS): Define the + CygMon vector table entry that isn't a vector, but is a pointer to + struct tree with IO functions therein. + + * src/hal_diag.c (hal_diag_write_char et al): Add variants of + these routines to use IO functions provided by CygMon if thus + configured. Also tidied up direct GDB-ized serial output, which + is selected by CYG_KERNEL_DIAG_GDB_SERIAL_DIRECT within + CYG_KERNEL_DIAG_GDB now. + + * include/pkgconf/hal_sparclite_sleb.h: Add definition for + CYG_KERNEL_DIAG_GDB_SERIAL_DIRECT, disabled by default. More + comments too. + +1999-03-04 John Dallaway <jld@cygnus.co.uk> + + * include/pkgconf/*.ldi: give all LDI files unique names so + that they can co-exist in an eCos build tree (PR 19184) + * include/pkgconf/*.mlt: give all MLT files unique names so + that they can co-exist in an eCos build tree (PR 19184) + +1999-02-25 Hugo Tyson <hmt@cygnus.co.uk> + + These log entries from 1999-02-22 to 1999-02-24 were executed in + a branch; this change is a merge of that branch into the trunk. + +1999-02-25 Hugo Tyson <hmt@masala.cygnus.co.uk> + + * src/hal_diag.c (hal_diag_write_char): + Wait for the GDB protocol ack character '+' after sending a line + of output as a $O packet; this prevents mismatches of the GDB + protocol when a breakpoint is hit temporally near such output. + This has the side effect that we must deal with seeing a ^C + character instead of the '+', whence we must bounce into CygMon's + BREAK vector using a trap. Hence the next change... + + * src/hal_cygm.S (hal_user_trap_to_cygmon_vsr): + Add additional "bounce to cygmon" capability such that user trap + 2, "ta 2" trap type 130, does the same as "ta 1" ie. a breakpoint, + but first it advances the PC and NPC so that you can continue at + the instruction after. This is so that a voluntary inline + breakpoint can be implemented as "ta 2; nop; nop; nop" (nops just + for paranoia). + +1999-02-24 Jonathan Larmour <jlarmour@cygnus.co.uk> + + * include/hal_diag.h: + Make hal_diag_init() and hal_diag_write_char() prototypes be extern "C" + for C++ files so they don't get name mangled + +1999-02-24 John Dallaway <jld@cygnus.co.uk> + + * include/pkgconf/hal_sparclite_sleb.h: Add MB8683x board + designation to description field. + +1999-02-24 Hugo Tyson <hmt@cygnus.co.uk> + + * include/pkgconf/hal_sparclite_sleb.h: + Non-CDLoptions, but #defines nontheless, + CYG_HAL_USE_ROM_MONITOR_CYGMON and CYG_KERNEL_DIAG_GDB are defined + here to control whether we cooperate with CygMon, and if so, do we + encapsulate out output in GDB $O packets, respectively. + + * include/hal_cygm.h: + New file to describe the CygMon vectors we call to cooperate with + CygMon and GDB. When cooperating, we install VSRs in some slots + that demux into CygMon's vector table, and in most slots we just + patch in the appropriate value from CygMon's vector table so that + CygMon is called directly. + + * include/hal_xpic.h: + Document the interrupt sources on the SLEB. + + * include/hal_diag.h (HAL_DIAG_WRITE_CHAR): + Call routines in hal_diag.c to perform encapsulation, or not, + depending on CYG_KERNEL_DIAG_GDB. + + * src/hal_cygm.S: New file, demuxer trampolines for user trap and + no-fp/no-cp VSRs to bounce into CygMon. + + * src/hal_diag.c: New file, routines to perform encapsulation of + output in GDB $O packets if required by CYG_KERNEL_DIAG. + + * src/hal_priv.c (hal_board_prestart): + If CYG_HAL_USE_ROM_MONITOR_CYGMON, install either CygMon's vectors + or demuxer trampolines into our VSRs during startup. + + * src/PKGconf.mak (COMPILE): Add new files hal_cygm.S hal_diag.c + +1999-02-23 John Dallaway <jld@cygnus.co.uk> + + * include/pkgconf/hal_sparclite_sleb.h: Revise capitalization + of CDL strings. + +1999-02-23 John Dallaway <jld@cygnus.co.uk> + + * include/pkgconf/hal_sparclite_sleb.h: Specify correct platform + for cdl_package CYGPKG_HAL_SPARCLITE_SLEB. + +1999-02-22 Hugo Tyson <hmt@cygnus.co.uk> + + * include/pkgconf/ram.mlt: + * include/pkgconf/ram.ldi: + All a lot more constraints on alignment: sections must be + word-aligned at least for the network loader to accept them. + I hope I have correctly modified the .mlt file; it's not exactly + self documenting. + +1999-02-22 Hugo Tyson <hmt@cygnus.co.uk> + + * include/hal_cache.h: New file + * include/hal_clock.h: New file + * include/hal_diag.h: New file + * include/hal_xpic.h: New file + * include/halboot.si: New file + * include/pkgconf/hal_sparclite_sleb.h: New file + * include/pkgconf/ram.ldi: New file + * include/pkgconf/ram.mlt: New file + * src/PKGconf.mak: New file + * src/hal_priv.c: New file + * tests/PKGconf.mak: New file + * tests/sleb.c: New file + + Initial checkin of the hardware platform port for SPARClite: + platform is sleb: SPARClite Evaluation Board. + + The structure here mirrors that in the sim directory, and in fact + was cloned from it after the change of 1999-02-08 for MLT + compliance. + +//=========================================================================== +//####COPYRIGHTBEGIN#### +// +// ------------------------------------------- +// The contents of this file are subject to the Cygnus eCos Public License +// Version 1.0 (the "License"); you may not use this file except in +// compliance with the License. You may obtain a copy of the License at +// http://sourceware.cygnus.com/ecos +// +// 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 Cygnus Operating System, released +// September 30, 1998. +// +// The Initial Developer of the Original Code is Cygnus. Portions created +// by Cygnus are Copyright (C) 1998,1999 Cygnus Solutions. All Rights Reserved. +// ------------------------------------------- +// +//####COPYRIGHTEND#### +//=========================================================================== + +//EOF ChangeLog
