This commit is contained in:
Ralf Corsepius
2005-05-07 07:17:10 +00:00
parent 7823ed9c32
commit 3bdce60b61
25 changed files with 0 additions and 2847 deletions
-14
View File
@@ -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
-92
View File
@@ -1,92 +0,0 @@
2005-05-07 Ralf Corsepius <ralf_corsepius@rtems.org>
* Makefile.am, configure.ac, acinclude.m4: Remove.
2004-09-24 Ralf Corsepius <ralf_corsepius@rtems.org>
* configure.ac: Require automake > 1.9.
2004-02-12 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* acinclude.m4: Regenerate.
2004-02-12 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: RTEMS_CHECK_BSPDIR([$RTEMS_BSP_FAMILY]).
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-10-20 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* acinclude.m4: Reflect changes to bootstrap.
* configure.ac: Remove RTEMS_CHECK_CUSTON_BSP.
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-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-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-08-07 Ivan Guzvinec <ivang@opencores.org>
* acinclude.m4, configure.ac: Bender BSP renamed to OpenRisc
Reference Platform or ORP.
2002-08-06 Joel Sherrill <joel@OARcorp.com>
* acinclude.m4, configure.ac: Go back to name bender for
the or32/or1200 BSP.
2002-08-06 Joel Sherrill <joel@OARcorp.com>
* acinclude.m4, configure.ac: Update and fix minor things so this
BSP compiles and almost completely links.
2002-08-06 Joel Sherrill <joel@OARcorp.com>
* .cvsignore: New file.
2002-08-06 Joel Sherrill <joel@OARcorp.com>
* Makefile.am: New file.
2002-08-06 Chris Ziomkowski <chris@asics.ws>
* ChangeLog, acinclude.m4, configure.ac: New files added as part
of merge from OpenCores repository.
-14
View File
@@ -1,14 +0,0 @@
##
## $Id$
##
ACLOCAL_AMFLAGS = -I ../../../aclocal
## Descend into the @RTEMS_BSP_FAMILY@ directory
## Currently, the shared directory is not explicitly
## added but it is present in the source tree.
## Currently no shared
SUBDIRS = @RTEMS_BSP_FAMILY@
include $(top_srcdir)/../../../automake/subdirs.am
include $(top_srcdir)/../../../automake/local.am
-10
View File
@@ -1,10 +0,0 @@
# RTEMS_CHECK_BSPDIR(RTEMS_BSP_FAMILY)
AC_DEFUN([RTEMS_CHECK_BSPDIR],
[
case "$1" in
orp )
AC_CONFIG_SUBDIRS([orp]);;
*)
AC_MSG_ERROR([Invalid BSP]);;
esac
])
-21
View File
@@ -1,21 +0,0 @@
## Process this file with autoconf to produce a configure script.
##
## $Id$
AC_PREREQ(2.59)
AC_INIT([rtems-c-src-lib-libbsp-or32],[_RTEMS_VERSION],[rtems-bugs@rtems.com])
AC_CONFIG_SRCDIR([orp])
RTEMS_TOP(../../../../..)
RTEMS_CANONICAL_TARGET_CPU
AM_INIT_AUTOMAKE([no-define foreign 1.9])
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
-14
View File
@@ -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
-287
View File
@@ -1,287 +0,0 @@
2005-05-07 Ralf Corsepius <ralf.corsepius@rtems.org>
* bsp_specs, clock/clockdrv.c, configure.ac,
console/console.c, console/console.h, include/bsp.h,
include/tm27.h, Makefile.am, README, start/start.S,
startup/bspclean.c, startup/bspstart.c, startup/linkcmds,
startup/setvec.c, timer/timer.c, timer/timerisr.c, times: Remove.
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>
* start/start.S: Include <rtems/asm.h> instead of <asm.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>.
2004-03-31 Ralf Corsepius <ralf_corsepius@rtems.org>
* clock/clockdrv.c, console/console.c, startup/bspstart.c,
timer/timer.c, timer/timerisr.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-12 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Use CPPASCOMPILE instead of CCASCOMPILE.
2004-01-30 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Cosmetics.
2004-01-30 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-12 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* wrapup/Makefile.am: Cosmetics.
2003-12-11 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-02 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* startup/Makefile.am: Remove S_FILES. Cosmetics.
2003-12-02 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-08 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* bsp_specs: Remove *lib:.
2003-09-04 Joel Sherrill <joel@OARcorp.com>
* clock/clockdrv.c, console/console.c, console/console.h,
include/bsp.h, start/start.S, startup/bspclean.c, startup/bspstart.c,
startup/linkcmds, startup/setvec.c, timer/timer.c, timer/timerisr.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>
* 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.
2002-12-17 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-10-21 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* .cvsignore: Reformat.
Add autom4te*cache.
Remove autom4te.cache.
2002-10-09 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* .cvsignore: Add autom4te.cache.
2002-09-14 Ivan Guzvinec <ivang@opencores.org>
* include/bsp.h, startup/Makefile.am, startup/bspclean.c:
Cleanup so the BSP works.
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-08-07 Ivan Guzvinec <ivang@opencores.org>
* configure.ac: Bender BSP renamed to OpenRisc Reference Platform
for ORP.
2002-08-07 Ivan Guzvinec <ivang@opencores.org>
* include/bsp.h, start/start.S, startup/linkcmds: Patches which
were required to make the BSP run.
2002-08-06 Joel Sherrill <joel@OARcorp.com>
* configure.ac: GO back to name bender for the or32/or1200 BSP.
2002-08-06 Joel Sherrill <joel@OARcorp.com>
* bsp_specs, configure.ac, startup/bspstart.c: Update and fix
minor things so this BSP compiles and almost completely links.
* startup/Makefile.am: New file.
2002-08-06 Joel Sherrill <joel@OARcorp.com>
* include/.cvsignore: Updated to account for more files.
2002-08-06 Chris Ziomkowski <chris@asics.ws>
* .cvsignore, Makefile.am, README, bsp_specs, configure.ac, times,
clock/.cvsignore, clock/Makefile.am, clock/clockdrv.c,
console/.cvsignore, console/Makefile.am, console/console.c,
console/console.h, include/.cvsignore, include/Makefile.am,
include/bsp.h, start/.cvsignore, start/Makefile.am, start/start.S,
startup/.cvsignore, startup/bspclean.c, startup/bspstart.c,
startup/linkcmds, startup/main.c, startup/setvec.c, timer/.cvsignore,
timer/Makefile.am, timer/timer.c, timer/timerisr.c,
wrapup/.cvsignore, wrapup/Makefile.am, ChangeLog: New files added
as part of merge from OpenCores repository.
-104
View File
@@ -1,104 +0,0 @@
##
## $Id$
##
ACLOCAL_AMFLAGS = -I ../../../../aclocal
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
noinst_PROGRAMS =
include_HEADERS += include/coverhd.h
EXTRA_DIST = 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/bspclean.c ../../shared/bootcard.c \
../../shared/main.c ../../shared/sbrk.c \
../../shared/gnatinstallhandler.c startup/setvec.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 = console/console.c console/console.h
console_rel_CPPFLAGS = $(AM_CPPFLAGS)
console_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
noinst_PROGRAMS += timer.rel
timer_rel_SOURCES = timer/timer.c timer/timerisr.c
timer_rel_CPPFLAGS = $(AM_CPPFLAGS)
timer_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
noinst_LIBRARIES = libbsp.a
libbsp_a_SOURCES =
libbsp_a_LIBADD = startup.rel clock.rel console.rel timer.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)/coverhd.h: 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
CLEANFILES = $(PREINSTALL_FILES)
DISTCLEANFILES += $(PREINSTALL_DIRS)
CLEANFILES += $(TMPINSTALL_FILES)
include $(top_srcdir)/../../../../automake/local.am
-69
View File
@@ -1,69 +0,0 @@
#
# $Id$
#
# This is a sample hardware description file for a BSP. This comment
# block does not have to appear in a real one. The intention of this
# file is to provide a central place to look when searching for
# information about a board when starting a new BSP. For example,
# you may want to find an existing timer driver for the chip you are
# using on your board. It is easier to grep for the chip name in
# all of the HARDWARE files than to peruse the source tree. Hopefully,
# making the HARDDWARE files accurate will also alleviate the common
# problem of not knowing anything about a board based on its BSP
# name.
#
# NOTE: If you have a class of peripheral chip on board which
# is not in this list please add it to this file so
# others will also use the same name.
#
# Timer resolution is the way it is configured in this BSP.
# On a counting timer, this is the length of time which
# corresponds to 1 count.
#
BSP NAME: fastsbc1
BOARD: Fasssst Computers, Fast SBC-1
BUS: SchoolBus
CPU FAMILY: i386
CPU: Intel Hexium
COPROCESSORS: Witch Hex87
MODE: 32 bit mode
DEBUG MONITOR: HexBug
PERIPHERALS
===========
TIMERS: Intel i8254
RESOLUTION: .0001 microseconds
SERIAL PORTS: Zilog Z8530 (with 2 ports)
REAL-TIME CLOCK: RTC-4
DMA: Intel i8259
VIDEO: none
SCSI: none
NETWORKING: none
DRIVER INFORMATION
==================
CLOCK DRIVER: RTC-4
IOSUPP DRIVER: Zilog Z8530 port A
SHMSUPP: polled and interrupts
TIMER DRIVER: Intel i8254
TTY DRIVER: stub only
STDIO
=====
PORT: Console port 0
ELECTRICAL: RS-232
BAUD: 9600
BITS PER CHARACTER: 8
PARITY: None
STOP BITS: 1
NOTES
=====
(1) 900 Mhz and 950 Mhz versions.
(2) 1 Gb or 2 Gb RAM.
(3) PC compatible if HexBug not enabled.
-12
View File
@@ -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} \
%{qrtems_debug: start_g.o%s}}}
*link:
%{!qrtems: %(old_link)} %{qrtems: -dc -dp -N -e _start}
-225
View File
@@ -1,225 +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 <rtems/libio.h>
#include <bsp.h>
static void (*old_handler)(unsigned int,unsigned int,unsigned int,unsigned int);
void Clock_exit( void );
void Clock_isr( rtems_vector_number vector,unsigned int pc,
unsigned int address, unsigned int sr);
/*
* The interrupt vector number associated with the clock tick device
* driver.
*/
#define CLOCK_VECTOR 8
/*
* Clock_driver_ticks is a monotonically increasing counter of the
* number of clock ticks since the driver was initialized.
*/
volatile uint32_t Clock_driver_ticks;
/*
* Clock_isrs is the number of clock ISRs until the next invocation of
* the RTEMS clock tick routine. The clock tick device driver
* gets an interrupt once a millisecond and counts down until the
* length of time between the user configured microseconds per tick
* has passed.
*/
uint32_t Clock_isrs; /* ISRs until next tick */
/*
* These are set by clock driver during its init
*/
rtems_device_major_number rtems_clock_major = ~0;
rtems_device_minor_number rtems_clock_minor;
void Clock_exit( void );
/* Write this to restart the Timer. Sets mode = 01,
interrupts enabled, interrupt not pending, report
at 200,000 (1 msec on 200 MHz CPU) */
static const unsigned int TTMR_RESET = 0x60030D40;
/*
* Isr Handler
*/
void Clock_isr(uint32_t vector,
uint32_t pc,
uint32_t ear,
uint32_t sr)
{
register int pending;
register int value = 0x60002710;
/* Was it us? */
asm volatile ("l.mfspr %0,r0,0x4802 \n\t" /* Read the PIC status */
"l.andi %0,%0,0x8 \n\t" : "=r" (pending));
if(pending)
{
rtems_clock_tick();
asm ("l.mtspr r0,%0,0x5000 \n\t" :: "r" (value));
}
if(old_handler)
(*old_handler)(vector,pc,ear,sr);
}
/*
* Install_clock
*
* Install a clock tick handler and reprograms the chip. This
* is used to initially establish the clock tick.
*/
void Install_clock()
{
uint32_t tmp,sr,ttmr,ttcr;
extern uint32_t Or1k_Interrupt_Vectors[16];
ttmr = TTMR_RESET; /* Reset value */
ttcr = 0; /* Start at 0 */
/*
* Initialize the clock tick device driver variables
*/
/* Make sure the Timer (interrupt 3) is enabled and
reports a high prority interrupt */
asm volatile ("l.mfspr %0,r0,0x4800 \n\t" /* Get the PIC mask */
"l.ori %0,%0,0x8 \n\t" /* Enable int 3 */
"l.mtspr r0,%0,0x4800 \n\t" /* Write back mask */
"l.mfspr %0,r0,0x4801 \n\t" /* Get priority mask */
"l.ori %0,%0,0x8 \n\t" /* Set us to high */
"l.mtspr r0,%0,0x4801 \n\t" /* Write back to PICPR */
: "=r" (tmp));
/* Generate a 1 kHz interrupt */
asm volatile ("l.mfspr %0,r0,0x11 \n\t" /* Get the current setting */
"l.addi %1,r0,-5 \n\t"
"l.and %1,%1,%0 \n\t" /* Turn off interrupts */
"l.mtspr r0,%1,0x11 \n\t" /* Set it in SR */
"l.mtspr r0,%2,0x5000\n\t" /* Set TTMR */
"l.mtspr r0,%3,0x5100\n\t" /* Set TTCR */
: "=&r" (sr), "=&r" (tmp) : "r" (ttmr), "r" (ttcr));
old_handler = (void(*)(unsigned int,unsigned int,unsigned int,unsigned int))
Or1k_Interrupt_Vectors[8];
Or1k_Interrupt_Vectors[8] = (uint32_t)Clock_isr;
asm volatile ("l.mtspr r0,%0,0x11\n\t":: "r" (sr));
Clock_driver_ticks = 0;
/*
* Schedule the clock cleanup routine to execute if the application exits.
*/
atexit( Clock_exit );
}
/*
* Clean up before the application exits
*/
void Clock_exit( void )
{
register int temp1;
register int temp2;
/* In the case of a fatal error, we should shut down
all the interrupts so we don't get woken up again. */
/* First, turn off the clock in the PIC */
asm volatile ("l.mfspr %0,r0,0x4800 \n\t" /* Get the PIC mask */
"l.addi %1,%1,-9 \n\t" /* Create a mask to disable */
"l.and %0,%1,%0 \n\t" /* Mask us out */
"l.mtspr r0,%0,0x4800 \n\t" /* Write back mask */
"l.mfspr %0,r0,0x4801 \n\t" /* Get priority mask */
"l.and %0,%1,%0 \n\t" /* Set us to low */
"l.mtspr r0,%0,0x4801 \n\t" /* Write back to PICPR */
: "=r" (temp1), "=r" (temp2));
/* Now turn off the clock at the timer */
asm volatile ("l.mtspr r0,r0,0x5000\n\t" /* Clear TTMR */
"l.mtspr r0,r0,0x5100\n\t"); /* Clear TTCR */
}
/*
* Clock_initialize
*
* Device driver entry point for clock tick driver initialization.
*/
rtems_device_driver Clock_initialize(
rtems_device_major_number major,
rtems_device_minor_number minor,
void *pargp
)
{
Install_clock();
/*
* make major/minor avail to others such as shared memory driver
*/
rtems_clock_major = major;
rtems_clock_minor = minor;
return RTEMS_SUCCESSFUL;
}
rtems_device_driver Clock_control(
rtems_device_major_number major,
rtems_device_minor_number minor,
void *pargp
)
{
uint32_t isrlevel;
rtems_libio_ioctl_args_t *args = pargp;
if (args == 0)
goto done;
/*
* This is hokey, but until we get a defined interface
* to do this, it will just be this simple...
*/
if (args->command == rtems_build_name('I', 'S', 'R', ' '))
{
Clock_isr(CLOCK_VECTOR,0,0,0);
}
else if (args->command == rtems_build_name('N', 'E', 'W', ' '))
{
rtems_interrupt_disable( isrlevel );
(void) set_vector( args->buffer, CLOCK_VECTOR, 1 );
rtems_interrupt_enable( isrlevel );
}
done:
return RTEMS_SUCCESSFUL;
}
-20
View File
@@ -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-or32-orp],[_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
-374
View File
@@ -1,374 +0,0 @@
/*
* This file contains the template for a console IO package.
*
* 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.
*
* This file adapted from no_bsp board library of the RTEMS distribution.
* The body has been modified for the Bender Or1k implementation by
* Chris Ziomkowski. <chris@asics.ws>
*/
#define BENDER_INIT
#include <bsp.h>
#include <rtems/libio.h>
#include "console.h"
static int localEcho;
static UART_16450* uart = (UART_16450*)0x80000000; /* This is where the simulator puts it */
/* console_initialize
*
* This routine initializes the console IO driver.
*
* Input parameters: NONE
*
* Output parameters: NONE
*
* Return values:
*/
void (*old_handler)(unsigned int,unsigned int,unsigned int,unsigned int);
void console_interrupt(unsigned int vector,unsigned int pc,
unsigned int effective_addr, unsigned int status)
{
int reason;
register int pending;
/* First thing's first...is this for us? */
asm volatile ("l.mfspr %0,r0,0x4802 \n\t" /* Read the PIC status */
"l.andi %0,%0,0x4 \n\t" : "=r" (pending));
if(pending)
{
reason = uart->read.IIR;
switch(reason)
{
case 0: /* Interrupt because of modem status */
break;
case 2: /* Interrupt because Transmitter empty */
break;
case 4: /* Interrupt because Received data available */
break;
case 6: /* Interrupt because Status Register */
break;
case 12: /* Interrupt because of character timeout (16550 only) */
break;
default: /* No interrupt */
break;
}
}
if(old_handler)
(*old_handler)(vector,pc,effective_addr,status);
}
rtems_device_driver console_initialize(
rtems_device_major_number major,
rtems_device_minor_number minor,
void *arg
)
{
rtems_status_code status;
int tmp,tmp2;
uint32_t sr;
extern uint32_t Or1k_Interrupt_Vectors[16];
/* Make sure the UART (interrupt 2) is enabled and
reports a low prority interrupt */
asm volatile ("l.mfspr %0,r0,0x4800 \n\t" /* Get the PIC mask */
"l.ori %0,%0,0x4 \n\t" /* Enable int 2 */
"l.mtspr r0,%0,0x4800 \n\t" /* Write back mask */
"l.mfspr %0,r0,0x4801 \n\t" /* Get priority mask */
"l.addi %1,r0,-5 \n\t"
"l.and %0,%0,%1 \n\t" /* Set us to low */
"l.mtspr r0,%0,0x4801 \n\t" /* Write back to PICPR */
: "=r" (tmp), "=r" (tmp2));
/* Install the interrupt handler */
asm volatile ("l.mfspr %0,r0,0x11 \n\t"
"l.addi %1,r0,-5 \n\t"
"l.and %1,%1,%0 \n\t"
"l.mtspr r0,%1,0x11 \n\t": "=&r" (sr) : "r" (tmp));
old_handler = (void(*)(unsigned int,unsigned int,unsigned int,unsigned int))
Or1k_Interrupt_Vectors[5];
Or1k_Interrupt_Vectors[5] = (uint32_t)console_interrupt;
asm volatile ("l.mtspr r0,%0,0x11\n\t":: "r" (sr));
/* Assume 1843.2/16 kHz clock */
uart->latch.LCR = 0x80; /* Set the divisor latch bit */
uart->latch.DLM = 2; /* 57,600 */
uart->latch.DLL = 0;
uart->write.LCR = 0x03; /* 8-N-1 */
uart->write.MCR = 0x03; /* Assert RTS & DTR */
/* uart->write.FCR = 0x00; */ /* Make sure we're in 16450 mode... Ignore for 16450 driver */
uart->write.IER = 0x05; /* Don't worry about TEMT unless we need to. */
tmp = uart->read.LSR; /* Make sure interrupts are cleared */
tmp = uart->read.RBR; /* Clear the input buffer */
tmp = uart->read.MSR; /* Clear the modem status register */
localEcho = 1; /* Turn on local echo */
status = rtems_io_register_name(
"/dev/console",
major,
(rtems_device_minor_number) 0
);
if (status != RTEMS_SUCCESSFUL)
rtems_fatal_error_occurred(status);
return RTEMS_SUCCESSFUL;
}
/* is_character_ready
*
* This routine returns TRUE if a character is available.
*
* Input parameters: NONE
*
* Output parameters: NONE
*
* Return values:
*/
rtems_boolean is_character_ready(
char *ch
)
{
*ch = '\0'; /* return NULL for no particular reason */
return(TRUE);
}
/* inbyte
*
* This routine reads a character from the SOURCE.
*
* Input parameters: NONE
*
* Output parameters: NONE
*
* Return values:
* character read from SOURCE
*/
char inbyte( void )
{
unsigned int stat;
stat = uart->read.LSR;
while(!(stat & 0x01)) /* ! Data Ready */
{
rtems_task_wake_after( RTEMS_YIELD_PROCESSOR );
stat = uart->read.LSR;
}
return uart->read.RBR; /* Return the character */
}
/* outbyte
*
* This routine transmits a character out the SOURCE. Flow
* control is not currently enabled.
*
* Input parameters:
* ch - character to be transmitted
*
* Output parameters: NONE
*/
void outbyte(char ch)
{
unsigned int stat;
/*
* Carriage Return/New line translation.
*/
stat = uart->read.LSR;
while(!(stat & 0x40)) /* ! TEMT */
{
rtems_task_wake_after( RTEMS_YIELD_PROCESSOR );
stat = uart->read.LSR;
}
uart->write.THR = ch;
if ( ch == '\n' )
outbyte( '\r' );
}
/*
* Open entry point
*/
rtems_device_driver console_open(
rtems_device_major_number major,
rtems_device_minor_number minor,
void * arg
)
{
return RTEMS_SUCCESSFUL;
}
/*
* Close entry point
*/
rtems_device_driver console_close(
rtems_device_major_number major,
rtems_device_minor_number minor,
void * arg
)
{
return RTEMS_SUCCESSFUL;
}
/*
* read bytes from the serial port. We only have stdin.
*/
rtems_device_driver console_read(
rtems_device_major_number major,
rtems_device_minor_number minor,
void * arg
)
{
rtems_libio_rw_args_t *rw_args;
char *buffer;
int maximum;
int count = 0;
rw_args = (rtems_libio_rw_args_t *) arg;
buffer = rw_args->buffer;
maximum = rw_args->count;
for (count = 0; count < maximum; count++)
{
buffer[ count ] = inbyte();
if (buffer[ count ] == '\n' || buffer[ count ] == '\r')
{
buffer[ count++ ] = '\n';
if(localEcho)
outbyte('\n' ); /* newline */
break; /* Return for a newline */
}
else if (buffer[ count ] == '\b' && count > 0 )
{
if(localEcho)
{
outbyte('\b' ); /* move back one space */
outbyte(' ' ); /* erase the character */
outbyte('\b' ); /* move back one space */
}
count-=2;
}
else if(localEcho)
outbyte(buffer[ count ]); /* echo the character */
}
rw_args->bytes_moved = count;
return (count >= 0) ? RTEMS_SUCCESSFUL : RTEMS_UNSATISFIED;
}
/*
* write bytes to the serial port. Stdout and stderr are the same.
*/
rtems_device_driver console_write(
rtems_device_major_number major,
rtems_device_minor_number minor,
void * arg
)
{
int count;
int maximum;
rtems_libio_rw_args_t *rw_args;
char *buffer;
rw_args = (rtems_libio_rw_args_t *) arg;
buffer = rw_args->buffer;
maximum = rw_args->count;
for (count = 0; count < maximum; count++) {
if ( buffer[ count ] == '\n') {
outbyte('\r');
}
outbyte( buffer[ count ] );
}
rw_args->bytes_moved = maximum;
return 0;
}
/*
* IO Control entry point
*/
rtems_device_driver console_control(
rtems_device_major_number major,
rtems_device_minor_number minor,
void * arg
)
{
int param,div;
ConsoleIOCTLRequest* request = (ConsoleIOCTLRequest*)arg;
if (!arg)
return RTEMS_INVALID_ADDRESS;
switch(request->command)
{
case TERM_LOCAL_ECHO:
param = (int)(request->data);
if(param < 0 || param > 1)
return RTEMS_INVALID_NUMBER;
localEcho = param;
break;
case TERM_BIT_RATE:
param = (int)(request->data);
switch(param)
{
case 50:
case 150:
case 300:
case 600:
case 1200:
case 1800:
case 2000:
case 2400:
case 3600:
case 4800:
case 7200:
case 9600:
case 19200:
case 38400:
case 57600:
case 115200:
div = 115200/param;
uart->latch.LCR |= 0x80; /* Set the divisor latch bit */
uart->latch.DLM = div & 0xFF;
uart->latch.DLL = div >> 8;
uart->write.LCR &= 0x7F; /* Clear the divisor latch bit */
break;
default:
return RTEMS_INVALID_NUMBER;
}
break;
default:
return RTEMS_NOT_CONFIGURED;
}
return RTEMS_SUCCESSFUL;
}
@@ -1,70 +0,0 @@
/* console.h -- console header file for the Bender board using the
* Or1k architecture.
*
* Copyright (C) 2001 Chris Ziomkowski, chris@asics.ws
*
* This file is distributed as part of the RTEMS package from
* OAR Corporation, and follows the licensing and distribution
* terms as stated for 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.
*/
#ifndef _CONSOLE_H
#define _CONSOLE_H
typedef enum {
TERM_LOCAL_ECHO,
TERM_BIT_RATE,
} ConsoleIOCTLCommand;
typedef struct {
ConsoleIOCTLCommand command;
void* data;
} ConsoleIOCTLRequest;
typedef struct {
unsigned char RBR;
unsigned char IER;
unsigned char IIR;
unsigned char LCR;
unsigned char MCR;
unsigned char LSR;
unsigned char MSR;
unsigned char SCR;
} UART_16450_Read;
typedef struct {
unsigned char THR;
unsigned char IER;
unsigned char IIR;
unsigned char LCR;
unsigned char MCR;
unsigned char LSR;
unsigned char MSR;
unsigned char SCR;
} UART_16450_Write;
typedef struct {
unsigned char DLM;
unsigned char DLL;
unsigned char IIR;
unsigned char LCR;
unsigned char MCR;
unsigned char LSR;
unsigned char MSR;
unsigned char SCR;
} UART_16450_Latch;
typedef union {
UART_16450_Read read;
UART_16450_Write write;
UART_16450_Latch latch;
} UART_16450;
#endif
@@ -1,5 +0,0 @@
coverhd.h
bspopts.h
bspopts.h.in
stamp-h
stamp-h.in
-84
View File
@@ -1,84 +0,0 @@
/* bsp.h
*
* This include file contains all board IO definitions.
*
* XXX : put yours in here
*
* 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 __ORP_h
#define __ORP_h
#ifdef __cplusplus
extern "C" {
#endif
#include <bspopts.h>
#include <rtems.h>
#include <rtems/console.h>
#include <rtems/clockdrv.h>
/*
* confdefs.h overrides for this BSP:
* - number of termios serial ports (defaults to 1)
* - Interrupt stack space is not minimum if defined.
*/
/* #define CONFIGURE_NUMBER_OF_TERMIOS_PORTS 2 */
#define CONFIGURE_INTERRUPT_STACK_MEMORY (4 * 1024)
/*
* Simple spin delay in microsecond units for device drivers.
* This is very dependent on the clock speed of the target.
*/
#define delay( microseconds ) \
{ \
}
/* Constants */
#define RAM_START 0x10000000
#define RAM_END 0x10800000
/* miscellaneous stuff assumed to exist */
extern rtems_configuration_table BSP_Configuration;
/*
* Device Driver Table Entries
*/
/*
* NOTE: Use the standard Console driver entry
*/
/*
* NOTE: Use the standard Clock driver entry
*/
/* functions */
void bsp_cleanup( void );
no_cpu_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 */
);
#ifdef __cplusplus
}
#endif
#endif
/* end of include file */
-32
View File
@@ -1,32 +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
*/
#define MUST_WAIT_FOR_INTERRUPT 0
#define Install_tm27_vector( handler ) set_vector( (handler), 0, 1 )
#define Cause_tm27_intr() /* empty */
#define Clear_tm27_intr() /* empty */
#define Lower_tm27_intr() /* empty */
#endif
File diff suppressed because it is too large Load Diff
@@ -1,26 +0,0 @@
/* bsp_cleanup()
*
* This routine normally is part of start.s and usually returns
* control to a monitor.
*
* INPUT: NONE
*
* OUTPUT: NONE
*
* 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>
void bsp_cleanup( void )
{
exit(0);
}
@@ -1,118 +0,0 @@
/*
* This routine starts the application. 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) 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.
*
* This file adapted from no_bsp board library of the RTEMS distribution.
* The body has been modified for the Bender Or1k implementation by
* Chris Ziomkowski. <chris@asics.ws>
*/
#include <bsp.h>
#include <rtems/libio.h>
#include <rtems/libcsupport.h>
#include <string.h>
extern int _mem_end;
/*
* The original 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;
/*
* Use the shared implementations of the following routines
*/
void bsp_postdriver_hook(void);
void bsp_libc_init( void *, uint32_t, int );
/*
* Function: bsp_pretasking_hook
* Created: 95/03/10
*
* Description:
* BSP pretasking hook. Called just before drivers are initialized.
* Used to setup libc and install any BSP extensions.
*
* NOTES:
* Must not use libc (to do io) from here, since drivers are
* not yet initialized.
*
*/
void bsp_pretasking_hook(void)
{
uint32_t heap_start;
heap_start = (uint32_t) _mem_end;
if (heap_start & (CPU_ALIGNMENT-1))
heap_start = (heap_start + CPU_ALIGNMENT) & ~(CPU_ALIGNMENT-1);
bsp_libc_init((void *) heap_start, 64 * 1024, 0);
#ifdef RTEMS_DEBUG
rtems_debug_enable( RTEMS_DEBUG_ALL_MASK );
#endif
}
/*
* bsp_start
*
* This routine does the bulk of the system initialization.
*/
void bsp_start( void )
{
/*
* Allocate the memory for the RTEMS Work Space. This can come from
* a variety of places: hard coded address, malloc'ed from outside
* RTEMS world (e.g. simulator or primitive memory manager), or (as
* typically done by stock BSPs) by subtracting the required amount
* of work space from the last physical address on the CPU board.
*/
/*
* Need to "allocate" the memory for the RTEMS Workspace and
* tell the RTEMS configuration where it is. This memory is
* not malloc'ed. It is just "pulled from the air".
*/
BSP_Configuration.work_space_start = _mem_end;
_mem_end += BSP_Configuration.work_space_size + 512;
( BSP_Configuration.work_space_size + 512 );
BSP_Configuration.work_space_start = (void *) ((unsigned int)((char *)BSP_Configuration.work_space_start + CPU_ALIGNMENT) & ~(CPU_ALIGNMENT-1));
/*
* initialize the CPU table for this BSP
*/
Cpu_table.pretasking_hook = bsp_pretasking_hook; /* init libc, etc. */
Cpu_table.postdriver_hook = bsp_postdriver_hook;
Cpu_table.do_zero_of_workspace = FALSE;
Cpu_table.interrupt_stack_size = CONFIGURE_INTERRUPT_STACK_MEMORY;
/*
* Start RTEMS
*/
rtems_initialize_executive( &BSP_Configuration, &Cpu_table );
bsp_cleanup();
}
@@ -1,82 +0,0 @@
/*
* This file contains directives for the GNU linker which are specific
* to the NO_CPU NO_BSP BOARD.
*
* 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$
*/
MEMORY
{
flash : org = 0x00000000, l = 2M
ram : org = 0x10000000, l = 32M
}
SECTIONS
{
.text : AT (0x0) {
text_start = . ;
_text_start = . ;
*(.text)
. = ALIGN (16);
/*
* Special FreeBSD sysctl sections.
*/
. = ALIGN (16);
__start_set_sysctl_set = .;
*(set_sysctl_*);
__stop_set_sysctl_set = ABSOLUTE(.);
*(set_domain_*);
*(set_pseudo_*);
*(.eh_fram)
. = ALIGN (16);
/*
* C++ constructors
*/
__CTOR_LIST__ = .;
LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2)
*(.ctors)
LONG(0)
__CTOR_END__ = .;
__DTOR_LIST__ = .;
LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2)
*(.dtors)
LONG(0)
__DTOR_END__ = .;
_etext = ALIGN( 0x10 ) ;
. = ALIGN( 0x10) ;
} > flash
.data : AT ( ADDR(.text) + SIZEOF(.text) ) {
data_start = . ;
_data_start = . ;
*(.data)
_edata = ALIGN( 0x10 );
. = ALIGN (0x10);
} > ram
.bss : AT ( ADDR(.text) + SIZEOF(.text) + SIZEOF(.data) ) {
bss_start = .;
_bss_start = .;
*(.bss)
*(COMMON)
end = ALIGN( 0x10 );
__end = ALIGN( 0x10 );
. = ALIGN (0x10);
} > ram
}
@@ -1,42 +0,0 @@
/* set_vector
*
* This routine installs an interrupt vector on the target Board/CPU.
* This routine is allowed to be as board dependent as necessary.
*
* INPUT:
* handler - interrupt handler entry point
* vector - vector number
* type - 0 indicates raw hardware connect
* 1 indicates RTEMS interrupt connect
*
* RETURNS:
* address of previous interrupt handler
*
* 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>
no_cpu_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 */
)
{
no_cpu_isr_entry previous_isr;
if ( type )
rtems_interrupt_catch( handler, vector, (rtems_isr_entry *) &previous_isr );
else {
/* XXX: install non-RTEMS ISR as "raw" interupt */
}
return previous_isr;
}
-103
View File
@@ -1,103 +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
* Timer_initialize() and Read_timer(). Read_timer() usually returns
* the number of microseconds since 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>
uint32_t Timer_interrupts;
rtems_boolean Timer_driver_Find_average_overhead;
void Timer_initialize( void )
{
/*
* Timer has never overflowed. This may not be necessary on some
* implemenations of timer but ....
*/
Timer_interrupts = 0;
/*
* Somehow start the timer
*/
}
/*
* The following controls the behavior of Read_timer().
*
* 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 Read_timer( void )
{
uint32_t clicks;
uint32_t total;
/*
* Read the timer and see how many clicks it has been since we started.
*/
clicks = 0; /* XXX: read some HW here */
/*
* 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 * 0;
if ( Timer_driver_Find_average_overhead == 1 )
return total; /* in XXX microsecond units */
else {
if ( total < LEAST_VALID )
return 0; /* below timer resolution */
/*
* Somehow convert total into microseconds
*/
return (total - AVG_OVERHEAD);
}
}
/*
* Empty function call used in loops to measure basic cost of looping
* in Timing Test Suite.
*/
rtems_status_code Empty_function( void )
{
return RTEMS_SUCCESSFUL;
}
void Set_find_average_overhead(
rtems_boolean find_flag
)
{
Timer_driver_Find_average_overhead = find_flag;
}
@@ -1,36 +0,0 @@
/* timerisr.s
*
* If required this ISR is used to bump a count of interval "overflow"
* interrupts which have occurred since the timer was started. The
* number of overflows is taken into account in the Read_timer()
* routine if necessary.
*
* To reduce overhead this is best to be the "rawest" hardware interupt
* handler you can write. This should be the only interrupt which can
* occur during the measured time period.
*
* NOTE: This file is USUALLY in assembly and is LEAN AND MEAN.
* Any code in this isr is pure overhead which can perturb
* the accuracy of the Timing Test Suite.
*
* 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>
extern uint32_t _Timer_interrupts;
void timerisr( void )
{
/*
* _Timer_interrupts += TIMER_BETWEEN_OVERFLOWS (usually in microseconds)
* return from interrupt
*/
}
-194
View File
@@ -1,194 +0,0 @@
#
# Timing Test Suite Results for the NO_BSP
#
# NOTE: This is just a template. The times are irrelevant since this BSP
# can only be compiled -- not executed.
#
# $Id$
#
Board:
CPU: include coprocessor if applicable
Clock Speed:
Memory Configuration: SRAM, DRAM, cache, etc
Wait States:
Times Reported in: cycles, microseconds, etc
Timer Source: Count Down Timer, on-CPU cycle counter, etc
Column X:
Column Y:
# DESCRIPTION A B
== ================================================================= ==== ====
1 rtems_semaphore_create 20
rtems_semaphore_delete 21
rtems_semaphore_obtain: available 15
rtems_semaphore_obtain: not available -- NO_WAIT 15
rtems_semaphore_release: no waiting tasks 16
2 rtems_semaphore_obtain: not available -- caller blocks 62
3 rtems_semaphore_release: task readied -- preempts caller 55
4 rtems_task_restart: blocked task -- preempts caller 77
rtems_task_restart: ready task -- preempts caller 70
rtems_semaphore_release: task readied -- returns to caller 25
rtems_task_create 57
rtems_task_start 31
rtems_task_restart: suspended task -- returns to caller 36
rtems_task_delete: suspended task 47
rtems_task_restart: ready task -- returns to caller 37
rtems_task_restart: blocked task -- returns to caller 46
rtems_task_delete: blocked task 50
5 rtems_task_suspend: calling task 51
rtems_task_resume: task readied -- preempts caller 49
6 rtems_task_restart: calling task 59
rtems_task_suspend: returns to caller 18
rtems_task_resume: task readied -- returns to caller 19
rtems_task_delete: ready task 50
7 rtems_task_restart: suspended task -- preempts caller 70
8 rtems_task_set_priority: obtain current priority 12
rtems_task_set_priority: returns to caller 27
rtems_task_mode: obtain current mode 5
rtems_task_mode: no reschedule 5
rtems_task_mode: reschedule -- returns to caller 8
rtems_task_mode: reschedule -- preempts caller 39
rtems_task_set_note 13
rtems_task_get_note 13
rtems_clock_set 33
rtems_clock_get 3
9 rtems_message_queue_create 110
rtems_message_queue_send: no waiting tasks 37
rtems_message_queue_urgent: no waiting tasks 37
rtems_message_queue_receive: available 31
rtems_message_queue_flush: no messages flushed 12
rtems_message_queue_flush: messages flushed 16
rtems_message_queue_delete 26
10 rtems_message_queue_receive: not available -- NO_WAIT 15
rtems_message_queue_receive: not available -- caller blocks 62
11 rtems_message_queue_send: task readied -- preempts caller 72
12 rtems_message_queue_send: task readied -- returns to caller 39
13 rtems_message_queue_urgent: task readied -- preempts caller 72
14 rtems_message_queue_urgent: task readied -- returns to caller 39
15 rtems_event_receive: obtain current events 1
rtems_event_receive: not available -- NO_WAIT 12
rtems_event_receive: not available -- caller blocks 56
rtems_event_send: no task readied 12
rtems_event_receive: available 12
rtems_event_send: task readied -- returns to caller 24
16 rtems_event_send: task readied -- preempts caller 55
17 rtems_task_set_priority: preempts caller 62
18 rtems_task_delete: calling task 83
19 rtems_signal_catch 9
rtems_signal_send: returns to caller 15
rtems_signal_send: signal to self 18
exit ASR overhead: returns to calling task 22
exit ASR overhead: returns to preempting task 49
20 rtems_partition_create 35
rtems_region_create 23
rtems_partition_get_buffer: available 15
rtems_partition_get_buffer: not available 13
rtems_partition_return_buffer 18
rtems_partition_delete 16
rtems_region_get_segment: available 22
rtems_region_get_segment: not available -- NO_WAIT 21
rtems_region_return_segment: no waiting tasks 19
rtems_region_get_segment: not available -- caller blocks 64
rtems_region_return_segment: task readied -- preempts caller 74
rtems_region_return_segment: task readied -- returns to caller 44
rtems_region_delete 16
rtems_io_initialize 2
rtems_io_open 1
rtems_io_close 1
rtems_io_read 1
rtems_io_write 1
rtems_io_control 1
21 rtems_task_ident 149
rtems_message_queue_ident 145
rtems_semaphore_ident 156
rtems_partition_ident 145
rtems_region_ident 148
rtems_port_ident 145
rtems_timer_ident 145
rtems_rate_monotonic_ident 145
22 rtems_message_queue_broadcast: task readied -- returns to caller 42
rtems_message_queue_broadcast: no waiting tasks 17
rtems_message_queue_broadcast: task readied -- preempts caller 78
23 rtems_timer_create 14
rtems_timer_fire_after: inactive 22
rtems_timer_fire_after: active 24
rtems_timer_cancel: active 15
rtems_timer_cancel: inactive 13
rtems_timer_reset: inactive 21
rtems_timer_reset: active 23
rtems_timer_fire_when: inactive 34
rtems_timer_fire_when: active 34
rtems_timer_delete: active 19
rtems_timer_delete: inactive 17
rtems_task_wake_when 69
24 rtems_task_wake_after: yield -- returns to caller 9
rtems_task_wake_after: yields -- preempts caller 45
25 rtems_clock_tick 4
26 _ISR_Disable 0
_ISR_Flash 1
_ISR_Enable 1
_Thread_Disable_dispatch 0
_Thread_Enable_dispatch 7
_Thread_Set_state 11
_Thread_Disptach (NO FP) 31
context switch: no floating point contexts 21
context switch: self 10
context switch: to another task 10
context switch: restore 1st FP task 25
fp context switch: save idle, restore idle 31
fp context switch: save idle, restore initialized 19
fp context switch: save initialized, restore initialized 20
_Thread_Resume 7
_Thread_Unblock 7
_Thread_Ready 9
_Thread_Get 4
_Semaphore_Get 2
_Thread_Get: invalid id 0
27 interrupt entry overhead: returns to interrupted task 6
interrupt exit overhead: returns to interrupted task 6
interrupt entry overhead: returns to nested interrupt 6
interrupt exit overhead: returns to nested interrupt 5
interrupt entry overhead: returns to preempting task 7
interrupt exit overhead: returns to preempting task 36
28 rtems_port_create 16
rtems_port_external_to_internal 11
rtems_port_internal_to_external 11
rtems_port_delete 16
29 rtems_rate_monotonic_create 15
rtems_rate_monotonic_period: initiate period -- returns to caller 21
rtems_rate_monotonic_period: obtain status 13
rtems_rate_monotonic_cancel 16
rtems_rate_monotonic_delete: inactive 18
rtems_rate_monotonic_delete: active 20
rtems_rate_monotonic_period: conclude periods -- caller blocks 53