forked from Imagelibrary/rtems
2005-02-25 Joel Sherrill <joel@OARcorp.com>
* arm_bare_bsp/.cvsignore, arm_bare_bsp/ChangeLog, arm_bare_bsp/Makefile.am, arm_bare_bsp/bsp_specs, arm_bare_bsp/configure.ac, arm_bare_bsp/clock/clockdrv.c, arm_bare_bsp/include/.cvsignore, arm_bare_bsp/include/bsp.h, arm_bare_bsp/include/registers.h, arm_bare_bsp/include/tm27.h, arm_bare_bsp/irq/bsp_irq_asm.S, arm_bare_bsp/irq/bsp_irq_init.c, arm_bare_bsp/irq/irq.c, arm_bare_bsp/irq/irq.h, arm_bare_bsp/start/start.S, arm_bare_bsp/startup/bspstart.c, arm_bare_bsp/startup/exit.c, arm_bare_bsp/startup/linkcmds: Removed.
This commit is contained in:
@@ -1,3 +1,15 @@
|
|||||||
|
2005-02-25 Joel Sherrill <joel@OARcorp.com>
|
||||||
|
|
||||||
|
* arm_bare_bsp/.cvsignore, arm_bare_bsp/ChangeLog,
|
||||||
|
arm_bare_bsp/Makefile.am, arm_bare_bsp/bsp_specs,
|
||||||
|
arm_bare_bsp/configure.ac, arm_bare_bsp/clock/clockdrv.c,
|
||||||
|
arm_bare_bsp/include/.cvsignore, arm_bare_bsp/include/bsp.h,
|
||||||
|
arm_bare_bsp/include/registers.h, arm_bare_bsp/include/tm27.h,
|
||||||
|
arm_bare_bsp/irq/bsp_irq_asm.S, arm_bare_bsp/irq/bsp_irq_init.c,
|
||||||
|
arm_bare_bsp/irq/irq.c, arm_bare_bsp/irq/irq.h,
|
||||||
|
arm_bare_bsp/start/start.S, arm_bare_bsp/startup/bspstart.c,
|
||||||
|
arm_bare_bsp/startup/exit.c, arm_bare_bsp/startup/linkcmds: Removed.
|
||||||
|
|
||||||
2004-09-24 Ralf Corsepius <ralf_corsepius@rtems.org>
|
2004-09-24 Ralf Corsepius <ralf_corsepius@rtems.org>
|
||||||
|
|
||||||
* configure.ac: Require automake > 1.9.
|
* configure.ac: Require automake > 1.9.
|
||||||
|
|||||||
@@ -1,14 +0,0 @@
|
|||||||
aclocal.m4
|
|
||||||
autom4te*.cache
|
|
||||||
config.cache
|
|
||||||
config.guess
|
|
||||||
config.log
|
|
||||||
config.status
|
|
||||||
config.sub
|
|
||||||
configure
|
|
||||||
depcomp
|
|
||||||
install-sh
|
|
||||||
Makefile
|
|
||||||
Makefile.in
|
|
||||||
missing
|
|
||||||
mkinstalldirs
|
|
||||||
@@ -1,388 +0,0 @@
|
|||||||
2005-01-07 Ralf Corsepius <ralf.corsepius@rtems.org>
|
|
||||||
|
|
||||||
* Makefile.am: Eliminate CFLAGS_OPTIMIZE_V.
|
|
||||||
|
|
||||||
2005-01-04 Joel Sherrill <joel@OARcorp.com>
|
|
||||||
|
|
||||||
* start/start.S: Remove warnings.
|
|
||||||
|
|
||||||
2005-01-02 Ralf Corsepius <ralf.corsepius@rtems.org>
|
|
||||||
|
|
||||||
* Makefile.am: Remove build-variant support.
|
|
||||||
|
|
||||||
2004-11-05 Joel Sherrill <joel@OARcorp.com>
|
|
||||||
|
|
||||||
* startup/linkcmds: Add .gnu.linkonce.b section.
|
|
||||||
|
|
||||||
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-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>
|
|
||||||
|
|
||||||
* startup/bspstart.c: Convert to using c99 fixed size types.
|
|
||||||
|
|
||||||
2004-03-03 Joel Sherrill <joel@OARcorp.com>
|
|
||||||
|
|
||||||
* startup/linkcmds: Add more memory and sections so tests can link.
|
|
||||||
This is a generic BSP for a CPU model so OK to do this.
|
|
||||||
|
|
||||||
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-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 ../../arm/shared instead of
|
|
||||||
../shared. Reformat.
|
|
||||||
|
|
||||||
2004-01-28 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
|
||||||
|
|
||||||
* Makefile.am: Merge-in clock/Makefile.am, console/Makefile.am,
|
|
||||||
irq/Makefile.am, start/Makefile.am, startup/Makefile.am,
|
|
||||||
timer/Makefile.am, wrapup/Makefile.am. Use automake compilation rules.
|
|
||||||
* clock/Makefile.am, console/Makefile.am, irq/Makefile.am,
|
|
||||||
start/Makefile.am, startup/Makefile.am, timer/Makefile.am,
|
|
||||||
wrapup/Makefile.am: Remove.
|
|
||||||
* configure.ac: Reflect changes above.
|
|
||||||
|
|
||||||
2004-01-21 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
|
||||||
|
|
||||||
* Makefile.am: Add PREINSTALL_DIRS.
|
|
||||||
* irq/Makefile.am: Ditto.
|
|
||||||
|
|
||||||
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.
|
|
||||||
* irq/Makefile.am: Ditto.
|
|
||||||
* 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-15 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
|
||||||
|
|
||||||
PR 541/bsps
|
|
||||||
* startup/linkcmds: Remove SEARCH_DIR.
|
|
||||||
|
|
||||||
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>
|
|
||||||
|
|
||||||
* irq/Makefile.am: Use mkdir_p. Remove dirs from PRE/TMPINSTALL_FILES.
|
|
||||||
* 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>
|
|
||||||
|
|
||||||
* console/Makefile.am: Misc cleanups and fixes.
|
|
||||||
* irq/Makefile.am: Misc cleanups and fixes.
|
|
||||||
* start/Makefile.am: Misc cleanups and fixes.
|
|
||||||
* startup/Makefile.am: Misc cleanups and fixes.
|
|
||||||
* wrapup/Makefile.am: Misc cleanups and fixes.
|
|
||||||
|
|
||||||
2003-12-05 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
|
||||||
|
|
||||||
* console/Makefile.am: Remove all: $(ARCH).
|
|
||||||
* irq/Makefile.am: Remove all: $(ARCH).
|
|
||||||
* startup/Makefile.am: Remove all: $(ARCH).
|
|
||||||
* wrapup/Makefile.am: Remove all: $(ARCH).
|
|
||||||
|
|
||||||
2003-12-03 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
|
||||||
|
|
||||||
* Makefile.am: Add preinstallation dirstamp support.
|
|
||||||
* clock/Makefile.am: Cosmetics.
|
|
||||||
* console/Makefile.am: Cosmetics.
|
|
||||||
* irq/Makefile.am: Add preinstallation dirstamp support.
|
|
||||||
* startup/Makefile.am: Cosmetics.
|
|
||||||
* timer/Makefile.am: Cosmetics.
|
|
||||||
|
|
||||||
2003-12-02 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
|
||||||
|
|
||||||
* clock/Makefile.am: Remove all-local: $(ARCH).
|
|
||||||
* start/Makefile.am: Remove all-local: $(ARCH).
|
|
||||||
* timer/Makefile.am: Remove all-local: $(ARCH).
|
|
||||||
|
|
||||||
2003-09-29 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
|
||||||
|
|
||||||
* Makefile.am: Remove refs to non-existing files include/bspio.h and
|
|
||||||
include/uart.h.
|
|
||||||
|
|
||||||
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>
|
|
||||||
|
|
||||||
* include/bsp.h, include/registers.h, irq/bsp_irq_asm.S,
|
|
||||||
irq/bsp_irq_init.c, irq/irq.c, irq/irq.h, start/start.S,
|
|
||||||
startup/bspstart.c, startup/exit.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/.
|
|
||||||
* irq/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-08-06 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
|
||||||
|
|
||||||
PR 444/bsps
|
|
||||||
* bsp_specs: Remove -DUSE_ENHANCED_INTR_API.
|
|
||||||
|
|
||||||
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-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.
|
|
||||||
* irq/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-10-21 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
|
||||||
|
|
||||||
* .cvsignore: Reformat.
|
|
||||||
Add autom4te*cache.
|
|
||||||
Remove autom4te.cache.
|
|
||||||
|
|
||||||
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.
|
|
||||||
* irq/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-17 Jay Monkman <jtm@smoothsmoothie.com>
|
|
||||||
|
|
||||||
* irq/bsp_irq_asm.S: Disable code to touch PIC.
|
|
||||||
|
|
||||||
2002-06-29 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
|
||||||
|
|
||||||
* wrapup/Makefile.am: Remove preinstallation of libbsp.a,
|
|
||||||
|
|
||||||
2001-05-09 Joel Sherrill <joel@OARcorp.com>
|
|
||||||
|
|
||||||
* startup/linkcmds: In support of gcc 3.1, added one of more
|
|
||||||
of the sections .jcr, .rodata*, .data.*, .gnu.linkonce.s2.*,
|
|
||||||
.gnu.linkonce.sb2.*, and .gnu.linkonce.s.*. Spacing corrections
|
|
||||||
and direction of segments to memory regions may also have been
|
|
||||||
addressed. This was a sweep across all BSPs.
|
|
||||||
|
|
||||||
2002-03-30 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
|
||||||
|
|
||||||
* configure.ac: Update, remove code rott.
|
|
||||||
|
|
||||||
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.
|
|
||||||
* irq/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/exit.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-17 Joel Sherrill <joel@OARcorp.com>
|
|
||||||
|
|
||||||
* timer: New subdirectory.
|
|
||||||
* timer/Makefile.am: New file.
|
|
||||||
* timer/.cvsignore: New file.
|
|
||||||
* Makefile.am: Modified to reflect above.
|
|
||||||
* configure.ac: Ditto.
|
|
||||||
* wrapup/Makefile.am: Ditto.
|
|
||||||
* include/bsp.h: Stubs to let tm27 compile and link.
|
|
||||||
|
|
||||||
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 'TMPINSTALL_FILES ='.
|
|
||||||
* irq/Makefile.am: Use 'PREINSTALL_FILES ='.
|
|
||||||
|
|
||||||
2001-05-22 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
|
||||||
|
|
||||||
* configure.in: Add include/bspopts.h.
|
|
||||||
* console/Makefile.am: Use *_HEADERS instead of *H_FILES.
|
|
||||||
* irq/Makefile.am: Use *_HEADER instead of *H_FILES.
|
|
||||||
* include/.cvsignore: Add bspopts.h*, coverhd.h, stamp-h*
|
|
||||||
* include/Makefile.am: Add bspopts.h, Use *_HEADER instead of *H_FILES.
|
|
||||||
* include/bsp.h: Add bspopts.h.
|
|
||||||
|
|
||||||
2001-05-10 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
|
||||||
|
|
||||||
* configure.in: Use RTEMS_PROG_CC_FOR_TARGET([-ansi -fasm]).
|
|
||||||
|
|
||||||
2001-01-08 Joel Sherrill <joel@OARcorp.com>
|
|
||||||
|
|
||||||
* include/bsp.h: Added closing brace for extern C.
|
|
||||||
|
|
||||||
2000-12-06 Joel Sherrill <joel@OARcorp.com>
|
|
||||||
|
|
||||||
* Makefile.am: Add include of bsp.am. Add clock subdirectory.
|
|
||||||
* configure.in: Add clock subdirectory.
|
|
||||||
* include/Makefile.am: Add coverhd.h.
|
|
||||||
|
|
||||||
2000-11-09 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
|
||||||
|
|
||||||
* Makefile.am: Use ... instead of RTEMS_TOPdir in ACLOCAL_AMFLAGS.
|
|
||||||
|
|
||||||
2000-11-02 Joel Sherrill <joel@OARcorp.com>
|
|
||||||
|
|
||||||
* bsp_specs: Remove -Tlinkcmds from *link rule.
|
|
||||||
|
|
||||||
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-04 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
|
||||||
|
|
||||||
* clock/Makefile.am, console/Makefile.am, irq/Makefile.am,
|
|
||||||
start/Makefile.am, startup/Makefile.am, wrapup/Makefile.am:
|
|
||||||
Include compile.am.
|
|
||||||
|
|
||||||
2000-08-10 Joel Sherrill <joel@OARcorp.com>
|
|
||||||
|
|
||||||
* ChangeLog: New file.
|
|
||||||
@@ -1,124 +0,0 @@
|
|||||||
##
|
|
||||||
## $Id$
|
|
||||||
##
|
|
||||||
|
|
||||||
ACLOCAL_AMFLAGS = -I ../../../../aclocal
|
|
||||||
|
|
||||||
noinst_PROGRAMS =
|
|
||||||
|
|
||||||
include $(top_srcdir)/../../../../automake/compile.am
|
|
||||||
include $(top_srcdir)/../../bsp.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/registers.h
|
|
||||||
|
|
||||||
nodist_include_HEADERS += ../../shared/include/coverhd.h
|
|
||||||
|
|
||||||
EXTRA_DIST = start/start.S
|
|
||||||
start.$(OBJEXT): start/start.S
|
|
||||||
$(CPPASCOMPILE) -DASM -o $@ -c $<
|
|
||||||
project_lib_DATA = start.$(OBJEXT)
|
|
||||||
|
|
||||||
dist_project_lib_DATA += startup/linkcmds
|
|
||||||
|
|
||||||
noinst_PROGRAMS += startup.rel
|
|
||||||
startup_rel_SOURCES = ../../shared/bsplibc.c ../../shared/bsppost.c \
|
|
||||||
startup/bspstart.c startup/exit.c ../../shared/bootcard.c \
|
|
||||||
../../shared/main.c ../../shared/sbrk.c \
|
|
||||||
../../shared/gnatinstallhandler.c
|
|
||||||
startup_rel_CPPFLAGS = $(AM_CPPFLAGS)
|
|
||||||
startup_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
|
|
||||||
|
|
||||||
noinst_PROGRAMS += clock.rel
|
|
||||||
clock_rel_SOURCES = clock/clockdrv.c
|
|
||||||
clock_rel_CPPFLAGS = $(AM_CPPFLAGS)
|
|
||||||
clock_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
|
|
||||||
|
|
||||||
noinst_PROGRAMS += console.rel
|
|
||||||
console_rel_SOURCES = ../../arm/shared/comm/uart.c \
|
|
||||||
../../arm/shared/comm/console.c
|
|
||||||
console_rel_CPPFLAGS = $(AM_CPPFLAGS)
|
|
||||||
console_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
|
|
||||||
|
|
||||||
noinst_PROGRAMS += timer.rel
|
|
||||||
timer_rel_SOURCES = ../../shared/timerstub.c
|
|
||||||
timer_rel_CPPFLAGS = $(AM_CPPFLAGS)
|
|
||||||
timer_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
|
|
||||||
|
|
||||||
include_HEADERS += irq/irq.h
|
|
||||||
|
|
||||||
noinst_PROGRAMS += irq.rel
|
|
||||||
irq_rel_SOURCES = irq/irq.c ../../arm/shared/irq/irq_init.c \
|
|
||||||
irq/bsp_irq_init.c ../../arm/shared/irq/irq_asm.S irq/bsp_irq_asm.S \
|
|
||||||
irq/irq.h
|
|
||||||
irq_rel_CPPFLAGS = $(AM_CPPFLAGS)
|
|
||||||
irq_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
|
|
||||||
|
|
||||||
noinst_LIBRARIES = libbsp.a
|
|
||||||
libbsp_a_SOURCES =
|
|
||||||
libbsp_a_LIBADD= clock.rel console.rel startup.rel timer.rel irq.rel
|
|
||||||
|
|
||||||
all-local: $(PREINSTALL_FILES) $(TMPINSTALL_FILES)
|
|
||||||
|
|
||||||
PREINSTALL_DIRS =
|
|
||||||
PREINSTALL_FILES =
|
|
||||||
TMPINSTALL_FILES =
|
|
||||||
|
|
||||||
$(PROJECT_INCLUDE)/$(dirstamp):
|
|
||||||
@$(mkdir_p) $(PROJECT_INCLUDE)
|
|
||||||
@: > $(PROJECT_INCLUDE)/$(dirstamp)
|
|
||||||
PREINSTALL_DIRS += $(PROJECT_INCLUDE)/$(dirstamp)
|
|
||||||
|
|
||||||
$(PROJECT_LIB)/$(dirstamp):
|
|
||||||
@$(mkdir_p) $(PROJECT_LIB)
|
|
||||||
@: > $(PROJECT_LIB)/$(dirstamp)
|
|
||||||
PREINSTALL_DIRS += $(PROJECT_LIB)/$(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)/registers.h: include/registers.h $(PROJECT_INCLUDE)/$(dirstamp)
|
|
||||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/registers.h
|
|
||||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/registers.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
|
|
||||||
|
|
||||||
$(PROJECT_INCLUDE)/irq.h: irq/irq.h $(PROJECT_INCLUDE)/$(dirstamp)
|
|
||||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/irq.h
|
|
||||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/irq.h
|
|
||||||
|
|
||||||
CLEANFILES = $(PREINSTALL_FILES)
|
|
||||||
DISTCLEANFILES += $(PREINSTALL_DIRS)
|
|
||||||
CLEANFILES += $(TMPINSTALL_FILES)
|
|
||||||
|
|
||||||
include $(top_srcdir)/../../../../automake/local.am
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
%rename endfile old_endfile
|
|
||||||
%rename startfile old_startfile
|
|
||||||
%rename link old_link
|
|
||||||
|
|
||||||
*startfile:
|
|
||||||
%{!qrtems: %(old_startfile)} %{!nostdlib: %{qrtems: \
|
|
||||||
%{!qrtems_debug: start.o%s crtbegin.o%s} \
|
|
||||||
%{qrtems_debug: start_g.o%s crtbegin.o%s}}}
|
|
||||||
|
|
||||||
*link:
|
|
||||||
%{!qrtems: %(old_link)} %{qrtems: -Qy -dp -Bstatic -e _start}
|
|
||||||
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
/*
|
|
||||||
* Instantiate the clock driver shell.
|
|
||||||
*
|
|
||||||
* Since there is no clock source on the simulator, all we do is
|
|
||||||
* make sure it will build.
|
|
||||||
*
|
|
||||||
* $Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define CLOCK_VECTOR 0
|
|
||||||
|
|
||||||
#define Clock_driver_support_at_tick()
|
|
||||||
|
|
||||||
#define Clock_driver_support_install_isr( _new, _old ) \
|
|
||||||
do { _old = 0; } while(0)
|
|
||||||
|
|
||||||
#define Clock_driver_support_initialize_hardware()
|
|
||||||
|
|
||||||
#define Clock_driver_support_shutdown_hardware()
|
|
||||||
|
|
||||||
#include "../../../shared/clockdrv_shell.c"
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
## Process this file with autoconf to produce a configure script.
|
|
||||||
##
|
|
||||||
## $Id$
|
|
||||||
|
|
||||||
AC_PREREQ(2.59)
|
|
||||||
AC_INIT([rtems-c-src-lib-libbsp-arm-arm_bare_bsp],[_RTEMS_VERSION],[rtems-bugs@rtems.com])
|
|
||||||
AC_CONFIG_SRCDIR([bsp_specs])
|
|
||||||
RTEMS_TOP(../../../../../..)
|
|
||||||
|
|
||||||
RTEMS_CANONICAL_TARGET_CPU
|
|
||||||
AM_INIT_AUTOMAKE([no-define nostdinc foreign 1.9])
|
|
||||||
RTEMS_BSP_CONFIGURE
|
|
||||||
|
|
||||||
RTEMS_PROG_CC_FOR_TARGET([-ansi -fasm])
|
|
||||||
RTEMS_CANONICALIZE_TOOLS
|
|
||||||
RTEMS_PROG_CCAS
|
|
||||||
|
|
||||||
# Explicitly list all Makefiles here
|
|
||||||
AC_CONFIG_FILES([Makefile])
|
|
||||||
AC_OUTPUT
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
coverhd.h
|
|
||||||
bspopts.h
|
|
||||||
bspopts.h.in
|
|
||||||
stamp-h
|
|
||||||
stamp-h.in
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
/*-------------------------------------------------------------------------+
|
|
||||||
| bsp.h - ARM BSP
|
|
||||||
+--------------------------------------------------------------------------+
|
|
||||||
| This include file contains definitions related to the ARM BSP.
|
|
||||||
+--------------------------------------------------------------------------+
|
|
||||||
|
|
|
||||||
| Copyright (c) Canon Research France SA.]
|
|
||||||
| Emmanuel Raguet, mailto:raguet@crf.canon.fr
|
|
||||||
|
|
|
||||||
| 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>
|
|
||||||
|
|
||||||
#include <rtems.h>
|
|
||||||
#include <rtems/iosupp.h>
|
|
||||||
#include <rtems/console.h>
|
|
||||||
#include <rtems/clockdrv.h>
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* __BSP_H_ */
|
|
||||||
/* end of include file */
|
|
||||||
@@ -1,48 +0,0 @@
|
|||||||
/*
|
|
||||||
* BSP registers declaration
|
|
||||||
*
|
|
||||||
* Copyright (c) 2000 Canon Research France SA.
|
|
||||||
* Emmanuel Raguet, mailto:raguet@crf.canon.fr
|
|
||||||
*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __REGS_H__
|
|
||||||
#define __REGS_H__
|
|
||||||
|
|
||||||
/*
|
|
||||||
* VARIABLE DECLARATION
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __asm__
|
|
||||||
extern volatile unsigned long *Regs; /* Chip registers */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Here must be "defined" each register, to use with Regs as
|
|
||||||
* LM_Regs[REGISTER1] = value
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define REGISTER1 1
|
|
||||||
#define REGISTER2 2
|
|
||||||
|
|
||||||
/*
|
|
||||||
* define for UART registers to be able
|
|
||||||
* to compile and link arm_bare_bsp
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define RSRBR 0
|
|
||||||
#define RSTHR 1
|
|
||||||
#define RSIER 2
|
|
||||||
#define RSIIR 3
|
|
||||||
#define RSFCR 4
|
|
||||||
#define RSLCR 5
|
|
||||||
#define RSLSR 6
|
|
||||||
#define RSDLL 7
|
|
||||||
#define RSDLH 8
|
|
||||||
#define RSCNT 9
|
|
||||||
|
|
||||||
#endif /*__REGS_H__*/
|
|
||||||
@@ -1,35 +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
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Define the interrupt mechanism for Time Test 27
|
|
||||||
*
|
|
||||||
* NOTE: Following are not defined and are board independent
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define MUST_WAIT_FOR_INTERRUPT 0
|
|
||||||
|
|
||||||
#define Install_tm27_vector( handler ) /* empty */
|
|
||||||
|
|
||||||
#define Cause_tm27_intr() /* empty */
|
|
||||||
|
|
||||||
#define Clear_tm27_intr() /* empty */
|
|
||||||
|
|
||||||
#define Lower_tm27_intr() /* empty */
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
/* bsp_irq_asm.S
|
|
||||||
*
|
|
||||||
* This file contains the implementation of the IRQ handler
|
|
||||||
* for a specific BSP
|
|
||||||
*
|
|
||||||
* CopyRight (C) 2000 Canon Research France SA.
|
|
||||||
* Emmanuel Raguet, mailto:raguet@crf.canon.fr
|
|
||||||
*
|
|
||||||
* 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$
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define __asm__
|
|
||||||
#include <registers.h>
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Function to obtain, execute an IT handler and acknowledge the IT
|
|
||||||
*/
|
|
||||||
|
|
||||||
.globl ExecuteITHandler
|
|
||||||
|
|
||||||
ExecuteITHandler :
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Here is the code to execute the appropriate INT handler
|
|
||||||
*/
|
|
||||||
|
|
||||||
mov pc, r0
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
/*
|
|
||||||
* Function to acknowledge the IT controller
|
|
||||||
*/
|
|
||||||
.globl AckControler
|
|
||||||
|
|
||||||
AckControler:
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Here is the code to acknowledge the PIC
|
|
||||||
*/
|
|
||||||
|
|
||||||
b ReturnFromAck /* return to ISR handler */
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
/* irq_init.c
|
|
||||||
*
|
|
||||||
* This file contains the implementation of rtems initialization
|
|
||||||
* related to interrupt handling.
|
|
||||||
*
|
|
||||||
* CopyRight (C) 2000 Canon Research Centre France SA.
|
|
||||||
* Emmanuel Raguet, mailto:raguet@crf.canon.fr
|
|
||||||
*
|
|
||||||
* 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 <irq.h>
|
|
||||||
#include <bsp.h>
|
|
||||||
#include <registers.h>
|
|
||||||
|
|
||||||
void BSP_rtems_irq_mngt_init() {
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Here is the code to initialize the INT for
|
|
||||||
* the specified BSP
|
|
||||||
*/
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,117 +0,0 @@
|
|||||||
/* irq.c
|
|
||||||
*
|
|
||||||
* This file contains the implementation of the function described in irq.h
|
|
||||||
*
|
|
||||||
* CopyRight (C) 2000 Canon Research France SA.
|
|
||||||
* Emmanuel Raguet, mailto:raguet@crf.canon.fr
|
|
||||||
*
|
|
||||||
* 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$
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <bsp.h>
|
|
||||||
#include <irq.h>
|
|
||||||
#include <registers.h>
|
|
||||||
#include <rtems/score/thread.h>
|
|
||||||
#include <rtems/score/apiext.h>
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This function check that the value given for the irq line
|
|
||||||
* is valid.
|
|
||||||
*/
|
|
||||||
|
|
||||||
static int isValidInterrupt(int irq)
|
|
||||||
{
|
|
||||||
if ( (irq < 0) || (irq > BSP_MAX_INT))
|
|
||||||
return 0;
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* ------------------------ RTEMS Single Irq Handler Mngt Routines ----------------
|
|
||||||
*/
|
|
||||||
|
|
||||||
int BSP_install_rtems_irq_handler (const rtems_irq_connect_data* irq)
|
|
||||||
{
|
|
||||||
rtems_irq_hdl *HdlTable;
|
|
||||||
rtems_interrupt_level level;
|
|
||||||
|
|
||||||
if (!isValidInterrupt(irq->name)) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
* Check if default handler is actually connected. If not issue an error.
|
|
||||||
*/
|
|
||||||
HdlTable = VECTOR_TABLE;
|
|
||||||
if (*(HdlTable + irq->name) != default_int_handler) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
_CPU_ISR_Disable(level);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* store the new handler
|
|
||||||
*/
|
|
||||||
*(HdlTable + irq->name) = irq->hdl;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Here is the code to install an interrupt vector
|
|
||||||
* for the BSP : unmask INT, ....
|
|
||||||
* ........................
|
|
||||||
*/
|
|
||||||
|
|
||||||
_CPU_ISR_Enable(level);
|
|
||||||
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
int BSP_remove_rtems_irq_handler (const rtems_irq_connect_data* irq)
|
|
||||||
{
|
|
||||||
rtems_irq_hdl *HdlTable;
|
|
||||||
rtems_interrupt_level level;
|
|
||||||
|
|
||||||
if (!isValidInterrupt(irq->name)) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
* Check if the handler is actually connected. If not issue an error.
|
|
||||||
*/
|
|
||||||
HdlTable = VECTOR_TABLE;
|
|
||||||
if (*(HdlTable + irq->name) != irq->hdl) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
_CPU_ISR_Disable(level);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Here is the code to uninstall an interrupt vector
|
|
||||||
* for the BSP : mask INT, ....
|
|
||||||
* ........................
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* restore the default irq value
|
|
||||||
*/
|
|
||||||
*(HdlTable + irq->name) = default_int_handler;
|
|
||||||
|
|
||||||
_CPU_ISR_Enable(level);
|
|
||||||
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
void _ThreadProcessSignalsFromIrq (CPU_Exception_frame* ctx)
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
* Process pending signals that have not already been
|
|
||||||
* processed by _Thread_Displatch. This happens quite
|
|
||||||
* unfrequently : the ISR must have posted an action
|
|
||||||
* to the current running thread.
|
|
||||||
*/
|
|
||||||
if ( _Thread_Do_post_task_switch_extension ||
|
|
||||||
_Thread_Executing->do_post_task_switch_extension ) {
|
|
||||||
_Thread_Executing->do_post_task_switch_extension = FALSE;
|
|
||||||
_API_extensions_Run_postswitch();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,166 +0,0 @@
|
|||||||
/* irq.h
|
|
||||||
*
|
|
||||||
* This include file describe the data structure and the functions implemented
|
|
||||||
* by rtems to write interrupt handlers.
|
|
||||||
*
|
|
||||||
* Copyright (c) 2000 Canon Research Centre France SA.
|
|
||||||
* Emmanuel Raguet, mailto:raguet@crf.canon.fr
|
|
||||||
*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _IRQ_H_
|
|
||||||
#define _IRQ_H_
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Include some preprocessor value also used by assember code
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <rtems.h>
|
|
||||||
|
|
||||||
extern void default_int_handler();
|
|
||||||
/*-------------------------------------------------------------------------+
|
|
||||||
| Constants
|
|
||||||
+--------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
/* enum of the possible interrupt sources */
|
|
||||||
typedef enum {
|
|
||||||
BSP_INT_1 = 0,
|
|
||||||
BSP_INT_2 = 1,
|
|
||||||
BSP_UART = 2,
|
|
||||||
BSP_MAX_INT = 3
|
|
||||||
} rtems_irq_symbolic_name;
|
|
||||||
|
|
||||||
/* define that can be useful (the values are just examples) */
|
|
||||||
#define INTMASK 0x01
|
|
||||||
#define VECTOR_TABLE 0x00
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Type definition for RTEMS managed interrupts
|
|
||||||
*/
|
|
||||||
typedef unsigned char rtems_irq_level;
|
|
||||||
typedef unsigned char rtems_irq_trigger;
|
|
||||||
|
|
||||||
struct __rtems_irq_connect_data__; /* forward declaratiuon */
|
|
||||||
|
|
||||||
typedef void (*rtems_irq_hdl) (void);
|
|
||||||
typedef void (*rtems_irq_enable) (const struct __rtems_irq_connect_data__*);
|
|
||||||
typedef void (*rtems_irq_disable) (const struct __rtems_irq_connect_data__*);
|
|
||||||
typedef int (*rtems_irq_is_enabled) (const struct __rtems_irq_connect_data__*);
|
|
||||||
|
|
||||||
typedef struct __rtems_irq_connect_data__ {
|
|
||||||
/*
|
|
||||||
* IRQ line
|
|
||||||
*/
|
|
||||||
rtems_irq_symbolic_name name;
|
|
||||||
/*
|
|
||||||
* handler. See comment on handler properties below in function prototype.
|
|
||||||
*/
|
|
||||||
rtems_irq_hdl hdl;
|
|
||||||
/*
|
|
||||||
* function for enabling interrupts at device level (ONLY!).
|
|
||||||
* The BSP code will automatically enable it at i8259s level.
|
|
||||||
* RATIONALE : anyway such code has to exist in current driver code.
|
|
||||||
* It is usually called immediately AFTER connecting the interrupt handler.
|
|
||||||
* RTEMS may well need such a function when restoring normal interrupt
|
|
||||||
* processing after a debug session.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
rtems_irq_enable on;
|
|
||||||
/*
|
|
||||||
* function for disabling interrupts at device level (ONLY!).
|
|
||||||
* The code will disable it at i8259s level. RATIONALE : anyway
|
|
||||||
* such code has to exist for clean shutdown. It is usually called
|
|
||||||
* BEFORE disconnecting the interrupt. RTEMS may well need such
|
|
||||||
* a function when disabling normal interrupt processing for
|
|
||||||
* a debug session. May well be a NOP function.
|
|
||||||
*/
|
|
||||||
rtems_irq_disable off;
|
|
||||||
/*
|
|
||||||
* function enabling to know what interrupt may currently occur
|
|
||||||
* if someone manipulates the i8259s interrupt mask without care...
|
|
||||||
*/
|
|
||||||
rtems_irq_is_enabled isOn;
|
|
||||||
/*
|
|
||||||
* priority level at the vplus level
|
|
||||||
*/
|
|
||||||
rtems_irq_level irqLevel;
|
|
||||||
/*
|
|
||||||
* Trigger way : Rising or falling edge or High or low level
|
|
||||||
*/
|
|
||||||
rtems_irq_trigger irqTrigger;
|
|
||||||
} rtems_irq_connect_data;
|
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------+
|
|
||||||
| Function Prototypes.
|
|
||||||
+--------------------------------------------------------------------------*/
|
|
||||||
/*
|
|
||||||
* ------------------------ RTEMS Single Irq Handler Mngt Routines ----------------
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* function to initialize the interrupt for a specific BSP
|
|
||||||
*/
|
|
||||||
void BSP_rtems_irq_mngt_init();
|
|
||||||
|
|
||||||
/*
|
|
||||||
* function to connect a particular irq handler. This hanlder will NOT be called
|
|
||||||
* directly as the result of the corresponding interrupt. Instead, a RTEMS
|
|
||||||
* irq prologue will be called that will :
|
|
||||||
*
|
|
||||||
* 1) save the C scratch registers,
|
|
||||||
* 2) switch to a interrupt stack if the interrupt is not nested,
|
|
||||||
* 3) store the current i8259s' interrupt masks
|
|
||||||
* 4) modify them to disable the current interrupt at 8259 level (and may
|
|
||||||
* be others depending on software priorities)
|
|
||||||
* 5) aknowledge the i8259s',
|
|
||||||
* 6) demask the processor,
|
|
||||||
* 7) call the application handler
|
|
||||||
*
|
|
||||||
* As a result the hdl function provided
|
|
||||||
*
|
|
||||||
* a) can perfectly be written is C,
|
|
||||||
* b) may also well directly call the part of the RTEMS API that can be used
|
|
||||||
* from interrupt level,
|
|
||||||
* c) It only responsible for handling the jobs that need to be done at
|
|
||||||
* the device level including (aknowledging/re-enabling the interrupt at device,
|
|
||||||
* level, getting the data,...)
|
|
||||||
*
|
|
||||||
* When returning from the function, the following will be performed by
|
|
||||||
* the RTEMS irq epilogue :
|
|
||||||
*
|
|
||||||
* 1) masks the interrupts again,
|
|
||||||
* 2) restore the original i8259s' interrupt masks
|
|
||||||
* 3) switch back on the orinal stack if needed,
|
|
||||||
* 4) perform rescheduling when necessary,
|
|
||||||
* 5) restore the C scratch registers...
|
|
||||||
* 6) restore initial execution flow
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
int BSP_install_rtems_irq_handler (const rtems_irq_connect_data*);
|
|
||||||
/*
|
|
||||||
* function to get the current RTEMS irq handler for ptr->name. It enables to
|
|
||||||
* define hanlder chain...
|
|
||||||
*/
|
|
||||||
int BSP_get_current_rtems_irq_handler (rtems_irq_connect_data* ptr);
|
|
||||||
/*
|
|
||||||
* function to get disconnect the RTEMS irq handler for ptr->name.
|
|
||||||
* This function checks that the value given is the current one for safety reason.
|
|
||||||
* The user can use the previous function to get it.
|
|
||||||
*/
|
|
||||||
int BSP_remove_rtems_irq_handler (const rtems_irq_connect_data*);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* _IRQ_H_ */
|
|
||||||
/* end of include file */
|
|
||||||
@@ -1,142 +0,0 @@
|
|||||||
/*
|
|
||||||
* start.S : RTEMS entry point
|
|
||||||
*
|
|
||||||
* Copyright (C) 2000 Canon Research Centre France SA.
|
|
||||||
* Emmanuel Raguet, mailto:raguet@crf.canon.fr
|
|
||||||
*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
.equ ABORT_Stack, 0
|
|
||||||
.equ IRQ_Stack, 0x100
|
|
||||||
.equ FIQ_Stack, 0x200
|
|
||||||
.equ SVC_Stack, 0x300
|
|
||||||
|
|
||||||
/* Some standard definitions...*/
|
|
||||||
|
|
||||||
.equ Mode_USR, 0x10
|
|
||||||
.equ Mode_FIQ, 0x11
|
|
||||||
.equ Mode_IRQ, 0x12
|
|
||||||
.equ Mode_SVC, 0x13
|
|
||||||
.equ Mode_ABT, 0x17
|
|
||||||
.equ Mode_ABORT, 0x17
|
|
||||||
.equ Mode_UNDEF, 0x1B
|
|
||||||
.equ Mode_SYS, 0x1F /*only available on ARM Arch. v4*/
|
|
||||||
|
|
||||||
.equ I_Bit, 0x80
|
|
||||||
.equ F_Bit, 0x40
|
|
||||||
|
|
||||||
.text
|
|
||||||
.globl _start
|
|
||||||
|
|
||||||
_start:
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Here is the code to initialize the low-level BSP environment
|
|
||||||
* (Chip Select, PLL, ....?)
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Copy data from FLASH to RAM */
|
|
||||||
LDR r0, =_initdata /* load address of region */
|
|
||||||
LDR r1, =0x400000 /* execution address of region */
|
|
||||||
LDR r2, =_edata /* copy execution address into r2 */
|
|
||||||
|
|
||||||
copy:
|
|
||||||
CMP r1, r2 /* loop whilst r1 < r2 */
|
|
||||||
LDRLO r3, [r0], #4
|
|
||||||
STRLO r3, [r1], #4
|
|
||||||
BLO copy
|
|
||||||
|
|
||||||
/* zero the bss */
|
|
||||||
LDR r1, =__bss_end__ /* get end of ZI region */
|
|
||||||
LDR r0, =__bss_start__ /* load base address of ZI region */
|
|
||||||
zi_init:
|
|
||||||
MOV r2, #0
|
|
||||||
CMP r0, r1 /* loop whilst r0 < r1 */
|
|
||||||
STRLOT r2, [r0], #4
|
|
||||||
BLO zi_init
|
|
||||||
|
|
||||||
/* Load basic ARM7 interrupt table */
|
|
||||||
VectorInit:
|
|
||||||
MOV R8, #0
|
|
||||||
ADR R9, Vector_Init_Block
|
|
||||||
LDMIA R9!, {R0-R7} /* Copy the Vectors (8 words) */
|
|
||||||
STMIA R8!, {R0-R7}
|
|
||||||
LDMIA R9!, {R0-R7} /* Copy the .long'ed addresses (8 words) */
|
|
||||||
STMIA R8!, {R0-R7}
|
|
||||||
|
|
||||||
B init2
|
|
||||||
|
|
||||||
/*******************************************************
|
|
||||||
standard exception vectors table
|
|
||||||
*** Must be located at address 0
|
|
||||||
********************************************************/
|
|
||||||
|
|
||||||
Vector_Init_Block:
|
|
||||||
LDR PC, Reset_Addr
|
|
||||||
LDR PC, Undefined_Addr
|
|
||||||
LDR PC, SWI_Addr
|
|
||||||
LDR PC, Prefetch_Addr
|
|
||||||
LDR PC, Abort_Addr
|
|
||||||
NOP
|
|
||||||
LDR PC, IRQ_Addr
|
|
||||||
LDR PC, FIQ_Addr
|
|
||||||
|
|
||||||
.globl Reset_Addr
|
|
||||||
Reset_Addr: .long _start
|
|
||||||
Undefined_Addr: .long Undefined_Handler
|
|
||||||
SWI_Addr: .long SWI_Handler
|
|
||||||
Prefetch_Addr: .long Prefetch_Handler
|
|
||||||
Abort_Addr: .long Abort_Handler
|
|
||||||
.long 0
|
|
||||||
IRQ_Addr: .long IRQ_Handler
|
|
||||||
FIQ_Addr: .long FIQ_Handler
|
|
||||||
|
|
||||||
/* The following handlers do not do anything useful */
|
|
||||||
.globl Undefined_Handler
|
|
||||||
Undefined_Handler:
|
|
||||||
B Undefined_Handler
|
|
||||||
.globl SWI_Handler
|
|
||||||
SWI_Handler:
|
|
||||||
B SWI_Handler
|
|
||||||
.globl Prefetch_Handler
|
|
||||||
Prefetch_Handler:
|
|
||||||
B Prefetch_Handler
|
|
||||||
.globl Abort_Handler
|
|
||||||
Abort_Handler:
|
|
||||||
B Abort_Handler
|
|
||||||
.globl IRQ_Handler
|
|
||||||
IRQ_Handler:
|
|
||||||
B IRQ_Handler
|
|
||||||
.globl FIQ_Handler
|
|
||||||
FIQ_Handler:
|
|
||||||
B FIQ_Handler
|
|
||||||
|
|
||||||
init2 :
|
|
||||||
/* --- Initialise stack pointer registers
|
|
||||||
Set up the ABORT stack pointer last and stay in SVC mode */
|
|
||||||
MOV r0, #(Mode_ABORT | I_Bit | F_Bit) /* No interrupts */
|
|
||||||
MSR cpsr, r0
|
|
||||||
LDR sp, =ABORT_Stack
|
|
||||||
|
|
||||||
/* Enter IRQ mode and set up the IRQ stack pointer */
|
|
||||||
MOV r0, #Mode_IRQ | I_Bit | F_Bit /* No interrupts */
|
|
||||||
MSR cpsr, r0
|
|
||||||
LDR sp, =IRQ_Stack
|
|
||||||
|
|
||||||
/* Enter FIQ mode and set up the FIQ stack pointer */
|
|
||||||
MOV r0, #Mode_FIQ | I_Bit | F_Bit /* No interrupts */
|
|
||||||
MSR cpsr, r0
|
|
||||||
LDR sp, =FIQ_Stack
|
|
||||||
|
|
||||||
/* Set up the SVC stack pointer last and stay in SVC mode */
|
|
||||||
MOV r0, #Mode_SVC | I_Bit | F_Bit /* No interrupts */
|
|
||||||
MSR cpsr, r0
|
|
||||||
LDR sp, =SVC_Stack
|
|
||||||
|
|
||||||
/* --- Now we enter the C code */
|
|
||||||
|
|
||||||
B boot_card
|
|
||||||
@@ -1,160 +0,0 @@
|
|||||||
/*-------------------------------------------------------------------------+
|
|
||||||
| This file contains the ARM BSP startup package. It includes application,
|
|
||||||
| board, and monitor specific initialization and configuration. The generic CPU
|
|
||||||
| dependent initialization has been performed before this routine is invoked.
|
|
||||||
+--------------------------------------------------------------------------+
|
|
||||||
|
|
|
||||||
| Copyright (c) 2000 Canon Research Centre France SA.
|
|
||||||
| Emmanuel Raguet, mailto:raguet@crf.canon.fr
|
|
||||||
|
|
|
||||||
| 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.
|
|
||||||
|
|
|
||||||
+--------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
#include <bsp.h>
|
|
||||||
#include <rtems/libcsupport.h>
|
|
||||||
#include <rtems/libio.h>
|
|
||||||
|
|
||||||
#include <uart.h>
|
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------+
|
|
||||||
| Global Variables
|
|
||||||
+--------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* must be initialized with the right address
|
|
||||||
*/
|
|
||||||
volatile unsigned long *Regs = (unsigned long*)0xdeadbeef; /* Chip registers */
|
|
||||||
|
|
||||||
extern uint32_t _end; /* End of BSS. Defined in 'linkcmds'. */
|
|
||||||
/*
|
|
||||||
* Size of heap if it is 0 it will be dynamically defined by memory size,
|
|
||||||
* otherwise the value should be changed by binary patch
|
|
||||||
*/
|
|
||||||
uint32_t _heap_size = 0;
|
|
||||||
|
|
||||||
/* Size of stack used during initialization. Defined in 'start.s'. */
|
|
||||||
extern uint32_t _stack_size;
|
|
||||||
|
|
||||||
uint32_t rtemsFreeMemStart;
|
|
||||||
/* Address of start of free memory - should be updated
|
|
||||||
after creating new partitions or regions. */
|
|
||||||
|
|
||||||
/* The original BSP configuration table from the application and our copy of it
|
|
||||||
with some changes. */
|
|
||||||
|
|
||||||
extern rtems_configuration_table Configuration;
|
|
||||||
rtems_configuration_table BSP_Configuration;
|
|
||||||
|
|
||||||
rtems_cpu_table Cpu_table; /* CPU configuration table. */
|
|
||||||
char *rtems_progname; /* Program name - from main(). */
|
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------+
|
|
||||||
| External Prototypes
|
|
||||||
+--------------------------------------------------------------------------*/
|
|
||||||
extern void rtems_irq_mngt_init(void);
|
|
||||||
void bsp_libc_init( void *, uint32_t, int );
|
|
||||||
void bsp_postdriver_hook(void);
|
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------+
|
|
||||||
| Function: bsp_pretasking_hook
|
|
||||||
| Description: BSP pretasking hook. Called just before drivers are
|
|
||||||
| initialized. Used to setup libc and install any BSP
|
|
||||||
| extensions. NOTE: Must not use libc (to do io) from here,
|
|
||||||
| since drivers are not yet initialized.
|
|
||||||
| Global Variables: None.
|
|
||||||
| Arguments: None.
|
|
||||||
| Returns: Nothing.
|
|
||||||
+--------------------------------------------------------------------------*/
|
|
||||||
void bsp_pretasking_hook(void)
|
|
||||||
{
|
|
||||||
|
|
||||||
if(_heap_size == 0)
|
|
||||||
{
|
|
||||||
_heap_size = 0x420000 - rtemsFreeMemStart;
|
|
||||||
}
|
|
||||||
|
|
||||||
bsp_libc_init((void *)rtemsFreeMemStart, _heap_size, 0);
|
|
||||||
|
|
||||||
rtemsFreeMemStart += _heap_size; /* HEAP_SIZE in KBytes */
|
|
||||||
|
|
||||||
#ifdef RTEMS_DEBUG
|
|
||||||
|
|
||||||
rtems_debug_enable(RTEMS_DEBUG_ALL_MASK);
|
|
||||||
|
|
||||||
#endif /* RTEMS_DEBUG */
|
|
||||||
|
|
||||||
} /* bsp_pretasking_hook */
|
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------+
|
|
||||||
| Function: bsp_start
|
|
||||||
| Description: Called before main is invoked.
|
|
||||||
| Global Variables: None.
|
|
||||||
| Arguments: None.
|
|
||||||
| Returns: Nothing.
|
|
||||||
+--------------------------------------------------------------------------*/
|
|
||||||
void bsp_start_default( void )
|
|
||||||
{
|
|
||||||
rtemsFreeMemStart = (uint32_t)(&_end); /* &_end+_stack_size;*/
|
|
||||||
/* set the value of start of free memory. */
|
|
||||||
|
|
||||||
/* If we don't have command line arguments set default program name. */
|
|
||||||
|
|
||||||
Cpu_table.pretasking_hook = bsp_pretasking_hook; /* init libc, etc. */
|
|
||||||
Cpu_table.predriver_hook = NULL; /* use system's */
|
|
||||||
Cpu_table.postdriver_hook = bsp_postdriver_hook;
|
|
||||||
Cpu_table.idle_task = NULL;
|
|
||||||
/* do not override system IDLE task */
|
|
||||||
Cpu_table.do_zero_of_workspace = TRUE;
|
|
||||||
Cpu_table.interrupt_stack_size = 4096;
|
|
||||||
Cpu_table.extra_mpci_receive_server_stack = 0;
|
|
||||||
|
|
||||||
/* Place RTEMS workspace at beginning of free memory. */
|
|
||||||
BSP_Configuration.work_space_start = (void *)rtemsFreeMemStart;
|
|
||||||
|
|
||||||
rtemsFreeMemStart += BSP_Configuration.work_space_size;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Init rtems exceptions management
|
|
||||||
*/
|
|
||||||
rtems_exception_init_mngt();
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Init rtems interrupt management
|
|
||||||
*/
|
|
||||||
rtems_irq_mngt_init();
|
|
||||||
|
|
||||||
/*
|
|
||||||
* The following information is very useful when debugging.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
printk( "work_space_size = 0x%x\n", BSP_Configuration.work_space_size );
|
|
||||||
printk( "maximum_extensions = 0x%x\n", BSP_Configuration.maximum_extensions );
|
|
||||||
printk( "microseconds_per_tick = 0x%x\n",
|
|
||||||
BSP_Configuration.microseconds_per_tick );
|
|
||||||
printk( "ticks_per_timeslice = 0x%x\n",
|
|
||||||
BSP_Configuration.ticks_per_timeslice );
|
|
||||||
printk( "maximum_devices = 0x%x\n", BSP_Configuration.maximum_devices );
|
|
||||||
printk( "number_of_device_drivers = 0x%x\n",
|
|
||||||
BSP_Configuration.number_of_device_drivers );
|
|
||||||
printk( "Device_driver_table = 0x%x\n",
|
|
||||||
BSP_Configuration.Device_driver_table );
|
|
||||||
|
|
||||||
printk( "_heap_size = 0x%x\n", _heap_size );
|
|
||||||
/* printk( "_stack_size = 0x%x\n", _stack_size );*/
|
|
||||||
printk( "rtemsFreeMemStart = 0x%x\n", rtemsFreeMemStart );
|
|
||||||
printk( "work_space_start = 0x%x\n", BSP_Configuration.work_space_start );
|
|
||||||
printk( "work_space_size = 0x%x\n", BSP_Configuration.work_space_size );
|
|
||||||
#endif
|
|
||||||
|
|
||||||
} /* bsp_start */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* By making this a weak alias for bsp_start_default, a brave soul
|
|
||||||
* can override the actual bsp_start routine used.
|
|
||||||
*/
|
|
||||||
|
|
||||||
void bsp_start (void) __attribute__ ((weak, alias("bsp_start_default")));
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
/*-------------------------------------------------------------------------+
|
|
||||||
| exit.c - ARM BSP
|
|
||||||
+--------------------------------------------------------------------------+
|
|
||||||
| Routines to shutdown and reboot the BSP.
|
|
||||||
+--------------------------------------------------------------------------+
|
|
||||||
|
|
|
||||||
| Copyright (c) 2000 Canon Research Centre France SA.
|
|
||||||
| Emmanuel Raguet, mailto:raguet@crf.canon.fr
|
|
||||||
|
|
|
||||||
| 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.
|
|
||||||
|
|
|
||||||
+--------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <bsp.h>
|
|
||||||
#include <rtems/bspIo.h>
|
|
||||||
#include <rtems/libio.h>
|
|
||||||
|
|
||||||
void rtemsReboot (void)
|
|
||||||
{
|
|
||||||
asm volatile ("b _start");
|
|
||||||
}
|
|
||||||
|
|
||||||
void bsp_cleanup(void)
|
|
||||||
{
|
|
||||||
unsigned char ch;
|
|
||||||
static char line[]="\nEXECUTIVE SHUTDOWN! Any key to reboot...";
|
|
||||||
/*
|
|
||||||
* AT this point, the console driver is disconnected => we must
|
|
||||||
* use polled output/input. This is exactly what printk
|
|
||||||
* does.
|
|
||||||
*/
|
|
||||||
printk("\n");
|
|
||||||
printk(line);
|
|
||||||
ch = BSP_poll_char();
|
|
||||||
rtemsReboot();
|
|
||||||
}
|
|
||||||
@@ -1,316 +0,0 @@
|
|||||||
OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm",
|
|
||||||
"elf32-littlearm")
|
|
||||||
OUTPUT_ARCH(arm)
|
|
||||||
ENTRY(_start)
|
|
||||||
MEMORY {
|
|
||||||
/* Settings as submitted which won't match an arbitrary user board
|
|
||||||
and are not enough to link every test case so changed to link all tests.
|
|
||||||
FLASH (rx) : ORIGIN = 0x200000, LENGTH = 512K
|
|
||||||
RAM (!rx) : ORIGIN = 0x400000, LENGTH = 128K
|
|
||||||
*/
|
|
||||||
FLASH (rx) : ORIGIN = 0x200000, LENGTH = 1024K
|
|
||||||
RAM (!rx) : ORIGIN = 0x600000, LENGTH = 128K
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Do we need any of these for elf?
|
|
||||||
__DYNAMIC = 0; */
|
|
||||||
SECTIONS
|
|
||||||
{
|
|
||||||
/* Read-only sections, merged into text segment: */
|
|
||||||
/* . = 0 + SIZEOF_HEADERS;*/
|
|
||||||
.hash : { *(.hash) } > FLASH
|
|
||||||
.dynsym : { *(.dynsym) } > FLASH
|
|
||||||
.dynstr : { *(.dynstr) } > FLASH
|
|
||||||
.gnu.version : { *(.gnu.version) } > FLASH
|
|
||||||
.gnu.version_d : { *(.gnu.version_d) } > FLASH
|
|
||||||
.gnu.version_r : { *(.gnu.version_r) } > FLASH
|
|
||||||
.rel.init : { *(.rel.init) } > FLASH
|
|
||||||
.rela.init : { *(.rela.init) } > FLASH
|
|
||||||
.rel.text :
|
|
||||||
{
|
|
||||||
*(.rel.text)
|
|
||||||
*(.rel.text.*)
|
|
||||||
*(.rel.gnu.linkonce.t*)
|
|
||||||
} > FLASH
|
|
||||||
.rela.text :
|
|
||||||
{
|
|
||||||
*(.rela.text)
|
|
||||||
*(.rela.text.*)
|
|
||||||
*(.rela.gnu.linkonce.t*)
|
|
||||||
} > FLASH
|
|
||||||
.rel.fini : { *(.rel.fini) } > FLASH
|
|
||||||
.rela.fini : { *(.rela.fini) } > FLASH
|
|
||||||
.rel.rodata :
|
|
||||||
{
|
|
||||||
*(.rel.rodata)
|
|
||||||
*(.rel.rodata.*)
|
|
||||||
*(.rel.gnu.linkonce.r*)
|
|
||||||
} > FLASH
|
|
||||||
.rela.rodata :
|
|
||||||
{
|
|
||||||
*(.rela.rodata)
|
|
||||||
*(.rela.rodata.*)
|
|
||||||
*(.rela.gnu.linkonce.r*)
|
|
||||||
} > FLASH
|
|
||||||
.rel.data :
|
|
||||||
{
|
|
||||||
*(.rel.data)
|
|
||||||
*(.rel.data.*)
|
|
||||||
*(.rel.gnu.linkonce.d*)
|
|
||||||
} > FLASH
|
|
||||||
.rela.data :
|
|
||||||
{
|
|
||||||
*(.rela.data)
|
|
||||||
*(.rela.data.*)
|
|
||||||
*(.rela.gnu.linkonce.d*)
|
|
||||||
} > FLASH
|
|
||||||
.rel.ctors : { *(.rel.ctors) } > FLASH
|
|
||||||
.rela.ctors : { *(.rela.ctors) } > FLASH
|
|
||||||
.rel.dtors : { *(.rel.dtors) } > FLASH
|
|
||||||
.rela.dtors : { *(.rela.dtors) } > FLASH
|
|
||||||
.rel.got : { *(.rel.got) } > FLASH
|
|
||||||
.rela.got : { *(.rela.got) } > FLASH
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Do we need any of these for elf?
|
|
||||||
__DYNAMIC = 0; */
|
|
||||||
SECTIONS
|
|
||||||
{
|
|
||||||
/* Read-only sections, merged into text segment: */
|
|
||||||
/* . = 0 + SIZEOF_HEADERS;*/
|
|
||||||
.hash : { *(.hash) } > FLASH
|
|
||||||
.dynsym : { *(.dynsym) } > FLASH
|
|
||||||
.dynstr : { *(.dynstr) } > FLASH
|
|
||||||
.gnu.version : { *(.gnu.version) } > FLASH
|
|
||||||
.gnu.version_d : { *(.gnu.version_d) } > FLASH
|
|
||||||
.gnu.version_r : { *(.gnu.version_r) } > FLASH
|
|
||||||
.rel.init : { *(.rel.init) } > FLASH
|
|
||||||
.rela.init : { *(.rela.init) } > FLASH
|
|
||||||
.rel.text :
|
|
||||||
{
|
|
||||||
*(.rel.text)
|
|
||||||
*(.rel.text.*)
|
|
||||||
*(.rel.gnu.linkonce.t*)
|
|
||||||
} > FLASH
|
|
||||||
.rela.text :
|
|
||||||
{
|
|
||||||
*(.rela.text)
|
|
||||||
*(.rela.text.*)
|
|
||||||
*(.rela.gnu.linkonce.t*)
|
|
||||||
} > FLASH
|
|
||||||
.rel.fini : { *(.rel.fini) } > FLASH
|
|
||||||
.rela.fini : { *(.rela.fini) } > FLASH
|
|
||||||
.rel.rodata :
|
|
||||||
{
|
|
||||||
*(.rel.rodata)
|
|
||||||
*(.rel.rodata.*)
|
|
||||||
*(.rel.gnu.linkonce.r*)
|
|
||||||
} > FLASH
|
|
||||||
.rela.rodata :
|
|
||||||
{
|
|
||||||
*(.rela.rodata)
|
|
||||||
*(.rela.rodata.*)
|
|
||||||
*(.rela.gnu.linkonce.r*)
|
|
||||||
} > FLASH
|
|
||||||
.rel.data :
|
|
||||||
{
|
|
||||||
*(.rel.data)
|
|
||||||
*(.rel.data.*)
|
|
||||||
*(.rel.gnu.linkonce.d*)
|
|
||||||
} > FLASH
|
|
||||||
.rela.data :
|
|
||||||
{
|
|
||||||
*(.rela.data)
|
|
||||||
*(.rela.data.*)
|
|
||||||
*(.rela.gnu.linkonce.d*)
|
|
||||||
} > FLASH
|
|
||||||
.rel.ctors : { *(.rel.ctors) } > FLASH
|
|
||||||
.rela.ctors : { *(.rela.ctors) } > FLASH
|
|
||||||
.rel.dtors : { *(.rel.dtors) } > FLASH
|
|
||||||
.rela.dtors : { *(.rela.dtors) } > FLASH
|
|
||||||
.rel.got : { *(.rel.got) } > FLASH
|
|
||||||
.rela.got : { *(.rela.got) } > FLASH
|
|
||||||
.rel.sdata :
|
|
||||||
{
|
|
||||||
*(.rel.sdata)
|
|
||||||
*(.rel.sdata.*)
|
|
||||||
*(.rel.gnu.linkonce.s*)
|
|
||||||
} > FLASH
|
|
||||||
.rela.sdata :
|
|
||||||
{
|
|
||||||
*(.rela.sdata)
|
|
||||||
*(.rela.sdata.*)
|
|
||||||
*(.rela.gnu.linkonce.s*)
|
|
||||||
} > FLASH
|
|
||||||
.rel.sbss : { *(.rel.sbss) } > FLASH
|
|
||||||
.rela.sbss : { *(.rela.sbss) } > FLASH
|
|
||||||
.rel.bss : { *(.rel.bss) } > FLASH
|
|
||||||
.rela.bss : { *(.rela.bss) } > FLASH
|
|
||||||
.rel.plt : { *(.rel.plt) } > FLASH
|
|
||||||
.rela.plt : { *(.rela.plt) } > FLASH
|
|
||||||
.init :
|
|
||||||
{
|
|
||||||
KEEP (*(.init))
|
|
||||||
} > FLASH /*=0*/
|
|
||||||
.plt : { *(.plt) } > FLASH
|
|
||||||
.text :
|
|
||||||
{
|
|
||||||
*(.text)
|
|
||||||
*(.text.*)
|
|
||||||
*(.stub)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Special FreeBSD sysctl sections.
|
|
||||||
*/
|
|
||||||
. = ALIGN (16);
|
|
||||||
__start_set_sysctl_set = .;
|
|
||||||
*(set_sysctl_*);
|
|
||||||
__stop_set_sysctl_set = ABSOLUTE(.);
|
|
||||||
*(set_domain_*);
|
|
||||||
*(set_pseudo_*);
|
|
||||||
|
|
||||||
/* .gnu.warning sections are handled specially by elf32.em. */
|
|
||||||
*(.gnu.warning)
|
|
||||||
*(.gnu.linkonce.t*)
|
|
||||||
*(.glue_7t) *(.glue_7)
|
|
||||||
} > FLASH /*=0*/
|
|
||||||
_etext = .;
|
|
||||||
PROVIDE (etext = .);
|
|
||||||
.fini :
|
|
||||||
{
|
|
||||||
KEEP (*(.fini))
|
|
||||||
} > FLASH /*=0*/
|
|
||||||
.rodata : { *(.rodata) *(.rodata.*) *(.gnu.linkonce.r*) } > FLASH
|
|
||||||
.rodata1 : { *(.rodata1) } > FLASH
|
|
||||||
_erodata = ABSOLUTE(.);
|
|
||||||
PROVIDE (erodata = ABSOLUTE(.));
|
|
||||||
/* Adjust the address for the data segment. We want to adjust up to
|
|
||||||
the same address within the page on the next page up. */
|
|
||||||
. = ALIGN(256);
|
|
||||||
_begdata = ALIGN(256);
|
|
||||||
.arm_end_text :
|
|
||||||
{
|
|
||||||
. = ALIGN(256);
|
|
||||||
_initdata = ALIGN(256);
|
|
||||||
} > FLASH
|
|
||||||
.data : AT (_begdata)
|
|
||||||
{
|
|
||||||
*(.data*)
|
|
||||||
*(.gnu.linkonce.d*)
|
|
||||||
*(.jcr)
|
|
||||||
SORT(CONSTRUCTORS)
|
|
||||||
} > RAM
|
|
||||||
.data1 : { *(.data1) } > RAM
|
|
||||||
.eh_frame : { *(.eh_frame) } > RAM
|
|
||||||
.gcc_except_table : { *(.gcc_except_table) } > RAM
|
|
||||||
.ctors :
|
|
||||||
{
|
|
||||||
/* gcc uses crtbegin.o to find the start of
|
|
||||||
the constructors, so we make sure it is
|
|
||||||
first. Because this is a wildcard, it
|
|
||||||
doesn't matter if the user does not
|
|
||||||
actually link against crtbegin.o; the
|
|
||||||
linker won't look for a file to match a
|
|
||||||
wildcard. The wildcard also means that it
|
|
||||||
doesn't matter which directory crtbegin.o
|
|
||||||
is in. */
|
|
||||||
KEEP (*crtbegin.o(.ctors))
|
|
||||||
/* We don't want to include the .ctor section from
|
|
||||||
from the crtend.o file until after the sorted ctors.
|
|
||||||
The .ctor section from the crtend file contains the
|
|
||||||
end of ctors marker and it must be last */
|
|
||||||
KEEP (*(EXCLUDE_FILE (*crtend.o ) .ctors))
|
|
||||||
KEEP (*(SORT(.ctors.*)))
|
|
||||||
KEEP (*(.ctors))
|
|
||||||
} > RAM
|
|
||||||
.dtors :
|
|
||||||
{
|
|
||||||
KEEP (*crtbegin.o(.dtors))
|
|
||||||
KEEP (*(EXCLUDE_FILE (*crtend.o ) .dtors))
|
|
||||||
KEEP (*(SORT(.dtors.*)))
|
|
||||||
KEEP (*(.dtors))
|
|
||||||
} > RAM
|
|
||||||
.got : { *(.got.plt) *(.got) } > RAM
|
|
||||||
.dynamic : { *(.dynamic) } > RAM
|
|
||||||
/* We want the small data sections together, so single-instruction offsets
|
|
||||||
can access them all, and initialized data all before uninitialized, so
|
|
||||||
we can shorten the on-disk segment size. */
|
|
||||||
.sdata :
|
|
||||||
{
|
|
||||||
*(.sdata)
|
|
||||||
*(.sdata.*)
|
|
||||||
*(.gnu.linkonce.s.*)
|
|
||||||
} > RAM
|
|
||||||
.arm_data :
|
|
||||||
{
|
|
||||||
_edata = .;
|
|
||||||
__bss_start = .;
|
|
||||||
__bss_start__ = .;
|
|
||||||
} > RAM
|
|
||||||
.sbss :
|
|
||||||
{
|
|
||||||
*(.dynsbss)
|
|
||||||
*(.sbss)
|
|
||||||
*(.sbss.*)
|
|
||||||
*(.scommon)
|
|
||||||
} > RAM
|
|
||||||
.bss :
|
|
||||||
{
|
|
||||||
*(.dynbss)
|
|
||||||
*(.bss)
|
|
||||||
*(.bss.*)
|
|
||||||
*(.gnu.linkonce.b.*)
|
|
||||||
*(COMMON)
|
|
||||||
/* Align here to ensure that the .bss section occupies space up to
|
|
||||||
_end. Align after .bss to ensure correct alignment even if the
|
|
||||||
.bss section disappears because there are no input sections. */
|
|
||||||
. = ALIGN(32 / 8);
|
|
||||||
} > RAM
|
|
||||||
. = ALIGN(32 / 8);
|
|
||||||
.arm_end :
|
|
||||||
{
|
|
||||||
_end = .;
|
|
||||||
_bss_end__ = . ;
|
|
||||||
__bss_end__ = . ;
|
|
||||||
__end__ = . ;
|
|
||||||
} > RAM
|
|
||||||
/* Stabs debugging sections. */
|
|
||||||
.stab 0 : { *(.stab) }
|
|
||||||
.stabstr 0 : { *(.stabstr) }
|
|
||||||
.stab.excl 0 : { *(.stab.excl) }
|
|
||||||
.stab.exclstr 0 : { *(.stab.exclstr) }
|
|
||||||
.stab.index 0 : { *(.stab.index) }
|
|
||||||
.stab.indexstr 0 : { *(.stab.indexstr) }
|
|
||||||
.comment 0 : { *(.comment) }
|
|
||||||
/* DWARF debug sections.
|
|
||||||
Symbols in the DWARF debugging sections are relative to the beginning
|
|
||||||
of the section so we begin them at 0. */
|
|
||||||
/* DWARF 1 */
|
|
||||||
.debug 0 : { *(.debug) }
|
|
||||||
.line 0 : { *(.line) }
|
|
||||||
/* GNU DWARF 1 extensions */
|
|
||||||
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
|
||||||
.debug_sfnames 0 : { *(.debug_sfnames) }
|
|
||||||
/* DWARF 1.1 and DWARF 2 */
|
|
||||||
.debug_aranges 0 : { *(.debug_aranges) }
|
|
||||||
.debug_pubnames 0 : { *(.debug_pubnames) }
|
|
||||||
/* DWARF 2 */
|
|
||||||
.debug_info 0 : { *(.debug_info) }
|
|
||||||
.debug_abbrev 0 : { *(.debug_abbrev) }
|
|
||||||
.debug_line 0 : { *(.debug_line) }
|
|
||||||
.debug_frame 0 : { *(.debug_frame) }
|
|
||||||
.debug_str 0 : { *(.debug_str) }
|
|
||||||
.debug_loc 0 : { *(.debug_loc) }
|
|
||||||
.debug_macinfo 0 : { *(.debug_macinfo) }
|
|
||||||
/* SGI/MIPS DWARF 2 extensions */
|
|
||||||
.debug_weaknames 0 : { *(.debug_weaknames) }
|
|
||||||
.debug_funcnames 0 : { *(.debug_funcnames) }
|
|
||||||
.debug_typenames 0 : { *(.debug_typenames) }
|
|
||||||
.debug_varnames 0 : { *(.debug_varnames) }
|
|
||||||
/*.stack 0x80000 : { _stack = .; *(.stack) }*/
|
|
||||||
/* These must appear regardless of . */
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user