Remove (Abandoned).

This commit is contained in:
Ralf Corsepius
2010-06-11 12:28:40 +00:00
parent 4e48fab95b
commit 3490d70a08
49 changed files with 0 additions and 6163 deletions

View File

@@ -1,8 +0,0 @@
aclocal.m4
autom4te*.cache
config.cache
config.log
config.status
configure
Makefile
Makefile.in

View File

@@ -1,128 +0,0 @@
2007-04-17 Joel Sherrill <joel@OARcorp.com>
* c4xsim/tools/runtest.in: Do not run pppd.exe from batch mode script.
2006-12-02 Ralf Corsépius <ralf.corsepius@rtems.org>
* configure.ac: New BUG-REPORT address.
2006-10-17 Ralf Corsépius <ralf.corsepius@rtems.org>
* configure.ac: Require autoconf-2.60. Require automake-1.10.
2005-10-16 Ralf Corsepius <ralf.corsepius@rtems.org>
* Makefile.am: Merge-in shared/Makefile.am.
* ChangeLog: Merge-in shared/ChangeLog.
* configure.ac: Remove shared/Makefile.am.
2004-09-24 Ralf Corsepius <ralf.corsepius@rtems.org>
* configure.ac: Require automake > 1.9.
2004-03-31 Ralf Corsepius <ralf.corsepius@rtems.org>
* shared/bspspuriousinit.c: Convert to using c99 fixed size types.
2004-02-12 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: RTEMS_CHECK_BSPDIR([$RTEMS_BSP_FAMILY]).
* acinclude.m4: Regenerate.
2004-01-13 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Use @RTEMS_BSP_FAMILY@ instead of
$(RTEMS_BSP_FAMILY).
2003-12-12 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Require automake >= 1.8, autoconf >= 2.59.
2003-12-03 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* shared/Makefile.am: Remove C_FILES (Unused).
2003-10-20 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* acinclude.m4: Reflect changes to bootstrap.
* configure.ac: Remove RTEMS_CHECK_CUSTON_BSP.
2003-09-04 Joel Sherrill <joel@OARcorp.com>
* shared/bspspuriousinit.c, shared/c3xspurious.c,
shared/c4xspurious.c: URL for license changed.
2003-08-18 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Reflect having moved aclocal/.
2003-08-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am, shared/Makefile.am: Reflect having moved automake/.
2003-08-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Use rtems-bugs@rtems.com as bug report email
address.
2003-03-06 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Remove AC_CONFIG_AUX_DIR.
2003-02-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: AM_INIT_AUTOMAKE([1.7.2]).
* configure.ac: AC_PREREQ(2.57).
2002-12-06 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Remove RTEMS_CHECK_BSP_CACHE.
2002-10-21 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* .cvsignore: Reformat. Add autom4te*cache. Remove autom4te.cache.
2002-03-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am, shared/Makefile.am: Remove AUTOMAKE_OPTIONS.
* configure.ac: AC_INIT(package,_RTEMS_VERSION,_RTEMS_BUGS).
AM_INIT_AUTOMAKE([no-define foreign 1.6]).
2002-01-03 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* shared/bspspuriousinit.c, shared/c3xspurious.c,
shared/c4xspurious.c: Include rtems/bspIo.h instead of bspIo.h.
2001-10-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* .cvsignore: Add autom4te.cache for autoconf > 2.52.
* configure.ac: New file, generated from configure.in by autoupdate.
* configure.in: Remove.
2001-10-09 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* acinclude.m4: New file.
* configure.in: Use RTEMS_BSP_SUBDIR.
2000-11-09 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Use ... instead of RTEMS_TOPdir in ACLOCAL_AMFLAGS.
2000-11-02 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Switch to ACLOCAL_AMFLAGS = -I
$(RTEMS_TOPdir)/aclocal.
2000-10-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: ACLOCAL_AMFLAGS= -I $(RTEMS_TOPdir)/macros. Switch to
GNU canonicalization.
2000-09-04 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Formatting.
2000-08-10 Joel Sherrill <joel@OARcorp.com>
* ChangeLog, shared/ChangeLog: New file.

View File

@@ -1,16 +0,0 @@
##
## $Id$
##
ACLOCAL_AMFLAGS = -I ../../../aclocal
## Descend into the @RTEMS_BSP_FAMILY@ directory
SUBDIRS = @RTEMS_BSP_FAMILY@
EXTRA_DIST =
EXTRA_DIST += shared/bspspuriousinit.c
EXTRA_DIST += shared/c3xspurious.c
EXTRA_DIST += shared/c4xspurious.c
include $(top_srcdir)/../../../automake/subdirs.am
include $(top_srcdir)/../../../automake/local.am

View File

@@ -1,10 +0,0 @@
# RTEMS_CHECK_BSPDIR(RTEMS_BSP_FAMILY)
AC_DEFUN([RTEMS_CHECK_BSPDIR],
[
case "$1" in
c4xsim )
AC_CONFIG_SUBDIRS([c4xsim]);;
*)
AC_MSG_ERROR([Invalid BSP]);;
esac
])

View File

@@ -1,8 +0,0 @@
aclocal.m4
autom4te*.cache
config.cache
config.log
config.status
configure
Makefile
Makefile.in

View File

@@ -1,571 +0,0 @@
2010-04-07 Joel Sherrill <joel.sherrill@oarcorp.com>
* start/start.S: Verify boot_card() is passed a NULL.
2009-10-21 Ralf Corsépius <ralf.corsepius@rtems.org>
* make/custom/c3xsim.cfg: Remove RTEMS_BSP_FAMILY.
* make/custom/c4xsim.cfg: Remove RTEMS_BSP_FAMILY.
2009-10-20 Ralf Corsépius <ralf.corsepius@rtems.org>
* configure.ac: Don't add -ansi -fasm to CFLAGS.
2009-10-15 Ralf Corsépius <ralf.corsepius@rtems.org>
* make/custom/c3xsim.cfg: New (relocated from /make/custom).
* make/custom/c4xsim.cfg: New (relocated from /make/custom).
2009-09-15 Ralf Corsépius <ralf.corsepius@rtems.org>
* configure.ac: Remove RTEMS_BSP_BOOTCARD_OPTIONS.
2009-07-16 Joel Sherrill <joel.sherrill@oarcorp.com>
* configure.ac: Rename BSP_BOOTCARD_OPTIONS to
RTEMS_BSP_BOOTCARD_OPTIONS. Add RTEMS_BSP_CLEANUP_OPTIONS so all BSPs
have the same options.
2009-04-28 Chris Johns <chrisj@rtems.org>
* start/start.S: Update for boot_card command line change.
2008-12-04 Joel Sherrill <joel.sherrill@oarcorp.com>
* bsp_specs: Move -e start from *link to *startfile to avoid warning
for undefined entry symbol when linking relocatables with binutils
2.19.
2008-09-30 Ralf Corsépius <ralf.corsepius@rtems.org>
* clock/clock.c: include "../../../shared/clockdrv_shell.h".
* Makefile.am: Reflect changes above.
2008-09-29 Ralf Corsépius <ralf.corsepius@rtems.org>
* Makefile.am: Eliminate bsp.am. Build startup files as side-effect
of building libbspstart.a, using automake-rules.
2008-09-29 Ralf Corsépius <ralf.corsepius@rtems.org>
* Makefile.am: Eliminate *_SOURCES.
2008-09-29 Ralf Corsépius <ralf.corsepius@rtems.org>
* Makefile.am: Move noinst_LIBRARIES = libbsp.a before its
components.
2008-09-29 Ralf Corsépius <ralf.corsepius@rtems.org>
* Makefile.am: Remove noinst_PROGRAMS (Unused).
2008-09-23 Joel Sherrill <joel.sherrill@oarcorp.com>
* configure.ac: Make letting boot_card() handle work area allocation
mandatory. Rename RTEMS_BSP_BOOTCARD_HANDLES_RAM_ALLOCATION to
BSP_BOOTCARD_OPTIONS.
2008-09-19 Joel Sherrill <joel.sherrill@oarcorp.com>
* Makefile.am, console/debugio.c: Split out bspstart contents. Use
shared stub for bsp_start.
* startup/bsppretaskinghook.c: New file.
* startup/bspstart.c: Removed.
2008-09-18 Joel Sherrill <joel.sherrill@oarcorp.com>
* include/bsp.h: Remove unnecessary boilerplate comments.
2008-09-16 Joel Sherrill <joel.sherrill@oarcorp.com>
* Makefile.am, startup/linkcmds: Use top level shared
bsp_get_work_area() implementation.
* startup/bspgetworkarea.c: Removed.
2008-09-16 Joel Sherrill <joel.sherrill@oarcorp.com>
* clock/clock.c, startup/bspstart.c, startup/linkcmds: Add use of
bsp_get_work_area() in its own file and rely on BSP Framework to
perform more initialization.
* startup/bspgetworkarea.c: New file.
2008-09-10 Joel Sherrill <joel.sherrill@oarcorp.com>
* include/bsp.h: Review of all bsp_cleanup() implementations. In this
phase, all prototypes were removed from bsp.h and empty
implementations were removed and made to use the shared stub.
2008-09-05 Ralf Corsépius <ralf.corsepius@rtems.org>
* timer/timer.c: Convert to "bool".
2008-08-31 Joel Sherrill <joel.sherrill@oarcorp.com>
* timer/timer.c: Eliminate empty function from every benchmark timer
driver. Fix spelling.
2008-08-31 Joel Sherrill <joel.sherrill@oarcorp.com>
* timer/timer.c: Rename timer driver methods to follow RTEMS
programming conventions.
2008-05-15 Joel Sherrill <joel.sherrill@OARcorp.com>
* startup/bspstart.c: Add capability for bootcard.c BSP Initialization
Framework to ask the BSP where it has memory for the RTEMS Workspace
and C Program Heap. These collectively are referred to as work area.
If the BSP supports this, then it does not have to include code to
split the available memory between the two areas. This reduces the
amount of code in the BSP specific bspstart.c file. Additionally, the
shared framework can initialize the C Library, call
rtems_debug_enable(), and dirty the work area memory. Until most/all
BSPs support this new capability, if the BSP supports this, it should
call RTEMS_BSP_BOOTCARD_HANDLES_RAM_ALLOCATION from its configure.ac.
When the transition is complete, this autoconf macro can be removed.
2008-05-14 Joel Sherrill <joel.sherrill@OARcorp.com>
* Makefile.am: Rework to avoid .rel files.
2008-05-12 Joel Sherrill <joel.sherrill@OARcorp.com>
* startup/bspstart.c: Refactored and renamed initialization routines to
rtems_initialize_data_structures, rtems_initialize_before_drivers,
rtems_initialize_device_drivers, and
rtems_initialize_start_multitasking. This opened the sequence up so
that bootcard() could provide a more robust and flexible framework
which is easier to explain and understand. This also lays the
groundwork for sharing the division of available memory between the
RTEMS workspace and heap and the C library initialization across all
BSPs.
2007-12-11 Joel Sherrill <joel.sherrill@OARcorp.com>
* clock/clock.c, include/bsp.h, startup/bspstart.c: Eliminate copies of
the Configuration Table. Use the RTEMS provided accessor macros to
obtain configuration fields.
2007-12-04 Joel Sherrill <joel.sherrill@OARcorp.com>
* include/bsp.h, startup/bspstart.c: Move interrupt_stack_size field
from CPU Table to Configuration Table. Eliminate CPU Table from all
ports. Delete references to CPU Table in all forms.
2007-12-03 Joel Sherrill <joel.sherrill@OARcorp.com>
* Makefile.am, startup/bspstart.c: Moved most of the remaining CPU
Table fields to the Configuration Table. This included
pretasking_hook, predriver_hook, postdriver_hook, idle_task,
do_zero_of_workspace, extra_mpci_receive_server_stack,
stack_allocate_hook, and stack_free_hook. As a side-effect of this
effort some multiprocessing code was made conditional and some style
clean up occurred.
2007-05-11 Ralf Corsépius <ralf.corsepius@rtems.org>
* clock/clock.c: include <tic4x/c4xio.h>.
2007-04-12 Ralf Corsépius <ralf.corsepius@rtems.org>
* bsp_specs: Remove qrtems_debug.
2006-12-02 Ralf Corsépius <ralf.corsepius@rtems.org>
* configure.ac: New BUG-REPORT address.
2006-11-15 Joel Sherrill <joel@OARcorp.com>
* Makefile.am: Merge c_rtems_main() into boot_card(). This eliminated a
file and simplified initialization.
2006-10-17 Ralf Corsépius <ralf.corsepius@rtems.org>
* Makefile.am: Remove superfluous -DASM.
2006-10-17 Ralf Corsépius <ralf.corsepius@rtems.org>
* configure.ac: Require autoconf-2.60. Require automake-1.10.
2006-05-31 Joel Sherrill <joel@OARcorp.com>
* clock/clock.c: Switch to using shared clock driver shell.
2006-01-11 Ralf Corsepius <ralf.corsepius@rtems.org>
* Makefile.am: Add preinstall.am.
2005-05-26 Ralf Corsepius <ralf.corsepius@rtems.org>
* include/bsp.h: New header guard.
2005-02-02 Ralf Corsepius <ralf.corsepius@rtems.org>
* include/tm27.h, timer/timer.c: #include <rtems/tic4x/c4xio.h>
instead of <rtems/tic4x/c4xio.h>.
2005-01-07 Ralf Corsepius <ralf.corsepius@rtems.org>
* Makefile.am: Eliminate CFLAGS_OPTIMIZE_V.
2005-01-02 Ralf Corsepius <ralf.corsepius@rtems.org>
* Makefile.am: Remove build-variant support.
2004-09-24 Ralf Corsepius <ralf_corsepius@rtems.org>
* configure.ac: Require automake > 1.9.
2004-04-23 Ralf Corsepius <ralf_corsepius@rtems.org>
PR 610/bsps
* Makefile.am: Add include/tm27.h, Cosmetics.
* include/tm27.h: Final cosmetics.
2004-04-22 Ralf Corsepius <ralf_corsepius@rtems.org>
* include/bsp.h: Split out tmtest27 support.
* include/tm27.h: New.
2004-04-21 Ralf Corsepius <ralf_corsepius@rtems.org>
PR 613/bsps
* include/bsp.h: Remove MAX_LONG_TEST_DURATION.
2004-04-21 Ralf Corsepius <ralf_corsepius@rtems.org>
PR 614/bsps
* include/bsp.h: Remove MAX_SHORT_TEST_DURATION (Unused).
2004-04-02 Ralf Corsepius <ralf_corsepius@rtems.org>
* clock/clock.c, include/bsp.h, timer/timer.c: Include
<rtems/c4x/c4xio.h> instead of <c4xio.h>.
2004-04-01 Ralf Corsepius <ralf_corsepius@rtems.org>
* include/bsp.h: Include <rtems/clockdrv.h> instead of <clockdrv.h>.
* include/bsp.h: Include <rtems/console.h> instead of <console.h>.
* include/bsp.h: Include <rtems/iosupp.h> instead of <iosupp.h>.
2004-03-31 Ralf Corsepius <ralf_corsepius@rtems.org>
* clock/clock.c, include/bsp.h, startup/bspstart.c, timer/timer.c:
Convert to using c99 fixed size types.
2004-02-19 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Reflect changes to bsp.am.
Preinstall dist_project_lib*.
2004-02-14 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Reflect changes to bsp.am.
2004-02-14 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Reflect changes to bsp.am.
2004-02-12 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Use CPPASCOMPILE instead of CCASCOMPILE.
2004-02-06 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Pickup files from ../../c4x/shared instead of
../shared. Reformat.
2004-01-29 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Merge-in clock/Makefile.am, console/Makefile.am,
start/Makefile.am, startup/Makefile.am, timer/Makefile.am,
wrapup/Makefile.am.
Use automake compilation rules.
* clock/Makefile.am, console/Makefile.am, start/Makefile.am,
startup/Makefile.am, timer/Makefile.am, wrapup/Makefile.am:
Remove.
* configure.ac: Reflect changes above.
2004-01-28 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Add nostdinc to AUTOMAKE_OPTIONS.
Add RTEMS_PROG_CCAS.
2004-01-21 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Add PREINSTALL_DIRS.
2004-01-14 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Re-add dirstamps to PRE/TMPINSTALL_FILES.
Add PRE/TMPINSTALL_FILES to CLEANFILES.
* start/Makefile.am: Ditto.
* startup/Makefile.am: Ditto.
2004-01-05 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* wrapup/Makefile.am: Eliminate $(LIB).
Use noinst_DATA to trigger building libbsp.a.
2003-12-13 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* start/Makefile.am: s,${PROJECT_RELEASE}/lib,$(PROJECT_LIB),g.
* startup/Makefile.am: s,${PROJECT_RELEASE}/lib,$(PROJECT_LIB),g.
2003-12-12 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* start/Makefile.am: Use mkdir_p. Remove dirs from PRE/TMPINSTALL_FILES.
* startup/Makefile.am: Use mkdir_p. Remove dirs from PRE/TMPINSTALL_FILES.
2003-12-12 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Require automake >= 1.8, autoconf >= 2.59.
2003-12-09 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* start/Makefile.am: Misc cleanups and fixes.
* startup/Makefile.am: Misc cleanups and fixes.
* wrapup/Makefile.am: Misc cleanups and fixes.
2003-12-03 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Add preinstallation dirstamp support.
* clock/Makefile.am: Cosmetics.
* console/Makefile.am: Cosmetics.
* startup/Makefile.am: Cosmetics.
* timer/Makefile.am: Cosmetics.
* wrapup/Makefile.am: Cosmetics.
2003-12-02 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* clock/Makefile.am: Remove all-local: $(ARCH).
* console/Makefile.am: Remove all-local: $(ARCH).
* start/Makefile.am: Remove all-local: $(ARCH).
* startup/Makefile.am: Remove all-local: $(ARCH).
* timer/Makefile.am: Remove all-local: $(ARCH).
* wrapup/Makefile.am: Remove all-local: $(ARCH).
2003-09-29 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Merge-in include/Makefile.am.
Reflect changes to bsp.am.
* include/Makefile.am: Remove.
* configure.ac: Reflect changes above.
2003-09-17 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* bsp_specs: Remove *lib:.
2003-09-04 Joel Sherrill <joel@OARcorp.com>
* clock/clock.c, console/console.c, console/consolereserveresources.c,
console/debugio.c, include/bsp.h, startup/bspstart.c,
startup/spurious.c, timer/timer.c: URL for license changed.
2003-08-18 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Reflect having moved aclocal/.
2003-08-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Reflect having moved automake/.
* clock/Makefile.am: Reflect having moved automake/.
* console/Makefile.am: Reflect having moved automake/.
* include/Makefile.am: Reflect having moved automake/.
* start/Makefile.am: Reflect having moved automake/.
* startup/Makefile.am: Reflect having moved automake/.
* timer/Makefile.am: Reflect having moved automake/.
* wrapup/Makefile.am: Reflect having moved automake/.
2003-08-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
PR 452/bsps
* startup/Makefile.am: Remove USE_INIT_FINI.
2003-08-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Use rtems-bugs@rtems.com as bug report email address.
2003-08-06 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
PR 445/bsps
* bsp_specs: Remove -D__embedded__ -Asystem(embedded) from cpp.
Remove cpp, old_cpp (now unused).
2003-03-06 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Remove AC_CONFIG_AUX_DIR.
2003-02-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: AM_INIT_AUTOMAKE([1.7.2]).
2003-02-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: AC_PREREQ(2.57).
2003-01-20 Joel Sherrill <joel@OARcorp.com>
* startup/linkcmds: Add FreeBSD SYSCTL() sections for networking.
2002-12-19 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* clock/Makefile.am: Don't include @RTEMS_BSP@.cfg.
* console/Makefile.am: Don't include @RTEMS_BSP@.cfg.
* start/Makefile.am: Don't include @RTEMS_BSP@.cfg.
* startup/Makefile.am: Don't include @RTEMS_BSP@.cfg.
* timer/Makefile.am: Don't include @RTEMS_BSP@.cfg.
2002-12-13 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* clock/Makefile.am: Don't include @RTEMS_BSP@.cfg.
* console/Makefile.am: Don't include @RTEMS_BSP@.cfg.
* start/Makefile.am: Don't include @RTEMS_BSP@.cfg.
* startup/Makefile.am: Don't include @RTEMS_BSP@.cfg.
* timer/Makefile.am: Don't include @RTEMS_BSP@.cfg.
2002-12-12 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* start/Makefile.am: Use install-data-local to install startfile.
2002-12-10 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* wrapup/Makefile.am: Don't include @RTEMS_BSP@.cfg.
2002-11-19 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Remove RTEMS_OUTPUT_BUILD_SUBDIRS. Cosmetical
changes.
2002-10-21 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* .cvsignore: Reformat.
Add autom4te*cache.
Remove autom4te.cache.
2002-09-14 Joel Sherrill <joel@OARcorp.com>
* clock/clock.c: Per PR257, remove reference to c3x_set_ie.
c4x variant should use c4x_set_iie().
2002-08-21 Joel Sherrill <joel@OARcorp.com>
* bsp_specs: Added support for -nostdlibs.
2002-08-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* clock/Makefile.am: Use .$(OBJEXT) instead of .o.
* console/Makefile.am: Use .$(OBJEXT) instead of .o.
* start/Makefile.am: Use .$(OBJEXT) instead of .o.
* startup/Makefile.am: Use .$(OBJEXT) instead of .o.
* timer/Makefile.am: Use .$(OBJEXT) instead of .o.
* wrapup/Makefile.am: Use .$(OBJEXT) instead of .o.
2002-07-20 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* start/Makefile.am: Eliminate PGM.
Add bsplib_DATA = $(PROJECT_RELEASE)/lib/start$(LIB_VARIANT).o.
2002-07-19 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* startup/Makefile.am: Add bsplib_DATA = linkcmds.
2002-07-04 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* wrapup/Makefile.am: Eliminate TMPINSTALL_FILES.
Remove $(OBJS) from all-local.
2002-06-29 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* wrapup/Makefile.am: Remove preinstallation of libbsp.a,
2002-03-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac:
AC_INIT(package,_RTEMS_VERSION,_RTEMS_BUGS).
AM_INIT_AUTOMAKE([no-define foreign 1.6]).
* clock/Makefile.am: Remove AUTOMAKE_OPTIONS.
* Makefile.am: Remove AUTOMAKE_OPTIONS.
* console/Makefile.am: Remove AUTOMAKE_OPTIONS.
* include/Makefile.am: Remove AUTOMAKE_OPTIONS.
* start/Makefile.am: Remove AUTOMAKE_OPTIONS.
* startup/Makefile.am: Remove AUTOMAKE_OPTIONS.
* timer/Makefile.am: Remove AUTOMAKE_OPTIONS.
* wrapup/Makefile.am: Remove AUTOMAKE_OPTIONS.
2002-01-03 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* startup/bspstart.c: Include rtems/bspIo.h instead of bspIo.h.
* startup/spurious.c: Include rtems/bspIo.h instead of bspIo.h.
2001-12-22 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* bsp_specs: Replace -lrtemsall with -lrtemsbsp -lrtemscpu,
replace -lrtemsall_g with -lrtemsbsp_g -lrtemscpu_g.
2001-11-30 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Introduce RTEMS_BSP_CONFIGURE.
2001-10-12 Joel Sherrill <joel@OARcorp.com>
* console/console.c: Fixed typo.
2001-10-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* .cvsignore: Add autom4te.cache for autoconf > 2.52.
* configure.in: Remove.
* configure.ac: New file, generated from configure.in by autoupdate.
2001-09-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* include/Makefile.am: Use 'CLEANFILES ='.
* include/Makefile.am: Use 'PREINSTALL_FILES ='.
2001-05-26 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.in: Add bspopts.h, fix PACKAGE.
* include/.cvsignore: Add bspopts.h*, stamp-h*.
* include/Makefile.am: Use *_HEADERS instead of *H_FILES.
* include/bsp.h: Include bspopts.h.
2001-05-10 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.in: Use RTEMS_PROG_CC_FOR_TARGET([-ansi -fasm]).
2000-12-06 Joel Sherrill <joel@OARcorp.com>
* console/consolereserveresources.c: Removed code NOT file (YET).
2000-11-09 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Use ... instead of RTEMS_TOPdir in ACLOCAL_AMFLAGS.
2000-11-02 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Switch to ACLOCAL_AMFLAGS = -I $(RTEMS_TOPdir)/aclocal.
2000-11-01 Joel Sherrill <joel@OARcorp.com>
* startup/bspstart.c: assoc.h, error.h, libio_.h, libio.h,
and libcsupport.h moved from libc to lib/include/rtems and
now must be referenced as <rtems/XXX.h>. Header file order
was cleaned up while doing this.
2000-10-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.in, Makefile.am: ACLOCAL_AMFLAGS= -I $(RTEMS_TOPdir)/macros.
Switch to GNU canonicalization.
2000-09-22 Joel Sherrill <joel@OARcorp.com>
* startup/linkcmds: Use default object format to avoid name
changes in object format due to tool version changes.
2000-09-04 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* clock/Makefile.am, console/Makefile.am, start/Makefile.am,
startup/Makefile.am, timer/Makefile.am, wrapup/Makefile.am:
Include compile.am
2000-08-10 Joel Sherrill <joel@OARcorp.com>
* ChangeLog: New file.

View File

@@ -1,54 +0,0 @@
##
## $Id$
##
ACLOCAL_AMFLAGS = -I ../../../../aclocal
# wrapup is the one that actually builds and installs the library
# from the individual .rel files built in other directories
SUBDIRS = . tools
include $(top_srcdir)/../../../../automake/compile.am
dist_project_lib_DATA = bsp_specs
include_HEADERS = include/bsp.h
include_HEADERS += include/tm27.h
nodist_include_HEADERS = include/bspopts.h
DISTCLEANFILES = include/bspopts.h
include_HEADERS += include/simio.h
nodist_include_HEADERS += ../../shared/include/coverhd.h
noinst_LIBRARIES = libbspstart.a
libbspstart_a_SOURCES = start/start.S
project_lib_DATA = start.$(OBJEXT)
dist_project_lib_DATA += startup/linkcmds
noinst_LIBRARIES += libbsp.a
libbsp_a_SOURCES =
# startup
libbsp_a_SOURCES += ../../shared/bspclean.c ../../shared/bsplibc.c \
../../shared/bsppredriverhook.c ../../shared/bspgetworkarea.c \
../../shared/bsppost.c startup/bsppretaksinghook.c ../../shared/bspstart.c \
../../shared/bootcard.c ../../shared/sbrk.c ../../shared/setvec.c \
../../c4x/shared/c3xspurious.c ../../c4x/shared/c4xspurious.c \
../../c4x/shared/bspspuriousinit.c startup/spurious.c \
../../shared/gnatinstallhandler.c
# clock
libbsp_a_SOURCES += clock/clock.c ../../../shared/clockdrv_shell.h
# console
libbsp_a_SOURCES += console/consolereserveresources.c console/debugio.c \
console/simio.c ../../shared/console.c
# debugio
libbsp_a_SOURCES += console/debugio.c
# timer
libbsp_a_SOURCES += timer/timer.c
EXTRA_DIST = times
include $(srcdir)/preinstall.am
include $(top_srcdir)/../../../../automake/local.am

View File

@@ -1,46 +0,0 @@
#
# $Id$
#
BSP NAME: c4xsim
BOARD: Simulator in GDB
BUS: N/A
CPU FAMILY: C3X/C4X
CPU: C32 and others
COPROCESSORS: N/A
MODE: 32 bit mode
DEBUG MONITOR: gdb simulator
PERIPHERALS
===========
TIMERS: Internal Timer
RESOLUTION: ???
SERIAL PORTS: simulated via
REAL-TIME CLOCK: ???
DMA: none
VIDEO: none
SCSI: none
NETWORKING: none
DRIVER INFORMATION
==================
CLOCK DRIVER: ???
IOSUPP DRIVER: N/A
SHMSUPP: N/A
TIMER DRIVER: ???
TTY DRIVER: ???
STDIO
=====
PORT: Console port 0
ELECTRICAL: na
BAUD: na
BITS PER CHARACTER: na
PARITY: na
STOP BITS: na
Notes
=====
NONE

View File

@@ -1,11 +0,0 @@
%rename endfile old_endfile
%rename startfile old_startfile
%rename link old_link
*startfile:
%{!qrtems: %(old_startfile)} \
%{!nostdlib: %{qrtems: start.o%s -e start}}
*link:
%{!qrtems: %(old_link)} %{qrtems: -dc -dp -N}

View File

@@ -1,62 +0,0 @@
/* ckinit.c
*
* This file provides a template for the clock device driver initialization.
*
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#include <stdlib.h>
#include <rtems.h>
#include <bsp.h>
#include <rtems/tic4x/c4xio.h>
#define CLOCK_VECTOR 9
#define Clock_driver_support_at_tick()
#define Clock_driver_support_install_isr( _new, _old ) \
do { _old = 0; } while(0)
void Clock_driver_support_initialize_hardware()
{
extern int _ClockFrequency;
uint32_t Clock_counter_register_value;
float tmp;
int tmpi;
tmpi = ((int) &_ClockFrequency) * 1000000; /* ClockFrequency is in Mhz */
tmp = (float) tmpi / 2.0;
tmp = ((float) rtems_configuration_get_microseconds_per_tick() / 1000000.0) * (tmp);
Clock_counter_register_value = (unsigned int) tmp;
#if 0
Clock_counter_register_value =
(uint32_t) ((float) rtems_configuration_get_microseconds_per_tick() /
((float)_ClockFrequency / 2.0)));
#endif
c4x_timer_stop( C4X_TIMER_0 );
c4x_timer_set_counter( C4X_TIMER_0, 0 );
c4x_timer_set_period( C4X_TIMER_0, Clock_counter_register_value );
c4x_timer_start( C4X_TIMER_0 );
#if defined(_C4x)
c4x_set_iee( c4x_get_iie() | 0x1 ); /* should be ETINT0 */
#else
c3x_set_ie( c3x_get_ie() | 0x100 );
#endif
Old_ticker = (rtems_isr_entry) set_vector( clock_isr, CLOCK_VECTOR, 1 );
}
#define Clock_driver_support_shutdown_hardware()
#include "../../../shared/clockdrv_shell.h"

View File

@@ -1,24 +0,0 @@
## Process this file with autoconf to produce a configure script.
##
## $Id$
AC_PREREQ(2.60)
AC_INIT([rtems-c-src-lib-libbsp-c4x-c4xsim],[_RTEMS_VERSION],[http://www.rtems.org/bugzilla])
AC_CONFIG_SRCDIR([bsp_specs])
RTEMS_TOP(../../../../../..)
RTEMS_CANONICAL_TARGET_CPU
AM_INIT_AUTOMAKE([no-define nostdinc foreign 1.10])
RTEMS_BSP_CONFIGURE
RTEMS_PROG_CC_FOR_TARGET
RTEMS_CANONICALIZE_TOOLS
RTEMS_PROG_CCAS
RTEMS_CONFIG_BUILD_SUBDIRS(tools)
RTEMS_BSP_CLEANUP_OPTIONS(0, 0)
# Explicitly list all Makefiles here
AC_CONFIG_FILES([Makefile])
AC_OUTPUT

View File

@@ -1,153 +0,0 @@
/*
* This file contains the hardware specific portions of the TTY driver
* for the serial ports on the erc32.
*
* COPYRIGHT (c) 1989-1997.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#include <bsp.h>
#include <rtems/libio.h>
#include <stdlib.h>
#include <assert.h>
#include <simio.h>
/*
* console_outbyte_polled
*
* This routine transmits a character using polling.
*/
void console_outbyte_polled(
int port,
char ch
);
/*
* console_inbyte_nonblocking
*
* This routine polls for a character.
*/
int console_inbyte_nonblocking(
int port
);
/*
* Console Termios Support Entry Points
*
*/
int console_write_support (
int minor,
const char *bufarg,
int len
)
{
int nwrite = 0;
const char *buf = bufarg;
while (nwrite < len) {
if ( *buf )
console_outbyte_polled( minor, *buf & 0x7f );
buf++;
nwrite++;
}
return nwrite;
}
/*
* Console Device Driver Entry Points
*
*/
rtems_device_driver console_initialize(
rtems_device_major_number major,
rtems_device_minor_number minor,
void *arg
)
{
rtems_status_code status;
rtems_termios_initialize();
/*
* Register Device Names
*/
status = rtems_io_register_name( "/dev/console", major, 0 );
if (status != RTEMS_SUCCESSFUL)
rtems_fatal_error_occurred(status);
return RTEMS_SUCCESSFUL;
}
rtems_device_driver console_open(
rtems_device_major_number major,
rtems_device_minor_number minor,
void * arg
)
{
rtems_status_code sc;
static const rtems_termios_callbacks pollCallbacks = {
NULL, /* firstOpen */
NULL, /* lastClose */
console_inbyte_nonblocking, /* pollRead */
console_write_support, /* write */
NULL, /* setAttributes */
NULL, /* stopRemoteTx */
NULL, /* startRemoteTx */
0 /* outputUsesInterrupts */
};
assert( minor <= 1 );
if ( minor > 2 )
return RTEMS_INVALID_NUMBER;
sc = rtems_termios_open (major, minor, arg, &pollCallbacks );
return RTEMS_SUCCESSFUL;
}
rtems_device_driver console_close(
rtems_device_major_number major,
rtems_device_minor_number minor,
void * arg
)
{
return rtems_termios_close (arg);
}
rtems_device_driver console_read(
rtems_device_major_number major,
rtems_device_minor_number minor,
void * arg
)
{
return rtems_termios_read (arg);
}
rtems_device_driver console_write(
rtems_device_major_number major,
rtems_device_minor_number minor,
void * arg
)
{
return rtems_termios_write (arg);
}
rtems_device_driver console_control(
rtems_device_major_number major,
rtems_device_minor_number minor,
void * arg
)
{
return rtems_termios_ioctl (arg);
}

View File

@@ -1,19 +0,0 @@
/*
* This file contains the TTY driver for the serial ports on the erc32.
*
* This driver uses the termios pseudo driver.
*
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#include <bsp.h>
#include <rtems/libio.h>
#include <stdlib.h>
#include <assert.h>

View File

@@ -1,18 +0,0 @@
/*
* COPYRIGHT (c) 1989-2008.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#include <bsp.h>
#include <rtems/bspIo.h>
extern void C4X_BSP_output_char(char c);
BSP_output_char_function_type BSP_output_char = C4X_BSP_output_char;
BSP_polling_getchar_function_type BSP_poll_char;

View File

@@ -1,308 +0,0 @@
/*
* C4x simulator IO interface routines based on code provided
* by Herman ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
*
* $Id$
*/
#include <stdio.h>
#define SIM_OPEN (0xf0)
#define SIM_CLOSE (0xf1)
#define SIM_READ (0xf2)
#define SIM_WRITE (0xf3)
#define SIM_LSEEK (0xf4)
#define SIM_UNLINK (0xf5)
#define SIM_GETENV (0xf6)
#define SIM_RENAME (0xf7)
#define SIM_GETTIME (0xf8)
#define SIM_GETCLOCK (0xf9)
typedef union _io {
struct _open {
int fd : 16;
int flags : 16;
} open;
struct _openr {
int result : 16;
} openr;
struct _close {
int fd : 16;
} close;
struct _closer {
int result : 16;
} closer;
struct _read {
int fd : 16;
int count : 16;
} read;
struct _readr {
int result : 16;
} readr;
struct _write {
int fd : 16;
int count : 16;
} write;
struct _writer {
int result : 16;
} writer;
struct _lseek {
int fd : 16;
int offsetlow : 16;
int offsethigh : 16;
int orgin : 16;
} lseek;
struct _lseekr {
int result;
} lseekr;
struct _unlinkr {
int result : 16;
} unlinkr;
struct _renamer {
int result : 16;
} renamer;
struct _getenvr {
int result : 16;
} getenvr;
struct _gettimer {
int result;
} gettimer;
struct _getclockr {
int result;
} getclockr;
struct _common {
int word1;
int word2;
} common;
} io;
static void to_sim(int command, io *param, char *data, int length);
static void call_sim(void);
static void from_sim(io *param, char *data);
void sim_exit(void)
{
__asm__(" .global C$$EXIT");
__asm__("C$$EXIT: nop");
__asm__("nop");
}
int sim_open(const char *path, unsigned flags, int fno)
{
io param;
param.open.fd = fno;
param.open.flags = flags;
to_sim(SIM_OPEN,&param,(char *)path,strlen(path)+1);
call_sim();
from_sim(&param, NULL);
return param.openr.result;
}
int sim_close(int fno)
{
io param;
param.close.fd = fno;
to_sim(SIM_CLOSE,&param,NULL,0);
call_sim();
from_sim(&param, NULL);
return param.closer.result;
}
int sim_read(int fno, char *buf, unsigned count)
{
io param;
param.read.fd = fno;
param.read.count = count;
to_sim(SIM_READ,&param,NULL,0);
call_sim();
from_sim(&param, buf);
return param.readr.result;
}
int sim_write(int fno, const char *buf, unsigned count)
{
io param;
param.write.fd = fno;
param.write.count = count;
to_sim(SIM_WRITE,&param,(char *)buf,count);
call_sim();
from_sim(&param, NULL);
return param.writer.result;
}
fpos_t sim_lseek(int fno, fpos_t offset, int origin)
{
io param;
param.lseek.fd = fno;
param.lseek.offsetlow = offset & 0xffff;
param.lseek.offsethigh = offset >> 16;
to_sim(SIM_LSEEK,&param,NULL,0);
call_sim();
from_sim(&param, NULL);
return param.lseekr.result;
}
int sim_unlink(const char *path)
{
io param;
to_sim(SIM_UNLINK,NULL,(char *)path,strlen(path)+1);
call_sim();
from_sim(&param, NULL);
return param.unlinkr.result;
}
int sim_rename(const char *old, const char *new)
{
int l;
static char combined[200];
io param;
strcpy(combined,old);
l = strlen(old)+1;
strcpy(combined+l,new);
l += strlen(new) + 1;
to_sim(SIM_RENAME,NULL,combined,l);
call_sim();
from_sim(&param, NULL);
return param.renamer.result;
}
char *sim_getenv(const char *str)
{
io param;
static char result[200];
to_sim(SIM_GETENV,NULL,(char *)str,strlen(str)+1);
call_sim();
from_sim(&param, result);
return param.getenvr.result ? result : NULL;
}
int sim_gettime(void)
{
io param;
to_sim(SIM_GETTIME,NULL,NULL,0);
call_sim();
from_sim(&param, NULL);
return param.gettimer.result;
}
int sim_getclock(void)
{
io param;
to_sim(SIM_GETCLOCK,NULL,NULL,0);
call_sim();
from_sim(&param, NULL);
return param.getclockr.result;
}
int _CIOBUF_[BUFSIZ+32];
static void to_sim(int command, io *param, char *data, int length)
{
int i;
int n;
int v;
int *ip = &_CIOBUF_[0];
*ip++ = length;
*ip++ = command;
if (param) {
*ip++ = param->common.word1;
*ip++ = param->common.word2;
}
else {
*ip++ = 0;
*ip++ = 0;
}
n = length & ~3;
for (i = 0 ; i < n ; i += 4) {
v = *data++ & 0xff;
v |= (*data++ & 0xff) << 8;
v |= (*data++ & 0xff) << 16;
v |= (*data++ & 0xff) << 24;
*ip++ = v;
}
v = 0;
for ( ; i < length ; i++) {
v |= (*data++ & 0xff) << ((i & 3) << 3);
}
*ip = v;
}
static void call_sim(void)
{
__asm__(" .global C$$IO$$");
__asm__("C$$IO$$: nop");
}
static void from_sim(io *param, char *data)
{
int i;
int l;
int n;
int v;
int *ip = &_CIOBUF_[0];
l = *ip++;
param->common.word1 = *ip++;
param->common.word2 = *ip++;
if (data != NULL) {
n = l & ~3;
for (i = 0 ; i < n ; i += 4) {
v = *ip++;
*data++ = v & 0xff;
*data++ = (v >> 8) & 0xff;
*data++ = (v >> 16) & 0xff;
*data++ = (v >> 24) & 0xff;
}
v = *ip;
for (; i < l ; i++) {
*data++ = v >> ((i & 3) << 3);
}
}
}
#if 0
#include <fcntl.h>
sim_io_test()
{
sim_write(1, "howdy\n", 6);
}
#endif
/*
* Debug junk
*/
#if 0
void printk_wrapper(void)
{
__asm__(" .global _printf");
__asm__("_printf: bu _printk");
}
#endif
#if 1
#ifdef _HAVE_STDC
#include <stdarg.h>
#else
#include <varargs.h>
#endif
int __svfscanf(
register FILE *fp,
char const *fmt0,
va_list ap
)
{
return 0;
}
#endif

View File

@@ -1,4 +0,0 @@
bspopts.h
bspopts.h.in
stamp-h
stamp-h.in

View File

@@ -1,51 +0,0 @@
/* bsp.h
*
* This include file contains all C4X Simulator IO definitions.
*
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#ifndef _BSP_H
#define _BSP_H
#ifdef __cplusplus
extern "C" {
#endif
#include <bspopts.h>
#ifdef ASM
#else
#include <rtems.h>
#include <rtems/console.h>
#include <rtems/clockdrv.h>
#include <rtems/console.h>
#include <rtems/iosupp.h>
/* functions */
rtems_isr_entry set_vector( /* returns old vector */
rtems_isr_entry handler, /* isr routine */
rtems_vector_number vector, /* vector number */
int type /* RTEMS or RAW intr */
);
void BSP_fatal_return( void );
void bsp_spurious_initialize( void );
#endif /* ASM */
#ifdef __cplusplus
}
#endif
#endif

View File

@@ -1,25 +0,0 @@
/*
* C4x simulator IO interface routines based on code provided
* by Herman ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
*
* $Id$
*/
#ifndef __C4X_SIMIO_IFACE_h
#define __C4X_SIMIO_IFACE_h
#include <stdio.h>
void sim_exit(void);
int sim_open(const char *path, int flags, int fno);
int sim_close(int fno);
int sim_read(int fno, char *buf, unsigned count);
int sim_write(int fno, const char *buf, unsigned count);
fpos_t sim_lseek(int fno, fpos_t offset, int origin);
int sim_unlink(const char *path);
int sim_rename(const char *old, const char *new);
char *sim_getenv(const char *str);
int sim_gettime(void);
int sim_getclock(void);
#endif

View File

@@ -1,44 +0,0 @@
/*
* tm27.h
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#ifndef _RTEMS_TMTEST27
#error "This is an RTEMS internal file you must not include directly."
#endif
#ifndef __tm27_h
#define __tm27_h
/*
* Stuff for Time Test 27
*/
#include <rtems/tic4x/c4xio.h>
#define MUST_WAIT_FOR_INTERRUPT 0
/* XXX */
#define Install_tm27_vector( _handler ) \
set_vector( (_handler), 0x20, 1 )
#define Cause_tm27_intr() \
do { \
__asm__ volatile ( "trapu 0" ); \
} while (0)
#define Clear_tm27_intr() \
do { \
; \
} while (0)
#define Lower_tm27_intr() \
do { \
c4x_global_interrupts_enable(); \
} while (0)
#endif

View File

@@ -1,18 +0,0 @@
#
# Configuration file for the GDB C4x simulator as a C3x
#
# $Id$
#
include $(RTEMS_ROOT)/make/custom/default.cfg
RTEMS_CPU_MODEL=c32
# This contains the compiler options necessary to select the CPU model
# and (hopefully) optimize for it.
CPU_CFLAGS = -mcpu=32
# optimize flag: typically -O2
# -O2 is broken for the moment on the C4x gcc
#CFLAGS_OPTIMIZE_V = -O2
CFLAGS_OPTIMIZE_V = -O1 -g

View File

@@ -1,18 +0,0 @@
#
# Configuration file for the GDB C4x simulator
#
# $Id$
#
include $(RTEMS_ROOT)/make/custom/default.cfg
RTEMS_CPU_MODEL=c40
# This contains the compiler options necessary to select the CPU model
# and (hopefully) optimize for it.
CPU_CFLAGS = -mcpu=40 #-msmall
# optimize flag: typically -O2
# -O2 is broken for the moment on the C4x gcc
#CFLAGS_OPTIMIZE_V = -O2
CFLAGS_OPTIMIZE_V = -O1 -g

View File

@@ -1,62 +0,0 @@
## Automatically generated by ampolish3 - Do not edit
if AMPOLISH3
$(srcdir)/preinstall.am: Makefile.am
$(AMPOLISH3) $(srcdir)/Makefile.am > $(srcdir)/preinstall.am
endif
PREINSTALL_DIRS =
DISTCLEANFILES += $(PREINSTALL_DIRS)
all-local: $(TMPINSTALL_FILES)
TMPINSTALL_FILES =
CLEANFILES = $(TMPINSTALL_FILES)
all-am: $(PREINSTALL_FILES)
PREINSTALL_FILES =
CLEANFILES += $(PREINSTALL_FILES)
$(PROJECT_LIB)/$(dirstamp):
@$(MKDIR_P) $(PROJECT_LIB)
@: > $(PROJECT_LIB)/$(dirstamp)
PREINSTALL_DIRS += $(PROJECT_LIB)/$(dirstamp)
$(PROJECT_INCLUDE)/$(dirstamp):
@$(MKDIR_P) $(PROJECT_INCLUDE)
@: > $(PROJECT_INCLUDE)/$(dirstamp)
PREINSTALL_DIRS += $(PROJECT_INCLUDE)/$(dirstamp)
$(PROJECT_LIB)/bsp_specs: bsp_specs $(PROJECT_LIB)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_LIB)/bsp_specs
PREINSTALL_FILES += $(PROJECT_LIB)/bsp_specs
$(PROJECT_INCLUDE)/bsp.h: include/bsp.h $(PROJECT_INCLUDE)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp.h
$(PROJECT_INCLUDE)/tm27.h: include/tm27.h $(PROJECT_INCLUDE)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/tm27.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/tm27.h
$(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
$(PROJECT_INCLUDE)/simio.h: include/simio.h $(PROJECT_INCLUDE)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/simio.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/simio.h
$(PROJECT_INCLUDE)/coverhd.h: ../../shared/include/coverhd.h $(PROJECT_INCLUDE)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/coverhd.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/coverhd.h
$(PROJECT_LIB)/start.$(OBJEXT): start.$(OBJEXT) $(PROJECT_LIB)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_LIB)/start.$(OBJEXT)
TMPINSTALL_FILES += $(PROJECT_LIB)/start.$(OBJEXT)
$(PROJECT_LIB)/linkcmds: startup/linkcmds $(PROJECT_LIB)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds
PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds

View File

@@ -1,71 +0,0 @@
/*
* This start.S is a combination of the files boot.s and crt0.s
* provided by Herman ...XXX
*/
; .file "crt0.s"
.ref _c_int00
.global start
.global _start
.if .tms320C40
.sect ".const"
mem_control:
.word 000100000h
mem_data:
.word 03ef78050h
.text
start:
_start:
ldi 0800h,st
ldp @mem_control
ldi @mem_control,ar0
ldp @mem_data
ldi @mem_data,r0
sti r0,*+ar0(0)
sti r0,*+ar0(4)
br _c_int00
.else
.sect ".const"
mem_control:
.word 000808000h
mem_data:
.word 000001f00h
.text
start:
_start:
ldi 0800h,st
ldp @mem_control
ldi @mem_control,ar0
ldp @mem_data
ldi @mem_data,r0
sti r0,*+ar0(0)
sti r0,*+ar0(4)
br _c_int00
.endif
; .file "boot.s"
.global __stack
.global _c_int00
.ref .bss
.ref _boot_card
.ref _exit
__stack: .usect ".stack",0
.text
stack_addr: .word __stack
_c_int00:
ldp stack_addr
ldi @stack_addr,sp
ldi sp,ar3
ldp .bss ; For the small model, set up the DP to .bss
ldi 0,ar2 ; make sure cmdline=0 with regparm
push ar2 ; and memparm
call _boot_card
call _sim_exit

View File

@@ -1,19 +0,0 @@
/*
* COPYRIGHT (c) 1989-2008.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#include <bsp.h>
extern void bsp_spurious_initialize();
void bsp_pretasking_hook(void)
{
bsp_spurious_initialize();
}

View File

@@ -1,86 +0,0 @@
/* OUTPUT_FORMAT("coff-c4x") */
__STACK_SIZE = DEFINED(__STACK_SIZE) ? __STACK_SIZE : 0x1000;
__ClockFrequency = DEFINED(_ClockFrequency) ? _ClockFrequency : 50;
_RamBase = DEFINED(_RamBase) ? _RamBase : 0x0;
_RamSize = DEFINED(_RamSize) ? _RamSize : 4M;
_HeapSize = DEFINED(_HeapSize) ? _HeapSize : 0x0;
ENTRY(_start)
SECTIONS
{
.vectors : {
. += 4 * 64;
}
.text 0x200 : {
*(.text)
/*
* Special FreeBSD sysctl sections.
*/
. = ALIGN (16);
__start_set_sysctl_set = .;
*(set_sysctl_*);
__stop_set_sysctl_set = ABSOLUTE(.);
*(set_domain_*);
*(set_pseudo_*);
___CTOR_LIST__ = .;
LONG(___CTOR_END__ - ___CTOR_LIST__ - 2)
*(.ctors)
LONG(0);
___CTOR_END__ = .;
___DTOR_LIST__ = .;
LONG(___DTOR_END__ - ___DTOR_LIST__ - 2)
*(.dtors)
LONG(0)
___DTOR_END__ = .;
}
.init : { *(.init) }
.fini : { *(.fini) }
.const :
{
*(.const)
}
.cinit :
{
*(.cinit)
}
.data :
{
*(.data)
}
.comms : {
*(.comms)
}
.bss : {
.bss = .;
*(.bss)
*(COMMON)
}
.stack :
{
*(.stack)
. = . + __STACK_SIZE;
}
.heap :
{
_WorkAreaBase = .;
}
/*
.sysmem :
{
*(.sysmem)
}
*/
.stab 0 :
{
[ .stab ]
}
.stabstr 0 :
{
[ .stabstr ]
}
/* The TI tools sets cinit to -1 if the ram model is used. */
}

View File

@@ -1,33 +0,0 @@
/*
* CXX Simulator Spurious Trap Handler Assistant
*
* This is just enough of a trap handler to let us know what
* the likely source of the trap was.
*
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#include <bsp.h>
#include <rtems/bspIo.h>
#include <simio.h>
/*
* bsp_spurious_handler_assistant
*
* We can't recover so just return to gdb.
*/
void bsp_spurious_handler_assistant(
rtems_vector_number vector,
CPU_Interrupt_frame *isf
)
{
sim_exit();
}

View File

@@ -1,105 +0,0 @@
/* timer.c
*
* This file manages the benchmark timer used by the RTEMS Timing Test
* Suite. Each measured time period is demarcated by calls to
* benchmark_timer_initialize() and benchmark_timer_read(). benchmark_timer_read() usually returns
* the number of microseconds since benchmark_timer_initialize() exitted.
*
* NOTE: It is important that the timer start/stop overhead be
* determined when porting or modifying this code.
*
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#include <rtems.h>
#include <bsp.h>
#include <rtems/tic4x/c4xio.h>
uint32_t Timer_interrupts;
bool benchmark_timer_find_average_overhead;
static uint32_t start;
void benchmark_timer_initialize( void )
{
/*
* Timer has never overflowed. This may not be necessary on some
* implemenations of timer but ....
*/
c4x_timer_stop(C4X_TIMER_0);
c4x_timer_set_period(C4X_TIMER_0, 0xffffffff); /* so no interupts */
c4x_timer_start(C4X_TIMER_0);
start = c4x_timer_get_counter(C4X_TIMER_0);
Timer_interrupts = 0;
/*
* Somehow start the timer
*/
}
/*
* The following controls the behavior of benchmark_timer_read().
*
* AVG_OVEREHAD is the overhead for starting and stopping the timer. It
* is usually deducted from the number returned.
*
* LEAST_VALID is the lowest number this routine should trust. Numbers
* below this are "noise" and zero is returned.
*/
#define AVG_OVERHEAD 0 /* It typically takes X.X microseconds */
/* (Y countdowns) to start/stop the timer. */
/* This value is in microseconds. */
#define LEAST_VALID 1 /* Don't trust a clicks value lower than this */
int benchmark_timer_read( void )
{
uint32_t clicks;
uint32_t total;
int tmp;
/*
* Read the timer and see how many clicks it has been since we started.
*/
clicks = c4x_timer_get_counter(C4X_TIMER_0);
clicks -= start;
/*
* Total is calculated by taking into account the number of timer overflow
* interrupts since the timer was initialized and clicks since the last
* interrupts.
*/
total = clicks * 1;
if ( benchmark_timer_find_average_overhead == true ) {
return total; /* in count units where each count is */
/* 1 / (clock frequency/2) */
} else {
if ( total < LEAST_VALID )
return 0; /* below timer resolution */
/*
* Somehow convert total into microseconds
*/
tmp = (int) ((float) total * ((1.0 / 25.0)));
return (tmp - AVG_OVERHEAD);
}
}
void benchmark_timer_disable_subtracting_average_overhead(
bool find_flag
)
{
benchmark_timer_find_average_overhead = find_flag;
}

View File

@@ -1,5 +0,0 @@
aclocal.m4
autom4te*.cache
configure
Makefile
Makefile.in

View File

@@ -1,101 +0,0 @@
2008-03-11 Joel Sherrill <joel.sherrill@oarcorp.com>
* runtest.in: Skip all fatal error tests.
2007-09-04 Joel Sherrill <joel.sherrill@OARcorp.com>
* runtest.in: Add capture to list of interative tests to skip in batch
mode.
2007-01-26 Ralf Corsépius <ralf.corsepius@rtems.org>
* Makefile.am: Use MKDIR_P instead of mkdir_p.
2006-12-02 Ralf Corsépius <ralf.corsepius@rtems.org>
* configure.ac: New BUG-REPORT address.
2006-10-17 Ralf Corsépius <ralf.corsepius@rtems.org>
* configure.ac: Require autoconf-2.60. Require automake-1.10.
2004-09-24 Ralf Corsepius <ralf_corsepius@rtems.org>
* configure.ac: Require automake > 1.9.
2004-01-14 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Re-add dirstamps to PRE/TMPINSTALL_FILES.
Add PRE/TMPINSTALL_FILES to CLEANFILES.
2003-12-12 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Reworked.
2003-12-12 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Require automake >= 1.8, autoconf >= 2.59.
2003-08-18 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Reflect having moved aclocal/.
2003-08-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Reflect having moved automake/.
2003-08-14 Joel Sherrill <joel@OARcorp.com>
* runtest.in: Add fileio to list of interactive tests.
2003-08-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Use rtems-bugs@rtems.com as bug report email address.
2003-03-06 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Remove AC_CONFIG_AUX_DIR.
2003-02-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: AM_INIT_AUTOMAKE([1.7.2]).
2003-02-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: AC_PREREQ(2.57).
2002-10-21 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* .cvsignore: Reformat.
Add autom4te*cache.
Remove autom4te.cache.
2002-03-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac:
AC_INIT(package,_RTEMS_VERSION,_RTEMS_BUGS).
AM_INIT_AUTOMAKE([no-define foreign 1.6]).
* Makefile.am: Remove AUTOMAKE_OPTIONS.
2001-10-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* .cvsignore: Add autom4te.cache for autoconf > 2.52.
* configure.in: Remove.
* configure.ac: New file, generated from configure.in by autoupdate.
2000-11-09 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Use ... instead of RTEMS_TOPdir in ACLOCAL_AMFLAGS.
2000-11-02 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Switch to ACLOCAL_AMFLAGS = -I $(RTEMS_TOPdir)/aclocal.
2000-10-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: ACLOCAL_AMFLAGS= -I $(RTEMS_TOPdir)/macros.
Switch to GNU canonicalization.
2000-08-10 Joel Sherrill <joel@OARcorp.com>
* ChangeLog: New file.

View File

@@ -1,26 +0,0 @@
##
## $Id$
##
ACLOCAL_AMFLAGS = -I ../../../../../aclocal
transform =
bsptools_bindir = ${exec_prefix}/@RTEMS_BSP@/tests
bsptools_bin_SCRIPTS = runtest
all-local: $(TMPINSTALL_FILES)
TMPINSTALL_FILES =
$(PROJECT_ROOT)/@RTEMS_BSP@/tests/$(dirstamp):
@$(MKDIR_P) $(PROJECT_ROOT)/@RTEMS_BSP@/tests
@: > $(PROJECT_ROOT)/@RTEMS_BSP@/tests/$(dirstamp)
TMPINSTALL_FILES += $(PROJECT_ROOT)/@RTEMS_BSP@/tests/$(dirstamp)
$(PROJECT_ROOT)/@RTEMS_BSP@/tests/runtest: runtest $(PROJECT_ROOT)/@RTEMS_BSP@/tests/$(dirstamp)
$(INSTALL_SCRIPT) $< $(PROJECT_ROOT)/@RTEMS_BSP@/tests/runtest
TMPINSTALL_FILES += $(PROJECT_ROOT)/@RTEMS_BSP@/tests/runtest
CLEANFILES = $(TMPINSTALL_FILES)
include $(top_srcdir)/../../../../../automake/local.am

View File

@@ -1,24 +0,0 @@
## Process this file with autoconf to produce a configure script.
##
## $Id$
AC_PREREQ(2.60)
AC_INIT([rtems-c-src-lib-libbsp-c4x-c4xsim-tools],[_RTEMS_VERSION],[http://www.rtems.org/bugzilla])
AC_CONFIG_SRCDIR([runtest.in])
RTEMS_TOP(../../../../../../..)
RTEMS_CANONICAL_TARGET_CPU
AM_INIT_AUTOMAKE([no-define foreign 1.10])
AM_MAINTAINER_MODE
RTEMS_PATH_KSH
RTEMS_ENV_RTEMSBSP
RTEMS_PROJECT_ROOT
RTEMS_TOOLPATHS
# Explicitly list all Makefiles here
AC_CONFIG_FILES([Makefile
runtest])
AC_OUTPUT

View File

@@ -1,331 +0,0 @@
#!@KSH@ -p
#
# $Id$
#
# Run rtems tests on the c4x simulator built into gdb
# This program generates a simulator script to run each test
# Typically the test is then run, although it can be generated
# and left as a file using -s
#
# progname=`basename $0`
progname=${0##*/} # fast basename hack for ksh, bash
USAGE=\
"usage: $progname [ -opts ] test [ test ... ]
-o options -- specify options to be passed to simulator
-v -- verbose
-s -- generate script file (as 'test'.ss) and exit
-l logdir -- specify log directory (default is 'logdir')
Specify test as 'test' or 'test.exe'.
All multiprocessing tests *must* be specified simply as 'mp01', etc.
"
# export everything
set -a
# log an error to stderr
prerr()
{
echo "$*" >&2
}
fatal() {
[ "$1" ] && prerr $*
prerr "$USAGE"
exit 1
}
warn() {
[ "$1" ] && prerr $*
}
# print args, 1 per line
ml_echo()
{
for l
do
echo "$l"
done
}
# run at normal and signalled exit
test_exit()
{
exit_code=$1
rm -f ${statfile}* ${scriptfile}* ${logfile}.tmp*
[ "$sim_pid" ] && kill -9 $sim_pid
exit $exit_code
}
#
# process the options
#
# defaults for getopt vars
#
# max_run_time is defaulted to 5 minutes
#
verbose=""
extra_options=""
script_and_exit=""
stdio_setup="yes"
run_to_completion="yes"
logdir=log
update_on_tick="no"
max_run_time=$((6 * 60)) # is 5 on other simulators.
using_print_buffer="yes"
while getopts vhr12o:c:sl:t OPT
do
case "$OPT" in
v)
verbose="yes";;
s)
script_and_exit="yes"
run_to_completion="no"
stdio_setup="no";;
l)
logdir="$OPTARG";;
o)
extra_options="$OPTARG";;
*)
fatal;;
esac
done
let $((shiftcount = $OPTIND - 1))
shift $shiftcount
args=$*
#
# Run the tests
#
tests="$args"
if [ ! "$tests" ]
then
set -- `echo *.exe`
tests="$*"
fi
[ -d $logdir ] ||
mkdir $logdir || fatal "could not create log directory ($logdir)"
cpus=1
# where the tmp files go
statfile=/tmp/stats$$
scriptfile=/tmp/script$$
trap "test_exit" 1 2 3 13 14 15
for tfile in $tests
do
tname=`basename $tfile .exe`
TEST_TYPE="single"
case $tname in
capture* | monitor* | termios* | fileio* | pppd*)
if [ $run_to_completion = "yes" ]
then
warn "Skipping $tname; it is interactive"
continue
fi
;;
*-node2*)
fatal "MP tests not supported"
warn "Skipping $tname; 'runtest' runs both nodes when for *-node1"
continue;;
*-node1*)
fatal "MP tests not supported"
warn "Running both nodes associated with $tname"
tname=`echo $tname | sed 's/-node.*//'`
TEST_TYPE="mp"
;;
stackchk*|*fatal*|malloctest*|termio*)
warn "Skipping $tname; it locks up or takes a VERY long time to run"
continue
;;
esac
# Change the title bar to indicate which test we are running
# The simulator screen doesn't provide any indication
logfile=$logdir/$tname
infofile=$logfile.info
rm -f ${statfile}* ${scriptfile}* ${logfile}.tmp*
date=`date`
echo "Starting $tname at $date"
# Generate a script file to get the work done.
# The script file must do the following:
#
# load the program (programs if MP test)
# arrange for capture of output
# run the program
# produce statistics
{
case $TEST_TYPE in
"mp")
fatal "MP tests not supported"
;;
# All other tests (single-processor)
*)
echo "target sim -3"
echo "sim m r 0"
echo "sim m w 0"
echo "load"
echo ""
echo "printf \"START_OF_TEST\\n\""
echo "run"
echo "printf \"END_OF_TEST\\n\""
echo "quit"
;;
esac
} > ${scriptfile}
if [ "$script_and_exit" = "yes" ]
then
mv ${scriptfile} $tname.ss
warn "script left in $tname.ss"
test_exit 0
fi
# Spin off the simulator in the background
c4x-rtems-gdb $extra_options -n \
--command ${scriptfile} ${tfile} >${logfile}.tmp 2>&1 &
sim_pid=$!
# Make sure it won't run forever...
{
time_run=0
while [ $time_run -lt $max_run_time ]
do
# sleep 10s at a time waiting for job to finish or timer to expire
# if job has exited, then we exit, too.
sleep 10
if kill -0 $sim_pid 2>/dev/null
then
time_run=$((time_run + 10))
else
exit 0
fi
done
kill -2 $sim_pid 2>/dev/null
{ sleep 5; kill -9 $sim_pid 2>/dev/null; } &
} &
wait $sim_pid
status=$?
if [ $status -ne 0 ]
then
ran_too_long="yes"
else
ran_too_long="no"
fi
sim_pid=""
# fix up the printf output from the test
case $TEST_TYPE in
mp)
fatal "MP not supported"
;;
*)
output_it=0
clean_exit=0
sed -e '1,9d' \
-e 's/
//' -e '/^$/d' < ${logfile}.tmp |
while read line
do
if [ $output_it -eq 1 ] ; then
case $line in
END_OF_TEST*)
output_it=0
;;
*simio.c:86*)
output_it=0
clean_exit=1
;;
*)
echo "$line"
;;
esac
else
if [ "$line" = "START_OF_TEST" ] ; then
output_it=1
fi
fi
done > ${logfile}_1
if [ ${clean_exit} -eq 0 ] ; then
mv ${logfile}_1 ${logfile}_1.XXX
sed -e '/^Program received signal SIGTRAP/d' \
<${logfile}_1.XXX >${logfile}_1
rm -f ${logfile}_1.XXX
fi
;;
esac
# Create the info files
for cpu in $cpus
do
{
echo "$date"
echo "Test run on: `uname -n` ( `uname -a` )"
output_it=1
sed -e 's/
//' < ${logfile}.tmp |
while read line
do
if [ $output_it -eq 0 ] ; then
if [ "$line" = "END_OF_TEST" ] ; then
output_it=1
fi
else
if [ "$line" = "START_OF_TEST" ] ; then
output_it=0
else
echo "$line"
fi
fi
done
if [ "$ran_too_long" = "yes" ]
then
echo "Test did NOT finish normally; killed after $max_run_time seconds"
fi
echo
date;
} > ${infofile}_$cpu
done
rm -f ${logfile}.tmp*
if [ "$cpus" = "1" ]
then
mv ${infofile}_1 ${infofile}
mv ${logfile}_1 ${logfile}
fi
done
test_exit 0
# Local Variables: ***
# mode:ksh ***

View File

@@ -1,21 +0,0 @@
## Process this file with autoconf to produce a configure script.
##
## $Id$
AC_PREREQ(2.60)
AC_INIT([rtems-c-src-lib-libbsp-c4x],[_RTEMS_VERSION],[http://www.rtems.org/bugzilla])
AC_CONFIG_SRCDIR([c4xsim])
RTEMS_TOP(../../../../..)
RTEMS_CANONICAL_TARGET_CPU
AM_INIT_AUTOMAKE([no-define foreign 1.10])
AM_MAINTAINER_MODE
RTEMS_ENV_RTEMSBSP
RTEMS_PROJECT_ROOT
RTEMS_CHECK_BSPDIR([$RTEMS_BSP_FAMILY])
# Explicitly list all Makefiles here
AC_CONFIG_FILES([Makefile])
AC_OUTPUT

View File

@@ -1,44 +0,0 @@
/*
* CXX Spurious Trap Handler Install Routine
*
* This is just enough of a trap handler to let us know what
* the likely source of the trap was.
*
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#include <bsp.h>
#include <rtems/bspIo.h>
/*
* bsp_spurious_initialize
*
* Install the spurious handler for most vectors.
*/
rtems_isr bsp_spurious_handler(
rtems_vector_number vector,
CPU_Interrupt_frame *isf
);
void bsp_spurious_initialize()
{
uint32_t vector;
for ( vector=0 ; vector<64 ; vector++ ) {
/*
* Skip any vectors that might be generally used for traps.
*/
set_vector( bsp_spurious_handler, vector, 1 );
}
}

View File

@@ -1,85 +0,0 @@
/*
* C3X Spurious Trap Handler
*
* This is just enough of a trap handler to let us know what
* the likely source of the trap was.
*
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#include <bsp.h>
#include <rtems/bspIo.h>
/*
* bsp_spurious_handler
*
* Print a message on the debug console and then die
*/
void bsp_spurious_handler_assistant(
rtems_vector_number,
CPU_Interrupt_frame *
);
#if defined(_C3x)
rtems_isr bsp_spurious_handler(
rtems_vector_number vector,
CPU_Interrupt_frame *isf
)
{
char *s;
printk( "Unexpected interrupt (0x%x)\n", vector );
printk( "It looks like we got the interrupt at 0x%x\n", isf->interrupted );
/*
* Can we print a name?
*/
s = 0;
if ( vector <= 0x1f ) {
switch ( vector ) {
#if defined(_C30) || defined(_C31)
case 0: s = "RESET"; break;
#endif
case 1: s = "INT0"; break;
case 2: s = "INT1"; break;
case 3: s = "INT2"; break;
case 4: s = "INT3"; break;
case 5: s = "XINT0"; break;
case 6: s = "RINT0"; break;
#if defined(_C30) || defined(_C31)
case 7: s = "XINT1"; break;
case 8: s = "RINT1"; break;
#endif
case 9: s = "TINT0"; break;
case 0x0a: s = "TINT1"; break;
case 0x0b: s = "DINT0"; break;
#if defined(_C32)
case 0x0c: s = "DINT1"; break;
#endif
default: s = "Reserved"; break;
}
printk( "Looks like it was an %s\n", s );
} else {
printk( "Looks like it was a TRAP%d\n", vector - 0x20 );
#if defined(_C30) || defined(_C31)
if ( vector > 0x3B )
printk( "But TRAP27 - TRAP31 are reserved\n" );
#endif
}
/*
* Now call the BSP specific routine
*/
bsp_spurious_handler_assistant( vector, isf );
}
#endif

View File

@@ -1,79 +0,0 @@
/*
* C4X Spurious Trap Handler
*
* This is just enough of a trap handler to let us know what
* the likely source of the trap was.
*
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#include <bsp.h>
#include <rtems/bspIo.h>
/*
* bsp_spurious_handler
*
* Print a message on the debug console and then die
*/
void bsp_spurious_handler_assistant(
rtems_vector_number,
CPU_Interrupt_frame *
);
#if defined(_C4x)
rtems_isr bsp_spurious_handler(
rtems_vector_number vector,
CPU_Interrupt_frame *isf
)
{
char *s;
printk( "Unexpected interrupt (0x%x)\n", vector );
printk( "It looks like we got the interrupt at 0x%x\n", isf->interrupted );
/*
* Can we print a name?
*/
printk( "Looks like it was a " );
if ( vector >= 0x0d && vector <= 0x24 ) {
switch ( vector & 0x3 ) {
case 1: s = "ICFULL"; break;
case 2: s = "ICRDY"; break;
case 3: s = "OCRDY"; break;
case 0: s = "OCEMPTY"; break;
}
printk( "%s%d\n", s, (vector - 0x0d) / 4 );
} else if ( vector >= 0x25 && vector <= 0x2a ) {
printk( "DMA INT%d\n", (vector - 0x25) );
} else /* if ( vector <= 0x0c || vector >= 0x2b ) */ {
switch ( vector ) {
case 0: s = "RESET"; break;
case 1: s = "NMI"; break;
case 2: s = "TINT0"; break;
case 3: s = "IIOF0"; break;
case 4: s = "IIOF1"; break;
case 5: s = "IIOF2"; break;
case 6: s = "IIOF3"; break;
case 0x2b: s = "TINT1"; break;
case 0x3f: s = "Reserved"; break;
default: s = "Unused"; break;
}
printk( "%s\n", s );
}
/*
* Now call the BSP specific routine
*/
bsp_spurious_handler_assistant( vector, isf );
}
#endif

View File

@@ -1,2 +0,0 @@
Makefile
Makefile.in

View File

@@ -1,422 +0,0 @@
2010-03-27 Joel Sherrill <joel.sherrill@oarcorp.com>
* cpu.c, cpu_asm.S, irq.c: Add include of config.h
2009-02-12 Joel Sherrill <joel.sherrill@oarcorp.com>
* cpu.c: Change prototype of IDLE thread to consistently return void *
and take a uintptr_t argument.
2009-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
* cpu.c, rtems/score/cpu.h: Eliminate _CPU_Thread_dispatch_pointer and
passing address of _Thread_Dispatch to _CPU_Initialize. Clean up
comments.
2008-09-11 Ralf Corsépius <ralf.corsepius@rtems.org>
* rtems/score/types.h: Do not define boolean, single_precision,
double_precision unless RTEMS_DEPRECATED_TYPES is given.
2008-08-21 Ralf Corsépius <ralf.corsepius@rtems.org>
* rtems/score/types.h: Include stdbool.h.
Use bool as base-type for boolean.
2008-07-31 Joel Sherrill <joel.sherrill@OARcorp.com>
* cpu.c, rtems/score/cpu.h: Correct prototype of Idle threads.
2008-06-05 Joel Sherrill <joel.sherrill@OARcorp.com>
* rtems/score/cpu.h: Add CPU_SIMPLE_VECTORED_INTERRUPTS porting
parameter to indicate that the port uses the Simple Vectored
Interrupt model or the Programmable Interrupt Controller Model. The
PIC model is implemented primarily in the BSP and it is responsible
for all memory allocation.
2007-12-17 Joel Sherrill <joel.sherrill@oarcorp.com>
* rtems/score/cpu.h: Add _CPU_Context_Get_SP() for stack check utility.
2007-12-17 Joel Sherrill <joel.sherrill@OARcorp.com>
* rtems/tic4x/c4xio.h: Sweep to make sure grep for COPYRIGHT passes.
2007-12-04 Joel Sherrill <joel.sherrill@OARcorp.com>
* cpu.c, rtems/score/cpu.h: Move interrupt_stack_size field from CPU
Table to Configuration Table. Eliminate CPU Table from all ports.
Delete references to CPU Table in all forms.
2007-12-03 Joel Sherrill <joel.sherrill@OARcorp.com>
* rtems/score/cpu.h: Moved most of the remaining CPU Table fields to
the Configuration Table. This included pretasking_hook,
predriver_hook, postdriver_hook, idle_task, do_zero_of_workspace,
extra_mpci_receive_server_stack, stack_allocate_hook, and
stack_free_hook. As a side-effect of this effort some multiprocessing
code was made conditional and some style clean up occurred.
2007-05-09 Ralf Corsépius <ralf.corsepius@rtems.org>
* rtems/score/cpu.h: Remove CPU_HAS_OWN_HOST_TO_NETWORK_ROUTINES.
2007-04-17 Ralf Corsépius <ralf.corsepius@rtems.org>
* rtems/score/cpu.h:
Use Context_Control_fp* instead of void* for fp_contexts.
Eliminate evil casts.
2007-01-30 Ralf Corsépius <ralf.corsepius@rtems.org>
* rtems/score/types.h: Use uint_least16_t for
Priority_Bit_map_control;
2006-11-17 Ralf Corsépius <ralf.corsepius@rtems.org>
* rtems/score/types.h: Remove unsigned64, signed64.
2006-01-16 Joel Sherrill <joel@OARcorp.com>
* rtems/score/cpu.h: Part of a large patch to improve Doxygen output.
As a side-effect, grammar and spelling errors were corrected, spacing
errors were address, and some variable names were improved.
2005-11-08 Ralf Corsepius <ralf.corsepius@rtems.org>
* rtems/score/types.h: Eliminate unsigned16, unsigned32.
2005-10-27 Ralf Corsepius <ralf.corsepius@rtems.org>
* rtems/asm.h: Remove private version of CONCAT macros.
Include <rtems/concat.h> instead.
2005-02-08 Ralf Corsepius <ralf.corsepius@rtems.org>
* Makefile.am: Split out preinstallation rules.
* preinstall.am: New (Split out from Makefile.am).
2005-02-04 Ralf Corsepius <ralf.corsepius@rtems.org>
PR 754/rtems
* rtems/asm.h: New (relocated from .).
* asm.h: Remove (moved to rtems/asm.h).
* Makefile.am: Reflect changes above.
2005-02-02 Ralf Corsepius <ralf.corsepius@rtems.org>
PR rtems/752
* rtems/tic4x/c4xio.h: New (relocated from .).
New header guard.
* c4xio.h: Remove.
* Makefile.am: Reflect changes above.
2004-01-28 Ralf Corsepius <ralf.corsepiu@rtems.org>
* asm.h, rtems/score/c4x.h, rtems/score/cpu.h,
rtems/score/cpu_asm.h, rtems/score/types.h: New header guards.
2005-01-24 Ralf Corsepius <ralf.corsepius@rtems.org>
* rtems/score/types.h: Remove signed8, signed16, signed32,
unsigned8, unsigned16, unsigned32.
2005-01-24 Ralf Corsepius <ralf.corsepius@rtems.org>
* rtems/score/cpu.h: *_swap_u32( uint32_t ).
2005-01-24 Ralf Corsepius <ralf.corsepius@rtems.org>
* rtems/score/types.h: #include <rtems/stdint.h>.
2005-01-07 Ralf Corsepius <ralf.corsepius@rtems.org>
* Makefile.am: Eliminate CFLAGS_OPTIMIZE_V.
2005-01-01 Ralf Corsepius <ralf.corsepius@rtems.org>
* Makefile.am: Remove build-variant support.
2004-11-21 Ralf Corsepius <ralf.corsepius@rtems.org>
* rtems/score/types.h: Use __rtems_score_types_h as preprocessor
guard.
2004-11-21 Ralf Corsepius <ralf.corsepius@rtems.org>
* asm.h: Add doxygen preamble.
2004-10-02 Ralf Corsepius <ralf_corsepius@rtems.org>
* rtems/score/c4x.h: Add doxygen preamble.
* rtems/score/cpu.h: Add doxygen preamble.
* rtems/score/cpu_asm.h: Add doxygen preamble.
* rtems/score/types.h: Add doxygen preamble.
2004-09-29 Joel Sherrill <joel@OARcorp.com>
* rtems/score/cpu.h: i960 obsoleted and all references removed.
2004-04-06 Ralf Corsepius <ralf_corsepius@rtems.org>
* configure.ac: Remove (Merged into $(top_srcdir)/configure.ac).
* Makefile.am: Don't include multilib.am.
Reflect merging configure.ac into $(top_srcdir)/configure.ac.
2004-04-02 Ralf Corsepius <ralf_corsepius@rtems.org>
* Makefile.am: Install c4xio.h to $(includedir)/rtems/c4x.
2004-04-01 Ralf Corsepius <ralf_corsepius@rtems.org>
* Makefile.am: Install asm.h to $(includedir)/rtems.
2004-04-01 Ralf Corsepius <ralf_corsepius@rtems.org>
* cpu_asm.S: Include <rtems/asm.h> instead of <asm.h>.
2004-03-30 Ralf Corsepius <ralf_corsepius@rtems.org>
* c4xio.h, cpu.c, irq.c, rtems/score/cpu.h: Convert to using c99
fixed size types.
2004-03-29 Ralf Corsepius <ralf_corsepius@rtems.org>
* configure.ac: RTEMS_TOP([../../../..]).
2004-01-21 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Move RTEMS_TOP one subdir down.
2004-01-19 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Add PREINSTALL_DIRS.
2004-01-14 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Re-add dirstamps to PREINSTALL_FILES.
Add PREINSTALL_FILES to CLEANFILES.
2004-01-12 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Requires automake >= 1.8.1.
2004-01-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Include compile.am, again.
2004-01-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Convert to using automake compilation rules.
2003-12-12 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Use mkdir_p. Remove dirs from PREINSTALL_FILES.
2003-12-12 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Require automake >= 1.8, autoconf >= 2.59.
2003-12-01 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Remove TMPINSTALL_FILES.
2003-11-30 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Add $(dirstamp) to preinstallation rules.
2003-11-23 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Don't use gmake rules for preinstallation.
2003-10-21 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Remove RTEMS_CANONICAL_HOST.
2003-10-21 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Remove RTEMS_CHECK_CPU.
2003-09-26 Joel Sherrill <joel@OARcorp.com>
* rtems/score/cpu.h: Obsoleting HP PA-RISC port and removing all
references.
2003-09-04 Joel Sherrill <joel@OARcorp.com>
* cpu.c, cpu_asm.S, irq.c, rtems/score/c4x.h, rtems/score/cpu.h,
rtems/score/cpu_asm.h, rtems/score/types.h: URL for license changed.
2003-08-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Use rtems-bugs@rtems.com as bug report email address.
2003-03-06 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Remove AC_CONFIG_AUX_DIR.
2003-02-11 Joel Sherrill <joel@OARcorp.com>
* irq.c: Rework logic that decides when to call
_Thread_Dispatch. Analysis by Sergei Organov <osv@javad.ru>
determined that _ISR_Signals_to_thread_executing was not being
honored and/or cleared properly.
2002-12-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Require autoconf-2.57 + automake-1.7.2.
* Makefile.am: Eliminate C_O_FILES, S_O_FILES, libscorecpu_a_OBJECTS.
2002-11-19 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Fix package name.
2002-10-25 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Add nostdinc to AM_INIT_AUTOMAKE.
2002-10-21 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* .cvsignore: Reformat.
Add autom4te*cache.
Remove autom4te.cache.
2002-07-26 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Build libscorecpu.a instead of rtems-cpu.rel.
2002-07-22 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Use .$(OBJEXT) instead of .o.
2002-07-22 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Use . instead of .o.
2002-07-05 Joel Sherrill <joel@OARcorp.com>
* cpu.c, irq.c, rtems/score/cpu.h: Filled in something that was
marked XXX.
2002-07-05 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: RTEMS_TOP(../../../..).
2002-07-03 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* rtems.c: Remove.
* Makefile.am: Reflect changes above.
2002-07-01 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Remove RTEMS_PROJECT_ROOT.
2002-06-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Add RTEMS_PROG_CCAS
2002-06-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Use AC_CONFIG_AUX_DIR(../../../..).
Add AC_PROG_RANLIB.
2002-06-17 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Include $(top_srcdir)/../../../automake/*.am.
Use ../../../aclocal.
2001-04-03 Joel Sherrill <joel@OARcorp.com>
* Per PR94, all rtems/score/CPUtypes.h are named rtems/score/types.h.
* rtems/score/c4xtypes.h: Removed.
* rtems/score/types.h: New file via CVS magic.
* Makefile.am, rtems/score/cpu.h: Account for name change.
2002-03-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac:
AC_INIT(package,_RTEMS_VERSION,_RTEMS_BUGS).
AM_INIT_AUTOMAKE([no-define foreign 1.6]).
* Makefile.am: Remove AUTOMAKE_OPTIONS.
2002-01-29 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* rtems/Makefile.am: Removed.
* rtems/score/Makefile.am: Removed.
* configure.ac: Reflect changes above.
* Makefile.am: Reflect changes above.
2002-02-09 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* asm.h: Remove #include <rtems/score/targopts.h>.
Add #include <rtems/score/cpuopts.h>.
2002-02-05 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Remove RTEMS_CHECK_CUSTOM_BSP.
2001-12-20 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Use RTEMS_ENV_RTEMSCPU.
2001-12-19 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Add multilib support.
2001-11-28 Joel Sherrill <joel@OARcorp.com>,
This was tracked as PR91.
* rtems/score/cpu.h: Added CPU_PROVIDES_ISR_IS_IN_PROGRESS macro which
is used to specify if the port uses the standard macro for this (FALSE).
A TRUE setting indicates the port provides its own implementation.
2001-10-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* .cvsignore: Add autom4te.cache for autoconf > 2.52.
* configure.in: Remove.
* configure.ac: New file, generated from configure.in by autoupdate.
2001-09-23 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* rtems/score/Makefile.am: Use 'PREINSTALL_FILES ='.
* Makefile.am: Use 'PREINSTALL_FILES ='.
2001-02-04 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am, rtems/score/Makefile.am:
Apply include_*HEADERS instead of H_FILES.
2001-01-03 Joel Sherrill <joel@OARcorp.com>
* rtems/score/cpu.h: Added _CPU_Initialize_vectors().
2000-11-09 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Use ... instead of RTEMS_TOPdir in ACLOCAL_AMFLAGS.
2000-11-02 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Switch to ACLOCAL_AMFLAGS = -I $(RTEMS_TOPdir)/aclocal.
2000-10-25 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: ACLOCAL_AMFLAGS= -I $(RTEMS_TOPdir)/macros.
Switch to GNU canonicalization.
2000-10-18 Joel Sherrill <joel@OARcorp.com>
* rtems/score/c4x.h: Modified to properly multilib. This required
using only macros predefined by gcc.
2000-09-04 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Include compile.am, formatting.
* rtems/Makefile.am: formatting.
* rtems/score/Makefile.am: formatting.
2000-08-10 Joel Sherrill <joel@OARcorp.com>
* ChangeLog: New file.

View File

@@ -1,22 +0,0 @@
##
## $Id$
##
include $(top_srcdir)/automake/compile.am
include_rtemsdir = $(includedir)/rtems
include_rtems_HEADERS = rtems/asm.h
include_rtems_tic4xdir = $(includedir)/rtems/tic4x
include_rtems_tic4x_HEADERS = rtems/tic4x/c4xio.h
include_rtems_scoredir = $(includedir)/rtems/score
include_rtems_score_HEADERS = rtems/score/cpu.h rtems/score/c4x.h \
rtems/score/types.h rtems/score/cpu_asm.h
noinst_LIBRARIES = libscorecpu.a
libscorecpu_a_SOURCES = cpu.c irq.c cpu_asm.S
libscorecpu_a_CPPFLAGS = $(AM_CPPFLAGS)
include $(srcdir)/preinstall.am
include $(top_srcdir)/automake/local.am

View File

@@ -1,180 +0,0 @@
/*
* C4x CPU Dependent Source
*
*
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <rtems/system.h>
#include <rtems/score/isr.h>
#include <rtems/score/wkspace.h>
/* _CPU_Initialize
*
* This routine performs processor dependent initialization.
*
* INPUT PARAMETERS: NONE
*
* C4x Specific Information:
*
*/
void _CPU_Initialize(void)
{
#if (CPU_HARDWARE_FP == TRUE)
/*
* If there is not an easy way to initialize the FP context
* during Context_Initialize, then it is usually easier to
* save an "uninitialized" FP context here and copy it to
* the task's during Context_Initialize.
*/
/* FP context initialization support goes here */
#endif
}
/*PAGE
*
* _CPU_ISR_install_raw_handler
*
* C4x Specific Information:
*
*/
void _CPU_ISR_install_raw_handler(
uint32_t vector,
proc_ptr new_handler,
proc_ptr *old_handler
)
{
void **ittp;
/*
* This is where we install the interrupt handler into the "raw" interrupt
* table used by the CPU to dispatch interrupt handlers.
*/
ittp = c4x_get_ittp();
*old_handler = ittp[ vector ];
ittp[ vector ] = new_handler;
}
/*XXX */
#define C4X_CACHE 1
#define C4X_BASE_ST (C4X_CACHE==1) ? 0x4800 : 0x4000
void _CPU_Context_Initialize(
Context_Control *_the_context,
void *_stack_base,
uint32_t _size,
uint32_t _isr,
void (*_entry_point)(void),
int _is_fp
)
{
unsigned int *_stack;
_stack = (unsigned int *)_stack_base;
*_stack = (unsigned int) _entry_point;
_the_context->sp = (unsigned int) _stack;
_the_context->st = C4X_BASE_ST;
if ( _isr == 0 )
_the_context->st |= C4X_ST_GIE;
}
/*PAGE
*
* _CPU_ISR_install_vector
*
* This kernel routine installs the RTEMS handler for the
* specified vector.
*
* Input parameters:
* vector - interrupt vector number
* old_handler - former ISR for this vector number
* new_handler - replacement ISR for this vector number
*
* Output parameters: NONE
*
*
* C4x Specific Information:
*
*/
void _CPU_ISR_install_vector(
uint32_t vector,
proc_ptr new_handler,
proc_ptr *old_handler
)
{
proc_ptr ignored;
extern void rtems_irq_prologue_0(void);
extern void rtems_irq_prologue_1(void);
void *entry;
*old_handler = _ISR_Vector_table[ vector ];
/*
* If the interrupt vector table is a table of pointer to isr entry
* points, then we need to install the appropriate RTEMS interrupt
* handler for this vector number.
*/
entry = (void *)rtems_irq_prologue_0 +
((rtems_irq_prologue_1 - rtems_irq_prologue_0) * vector);
_CPU_ISR_install_raw_handler( vector, entry, &ignored );
/*
* We put the actual user ISR address in '_ISR_vector_table'. This will
* be used by the _ISR_Handler so the user gets control.
*/
_ISR_Vector_table[ vector ] = new_handler;
}
/*PAGE
*
* _CPU_Thread_Idle_body
*
* NOTES:
*
* 1. This is the same as the regular CPU independent algorithm.
*
* 2. If you implement this using a "halt", "idle", or "shutdown"
* instruction, then don't forget to put it in an infinite loop.
*
* 3. Be warned. Some processors with onboard DMA have been known
* to stop the DMA if the CPU were put in IDLE mode. This might
* also be a problem with other on-chip peripherals. So use this
* hook with caution.
*
* C4x Specific Information:
*
*
*/
#if (CPU_PROVIDES_IDLE_THREAD_BODY == 1)
void *_CPU_Thread_Idle_body( uintptr_t ignored )
{
for( ; ; ) {
__asm__( "idle" );
__asm__( "nop" );
__asm__( "nop" );
__asm__( "nop" );
/* insert your "halt" instruction here */ ;
}
}
#endif

View File

@@ -1,773 +0,0 @@
/* cpu_asm.c ===> cpu_asm.S or cpu_asm.s
*
* This file contains the basic algorithms for all assembly code used
* in an specific CPU port of RTEMS. These algorithms must be implemented
* in assembly language
*
* NOTE: This is supposed to be a .S or .s file NOT a C file.
*
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <rtems/asm.h>
/*
* _CPU_Context_save_fp_context
*
* This routine is responsible for saving the FP context
* at *fp_context_ptr. If the point to load the FP context
* from is changed then the pointer is modified by this routine.
*
* Sometimes a macro implementation of this is in cpu.h which dereferences
* the ** and a similarly named routine in this file is passed something
* like a (Context_Control_fp *). The general rule on making this decision
* is to avoid writing assembly language.
*
* void _CPU_Context_save_fp(
* void **fp_context_ptr
*
* C4x Specific Information:
*
* There is no distiniction between FP and integer context in this port.
*/
/*
* _CPU_Context_restore_fp_context
*
* This routine is responsible for restoring the FP context
* at *fp_context_ptr. If the point to load the FP context
* from is changed then the pointer is modified by this routine.
*
* Sometimes a macro implementation of this is in cpu.h which dereferences
* the ** and a similarly named routine in this file is passed something
* like a (Context_Control_fp *). The general rule on making this decision
* is to avoid writing assembly language.
*
* void _CPU_Context_restore_fp(
* void **fp_context_ptr
* )
*
* C4x Specific Information:
*
* There is no distiniction between FP and integer context in this port.
*/
/* _CPU_Context_switch
*
* This routine performs a normal non-FP context switch.
*
* void _CPU_Context_switch(
* Context_Control *run,
* Context_Control *heir
* )
*
* TMS320C3x General-Purpose Applications User's Guide, section 2.4
* (p 2-11 and following), Context Switching in Interrupts and
* Subroutines states that "If the program is in a subroutine, it
* must preserve the dedicated C registers as follows:"
*
* Save as Integers Save as Floating-Point
* ================ ======================
* R4 R8 R6 R7
* AR4 AR5
* AR6 AR7
* FP DP (small model only)
* SP
*/
.global SYM(_CPU_Context_switch)
SYM(_CPU_Context_switch):
.if .REGPARM == 0
ldi sp, ar0
ldi *ar0, ar2 ; get the location of running context
.endif
sti st,*ar2++ ; store status word
sti ar3,*ar2++ ; store ar3
sti ar4,*ar2++ ; store ar4
sti ar5,*ar2++ ; store ar5
sti ar6,*ar2++ ; store ar6
sti ar7,*ar2++ ; store ar7
sti r4,*ar2++ ; store integer portion of r4
sti r5,*ar2++ ; store integer portion of r5
stf r6,*ar2++ ; store float portion of r6
stf r7,*ar2++ ; store float portion of r7
.if .TMS320C40
sti r8,*ar2++ ; store integer portion of r8
.endif
sti sp,*ar2++ ; store sp
; end of save
.if .REGPARM == 0
ldi *-ar0(2), ar2 ; get the location of heir context
.else
ldi r2,ar2
.endif
_local_restore:
ldi *ar2++,ar0 ; load status word into register
ldi *ar2++,ar3 ; load ar3
ldi *ar2++,ar4 ; load ar4
ldi *ar2++,ar5 ; load ar5
ldi *ar2++,ar6 ; load ar6
ldi *ar2++,ar7 ; load ar7
ldi *ar2++,r4 ; load integer portion of r4
ldi *ar2++,r5 ; load integer portion of r5
ldf *ar2++,r6 ; load float portion of r6
ldf *ar2++,r7 ; load float portion of r7
.if .TMS320C40
ldi *ar2++,r8 ; load integer portion of r8
.endif
ldi *ar2++,sp ; load sp
ldi ar0,st ; restore status word and interrupts
rets
/*
* _CPU_Context_restore
*
* This routine is generally used only to restart self in an
* efficient manner. It may simply be a label in _CPU_Context_switch.
*
* NOTE: May be unnecessary to reload some registers.
*
* void _CPU_Context_restore(
* Context_Control *new_context
* )
*/
.global SYM(_CPU_Context_restore)
SYM(_CPU_Context_restore):
.if .REGPARM == 0
ldi sp, ar0
ldi *ar0, ar2 ; get the location of context to restore
.endif
br _local_restore
/* void _ISR_Handler()
*
* This routine provides the RTEMS interrupt management.
*
* void _ISR_Handler()
*/
/*
* At entry to "common" _ISR_Handler, the vector number must be
* available. On some CPUs the hardware puts either the vector
* number or the offset into the vector table for this ISR in a
* known place. If the hardware does not give us this information,
* then the assembly portion of RTEMS for this port will contain
* a set of distinct interrupt entry points which somehow place
* the vector number in a known place (which is safe if another
* interrupt nests this one) and branches to _ISR_Handler.
*/
/*
* save some or all context on stack
* may need to save some special interrupt information for exit
*
* #if ( CPU_HAS_SOFTWARE_INTERRUPT_STACK == TRUE )
* if ( _ISR_Nest_level == 0 )
* switch to software interrupt stack
* #endif
*
* _ISR_Nest_level++;
*
* _Thread_Dispatch_disable_level++;
*
* (*_ISR_Vector_table[ vector ])( vector );
*
* --_ISR_Nest_level;
*
* if ( _ISR_Nest_level )
* goto the label "exit interrupt (simple case)"
*
* #if ( CPU_HAS_SOFTWARE_INTERRUPT_STACK == TRUE )
* restore stack
* #endif
*
* if ( !_Context_Switch_necessary )
* goto the label "exit interrupt (simple case)"
*
* if ( !_ISR_Signals_to_thread_executing )
* _ISR_Signals_to_thread_executing = FALSE;
* goto the label "exit interrupt (simple case)"
*
* call _Thread_Dispatch() or prepare to return to _ISR_Dispatch
*
* prepare to get out of interrupt
* return from interrupt (maybe to _ISR_Dispatch)
*
* LABEL "exit interrupt (simple case):
* prepare to get out of interrupt
* return from interrupt
*/
.global SYM(_ISR_Handler_save_registers)
SYM(_ISR_Handler_save_registers):
; no push st because it is already pushed
; no push ar2 because it is already pushed and vector number loaded
push ar0
push ar1
push dp
push ir0
push ir1
push rs
push re
push rc
push bk
push r0
pushf r0
push r1
pushf r1
push r2
pushf r2
push r3
pushf r3
; no push r4 because other part of register is in basic context
push r4
pushf r4
; no push r5 because other part of register is in basic context
push r5
pushf r5
push r6
pushf r6
; no pushf r6 because other part of register is in basic context
push r7
pushf r7
; no pushf r7 because other part of register is in basic context
.if .TMS320C40
push r8
; no pushf r8 because other part of register is in basic context
push r9
pushf r9
push r10
pushf r10
push r11
pushf r11
.endif
ldi sp,r2
call SYM(__ISR_Handler)
.if .TMS320C40
popf r11
pop r11
popf r10
pop r10
popf r9
pop r9
; no popf r8 because other part of register is in basic context
pop r8
.endif
; no popf r7 because other part of register is in basic context
popf r7
pop r7
; no popf r6 because other part of register is in basic context
popf r6
pop r6
; no popf r5 because other part of register is in basic context
popf r5
pop r5
; no pop r4 because other part of register is in basic context
popf r4
pop r4
popf r3
pop r3
popf r2
pop r2
popf r1
pop r1
popf r0
pop r0
pop bk
pop rc
pop re
pop rs
pop ir1
pop ir0
pop dp
pop ar1
pop ar0
pop ar2 ; because the vector numbers goes here
pop st
reti
/*
* Prologues so we can know the vector number. Generated by this script:
*
* i=0
* while test $i -lt 64
* do
*
* printf "\t.global\tSYM(rtems_irq_prologue_%X)\n" $i
* printf "SYM(rtems_irq_prologue_%X):\n" $i
* printf "\tpush\tst\n"
* printf "\tpush\tar2\n"
* printf "\tldi\t0x%x,ar2\n" $i
* printf "\tbr\tSYM(_ISR_Handler_save_registers)\n"
* printf "\n"
* i=`expr $i + 1`
*
* done
*/
.global SYM(rtems_irq_prologue_0)
SYM(rtems_irq_prologue_0):
push st
push ar2
ldi 0x0,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_1)
SYM(rtems_irq_prologue_1):
push st
push ar2
ldi 0x1,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_2)
SYM(rtems_irq_prologue_2):
push st
push ar2
ldi 0x2,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_3)
SYM(rtems_irq_prologue_3):
push st
push ar2
ldi 0x3,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_4)
SYM(rtems_irq_prologue_4):
push st
push ar2
ldi 0x4,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_5)
SYM(rtems_irq_prologue_5):
push st
push ar2
ldi 0x5,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_6)
SYM(rtems_irq_prologue_6):
push st
push ar2
ldi 0x6,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_7)
SYM(rtems_irq_prologue_7):
push st
push ar2
ldi 0x7,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_8)
SYM(rtems_irq_prologue_8):
push st
push ar2
ldi 0x8,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_9)
SYM(rtems_irq_prologue_9):
push st
push ar2
ldi 0x9,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_A)
SYM(rtems_irq_prologue_A):
push st
push ar2
ldi 0xa,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_B)
SYM(rtems_irq_prologue_B):
push st
push ar2
ldi 0xb,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_C)
SYM(rtems_irq_prologue_C):
push st
push ar2
ldi 0xc,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_D)
SYM(rtems_irq_prologue_D):
push st
push ar2
ldi 0xd,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_E)
SYM(rtems_irq_prologue_E):
push st
push ar2
ldi 0xe,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_F)
SYM(rtems_irq_prologue_F):
push st
push ar2
ldi 0xf,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_10)
SYM(rtems_irq_prologue_10):
push st
push ar2
ldi 0x10,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_11)
SYM(rtems_irq_prologue_11):
push st
push ar2
ldi 0x11,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_12)
SYM(rtems_irq_prologue_12):
push st
push ar2
ldi 0x12,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_13)
SYM(rtems_irq_prologue_13):
push st
push ar2
ldi 0x13,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_14)
SYM(rtems_irq_prologue_14):
push st
push ar2
ldi 0x14,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_15)
SYM(rtems_irq_prologue_15):
push st
push ar2
ldi 0x15,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_16)
SYM(rtems_irq_prologue_16):
push st
push ar2
ldi 0x16,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_17)
SYM(rtems_irq_prologue_17):
push st
push ar2
ldi 0x17,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_18)
SYM(rtems_irq_prologue_18):
push st
push ar2
ldi 0x18,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_19)
SYM(rtems_irq_prologue_19):
push st
push ar2
ldi 0x19,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_1A)
SYM(rtems_irq_prologue_1A):
push st
push ar2
ldi 0x1a,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_1B)
SYM(rtems_irq_prologue_1B):
push st
push ar2
ldi 0x1b,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_1C)
SYM(rtems_irq_prologue_1C):
push st
push ar2
ldi 0x1c,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_1D)
SYM(rtems_irq_prologue_1D):
push st
push ar2
ldi 0x1d,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_1E)
SYM(rtems_irq_prologue_1E):
push st
push ar2
ldi 0x1e,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_1F)
SYM(rtems_irq_prologue_1F):
push st
push ar2
ldi 0x1f,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_20)
SYM(rtems_irq_prologue_20):
push st
push ar2
ldi 0x20,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_21)
SYM(rtems_irq_prologue_21):
push st
push ar2
ldi 0x21,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_22)
SYM(rtems_irq_prologue_22):
push st
push ar2
ldi 0x22,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_23)
SYM(rtems_irq_prologue_23):
push st
push ar2
ldi 0x23,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_24)
SYM(rtems_irq_prologue_24):
push st
push ar2
ldi 0x24,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_25)
SYM(rtems_irq_prologue_25):
push st
push ar2
ldi 0x25,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_26)
SYM(rtems_irq_prologue_26):
push st
push ar2
ldi 0x26,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_27)
SYM(rtems_irq_prologue_27):
push st
push ar2
ldi 0x27,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_28)
SYM(rtems_irq_prologue_28):
push st
push ar2
ldi 0x28,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_29)
SYM(rtems_irq_prologue_29):
push st
push ar2
ldi 0x29,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_2A)
SYM(rtems_irq_prologue_2A):
push st
push ar2
ldi 0x2a,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_2B)
SYM(rtems_irq_prologue_2B):
push st
push ar2
ldi 0x2b,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_2C)
SYM(rtems_irq_prologue_2C):
push st
push ar2
ldi 0x2c,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_2D)
SYM(rtems_irq_prologue_2D):
push st
push ar2
ldi 0x2d,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_2E)
SYM(rtems_irq_prologue_2E):
push st
push ar2
ldi 0x2e,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_2F)
SYM(rtems_irq_prologue_2F):
push st
push ar2
ldi 0x2f,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_30)
SYM(rtems_irq_prologue_30):
push st
push ar2
ldi 0x30,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_31)
SYM(rtems_irq_prologue_31):
push st
push ar2
ldi 0x31,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_32)
SYM(rtems_irq_prologue_32):
push st
push ar2
ldi 0x32,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_33)
SYM(rtems_irq_prologue_33):
push st
push ar2
ldi 0x33,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_34)
SYM(rtems_irq_prologue_34):
push st
push ar2
ldi 0x34,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_35)
SYM(rtems_irq_prologue_35):
push st
push ar2
ldi 0x35,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_36)
SYM(rtems_irq_prologue_36):
push st
push ar2
ldi 0x36,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_37)
SYM(rtems_irq_prologue_37):
push st
push ar2
ldi 0x37,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_38)
SYM(rtems_irq_prologue_38):
push st
push ar2
ldi 0x38,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_39)
SYM(rtems_irq_prologue_39):
push st
push ar2
ldi 0x39,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_3A)
SYM(rtems_irq_prologue_3A):
push st
push ar2
ldi 0x3a,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_3B)
SYM(rtems_irq_prologue_3B):
push st
push ar2
ldi 0x3b,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_3C)
SYM(rtems_irq_prologue_3C):
push st
push ar2
ldi 0x3c,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_3D)
SYM(rtems_irq_prologue_3D):
push st
push ar2
ldi 0x3d,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_3E)
SYM(rtems_irq_prologue_3E):
push st
push ar2
ldi 0x3e,ar2
br SYM(_ISR_Handler_save_registers)
.global SYM(rtems_irq_prologue_3F)
SYM(rtems_irq_prologue_3F):
push st
push ar2
ldi 0x3f,ar2
br SYM(_ISR_Handler_save_registers)

View File

@@ -1,93 +0,0 @@
/*
* C4x CPU Dependent Source
*
*
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <rtems/system.h>
#include <rtems/score/cpu.h>
#include <rtems/score/isr.h>
#include <rtems/score/thread.h>
/*
* This routine provides the RTEMS interrupt management.
*/
#if( CPU_HAS_SOFTWARE_INTERRUPT_STACK == TRUE)
unsigned long *_old_stack_ptr;
#endif
register unsigned long *stack_ptr asm("sp");
void __ISR_Handler(uint32_t vector, void *isr_sp)
{
register uint32_t level;
/* already disabled when we get here */
/* _CPU_ISR_Disable( level ); */
_Thread_Dispatch_disable_level++;
#if 0
if ( stack_ptr > (_Thread_Executing->Start.stack +
_Thread_Executing->Start.Initial_stack.size) ) {
printk( "Blown interrupt stack at 0x%x\n", stack_ptr );
}
#endif
#if( CPU_HAS_SOFTWARE_INTERRUPT_STACK == TRUE)
if ( _ISR_Nest_level == 0 ) {
/* Install irq stack */
_old_stack_ptr = stack_ptr;
stack_ptr = _CPU_Interrupt_stack_low;
}
#endif
_ISR_Nest_level++;
/* leave it to the ISR to decide if they get reenabled */
/* _CPU_ISR_Enable( level ); */
/* call isp */
if ( _ISR_Vector_table[ vector] )
(*_ISR_Vector_table[ vector ])(
vector, isr_sp - sizeof(CPU_Interrupt_frame) + 1 );
_CPU_ISR_Disable( level );
_ISR_Nest_level--;
#if( CPU_HAS_SOFTWARE_INTERRUPT_STACK == TRUE)
if ( _ISR_Nest_level == 0 ) /* restore old stack pointer */
stack_ptr = _old_stack_ptr;
#endif
_Thread_Dispatch_disable_level--;
_CPU_ISR_Enable( level );
if ( _ISR_Nest_level )
return;
if ( _Thread_Dispatch_disable_level ) {
_ISR_Signals_to_thread_executing = FALSE;
return;
}
if ( _Context_Switch_necessary || _ISR_Signals_to_thread_executing ) {
_ISR_Signals_to_thread_executing = FALSE;
_Thread_Dispatch();
}
}

View File

@@ -1,54 +0,0 @@
## Automatically generated by ampolish3 - Do not edit
if AMPOLISH3
$(srcdir)/preinstall.am: Makefile.am
$(AMPOLISH3) $(srcdir)/Makefile.am > $(srcdir)/preinstall.am
endif
PREINSTALL_DIRS =
DISTCLEANFILES = $(PREINSTALL_DIRS)
all-am: $(PREINSTALL_FILES)
PREINSTALL_FILES =
CLEANFILES = $(PREINSTALL_FILES)
$(PROJECT_INCLUDE)/rtems/$(dirstamp):
@$(MKDIR_P) $(PROJECT_INCLUDE)/rtems
@: > $(PROJECT_INCLUDE)/rtems/$(dirstamp)
PREINSTALL_DIRS += $(PROJECT_INCLUDE)/rtems/$(dirstamp)
$(PROJECT_INCLUDE)/rtems/asm.h: rtems/asm.h $(PROJECT_INCLUDE)/rtems/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/asm.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/asm.h
$(PROJECT_INCLUDE)/rtems/tic4x/$(dirstamp):
@$(MKDIR_P) $(PROJECT_INCLUDE)/rtems/tic4x
@: > $(PROJECT_INCLUDE)/rtems/tic4x/$(dirstamp)
PREINSTALL_DIRS += $(PROJECT_INCLUDE)/rtems/tic4x/$(dirstamp)
$(PROJECT_INCLUDE)/rtems/tic4x/c4xio.h: rtems/tic4x/c4xio.h $(PROJECT_INCLUDE)/rtems/tic4x/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/tic4x/c4xio.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/tic4x/c4xio.h
$(PROJECT_INCLUDE)/rtems/score/$(dirstamp):
@$(MKDIR_P) $(PROJECT_INCLUDE)/rtems/score
@: > $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
PREINSTALL_DIRS += $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
$(PROJECT_INCLUDE)/rtems/score/cpu.h: rtems/score/cpu.h $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/cpu.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/cpu.h
$(PROJECT_INCLUDE)/rtems/score/c4x.h: rtems/score/c4x.h $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/c4x.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/c4x.h
$(PROJECT_INCLUDE)/rtems/score/types.h: rtems/score/types.h $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/types.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/types.h
$(PROJECT_INCLUDE)/rtems/score/cpu_asm.h: rtems/score/cpu_asm.h $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/cpu_asm.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/cpu_asm.h

View File

@@ -1,97 +0,0 @@
/**
* @file rtems/asm.h
*
* This include file attempts to address the problems
* caused by incompatible flavors of assemblers and
* toolsets. It primarily addresses variations in the
* use of leading underscores on symbols and the requirement
* that register names be preceded by a %.
*/
/*
* NOTE: The spacing in the use of these macros
* is critical to them working as advertised.
*
* COPYRIGHT:
*
* This file is based on similar code found in newlib available
* from ftp.cygnus.com. The file which was used had no copyright
* notice. This file is freely distributable as long as the source
* of the file is noted. This file is:
*
* COPYRIGHT (c) 1994-1997.
* On-Line Applications Research Corporation (OAR).
*
* $Id$
*/
#ifndef _RTEMS_ASM_H
#define _RTEMS_ASM_H
/*
* Indicate we are in an assembly file and get the basic CPU definitions.
*/
#ifndef ASM
#define ASM
#endif
#include <rtems/score/cpuopts.h>
#include <rtems/score/c4x.h>
/*
* Recent versions of GNU cpp define variables which indicate the
* need for underscores and percents. If not using GNU cpp or
* the version does not support this, then you will obviously
* have to define these as appropriate.
*/
#ifndef __USER_LABEL_PREFIX__
#define __USER_LABEL_PREFIX__ _
#endif
#ifndef __REGISTER_PREFIX__
#define __REGISTER_PREFIX__
#endif
#include <rtems/concat.h>
/* Use the right prefix for global labels. */
#define SYM(x) CONCAT1 (__USER_LABEL_PREFIX__, x)
/* Use the right prefix for registers. */
#define REG(x) CONCAT1 (__REGISTER_PREFIX__, x)
/*
* define macros for all of the registers on this CPU
*
* EXAMPLE: #define d0 REG (d0)
*/
/*
* Define macros to handle section beginning and ends.
*/
#define BEGIN_CODE_DCL .text
#define END_CODE_DCL
#define BEGIN_DATA_DCL .data
#define END_DATA_DCL
#define BEGIN_CODE .text
#define END_CODE
#define BEGIN_DATA
#define END_DATA
#define BEGIN_BSS
#define END_BSS
#define END
/*
* Following must be tailor for a particular flavor of the C compiler.
* They may need to put underscores in front of the symbols.
*/
#define PUBLIC(sym) .globl SYM (sym)
#define EXTERN(sym) .globl SYM (sym)
#endif

View File

@@ -1,367 +0,0 @@
/**
* @file rtems/score/c4x.h
*/
/*
* This file is an example (i.e. "no CPU") of the file which is
* created for each CPU family port of RTEMS.
*
*
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*
*/
#ifndef _RTEMS_SCORE_C4X_H
#define _RTEMS_SCORE_C4X_H
#ifdef __cplusplus
extern "C" {
#endif
/*
* This file contains the information required to build
* RTEMS for a particular member of the "no cpu"
* family when executing in protected mode. It does
* this by setting variables to indicate which implementation
* dependent features are present in a particular member
* of the family.
*/
#if defined(_C30)
#define CPU_MODEL_NAME "C30"
#elif defined(_C31)
#define CPU_MODEL_NAME "C31"
#elif defined(_C32)
#define CPU_MODEL_NAME "C32"
#elif defined(_C33)
#define CPU_MODEL_NAME "C33"
#elif defined(_C40)
#define CPU_MODEL_NAME "C40"
#elif defined(_C44)
#define CPU_MODEL_NAME "C44"
#else
#error "Unsupported CPU Model"
#endif
/*
* Define the name of the CPU family.
*/
#define CPU_NAME "Texas Instruments C3x/C4x"
/*
* This port is a little unusual in that even though there are "floating
* point registers", the notion of floating point is very inherent to
* applications. In addition, the calling conventions require that
* only a few extended registers be preserved across subroutine calls.
* The overhead of including these few registers in the basic
* context is small compared to the overhead of managing the notion
* of separate floating point contexts. So we decided to pretend that
* there is no FPU on the C3x or C4x.
*/
#define C4X_HAS_FPU 0
/*
* Routines to manipulate the bits in the Status Word (ST).
*/
#define C4X_ST_C 0x0001
#define C4X_ST_V 0x0002
#define C4X_ST_Z 0x0004
#define C4X_ST_N 0x0008
#define C4X_ST_UF 0x0010
#define C4X_ST_LV 0x0020
#define C4X_ST_LUF 0x0040
#define C4X_ST_OVM 0x0080
#define C4X_ST_RM 0x0100
#define C4X_ST_CF 0x0400
#define C4X_ST_CE 0x0800
#define C4X_ST_CC 0x1000
#define C4X_ST_GIE 0x2000
#ifndef _TMS320C40
#define C3X_IE_INTERRUPT_MASK_BITS 0xffff
#define C3x_IE_INTERRUPTS_ALL_ENABLED 0x0000
#define C3x_IE_INTERRUPTS_ALL_DISABLED 0xffff
#endif
#ifndef ASM
/*
* A nop macro.
*/
#define c4x_nop() \
__asm__("nop");
/*
* Routines to set and clear individual bits in the ST (status word).
*
* cpu_st_bit_clear - clear bit in ST
* cpu_st_bit_set - set bit in ST
* cpu_st_get - obtain entire ST
*/
#ifdef _TMS320C40
#define c4x_gie_nop()
#else
#define c4x_gie_nop() { c4x_nop(); c4x_nop(); }
#endif
#define cpu_st_bit_clear(_st_bit) \
do { \
__asm__("andn %0,st" : : "g" (_st_bit) : "cc"); \
c4x_gie_nop(); \
} while (0)
#define cpu_st_bit_set(_st_bit) \
do { \
__asm__("or %0,st" : : "g" (_st_bit) : "cc"); \
c4x_gie_nop(); \
} while (0)
static inline unsigned int cpu_st_get(void)
{
register unsigned int st_value;
__asm__("ldi st, %0" : "=r" (st_value));
return st_value;
}
/*
* Routines to manipulate the Global Interrupt Enable (GIE) bit in
* the Status Word (ST).
*
* c4x_global_interrupts_get - returns current GIE setting
* c4x_global_interrupts_disable - disables global interrupts
* c4x_global_interrupts_enable - enables global interrupts
* c4x_global_interrupts_restore - restores GIE to pre-disable state
* c4x_global_interrupts_flash - temporarily enable global interrupts
*/
#define c4x_global_interrupts_get() \
(cpu_st_get() & C4X_ST_GIE)
#define c4x_global_interrupts_disable() \
cpu_st_bit_clear(C4X_ST_GIE)
#define c4x_global_interrupts_enable() \
cpu_st_bit_set(C4X_ST_GIE)
#define c4x_global_interrupts_restore(_old_level) \
cpu_st_bit_set(_old_level)
#define c4x_global_interrupts_flash(_old_level) \
do { \
cpu_st_bit_set(_old_level); \
cpu_st_bit_clear(C4X_ST_GIE); \
} while (0)
#ifndef _TMS320C40
/*
* Routines to set and get the IF register
*
* c3x_get_if - obtains IF register
* c3x_set_if - sets IF register
*/
static inline unsigned int c3x_get_if(void)
{
register unsigned int _if_value;
__asm__( "ldi if, %0" : "=r" (_if_value) );
return _if_value;
}
static inline void c3x_set_if(unsigned int _if_value)
{
__asm__( "ldi %0, if" : : "g" (_if_value) : "if", "cc");
}
/*
* Routines to set and get the IE register
*
* c3x_get_ie - obtains IE register
* c3x_set_ie - sets IE register
*/
static inline unsigned int c3x_get_ie(void)
{
register unsigned int _ie_value;
__asm__ volatile ( "ldi ie, %0" : "=r" (_ie_value) );
return _ie_value;
}
static inline void c3x_set_ie(unsigned int _ie_value)
{
__asm__ volatile ( "ldi %0, ie" : : "g" (_ie_value) : "ie", "cc");
}
/*
* Routines to manipulates the mask portion of the IE register.
*
* c3x_ie_mask_all - returns previous IE mask
* c3x_ie_mask_restore - restores previous IE mask
* c3x_ie_mask_flash - temporarily restores previous IE mask
* c3x_ie_mask_set - sets a specific set of the IE mask
*/
#define c3x_ie_mask_all( _isr_cookie ) \
do { \
__asm__("ldi ie,%0\n" \
"\tandn 0ffffh, ie" \
: "=r" (_isr_cookie): : "ie", "cc" ); \
} while (0)
#define c3x_ie_mask_restore( _isr_cookie ) \
do { \
__asm__("or %0, ie" \
: : "g" (_isr_cookie) : "ie", "cc" ); \
} while (0)
#define c3x_ie_mask_flash( _isr_cookie ) \
do { \
__asm__("or %0, ie\n" \
"\tandn 0ffffh, ie" \
: : "g" (_isr_cookie) : "ie", "cc" ); \
} while (0)
#define c3x_ie_mask_set( _new_mask ) \
do { unsigned int _ie_mask; \
unsigned int _ie_value; \
\
if ( _new_mask == 0 ) _ie_mask = 0; \
else _ie_mask = 0xffff; \
_ie_value = c3x_get_ie(); \
_ie_value &= C4X_IE_INTERRUPT_MASK_BITS; \
_ie_value |= _ie_mask; \
c3x_set_ie(_ie_value); \
} while (0)
#endif
/* end of C3x specific interrupt flag routines */
/*
* This is a section of C4x specific interrupt flag management routines.
*/
#ifdef _TMS320C40
/*
* Routines to set and get the IIF register
*
* c4x_get_iif - obtains IIF register
* c4x_set_iif - sets IIF register
*/
static inline unsigned int c4x_get_iif(void)
{
register unsigned int _iif_value;
__asm__( "ldi iif, %0" : "=r" (_iif_value) );
return _iif_value;
}
static inline void c4x_set_iif(unsigned int _iif_value)
{
__asm__( "ldi %0, iif" : : "g" (_iif_value) : "iif", "cc");
}
/*
* Routines to set and get the IIE register
*
* c4x_get_iie - obtains IIE register
* c4x_set_iie - sets IIE register
*/
static inline unsigned int c4x_get_iie(void)
{
register unsigned int _iie_value;
__asm__( "ldi iie, %0" : "=r" (_iie_value) );
return _iie_value;
}
static inline void c4x_set_iie(unsigned int _iie_value)
{
__asm__( "ldi %0, iie" : : "g" (_iie_value) : "iie", "cc");
}
/*
* Routines to manipulates the mask portion of the IIE register.
*
* c4x_ie_mask_all - returns previous IIE mask
* c4x_ie_mask_restore - restores previous IIE mask
* c4x_ie_mask_flash - temporarily restores previous IIE mask
* c4x_ie_mask_set - sets a specific set of the IIE mask
*/
#if 0
#warning "C4x IIE masking routines not implemented."
#define c4x_iie_mask_all( _isr_cookie )
#define c4x_iie_mask_restore( _isr_cookie )
#define c4x_iie_mask_flash( _isr_cookie )
#define c4x_iie_mask_set( _new_mask )
#endif
#endif
/* end of C4x specific interrupt flag routines */
/*
* Routines to access the Interrupt Trap Table Pointer
*
* c4x_get_ittp - get ITTP
* c4x_set_ittp - set ITTP
*/
static inline void * c4x_get_ittp(void)
{
register unsigned int _if_value;
__asm__( "ldi if, %0" : "=r" (_if_value) );
return (void *)((_if_value & 0xffff0000) >> 8);
}
static inline void c4x_set_ittp(void *_ittp_value)
{
unsigned int _if_value;
unsigned int _ittp_field;
#ifdef _TMS320C40
_if_value = c4x_get_iif();
#else
_if_value = c3x_get_if();
#endif
_if_value &= 0xffff;
_ittp_field = (((unsigned int) _ittp_value) >> 8);
_if_value |= _ittp_field << 16 ;
#ifdef _TMS320C40
c4x_set_iif( _if_value );
#else
c3x_set_if( _if_value );
#endif
}
#endif /* ifndef ASM */
#ifdef __cplusplus
}
#endif
#endif /* _RTEMS_SCORE_C4X_H */

File diff suppressed because it is too large Load Diff

View File

@@ -1,72 +0,0 @@
/**
* @file rtems/score/cpu_asm.h
*/
/*
* Very loose template for an include file for the cpu_asm.? file
* if it is implemented as a ".S" file (preprocessed by cpp) instead
* of a ".s" file (preprocessed by gm4 or gasp).
*
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*
*/
#ifndef _RTEMS_SCORE_CPU_ASM_H
#define _RTEMS_SCORE_CPU_ASM_H
/* pull in the generated offsets */
#include <rtems/score/offsets.h>
/*
* Hardware General Registers
*/
/* put something here */
/*
* Hardware Floating Point Registers
*/
/* put something here */
/*
* Hardware Control Registers
*/
/* put something here */
/*
* Calling Convention
*/
/* put something here */
/*
* Temporary registers
*/
/* put something here */
/*
* Floating Point Registers - SW Conventions
*/
/* put something here */
/*
* Temporary floating point registers
*/
/* put something here */
#endif
/* end of file */

View File

@@ -1,51 +0,0 @@
/**
* @file rtems/score/types.h
*/
/*
* This include file contains type definitions pertaining to the
* Texas Instruments C4x processor family.
*
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#ifndef _RTEMS_SCORE_TYPES_H
#define _RTEMS_SCORE_TYPES_H
#ifndef ASM
#include <stdbool.h>
#include <stdint.h>
#ifdef __cplusplus
extern "C" {
#endif
/*
* This section defines the basic types for this processor.
*/
typedef uint_least16_t Priority_Bit_map_control;
typedef void c4x_isr;
typedef void ( *c4x_isr_entry )( void );
#ifdef RTEMS_DEPRECATED_TYPES
typedef bool boolean; /* Boolean value */
typedef float single_precision; /* single precision float */
typedef double double_precision; /* double precision float */
#endif
#ifdef __cplusplus
}
#endif
#endif /* !ASM */
#endif

View File

@@ -1,117 +0,0 @@
/*
* C4X IO Information
*
* COPYRIGHT (c) 1989-2007.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#ifndef _RTEMS_TIC4X_C4XIO_H
#define _RTEMS_TIC4X_C4XIO_H
/*
* Address defines
*/
#ifdef _TMS320C40
#define C4X_TIMER_0 ((struct c4x_timer*)0x100020)
#else
#define C4X_TIMER_0 ((struct c4x_timer*)0x808020)
#define C4X_TIMER_1 ((struct c4x_timer*)0x808030)
#endif
/* XXX how portable */
/* C32 Internal Control Registers */
#define C4X_STRB0_REG 0x808064
#define C4X_STRB1_REG 0x808068
#define C4X_IOSTRB_REG 0x808060
/* C32 Internal RAM Locations */
/* XXX how long */
#define C4X_RAM_BLK_0 0x87fe00
#define C4X_RAM_BLK_1 0x87ff00
/*
* Data Structures to Overlay the Peripherals on the CPU
*/
struct c4x_timer {
volatile int tcontrol;
volatile int r1[3];
volatile int tcounter;
volatile int r2[3];
volatile int tperiod;
};
/*
* Timer Support Routines
*
* The following section of C4x timer code is based on C40 specific
* timer code from Ran Cabell <rcabell@norfolk.infi.net>. The
* only C3x/C4x difference spotted was the address of the timer.
* The names have been changed to be more RTEMS like.
*/
#define c4x_timer_get_control( _timer ) (volatile int)(_timer->tcontrol)
#define c4x_timer_set_control( _timer, _value ) \
do { \
(volatile int)(_timer->tcontrol) = _value; \
} while (0);
#define c4x_timer_start( _timer ) \
c4x_timer_set_control(_timer, 0x02c1 )
#define c4x_timer_stop( _timer ) _timer->tcontrol = 0
#define c4x_timer_get_counter( _timer ) (volatile int)(_timer->tcounter)
#define c4x_timer_set_counter( _timer, _value ) \
do { \
(volatile int)(_timer->tcounter) = _value; \
} while (0);
#define c4x_timer_get_period( _timer ) (volatile int)(_timer->tperiod)
#define c4x_timer_set_period( _timer, _value ) \
do { \
(volatile int)(_timer->tperiod) = _value; \
} while (0);
/*
* IO Flags
*
* NOTE: iof on c3x, iiof on c4x
*/
#ifdef _TMS320C40
#else
static inline uint32_t c3x_get_iof( void )
{
register uint32_t iof_value;
__asm__ volatile ("ldi iof, %0" : "=r" (iof_value));
return iof_value;
}
static inline void c3x_set_iof( uint32_t value )
{
__asm__ volatile ("ldi %0,iof" : : "g" (value) : "iof", "cc");
}
#endif
#endif
/* end if include file */