1 2003-07-18 Nick Garnett <nickg@balti.calivar.com>
3 * cdl/hal_sparclite_sleb.cdl:
4 Changed values for CYGNUM_HAL_RTC_NUMERATOR,
5 CYGNUM_HAL_RTC_DENOMINATOR and CYGNUM_HAL_RTC_PERIOD to
6 "default_value" from "calculated". This makes it easier
7 to change these values globally.
9 2002-04-29 Jonathan Larmour <jlarmour@redhat.com>
12 Don't use .file as it can confuse debugging since the .file
13 doesn't contain the path and therefore the debugger will never
14 know where it lives! This conflicts with using -Wa,--gstabs.
16 2000-10-20 Jonathan Larmour <jlarmour@redhat.com>
18 * tests/slebtime.cxx: Ensure default priority constructors
21 2000-10-20 Jonathan Larmour <jlarmour@redhat.com>
23 * include/pkgconf/mlt_sparclite_sleb_ram.mlt:
24 * include/pkgconf/mlt_sparclite_sleb_rom.mlt:
27 * include/pkgconf/mlt_sparclite_sleb_ram.h:
28 * include/pkgconf/mlt_sparclite_sleb_rom.h:
29 * include/pkgconf/mlt_sparclite_sleb_ram.ldi:
30 * include/pkgconf/mlt_sparclite_sleb_rom.ldi:
33 2000-02-16 Jesper Skov <jskov@redhat.com>
35 * cdl/hal_sparclite_sleb.cdl: removed fix me
37 2000-02-07 Jesper Skov <jskov@redhat.com>
39 * cdl/hal_sparclite_sleb.cdl: use cpu options when linking.
41 2000-02-04 Hugo Tyson <hmt@cygnus.co.uk>
43 * cdl/hal_sparclite_sleb.cdl (define_proc): Add output of a
44 #define for CYGHWR_HAL_SPARCLITE_HAS_ASR17 - because a Fujitsu
47 2000-01-24 John Dallaway <jld@cygnus.co.uk>
51 Remove obsolete option CYGTST_TESTING_IDENTIFIER.
53 2000-01-19 Hugo Tyson <hmt@cygnus.co.uk>
55 * cdl/*.cdl: Add descriptions to a number of options &c which were
56 lacking same, also tidied up other typos as noticed en passant.
58 1999-12-20 Gary Thomas <gthomas@cygnus.co.uk>
60 * cdl/hal_sparclite_sleb.cdl: Add -Wl for linker options.
62 1999-11-25 Gary Thomas <gthomas@cygnus.co.uk>
64 * include/pkgconf/mlt_sparclite_sleb_rom.h:
65 * include/pkgconf/mlt_sparclite_sleb_ram.h: New file(s).
67 1999-11-03 John Dallaway <jld@cygnus.co.uk>
69 * cdl/hal_sparclite_sleb.cdl: Define build options.
71 1999-11-01 Jesper Skov <jskov@cygnus.co.uk>
73 * cdl/hal_sparclite_sleb.cdl: Added.
74 Use define_proc for const header defs.
76 1999-10-14 John Dallaway <jld@cygnus.co.uk>
78 * include/pkgconf/mlt_sparclite_sleb_ram.mlt,
79 include/pkgconf/mlt_sparclite_sleb_rom.mlt:
81 Fix .mlt files to match the latest .ldi files. ROM startup
82 requires latest config tool which contains fix for PR 19799.
84 1999-10-13 Hugo Tyson <hmt@cygnus.co.uk>
86 * include/pkgconf/hal_sparclite_sleb.h: Add CDL and
87 [un]definitions for handling optional Multiple Vector Trapping and
88 optional copy of vectors into RAM - when it is optional. Also
89 define CYGHWR_HAL_SPARCLITE_HAS_ASR17 so that the arch HAL
90 self-configures correctly.
92 * include/halboot.si: Copy trampoline code into section
93 .ram_vectors at __ram_vectors_start if so configured.
95 * include/pkgconf/mlt_sparclite_sleb_ram.ldi:
96 * include/pkgconf/mlt_sparclite_sleb_ram.mlt:
97 * include/pkgconf/mlt_sparclite_sleb_rom.ldi:
98 * include/pkgconf/mlt_sparclite_sleb_rom.mlt:
99 Link in new variable size, sometimes 0 size, ram_vectors section;
100 this does away with the need to fib about the size of RAM, it was
101 previously defined to start at 0x4000200 to reserve a bit for
103 (comment from the example .ldi files...)
104 The ram_vectors section is to allow some free space to copy
105 vectors into from the ROM. This is required to be variable size
106 to accomodate SVT or MVT; 80 bytes vs 4kB. Copying is not
107 necessary with MVT, but it is optional because it may offer
108 performance gains. Copying is required for SVT because the
109 (aligned) start of ROM contains initialization instructions. RAM
110 copy is used rather than leave a big gap in the ROM to get an
111 aligned address for the trampoline code. For RAM startup,
112 ram_vectors will usually be of size zero, unless MVT and copying
113 are enabled for memory estimation reasons.
115 1999-06-14 Hugo Tyson <hmt@cygnus.co.uk>
117 * tests/slebtime.cxx (entry2): Fix a dumb fencepost prob in some
118 string poking code for output without printf...
120 1999-04-23 Jesper Skov <jskov@cygnus.co.uk>
122 * src/hal_diag.c (hal_bsp_console_write): Added a workaround for PR
125 1999-04-09 Hugo Tyson <hmt@cygnus.co.uk>
127 * include/hal_cache.h (HAL_[DI]CACHE_IS_ENABLED):
128 Implement these macros.
130 1999-04-09 Hugo Tyson <hmt@cygnus.co.uk>
132 * include/halboot.si: Use 10 wait states for access to the 86940
133 on CS1; it seems to make the Reliability Difference(tm).
135 1999-04-08 Hugo Tyson <hmt@cygnus.co.uk>
137 * tests/slebtime.cxx: Add CYG_INIT_PRIORITY( APPLICATION ) to the
138 two static thread objects so that the test works even when libc
139 steals away the default constructors. Unfortunately this also
140 means switching to an assignment constructor instead of a call.
142 1999-04-08 John Dallaway <jld@cygnus.co.uk>
144 * include/pkgconf/*.ldi: Revised SECTION_* macro arguments to
145 avoid padded output sections (PR 19787)
147 1999-04-07 Hugo Tyson <hmt@cygnus.co.uk>
149 * include/hal_hwio.h: New file: define accessors for 86940 via
150 alternate address space 4, register names and all that... just a
151 paste out of previous hal_diag.h - it was the wrong place, but
152 that's how it evolved.
154 * include/hal_diag.h: Include hal_hwio.h to get accessors for
155 86940 et al. Do not define them here, it was the wrong place.
157 * include/hal_clock.h:
158 * include/hal_xpic.h:
159 Include hal_hwio.h instead of hal_diag.h
161 1999-04-07 Hugo Tyson <hmt@cygnus.co.uk>
163 * tests/slebintr.c (checkallbut): This is a more informative
164 version of the test when it fails: this is still under
165 investigation somewhat, and running the more verbose version
166 nightly will be useful.
168 1999-03-30 Hugo Tyson <hmt@cygnus.co.uk>
170 * tests/slebintr.c (start): After some thought, the timing code in
171 here could cause the test to take arbitrarily long; so some safety
172 features added. Normally the test loop is very fast, but with
173 cache effects and instrumentation and -O0 it could take ages; this
174 could explain the occasional timeouts we have seen for this test.
176 1999-03-26 Hugo Tyson <hmt@cygnus.co.uk>
178 * include/hal_cache.h:
179 Implement the cache control macros: at least
181 HAL_xCACHE_ENABLE/DISABLE
182 HAL_xCACHE_INVALIDATE_ALL, HAL_xCACHE_SYNC
183 in the first instance. kcache1 reports sensible numbers too!
185 1999-03-26 Hugo Tyson <hmt@cygnus.co.uk>
187 * tests/slebintr.c (HAL_CLOCK_READ): If there is no kernel, the
188 clock is not initialized, so looking at it is useless for a clue.
189 So provide a dummy so we perform a "few" loops when there's no
190 kernel. If there is no kernel, cyg_user_start() is never called,
191 main gets in and steals the CPU. So we hang. So if there is no
192 kernel, define cyg_start() instead to wrest control. Also very
193 much weaken the looping count check; kernel instrumentation, for
194 example, is more than enough to slow the world down too much.
196 * tests/slebstak.c (cyg_[user_]start):
197 If there is no kernel, cyg_user_start() is never called, main gets
198 in and steals the CPU. So we hang. So if there is no kernel,
199 define cyg_start() instead to wrest control.
201 * tests/slebtime.cxx:
202 Make this build when no kernel present; include of testcase &c
203 was the wrong side of the ifdef. Doh!
205 1999-03-25 Hugo Tyson <hmt@cygnus.co.uk>
207 * src/hal_priv.c (hal_clock_initialize): Oh dear, the clock was
208 only running half the speed it should have; this will make the
209 tm_basic figures look bad, maybe. It _appeared_ right because of
210 spurious interrupts, making two ISRs per tick, which covered the
211 error beautifully. So, the initialization is now corrected, now
212 that the interrupt management is better dealt with.
214 * include/hal_xpic.h (HAL_INTERRUPT_ACKNOWLEDGE): Loop until
215 either the interrupt has stopped being asserted by the
216 prioritization latch (CLIRL) or the source has actually re-flagged
217 the interrupt, so that repeated, fast interrupts will re-interrupt
218 rather than causing a loop here. This is to prevent spurious
219 double interrupts caused by HAL_INTERRUPT_ACKNOWLEDGE() not taking
220 effect before the CPU re-enabled interrupts; this had been
221 covering the clock bug as well as confusing the serial system.
223 Also placed a HAL_INTERRUPT_ACKNOWLEDGE() in
224 HAL_INTERRUPT_CONFIGURE() since the doc implies it is necessary
225 when changing that stuff; a spurious interrupt may be latched.
227 1999-03-24 Hugo Tyson <hmt@cygnus.co.uk>
229 * include/hal_xpic.h (HAL_INTERRUPT_CONFIGURE):
230 Implement this functionality, since Gary wanted to experiment with
231 it. Also add HAL_INTERRUPT_QUERY_INFO (platform specific) to read
232 back the settings of a particular interrupt source.
234 * tests/slebintr.c: NEW FILE: test case for the above new macros.
235 * tests/slebstak.c: NEW FILE: tests the register save/restore code
236 by carrying out lots of factorial calculations.
237 * tests/slebtime.c: NEW FILE: tests HAL clocks for sanity; prints
238 useful diagnostics. Most useful when a human observes, if
239 it goes wrong this test is more likely to report a timeout
242 * tests/sleb.c: FILE DELETED - moved to slebstak.c
244 * tests/PKGconf.mak (TESTS): Reflect above changes.
246 1999-03-23 John Dallaway <jld@cygnus.co.uk>
248 * include/pkgconf/hal_sparclite_sleb.h: Modify display string
251 1999-03-23 Hugo Tyson <hmt@cygnus.co.uk>
253 * src/hal_diag.c (hal_diag_write_char): Precisely undo the
254 previous change: we disable interrupts to prevent the clock
255 advancing during the time taken to output to GDB.
257 1999-03-18 Hugo Tyson <hmt@cygnus.co.uk>
259 * src/hal_diag.c (hal_diag_write_char_serial): Do not disable
260 interrupts while calling the CygMon write-line routine; CygMon is
261 better now and can cope with interrupts there.
263 1999-03-17 John Dallaway <jld@cygnus.co.uk>
265 * include/pkgconf/mlt_sparclite_sleb_rom.mlt: Regenerate using
266 the eCos configuration tool to resolve errors.
268 1999-03-17 Hugo Tyson <hmt@cygnus.co.uk>
270 * include/pkgconf/mlt_sparclite_sleb_rom.mlt:
271 * include/pkgconf/mlt_sparclite_sleb_rom.ldi:
272 Move the start of RAM up 512 bytes; it is now at 0x04000200. This
273 is to leave space for the trampoline code ie. RAM trap vector
274 handler to live in RAM as is required. NB the vector must be on a
275 4k boundary; its location is determined by rounding down the start
276 of "normal" RAM ie. the symbol ".data". So if the start of RAM
277 isn't on a 4k boundary, or the trampoline code gets > 4k, there
280 * include/halboot.si: Copy trampoline code into RAM base during
281 startup, and deal with associated caching issues.
283 * src/hal_priv.c (LED): Add this tidier macro and some extra LED
284 debug during start for help with ROM start.
286 * include/pkgconf/hal_sparclite_sleb.h
287 (CYGHWR_HAL_SPARCLITE_SLEB_STARTUP): Add this define and its
288 associated notCDL for the GUI Config tool.
290 1999-03-16 Hugo Tyson <hmt@cygnus.co.uk>
292 * include/pkgconf/mlt_sparclite_sleb_rom.ldi:
293 * include/pkgconf/mlt_sparclite_sleb_rom.mlt:
294 New files, linker script fragment and MLT doc for ROM startup.
296 * include/halboot.si: Only copy real instructions into the vector
297 if RAM startup. Delete lots of obsolete debugging "printout".
298 Size RAM dynamically. Set up chip selects, wait states, refresh
299 timing, system services, caches, buffers, burst mode access, ...
300 In other words complete hardware initialization.
302 * include/hal_cpu.h: new file, taken directly from CygMon sources,
303 which defines various MB8683x internal registers which are used in
304 the initialization in halboot.si.
306 * include/hal_diag.h (HAL_SPARC_86940_PRS_ODIV2): Add lots more
307 definition of the MB86940 companion I/O chip, editted from CygMon
308 sources. This should move into a proper IO file later.
309 Also, in the non-CYG_KERNEL_DIAG_GDB case where we write output to
310 the serial line in clear, do perform initialization.
312 * src/hal_diag.c (hal_diag_init): Properly initialize the serial
313 line when not using GDB encoding (if GDB coding is in use, then we
316 * include/hal_clock.h (HAL_CLOCK_INITIALIZE): Initialize the clock
317 more cleanly and correctly, as CygMon does: so ticks are actually
318 centiSeconds, pretty much. Actual init routine is in hal_priv.c.
320 * src/hal_priv.c (hal_clock_initialize): Properly initialize the
321 system clock to centiSeconds.
323 1999-03-11 Hugo Tyson <hmt@cygnus.co.uk>
325 * src/hal_priv.c (hal_board_prestart):
326 Link in the multi-thread aware debugging routine if
327 CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT.
329 1999-03-09 Hugo Tyson <hmt@cygnus.co.uk>
331 * src/hal_priv.c (hal_board_prestart): If playing nice with
332 CygMon, unmask and pass through interrupt 14 (Ethernet
333 controller). Install and unmask interrupt 15 (NMI button)
336 * src/hal_cygm.S (hal_nmi_handler): Add new handler for the NMI
337 interrupt (like a PIN number) INT15, the button near the serial
338 connector on the board. The handler must wait for the interrupt
339 to go away, then acknowledge it to prevent CygMon getting in a
342 * include/halboot.si: Set IRC channel 14 (Ethernet controller)
343 interrupt to active low so that we can pass such events on to
344 CygMon. Tidy up comments and ifdefs.
346 * include/hal_cygm.h (BSP_NOTVEC_BSP_COMM_PROCS): Define the
347 CygMon vector table entry that isn't a vector, but is a pointer to
348 struct tree with IO functions therein.
350 * src/hal_diag.c (hal_diag_write_char et al): Add variants of
351 these routines to use IO functions provided by CygMon if thus
352 configured. Also tidied up direct GDB-ized serial output, which
353 is selected by CYG_KERNEL_DIAG_GDB_SERIAL_DIRECT within
354 CYG_KERNEL_DIAG_GDB now.
356 * include/pkgconf/hal_sparclite_sleb.h: Add definition for
357 CYG_KERNEL_DIAG_GDB_SERIAL_DIRECT, disabled by default. More
360 1999-03-04 John Dallaway <jld@cygnus.co.uk>
362 * include/pkgconf/*.ldi: give all LDI files unique names so
363 that they can co-exist in an eCos build tree (PR 19184)
364 * include/pkgconf/*.mlt: give all MLT files unique names so
365 that they can co-exist in an eCos build tree (PR 19184)
367 1999-02-25 Hugo Tyson <hmt@cygnus.co.uk>
369 These log entries from 1999-02-22 to 1999-02-24 were executed in
370 a branch; this change is a merge of that branch into the trunk.
372 1999-02-25 Hugo Tyson <hmt@masala.cygnus.co.uk>
374 * src/hal_diag.c (hal_diag_write_char):
375 Wait for the GDB protocol ack character '+' after sending a line
376 of output as a $O packet; this prevents mismatches of the GDB
377 protocol when a breakpoint is hit temporally near such output.
378 This has the side effect that we must deal with seeing a ^C
379 character instead of the '+', whence we must bounce into CygMon's
380 BREAK vector using a trap. Hence the next change...
382 * src/hal_cygm.S (hal_user_trap_to_cygmon_vsr):
383 Add additional "bounce to cygmon" capability such that user trap
384 2, "ta 2" trap type 130, does the same as "ta 1" ie. a breakpoint,
385 but first it advances the PC and NPC so that you can continue at
386 the instruction after. This is so that a voluntary inline
387 breakpoint can be implemented as "ta 2; nop; nop; nop" (nops just
390 1999-02-24 Jonathan Larmour <jlarmour@cygnus.co.uk>
392 * include/hal_diag.h:
393 Make hal_diag_init() and hal_diag_write_char() prototypes be extern "C"
394 for C++ files so they don't get name mangled
396 1999-02-24 John Dallaway <jld@cygnus.co.uk>
398 * include/pkgconf/hal_sparclite_sleb.h: Add MB8683x board
399 designation to description field.
401 1999-02-24 Hugo Tyson <hmt@cygnus.co.uk>
403 * include/pkgconf/hal_sparclite_sleb.h:
404 Non-CDLoptions, but #defines nontheless,
405 CYG_HAL_USE_ROM_MONITOR_CYGMON and CYG_KERNEL_DIAG_GDB are defined
406 here to control whether we cooperate with CygMon, and if so, do we
407 encapsulate out output in GDB $O packets, respectively.
409 * include/hal_cygm.h:
410 New file to describe the CygMon vectors we call to cooperate with
411 CygMon and GDB. When cooperating, we install VSRs in some slots
412 that demux into CygMon's vector table, and in most slots we just
413 patch in the appropriate value from CygMon's vector table so that
414 CygMon is called directly.
416 * include/hal_xpic.h:
417 Document the interrupt sources on the SLEB.
419 * include/hal_diag.h (HAL_DIAG_WRITE_CHAR):
420 Call routines in hal_diag.c to perform encapsulation, or not,
421 depending on CYG_KERNEL_DIAG_GDB.
423 * src/hal_cygm.S: New file, demuxer trampolines for user trap and
424 no-fp/no-cp VSRs to bounce into CygMon.
426 * src/hal_diag.c: New file, routines to perform encapsulation of
427 output in GDB $O packets if required by CYG_KERNEL_DIAG.
429 * src/hal_priv.c (hal_board_prestart):
430 If CYG_HAL_USE_ROM_MONITOR_CYGMON, install either CygMon's vectors
431 or demuxer trampolines into our VSRs during startup.
433 * src/PKGconf.mak (COMPILE): Add new files hal_cygm.S hal_diag.c
435 1999-02-23 John Dallaway <jld@cygnus.co.uk>
437 * include/pkgconf/hal_sparclite_sleb.h: Revise capitalization
440 1999-02-23 John Dallaway <jld@cygnus.co.uk>
442 * include/pkgconf/hal_sparclite_sleb.h: Specify correct platform
443 for cdl_package CYGPKG_HAL_SPARCLITE_SLEB.
445 1999-02-22 Hugo Tyson <hmt@cygnus.co.uk>
447 * include/pkgconf/ram.mlt:
448 * include/pkgconf/ram.ldi:
449 All a lot more constraints on alignment: sections must be
450 word-aligned at least for the network loader to accept them.
451 I hope I have correctly modified the .mlt file; it's not exactly
454 1999-02-22 Hugo Tyson <hmt@cygnus.co.uk>
456 * include/hal_cache.h: New file
457 * include/hal_clock.h: New file
458 * include/hal_diag.h: New file
459 * include/hal_xpic.h: New file
460 * include/halboot.si: New file
461 * include/pkgconf/hal_sparclite_sleb.h: New file
462 * include/pkgconf/ram.ldi: New file
463 * include/pkgconf/ram.mlt: New file
464 * src/PKGconf.mak: New file
465 * src/hal_priv.c: New file
466 * tests/PKGconf.mak: New file
467 * tests/sleb.c: New file
469 Initial checkin of the hardware platform port for SPARClite:
470 platform is sleb: SPARClite Evaluation Board.
472 The structure here mirrors that in the sim directory, and in fact
473 was cloned from it after the change of 1999-02-08 for MLT
476 //===========================================================================
477 //####ECOSGPLCOPYRIGHTBEGIN####
478 // -------------------------------------------
479 // This file is part of eCos, the Embedded Configurable Operating System.
480 // Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
482 // eCos is free software; you can redistribute it and/or modify it under
483 // the terms of the GNU General Public License as published by the Free
484 // Software Foundation; either version 2 or (at your option) any later version.
486 // eCos is distributed in the hope that it will be useful, but WITHOUT ANY
487 // WARRANTY; without even the implied warranty of MERCHANTABILITY or
488 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
491 // You should have received a copy of the GNU General Public License along
492 // with eCos; if not, write to the Free Software Foundation, Inc.,
493 // 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
495 // As a special exception, if other files instantiate templates or use macros
496 // or inline functions from this file, or you compile this file and link it
497 // with other works to produce a work based on this file, this file does not
498 // by itself cause the resulting work to be covered by the GNU General Public
499 // License. However the source code for this file must still be made available
500 // in accordance with section (3) of the GNU General Public License.
502 // This exception does not invalidate any other reasons why a work based on
503 // this file might be covered by the GNU General Public License.
505 // Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
506 // at http://sources.redhat.com/ecos/ecos-license/
507 // -------------------------------------------
508 //####ECOSGPLCOPYRIGHTEND####
509 //===========================================================================