2003-09-26 Joel Sherrill <joel@OARcorp.com>

* hppa1.1/.cvsignore, hppa1.1/ChangeLog, hppa1.1/Makefile.am,
	hppa1.1/acinclude.m4, hppa1.1/configure.ac,
	hppa1.1/simhppa/.cvsignore, hppa1.1/simhppa/ChangeLog,
	hppa1.1/simhppa/Makefile.am, hppa1.1/simhppa/bsp_specs,
	hppa1.1/simhppa/configure.ac, hppa1.1/simhppa/times,
	hppa1.1/simhppa/include/.cvsignore,
	hppa1.1/simhppa/include/Makefile.am, hppa1.1/simhppa/include/bsp.h,
	hppa1.1/simhppa/include/ttydrv.h, hppa1.1/simhppa/shmsupp/.cvsignore,
	hppa1.1/simhppa/shmsupp/Makefile.am, hppa1.1/simhppa/shmsupp/README,
	hppa1.1/simhppa/shmsupp/addrconv.c,
	hppa1.1/simhppa/shmsupp/cause_intr.c,
	hppa1.1/simhppa/shmsupp/getcfg.c, hppa1.1/simhppa/shmsupp/lock.c,
	hppa1.1/simhppa/shmsupp/mpisr.c, hppa1.1/simhppa/start/.cvsignore,
	hppa1.1/simhppa/start/Makefile.am, hppa1.1/simhppa/start/start.S,
	hppa1.1/simhppa/startup/.cvsignore,
	hppa1.1/simhppa/startup/Makefile.am,
	hppa1.1/simhppa/startup/bspclean.c,
	hppa1.1/simhppa/startup/bspstart.c, hppa1.1/simhppa/startup/linkcmds,
	hppa1.1/simhppa/startup/setvec.c, hppa1.1/simhppa/tools/.cvsignore,
	hppa1.1/simhppa/tools/ChangeLog, hppa1.1/simhppa/tools/Makefile.am,
	hppa1.1/simhppa/tools/configure.ac,
	hppa1.1/simhppa/tools/print_dump.c, hppa1.1/simhppa/tty/.cvsignore,
	hppa1.1/simhppa/tty/Makefile.am, hppa1.1/simhppa/tty/tty.c,
	hppa1.1/simhppa/wrapup/.cvsignore,
	hppa1.1/simhppa/wrapup/Makefile.am: Removed.
This commit is contained in:
Joel Sherrill
2003-09-26 21:38:59 +00:00
parent 487c286c32
commit ee5171b968
42 changed files with 0 additions and 2361 deletions

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

View File

@@ -1,73 +0,0 @@
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-12-02 Joel Sherrill <joel@OARcorp.com>
* pxfl/.cvsignore, pxfl/Makefile.in, pxfl/README,
pxfl/floss-bsp.h: Removed.
2002-10-21 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* .cvsignore: Reformat.
Add autom4te*cache.
Remove autom4te.cache.
2002-03-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac:
AC_INIT(package,_RTEMS_VERSION,_RTEMS_BUGS).
AM_INIT_AUTOMAKE([no-define foreign 1.6]).
* Makefile.am: Remove AUTOMAKE_OPTIONS.
2001-10-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* .cvsignore: Add autom4te.cache for autoconf > 2.52.
* configure.in: Remove.
* configure.ac: New file, generated from configure.in by autoupdate.
2001-10-09 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* acinclude.m4: New file.
* configure.in: Use RTEMS_BSP_SUBDIR.
2000-11-09 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Use ... instead of RTEMS_TOPdir in ACLOCAL_AMFLAGS.
2000-11-02 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Switch to ACLOCAL_AMFLAGS = -I $(RTEMS_TOPdir)/aclocal.
2000-10-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: ACLOCAL_AMFLAGS= -I $(RTEMS_TOPdir)/macros.
Switch to GNU canonicalization.
2000-08-10 Joel Sherrill <joel@OARcorp.com>
* ChangeLog: New file.

View File

@@ -1,11 +0,0 @@
##
## $Id$
##
ACLOCAL_AMFLAGS = -I ../../../aclocal
# Descend into the $(RTEMS_BSP_FAMILY) directory
SUBDIRS = $(RTEMS_BSP_FAMILY)
include $(top_srcdir)/../../../automake/subdirs.am
include $(top_srcdir)/../../../automake/local.am

View File

@@ -1,11 +0,0 @@
# RTEMS_CHECK_BSPDIR(RTEMS_BSP)
AC_DEFUN([RTEMS_CHECK_BSPDIR],
[
RTEMS_BSP_ALIAS(ifelse([$1],,[${RTEMS_BSP}],[$1]),bspdir)
case "$bspdir" in
simhppa )
AC_CONFIG_SUBDIRS([simhppa]);;
*)
AC_MSG_ERROR([Invalid BSP]);;
esac
])

View File

@@ -1,22 +0,0 @@
## Process this file with autoconf to produce a configure script.
##
## $Id$
AC_PREREQ(2.57)
AC_INIT([rtems-c-src-lib-libbsp-hppa1.1],[_RTEMS_VERSION],[rtems-bugs@rtems.com])
AC_CONFIG_SRCDIR([simhppa])
RTEMS_TOP(../../../../..)
RTEMS_CANONICAL_TARGET_CPU
AM_INIT_AUTOMAKE([no-define foreign 1.7.2])
AM_MAINTAINER_MODE
RTEMS_ENV_RTEMSBSP
RTEMS_CHECK_CUSTOM_BSP(RTEMS_BSP)
RTEMS_PROJECT_ROOT
RTEMS_CHECK_BSPDIR([$RTEMS_BSP])
# Explicitly list all Makefiles here
AC_CONFIG_FILES([Makefile])
AC_OUTPUT

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

View File

@@ -1,203 +0,0 @@
2003-09-19 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* bsp_specs: Remove *lib:.
2003-09-04 Joel Sherrill <joel@OARcorp.com>
* include/bsp.h, shmsupp/addrconv.c, shmsupp/cause_intr.c,
shmsupp/getcfg.c, shmsupp/lock.c, shmsupp/mpisr.c,
startup/bspclean.c, startup/bspstart.c, startup/setvec.c,
tools/print_dump.c, tty/tty.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/.
* include/Makefile.am: Reflect having moved automake/.
* shmsupp/Makefile.am: Reflect having moved automake/.
* start/Makefile.am: Reflect having moved automake/.
* startup/Makefile.am: Reflect having moved automake/.
* tty/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 for networking.
2003-01-15 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* shmsupp/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.
* tty/Makefile.am: Don't include @RTEMS_BSP@.cfg.
2002-12-19 Joel Sherrill <joel@OARcorp.com>
* start/start.S: Per PR329 now compiles with GNU tools.
* startup/linkcmds: New file. Now almost links.
2002-12-19 Joel Sherrill <joel@OARcorp.com>
* start/start.S: Per PR329 now compiles with GNU tools.
2002-12-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* include/Makefile.am: Fix broken preinstall-deps.
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>
* shmsupp/Makefile.am: Use .$(OBJEXT) instead of .o.
* start/Makefile.am: Use .$(OBJEXT) instead of .o.
* startup/Makefile.am: Use .$(OBJEXT) instead of .o.
* tty/Makefile.am: Use .$(OBJEXT) instead of .o.
* wrapup/Makefile.am: Use .$(OBJEXT) instead of .o.
2002-07-21 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* start/Makefile.am: Eliminate PGMS.
Add bsplib_DATA = $(PROJECT_RELEASE)/lib/start$(LIB_VARIANT).o.
2002-07-04 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* wrapup/Makefile.am: Eliminate TMPINSTALL_FILES.
Remove $(OBJS) from all-local.
2002-06-29 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* wrapup/Makefile.am: Remove preinstallation of libbsp.a,
2002-06-27 Joel Sherrill <joel@OARcorp.com>
* Makefile.am, bsp_specs: Now this target almost compiles again.
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]).
* include/Makefile.am: Remove AUTOMAKE_OPTIONS.
* Makefile.am: Remove AUTOMAKE_OPTIONS.
* shmsupp/Makefile.am: Remove AUTOMAKE_OPTIONS.
* start/Makefile.am: Remove AUTOMAKE_OPTIONS.
* startup/Makefile.am: Remove AUTOMAKE_OPTIONS.
* tty/Makefile.am: Remove AUTOMAKE_OPTIONS.
* wrapup/Makefile.am: Remove AUTOMAKE_OPTIONS.
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-11-15 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Add RTEMS_BSPOPTS_*(SIMHPPA_FAST_IDLE),
remove RTEMS_OUTPUT_BUILD_SUBDIRS.
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 Joel Sherrill <joel@OARcorp.com>
* include/bsp.h: Renamed delay() to rtems_bsp_delay().
2001-09-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* include/Makefile.am: Use 'CLEANFILES ='.
* include/Makefile.am: Use 'TMPINSTALL_FILES ='.
2001-05-26 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.in: Add bspopts.h.
* include/.cvsignore: Add bspopts.h*, stamp-h*.
* include/Makefile.am: Use *_HEADERS instead of *H_FILES.
* include/bsp.h: Include bspopts.h.
2001-05-10 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.in: Use RTEMS_PROG_CC_FOR_TARGET([-ansi -fasm]).
2000-11-09 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Use ... instead of RTEMS_TOPdir in ACLOCAL_AMFLAGS.
2000-11-02 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Switch to ACLOCAL_AMFLAGS = -I $(RTEMS_TOPdir)/aclocal.
2000-11-01 Joel Sherrill <joel@OARcorp.com>
* startup/bspstart.c: assoc.h, error.h, libio_.h, libio.h,
and libcsupport.h moved from libc to lib/include/rtems and
now must be referenced as <rtems/XXX.h>. Header file order
was cleaned up while doing this.
2000-10-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.in, Makefile.am: ACLOCAL_AMFLAGS= -I $(RTEMS_TOPdir)/macros.
Switch to GNU canonicalization.
2000-09-25 Joel Sherrill <joel@OARcorp.com>
* include/bsp.h: tty_* renamed to console_*.
* tty/tty.c: Ditto.
* shmsupp/addrconv.c: Typo fixed.
* wrapup/Makefile.am: Merge startup not start directory.
2000-09-04 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* shmsupp/Makefile.am, start/Makefile.am, startup/Makefile.am,
tty/Makefile.am, wrapup/Makefile.am: Include compile.am
2000-08-10 Joel Sherrill <joel@OARcorp.com>
* ChangeLog: New file.

View File

@@ -1,16 +0,0 @@
##
## $Id$
##
ACLOCAL_AMFLAGS = -I ../../../../aclocal
# wrapup is the one that actually builds and installs the library
# from the individual .rel files built in other directories
SUBDIRS = . include start startup tty shmsupp wrapup tools
include $(top_srcdir)/../../bsp.am
EXTRA_DIST = bsp_specs times
include $(top_srcdir)/../../../../automake/subdirs.am
include $(top_srcdir)/../../../../automake/local.am

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}

View File

@@ -1,38 +0,0 @@
## Process this file with autoconf to produce a configure script.
##
## $Id$
AC_PREREQ(2.57)
AC_INIT([rtems-c-src-lib-libbsp-hppa1.1-simhppa],[_RTEMS_VERSION],[rtems-bugs@rtems.com])
AC_CONFIG_SRCDIR([bsp_specs])
RTEMS_TOP(../../../../../..)
RTEMS_CANONICAL_TARGET_CPU
AM_INIT_AUTOMAKE([no-define foreign 1.7.2])
RTEMS_BSP_CONFIGURE
RTEMS_PROG_CC_FOR_TARGET([-ansi -fasm])
RTEMS_CANONICALIZE_TOOLS
RTEMS_CHECK_MULTIPROCESSING(RTEMS_BSP)
AM_CONDITIONAL(HAS_MP,test "$HAS_MP" = "yes")
RTEMS_CONFIG_BUILD_SUBDIRS(tools)
RTEMS_BSPOPTS_SET([SIMHPPA_FAST_IDLE],[*],[1])
RTEMS_BSPOPTS_HELP([SIMHPPA_FAST_IDLE],
[If defined, speed up the clock ticks while the idle task is running so
time spent in the idle task is minimized. This significantly reduces
the wall time required to execute the RTEMS test suites.])
# Explicitly list all Makefiles here
AC_CONFIG_FILES([Makefile
include/Makefile
shmsupp/Makefile
start/Makefile
startup/Makefile
tty/Makefile
wrapup/Makefile])
AC_OUTPUT

View File

@@ -1,6 +0,0 @@
Makefile
Makefile.in
bspopts.h
bspopts.h.in
stamp-h
stamp-h.in

View File

@@ -1,33 +0,0 @@
##
## $Id$
##
include_rtemsdir = $(includedir)/rtems
include_HEADERS = bsp.h coverhd.h bspopts.h
include_rtems_HEADERS = ttydrv.h
$(PROJECT_INCLUDE):
$(mkinstalldirs) $@
$(PROJECT_INCLUDE)/rtems:
$(mkinstalldirs) $@
$(PROJECT_INCLUDE)/%.h: %.h
$(INSTALL_DATA) $< $@
coverhd.h: $(top_srcdir)/../../shared/include/coverhd.h
$(INSTALL_DATA) $< $@
CLEANFILES = coverhd.h
$(PROJECT_INCLUDE)/rtems/%.h: %.h
$(INSTALL_DATA) $< $@
TMPINSTALL_FILES = $(PROJECT_INCLUDE) \
$(include_HEADERS:%=$(PROJECT_INCLUDE)/%) \
$(PROJECT_INCLUDE)/rtems \
$(include_rtems_HEADERS:%=$(PROJECT_INCLUDE)/rtems/%)
all-local: $(TMPINSTALL_FILES)
include $(top_srcdir)/../../../../automake/local.am

View File

@@ -1,116 +0,0 @@
/* bsp.h
*
* This include file contains all HP PA-RISC simulator definitions.
*
* 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 __PXFL_BSP_h
#define __PXFL_BSP_h
#ifdef __cplusplus
extern "C" {
#endif
#include <bspopts.h>
#include <rtems.h>
#include <clockdrv.h>
#include <rtems/ttydrv.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)
/*
* Define the time limits for RTEMS Test Suite test durations.
* Long test and short test duration limits are provided. These
* values are in seconds and need to be converted to ticks for the
* application.
*
*/
#define MAX_LONG_TEST_DURATION 3 /* 3 seconds */
#define MAX_SHORT_TEST_DURATION 3 /* 3 seconds */
/*
* Define the interrupt mechanism for Time Test 27
*/
#define MUST_WAIT_FOR_INTERRUPT 1
#define Install_tm27_vector( handler ) \
( void ) set_vector( handler, HPPA_INTERRUPT_EXTERNAL_INTERVAL_TIMER, 1 );
#define Cause_tm27_intr() \
set_itimer( get_itimer() + 20 )
#define Clear_tm27_intr() \
set_eirr( 0x80000000 )
#define Lower_tm27_intr() \
{ \
register unsigned32 ignored; \
HPPA_ASM_SSM( HPPA_PSW_I, ignored ); \
}
/*
* Simple spin delay in microsecond units for device drivers.
* This is very dependent on the clock speed of the target.
*/
extern void Clock_delay(rtems_unsigned32 microseconds);
#define rtems_bsp_delay( microseconds ) \
Clock_delay(microseconds);
/*
* Todo: this should be put somewhere else
*/
#undef CLOCK_DRIVER_TABLE_ENTRY
#define CLOCK_DRIVER_TABLE_ENTRY { Clock_initialize, NULL, NULL, NULL, NULL, Clock_control }
rtems_device_driver Clock_control(
rtems_device_major_number major,
rtems_device_minor_number minor,
void *pargp
);
/*
* We printf() to a buffer if multiprocessing, *or* if this is set.
* ref: src/lib/libbsp/hppa/pxfl/iosupp/consupp.c
*/
extern int use_print_buffer;
#define HPPA_INTERRUPT_EXTERNAL_MPCI HPPA_INTERRUPT_EXTERNAL_10
rtems_isr_entry set_vector(rtems_isr_entry, rtems_vector_number, int);
void bsp_start( void );
void bsp_cleanup( void );
/* miscellaneous stuff assumed to exist */
extern rtems_configuration_table BSP_Configuration; /* owned by BSP */
extern rtems_cpu_table Cpu_table; /* owned by BSP */
extern int cpu_number; /* from 0; cpu number in a multi cpu system */
#ifdef __cplusplus
}
#endif
#endif
/* end of include file */

View File

@@ -1,54 +0,0 @@
/*
* $Id$
*/
/*
* definitions for the tty driver
*/
#ifndef _RTEMS_TTYDRV_H
#define _RTEMS_TTYDRV_H
rtems_device_driver
tty_initialize(
rtems_device_major_number major,
rtems_device_minor_number minor,
void * arg
);
rtems_device_driver
tty_open(
rtems_device_major_number major,
rtems_device_minor_number minor,
void * arg
);
rtems_device_driver
tty_close(
rtems_device_major_number major,
rtems_device_minor_number minor,
void * arg
);
rtems_device_driver
tty_control(
rtems_device_major_number major,
rtems_device_minor_number minor,
void * arg
);
rtems_device_driver
tty_read(
rtems_device_major_number major,
rtems_device_minor_number minor,
void * arg
);
rtems_device_driver
tty_write(
rtems_device_major_number major,
rtems_device_minor_number minor,
void * arg
);
#endif /* _RTEMS_TTYDRV_H */

View File

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

View File

@@ -1,31 +0,0 @@
##
## $Id$
##
PGM = $(ARCH)/shmsupp.rel
C_FILES = addrconv.c cause_intr.c getcfg.c lock.c mpisr.c
C_O_FILES = $(C_FILES:%.c=$(ARCH)/%.$(OBJEXT))
OBJS = $(C_O_FILES)
include $(top_srcdir)/../../../../automake/compile.am
include $(top_srcdir)/../../../../automake/lib.am
#
# (OPTIONAL) Add local stuff here using +=
#
$(PGM): $(OBJS)
$(make-rel)
if HAS_MP
all-local: $(ARCH) $(OBJS) $(PGM)
endif
# the .rel file built here will be put into libbsp.a by ../wrapup/Makefile
EXTRA_DIST = addrconv.c cause_intr.c getcfg.c lock.c mpisr.c README
include $(top_srcdir)/../../../../automake/local.am

View File

@@ -1,9 +0,0 @@
#
# $Id$
#
This directory contains the SHM driver support files for the
HP PA-RISC simulator for the 72000 processor.
WARNING: The interrupt support in this directory currently will
only work in a homogeneous system.

View File

@@ -1,29 +0,0 @@
/* Shm_Convert_address
*
* No address range conversion is required.
*
* Input parameters:
* address - address to convert
*
* Output parameters:
* returns - converted address
*
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#include <bsp.h>
#include <shm_driver.h>
void *Shm_Convert_address(
void *address
)
{
return ( address );
}

View File

@@ -1,50 +0,0 @@
/* void Shm_Cause_interrupt_pxfl( node )
*
* This routine is the shared memory driver routine which
* generates interrupts to other CPUs.
*
* Input parameters:
* node - destination of this packet (0 = broadcast)
*
* Output parameters: 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 <stdio.h>
#include <rtems.h>
#include <rtems/error.h>
#include <shm_driver.h>
void Shm_Cause_interrupt_pxfl(
rtems_unsigned32 node
)
{
Shm_Interrupt_information *intr;
rtems_unsigned32 *u32;
rtems_unsigned32 value;
intr = &Shm_Interrupt_table[node];
value = intr->value;
switch ( intr->length ) {
case NO_INTERRUPT:
break;
case LONG:
u32 = (rtems_unsigned32 *)intr->address;
HPPA_ASM_STWAS( value, 0, u32 );
break;
default:
fprintf( stderr, "Shm_Cause_interrupt_pxfl: Unsupported length!!!\n" );
}
}

View File

@@ -1,88 +0,0 @@
/* void Shm_Get_configuration( localnode, &shmcfg )
*
* This routine initializes, if necessary, and returns a pointer
* to the Shared Memory Configuration Table for the HP PA-RISC
* simulator.
*
* INPUT PARAMETERS:
* localnode - local node number
* shmcfg - address of pointer to SHM Config Table
*
* OUTPUT PARAMETERS:
* *shmcfg - pointer to SHM Config Table
*
* NOTES: The MP interrupt used is the Runway bus' ability to directly
* address the control registers of up to four CPUs and cause
* interrupts on them.
*
* The following table illustrates the configuration limitations:
*
* BUS MAX
* MODE ENDIAN NODES
* ========= ====== =======
* POLLED BIG 2+
* INTERRUPT BIG 2..4 (on Runway)
*
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#include <bsp.h>
#include <shm_driver.h>
#define INTERRUPT 0 /* can be interrupt or polling */
#define POLLING 1
#define HPPA_RUNWAY_PROC_HPA_BASE ((void *) 0xFFFA0000)
/* given a processor number, where is its HPA? */
#define HPPA_RUNWAY_HPA(cpu) \
((rtems_unsigned32) (HPPA_RUNWAY_PROC_HPA_BASE + ((cpu) * 0x2000)))
#define HPPA_RUNWAY_REG_IO_EIR_OFFSET 0x000
shm_config_table BSP_shm_cfgtbl;
extern void Shm_Cause_interrupt_pxfl( rtems_unsigned32 node );
void Shm_Get_configuration(
rtems_unsigned32 localnode,
shm_config_table **shmcfg
)
{
BSP_shm_cfgtbl.base = (vol_u32 *) 0x44000000;
BSP_shm_cfgtbl.length = 16 * KILOBYTE;
BSP_shm_cfgtbl.format = SHM_BIG;
BSP_shm_cfgtbl.cause_intr = Shm_Cause_interrupt_pxfl;
#ifdef NEUTRAL_BIG
BSP_shm_cfgtbl.convert = NULL_CONVERT;
#else
BSP_shm_cfgtbl.convert = CPU_swap_u32;
#endif
#if ( POLLING == 1 )
BSP_shm_cfgtbl.poll_intr = POLLED_MODE;
BSP_shm_cfgtbl.Intr.address = NO_INTERRUPT;
BSP_shm_cfgtbl.Intr.value = NO_INTERRUPT;
BSP_shm_cfgtbl.Intr.length = NO_INTERRUPT;
#else
BSP_shm_cfgtbl.poll_intr = INTR_MODE;
BSP_shm_cfgtbl.Intr.address =
(vol_u32 *) (HPPA_RUNWAY_HPA( localnode - 1) +
HPPA_RUNWAY_REG_IO_EIR_OFFSET);
BSP_shm_cfgtbl.Intr.value = HPPA_INTERRUPT_EXTERNAL_MPCI;
BSP_shm_cfgtbl.Intr.length = LONG;
#endif
*shmcfg = &BSP_shm_cfgtbl;
}

View File

@@ -1,74 +0,0 @@
/* Shared Memory Lock Routines
*
* This shared memory locked queue support routine need to be
* able to lock the specified locked queue. Interrupts are
* disabled while the queue is locked to prevent preemption
* and deadlock when two tasks poll for the same lock.
* previous level.
*
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#include <bsp.h>
#include <shm_driver.h>
/*
* Shm_Initialize_lock
*
* Initialize the lock for the specified locked queue.
*/
void Shm_Initialize_lock(
Shm_Locked_queue_Control *lq_cb
)
{
lq_cb->lock = LQ_UNLOCKED;
}
/* Shm_Lock( &lq_cb )
*
* This shared memory locked queue support routine locks the
* specified locked queue. It disables interrupts to prevent
* a deadlock condition.
*/
void Shm_Lock(
Shm_Locked_queue_Control *lq_cb
)
{
rtems_unsigned32 isr_level;
vol_u32 *lockptr = &lq_cb->lock;
rtems_unsigned32 lock_value;
rtems_interrupt_disable( isr_level );
Shm_isrstat = isr_level;
do {
HPPA_ASM_LDCWS( 0, 0, lockptr, lock_value );
} while (lock_value == SHM_LOCK_VALUE);
}
/*
* Shm_Unlock
*
* Unlock the lock for the specified locked queue.
*/
void Shm_Unlock(
Shm_Locked_queue_Control *lq_cb
)
{
rtems_unsigned32 isr_level;
lq_cb->lock = SHM_UNLOCK_VALUE;
isr_level = Shm_isrstat;
rtems_interrupt_enable( isr_level );
}

View File

@@ -1,26 +0,0 @@
/* Shm_setvec
*
* This driver routine sets the SHM interrupt vector to point to the
* driver's SHM interrupt service routine.
*
* Input parameters: NONE
*
* Output parameters: 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 <bsp.h>
#include <shm_driver.h>
void Shm_setvec( void )
{
set_vector( Shm_isr, HPPA_INTERRUPT_EXTERNAL_MPCI, 1 );
}

View File

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

View File

@@ -1,30 +0,0 @@
##
## $Id$
##
S_FILES = start.S
S_O_FILES = $(S_FILES:%.S=$(ARCH)/%.$(OBJEXT))
OBJS = $(S_O_FILES)
include $(top_srcdir)/../../../../automake/compile.am
include $(top_srcdir)/../../../../automake/lib.am
#
# (OPTIONAL) Add local stuff here using +=
#
install-data-local: $(PROJECT_RELEASE)/lib/start$(LIB_VARIANT).$(OBJEXT)
@$(mkinstalldirs) $(DESTDIR)$(bsplibdir)
$(INSTALL_DATA) $< $(DESTDIR)$(bsplibdir)
$(PROJECT_RELEASE)/lib/start$(LIB_VARIANT).$(OBJEXT): $(ARCH)/start.$(OBJEXT)
$(INSTALL_DATA) $< $@
TMPINSTALL_FILES += $(PROJECT_RELEASE)/lib/start$(LIB_VARIANT).$(OBJEXT)
all-local: $(ARCH) $(OBJS) $(TMPINSTALL_FILES)
EXTRA_DIST = start.S
include $(top_srcdir)/../../../../automake/local.am

View File

@@ -1,173 +0,0 @@
/*
* crt0.S -- startup file for hppa on RTEMS
*
* $Id$
*/
.COPYRIGHT "crt0.S for hppa"
.DATA
_progname .STRINGZ "simhppa"
_crt0_argv .WORD _progname, 0
/*
* Set up the standard spaces (sections) These definitions come
* from /lib/pcc_prefix.s.
*/
.TEXT
/*
* stuff we need that is defined elsewhere.
*/
.IMPORT boot_card, CODE
.IMPORT _bss_start, DATA
.IMPORT _bss_end, DATA
.IMPORT environ, DATA
/*
* start -- set things up so the application will run.
*
*/
.PROC
.CALLINFO SAVE_SP, FRAME=48
.EXPORT $START$,ENTRY
.EXPORT start,ENTRY
$START$
start:
/*
* Get a stack
*/
ldil L%crt_stack+48,%r30
ldo R%crt_stack+48(%r30),%r30
/*
* we need to set %r27 (global data pointer) here
*/
ldil L%$global$,%r27
ldo R%$global$(%r27),%r27
/*
* zerobss -- zero out the bss section
* XXX We don't do this since simulator and boot rom will do this for us.
*/
#if 0
; load the start of bss
ldil L%_bss_start,%r4
ldo R%_bss_start(%r4),%r4
; load the end of bss
ldil L%_bss_end,%r5
ldo R%_bss_end(%r5),%r5
bssloop
addi -1,%r5,%r5 ; decrement _bss_end
stb %r0,0(0,%r5) ; we do this by bytes for now even
; though it is slower, it is safer
combf,= %r4,%r5, bssloop
nop
#endif
ldi 1,%ret0
/*
* Call the "boot_card" routine from the application to get it going.
* We call it as boot_card(1, argv, 0)
*/
copy %r0, %r24
ldil L%_crt0_argv,%r25
ldo R%_crt0_argv(%r25),%r25
bl boot_card,%r2
ldo 1(%r0), %r26
.PROCEND
/*
* _exit -- Exit from the application. Normally we cause a user trap
* to return to the ROM monitor for another run, but with
* this monitor we can not. Still, "C" wants this symbol, it
* should be here. Jumping to 0xF0000004 jumps back into the
* firmware, while writing a 5 to 0xFFFE0030 causes a reset.
*/
_exit_fallthru
.PROC
.CALLINFO
.ENTRY
;; This just causes a breakpoint exception
break 0x0,0x0
bv,n (%rp)
nop
.EXIT
.PROCEND
/*
* _sr4export -- support for called functions. (mostly for GDB)
*/
.EXPORT _sr4export, ENTRY
_sr4export:
.PROC
.CALLINFO
.ENTRY
ble 0(%sr4,%r22)
copy %r31,%rp
ldw -18(%sr0,%sp),%rp
ldsid (%sr0,%rp),%r1
mtsp %r1,%sr0
be,n 0(%sr0,%rp)
nop
.EXIT
.PROCEND
#if 0
.subspa $UNWIND_START$,QUAD=0,ALIGN=8,ACCESS=0x2c,SORT=56
.export $UNWIND_START
$UNWIND_START
.subspa $UNWIND$,QUAD=0,ALIGN=8,ACCESS=0x2c,SORT=64
.subspa $UNWIND_END$,QUAD=0,ALIGN=8,ACCESS=0x2c,SORT=72
.export $UNWIND_END
$UNWIND_END
.subspa $RECOVER_START$,QUAD=0,ALIGN=4,ACCESS=0x2c,SORT=73
.export $RECOVER_START
$RECOVER_START
.subspa $RECOVER$,QUAD=0,ALIGN=4,ACCESS=0x2c,SORT=80
.subspa $RECOVER_END$,QUAD=0,ALIGN=4,ACCESS=0x2c,SORT=88
.export $RECOVER_END
$RECOVER_END
#endif
/*
* Here we set up the standard date sub spaces.
*
* Set up some room for a stack. We just grab a chunk of memory.
* We also setup some space for the global variable space, which
* must be done using the reserved name "$global$" so "C" code
* can find it. The stack grows towards the higher addresses.
*/
#if 0
.subspa $DATA$,QUAD=1,ALIGN=8,ACCESS=0x1f,SORT=16
.subspa $SHORTDATA$,QUAD=1,ALIGN=8,ACCESS=0x1f,SORT=24
.subspa $GLOBAL$,QUAD=1,ALIGN=8,ACCESS=0x1f,SORT=40
.export $global$
$global$
.subspa $SHORTBSS$,QUAD=1,ALIGN=8,ACCESS=0x1f,SORT=80,ZERO
.subspa $BSS$,QUAD=1,ALIGN=8,ACCESS=0x1f,SORT=82,ZERO
.subspa $STACK$,QUAD=1,ALIGN=8,ACCESS=0x1f,SORT=88,ZERO
#endif
.export crt_stack
crt_stack
.comm 0x1000
.end

View File

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

View File

@@ -1,41 +0,0 @@
##
## $Id$
##
VPATH = @srcdir@:@srcdir@/../../../shared
PGM = $(ARCH)/startup.rel
C_FILES = bspclean.c bsplibc.c bsppost.c bspstart.c bootcard.c main.c sbrk.c \
setvec.c gnatinstallhandler.c
C_O_FILES = $(C_FILES:%.c=$(ARCH)/%.$(OBJEXT))
OBJS = $(C_O_FILES)
include $(top_srcdir)/../../../../automake/compile.am
include $(top_srcdir)/../../../../automake/lib.am
#
# (OPTIONAL) Add local stuff here using +=
#
$(PGM): $(OBJS)
$(make-rel)
# the .rel file built here will be put into libbsp.a by ../wrapup/Makefile
bsplib_DATA = linkcmds
$(PROJECT_RELEASE)/lib/linkcmds: linkcmds
$(INSTALL_DATA) $< $@
TMPINSTALL_FILES += $(PROJECT_RELEASE)/lib/linkcmds
all-local: $(ARCH) $(OBJS) $(PGM) $(TMPINSTALL_FILES)
.PRECIOUS: $(PGM)
EXTRA_DIST = bspclean.c bspstart.c setvec.c
include $(top_srcdir)/../../../../automake/local.am

View File

@@ -1,35 +0,0 @@
/* bsp_cleanup()
*
* This routine normally is part of start.s and returns
* control to a monitor but on the HP PA-RISC simulator
* we do that directly from main.c.
*
* 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 <bsp.h>
/*
* The app has "exited" (called rtems_shutdown_executive)
*/
void bsp_cleanup( void )
{
/*
* Invoke any fatal error extension and "halt"
* By definition, rtems_fatal_error_occurred does not return.
*/
rtems_fatal_error_occurred(0);
}

View File

@@ -1,241 +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.
*
* $Id$
*/
#include <string.h>
#include <bsp.h>
#include <rtems/libio.h>
#include <rtems/libcsupport.h>
extern rtems_configuration_table Configuration;
rtems_configuration_table BSP_Configuration;
rtems_cpu_table Cpu_table;
int cpu_number;
#define WORKSPACE_SIZE (1024 * 1024)
rtems_unsigned8 MY_WORK_SPACE[ WORKSPACE_SIZE ];
/*
* Amount to increment itimer by each pass
* It is a variable instead of a #define to allow the 'looptest'
* script to bump it without recompiling rtems
*/
rtems_unsigned32 CPU_HPPA_CLICKS_PER_TICK;
#if SIMHPPA_FAST_IDLE
/*
* Many of the tests are very slow on the simulator because they have
* have 5 second delays hardwired in.
* Try to speed those tests up by speeding up the clock when in idle
*/
rtems_extension fast_idle_switch_hook(
rtems_tcb *current_task,
rtems_tcb *heir_task
)
{
static rtems_unsigned32 normal_clock = ~0;
static rtems_unsigned32 fast_clock;
/* init our params on first call */
if (normal_clock == (rtems_unsigned32) ~0)
{
normal_clock = CPU_HPPA_CLICKS_PER_TICK;
fast_clock = CPU_HPPA_CLICKS_PER_TICK / 0x100;
if (fast_clock == 0) /* who? me? pathological? never! */
fast_clock++;
}
/*
* Checking for 'name' field of 'IDLE' is not the best/safest,
* but its the best we could think of at the moment.
*/
if (heir_task == _Thread_Idle)
CPU_HPPA_CLICKS_PER_TICK = fast_clock;
else if (current_task == _Thread_Idle)
CPU_HPPA_CLICKS_PER_TICK = normal_clock;
}
#endif
/*
* Use the shared implementations of the following routines
*/
void bsp_postdriver_hook(void);
void bsp_libc_init( void *, unsigned32, 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)
{
extern int end;
rtems_unsigned32 heap_start;
heap_start = (rtems_unsigned32) &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);
/*
* on MP systems, always use the print buffer
* instead of the (broken) system calls
*/
if (BSP_Configuration.User_multiprocessing_table)
use_print_buffer = 1;
#ifdef SIMHPPA_ROM
use_print_buffer = 1;
#endif
#if SIMHPPA_FAST_IDLE
/*
* Install the fast idle task switch extension
*
* on MP systems, might now want to do this; it confuses at least
* one test (mp06)
*/
#if 0
if (BSP_Configuration.User_multiprocessing_table == 0)
#endif
{
rtems_extensions_table fast_idle_extension;
rtems_id extension_id;
rtems_status_code rc;
memset(&fast_idle_extension, 0, sizeof(fast_idle_extension));
fast_idle_extension.thread_switch = fast_idle_switch_hook;
rc = rtems_extension_create(rtems_build_name('F', 'D', 'L', 'E'),
&fast_idle_extension, &extension_id);
if (rc != RTEMS_SUCCESSFUL)
rtems_fatal_error_occurred(rc);
}
#endif
}
void bsp_start(void)
{
/*
* Set cpu_number to accurately reflect our cpu number
*/
#ifdef hppa7200
/*
* Use HPPA_DR0 if supported
*/
{
int dr0;
HPPA_ASM_MFCPU(HPPA_DR0, dr0);
cpu_number = (dr0 >> 4) & 0x7;
}
#else
if (Configuration.User_multiprocessing_table)
cpu_number = Configuration.User_multiprocessing_table->node - 1;
else
cpu_number = 0;
#endif
BSP_Configuration.work_space_start = (void *)MY_WORK_SPACE;
if (BSP_Configuration.work_space_size)
BSP_Configuration.work_space_size = WORKSPACE_SIZE;
/*
* Set up our hooks
* Make sure libc_init is done before drivers init'd so that
* they can use atexit()
*/
Cpu_table.pretasking_hook = bsp_pretasking_hook; /* init libc, etc. */
Cpu_table.postdriver_hook = bsp_postdriver_hook; /* register drivers */
/*
* Don't zero out the workspace. The simulator did it for us.
*/
Cpu_table.do_zero_of_workspace = FALSE;
Cpu_table.interrupt_stack_size = CONFIGURE_INTERRUPT_STACK_MEMORY;
/*
* Set this artificially low for the simulator
*/
Cpu_table.itimer_clicks_per_microsecond = 1;
#if 0
/*
* Commented by DIVISION INC. External interrupt
* processing is now divorced from RTEMS for HPPA.
*/
/*
* Determine the external interrupt processing order
* the external interrupt handler walks thru this table, in
* order checking for posted interrupts.
*/
Cpu_table.external_interrupts = 0;
Cpu_table.external_interrupt[ Cpu_table.external_interrupts ] =
HPPA_INTERRUPT_EXTERNAL_INTERVAL_TIMER;
Cpu_table.external_interrupts++;
if ( Configuration.User_multiprocessing_table ) {
Cpu_table.external_interrupt[ Cpu_table.external_interrupts ] =
HPPA_INTERRUPT_EXTERNAL_10;
Cpu_table.external_interrupts++;
}
#endif
#if SIMHPPA_FAST_IDLE
/*
* Add 1 extension for fast idle
*/
BSP_Configuration.maximum_extensions++;
#endif
/*
* Set the "clicks per tick" for the simulator
* used by libcpu/hppa/clock/clock.c to schedule interrupts
*
* Set it only if 0 to allow for simulator setting it via script
* on test startup.
*/
if (CPU_HPPA_CLICKS_PER_TICK == 0)
CPU_HPPA_CLICKS_PER_TICK = 0x4000;
}

View File

@@ -1,46 +0,0 @@
/* Script for -n: mix text and data on same page */
OUTPUT_FORMAT("elf32-hppa")
OUTPUT_ARCH(hppa)
ENTRY("$START$")
SEARCH_DIR("/opt/rtems/hppa1.1-rtems/lib");
SECTIONS
{
.text 0x1000 +0x1000:
{
__text_start = .;
CREATE_OBJECT_SYMBOLS
*(.PARISC.stubs)
*(.text)
/*
* Special FreeBSD sysctl sections.
*/
. = ALIGN (16);
__start_set_sysctl_set = .;
*(set_sysctl_*);
__stop_set_sysctl_set = ABSOLUTE(.);
*(set_domain_*);
*(set_pseudo_*);
etext = .;
_etext = .;
}
. = 0x40000000;
.data :
{
. = . + 0x1000 ;
__data_start = .;
*(.data)
CONSTRUCTORS
edata = .;
_edata = .;
}
. = 0x40000000 + SIZEOF(.data);
.bss :
{
*(.bss)
*(COMMON)
end = . ;
_end = . ;
}
}

View File

@@ -1,65 +0,0 @@
/* set_vector
*
* This routine installs an interrupt vector on the HP PA-RISC simulator.
*
* INPUT:
* handler - interrupt handler entry point
* vector - vector number
* type - 0 indicates raw hardware connect
* 1 indicates RTEMS interrupt connect
*
* NOTE 'type' is ignored on hppa; all interrupts are owned by RTEMS
*
* 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 <bsp.h>
/*
* Install an interrupt handler in the right place
* given its vector number from cpu/hppa.h
* There are 2 places an interrupt can be installed
* _ISR_Vector_table
* bsp interrupt XXX: nyi
*
* We decide which based on the vector number
*/
rtems_isr_entry
set_vector( /* returns old vector */
rtems_isr_entry handler, /* isr routine */
rtems_vector_number vector, /* vector number */
int type /* RTEMS or RAW intr */
)
{
rtems_isr_entry previous_isr;
/* is it an on chip interrupt? */
/* XXX this should say CPU_INTERRUPT_NUMBER_OF_VECTORS */
if (vector < HPPA_INTERRUPT_MAX)
{
rtems_interrupt_catch(handler, vector, &previous_isr);
}
#if 0 /* XXX */
else if ((vector >= HPPA_INTERRUPT_BSP_BASE) &&
(vector < (HPPA_INTERRUPT_BSP_BASE + HPPA_BSP_INTERRUPTS)))
{
pxfl_interrupt_install(handler,
vector - HPPA_INTERRUPT_BSP_BASE,
(rtems_isr_entry *) &previous_isr);
}
#endif
return previous_isr;
}

View File

@@ -1,7 +0,0 @@
#
# Timing Test Suite Results for the PA-RISC Simulator.
#
# $Id$
#
Times are not available for the PA-RISC Simulator.

View File

@@ -1,18 +0,0 @@
aclocal.m4
autom4te*.cache
config.cache
config.guess
config.h
config.h.in
config.log
config.status
config.sub
configure
depcomp
install-sh
Makefile
Makefile.in
missing
mkinstalldirs
stamp-h
stamp-h.in

View File

@@ -1,71 +0,0 @@
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-10-21 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* .cvsignore: Reformat.
Add autom4te*cache.
Remove autom4te.cache.
2002-04-01 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Remove AC_EXEEXT (obsolete).
2002-03-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac:
AC_INIT(package,_RTEMS_VERSION,_RTEMS_BUGS).
AM_INIT_AUTOMAKE([no-define foreign 1.6]).
* Makefile.am: Remove AUTOMAKE_OPTIONS.
2001-10-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* .cvsignore: Add autom4te.cache for autoconf > 2.52.
* configure.in: Remove.
* configure.ac: New file, generated from configure.in by autoupdate.
2001-02-02 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* .cvsignore: Add stamp-h
2001-01-24 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* config.h.in: Automatically generated. Remove from CVS.
2000-11-09 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Use ... instead of RTEMS_TOPdir in ACLOCAL_AMFLAGS.
2000-11-02 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Switch to ACLOCAL_AMFLAGS = -I $(RTEMS_TOPdir)/aclocal.
2000-10-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: ACLOCAL_AMFLAGS= -I $(RTEMS_TOPdir)/macros.
Switch to GNU canonicalization.
2000-08-10 Joel Sherrill <joel@OARcorp.com>
* ChangeLog: New file.

View File

@@ -1,16 +0,0 @@
##
## $Id$
##
ACLOCAL_AMFLAGS = -I ../../../../../aclocal
noinst_PROGRAMS = print_dump
print_dump_SOURCES = print_dump.c
## HACK: install to build-tree
install-exec-local: $(PROGRAMS)
$(mkinstalldirs) $(PROJECT_ROOT)/simhppa/bin
$(INSTALL_PROGRAM) print_dump $(PROJECT_ROOT)/simhppa/bin
include $(top_srcdir)/../../../../../automake/local.am

View File

@@ -1,25 +0,0 @@
## Process this file with autoconf to produce a configure script.
##
## $Id$
AC_PREREQ(2.57)
AC_INIT([rtems-c-src-lib-libbsp-hppa1.1-simhppa-tools],[_RTEMS_VERSION],[rtems-bugs@rtems.com])
AC_CONFIG_SRCDIR([print_dump.c])
RTEMS_TOP(../../../../../../..)
RTEMS_CANONICAL_TARGET_CPU
AM_INIT_AUTOMAKE([no-define foreign 1.7.2])
AM_MAINTAINER_MODE
AC_PROG_CC
AC_CHECK_FUNCS(strerror)
AM_CONFIG_HEADER(config.h)
RTEMS_PROJECT_ROOT
RTEMS_TOOLPATHS
# Explicitly list all Makefiles here
AC_CONFIG_FILES([Makefile])
AC_OUTPUT

View File

@@ -1,338 +0,0 @@
/*
* print_dump
*
* COPYRIGHT (c) 1994 by Division Incorporated
*
* 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$
*/
#define GETOPTARGS "v"
char *USAGE = "\
usage: print_dump [ -v ] \n\
-v -- verbose\n\
Reads HP simulator 'memdump' output of 'print_buffer' structure
on stdin. Dumps it out in vanilla ASCII.
";
#include <stdio.h>
#include <fcntl.h>
#include <ctype.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <memory.h>
#include <stdarg.h>
#include "config.h"
#ifndef VMS
#ifndef HAVE_STRERROR
#if defined(__linux__) && (__GLIBC__ < 2)
extern char *sys_errlist[];
#endif
#define strerror( _err ) \
((_err) < sys_nerr) ? sys_errlist [(_err)] : "unknown error"
#else /* HAVE_STRERROR */
char *strerror ();
#endif
#else /* VMS */
char *strerror (int,...);
#endif
#define Failed(x) (((int) (x)) == -1)
#define TRUE 1
#define FALSE 0
#define STREQ(a,b) (strcmp(a,b) == 0)
#define NUMELEMS(arr) (sizeof(arr) / sizeof(arr[0]))
/*
* Definitions for unsigned "ints"; especially for use in data structures
* that will be shared among (potentially) different cpu's (we punt on
* byte ordering problems tho)
*/
typedef unsigned char u8;
typedef unsigned short u16;
typedef unsigned int u32;
typedef union uval {
u8 uv_chars[4];
u16 uv_words[2];
u32 uv_long;
void *uv_ptr[sizeof(long) / sizeof(void *)];
} uval_t;
/*
* vars controlled by command line options
*/
int verbose = FALSE; /* be verbose */
extern char *optarg; /* getopt(3) control vars */
extern int optind, opterr;
extern int errno;
char *progname; /* for error() */
void error(int errn, ...);
#define ERR_ERRNO (1<<((sizeof(int) * 8) - 2)) /* hi bit; use 'errno' */
#define ERR_FATAL (ERR_ERRNO / 2) /* error is fatal; no return */
#define ERR_ABORT (ERR_ERRNO / 4) /* error is fatal; abort */
#define ERR_MASK (ERR_ERRNO | ERR_FATAL | ERR_ABORT) /* all */
int process(void);
void prchar(unsigned int ch);
int
main(int argc, char **argv, char **env)
{
register int c;
int showusage = FALSE; /* usage error? */
/*
* figure out invocation leaf-name
*/
if ((progname = strrchr(argv[0], '/')) == (char *) NULL)
progname = argv[0];
else
progname++;
argv[0] = progname; /* for getopt err reporting */
/*
* Check options and arguments.
*/
opterr = 0; /* we'll report all errors */
while ((c = getopt(argc, argv, GETOPTARGS)) != EOF)
switch (c)
{
case 'v': /* toggle verbose */
verbose = ! verbose;
break;
case '?':
showusage = TRUE;
}
if (showusage)
{
(void) fprintf(stderr, "%s", USAGE);
exit(1);
}
return process();
}
/*
* process(arg)
*
* Input looks like this
*
* Starting address: 00000001.480035a0
* -----------------------------------
+0000 / 0d0a0d0a 2a2a2a20 53454d20 54455354 202d2d20 4e4f4445 2032202a 2a2a0d0a
+0020 / 73703a20 30783433 30303030 31300d0a 30783438 30613161 38383a20 676f7420
....
+0b40 / xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
*
* The 'xxxxxxxxx' shows up if the page has not been allocated.
*/
int
process(void)
{
uval_t b[8];
u32 ignore;
char *p;
int i;
int failed_once;
char line[1024];
#define PRINT_BUFFER_SIZE (16 * 1024)
struct {
int index;
int size;
u8 buffer[PRINT_BUFFER_SIZE];
} print_buffer;
/* we stuff the data into print_buffer using memcpy() */
p = (char *) &print_buffer;
failed_once = 0;
while (gets(line))
{
char *cp;
/* hack; deal with the 'xxxxxxxx' problem noted above */
for (cp=line; *cp; cp++)
if (*cp == 'x')
*cp = '0';
if (*line != '+')
continue;
if (sscanf(line, "+%x / %x %x %x %x %x %x %x %x\n",
&ignore,
&b[0].uv_long,
&b[1].uv_long,
&b[2].uv_long,
&b[3].uv_long,
&b[4].uv_long,
&b[5].uv_long,
&b[6].uv_long,
&b[7].uv_long) != 9)
{
if (failed_once)
error(ERR_FATAL, "2nd format problem; giving up");
error(0, "format problem in line: `%s`", line);
failed_once = 1;
}
memcpy((void *) p, (void *) b, sizeof(b));
p += sizeof(b);
}
if (verbose)
printf("buffer size: %d\n", print_buffer.size);
if (print_buffer.size < 0)
error(ERR_FATAL, "size is too small");
if (print_buffer.size != sizeof(print_buffer.buffer))
{
error(ERR_FATAL, "buffer size mismatch, expected %d",
sizeof(print_buffer.buffer));
/* XXX we really should just dynamically allocate the buffer */
}
i = print_buffer.index + 1;
while (i != print_buffer.index)
{
unsigned int c;
c = print_buffer.buffer[i++];
if (c && (c != '\r'))
prchar(c);
i %= print_buffer.size;
}
printf("\n");
return 0;
}
/* de-controlify */
char *de_control[] = {
"^@", "^A", "^B", "^C", "^D", "^E", "^F", "^G", "^H", "^I", "^J", "^K",
"^L", "^M", "^N", "^O", "^P", "^Q", "^R", "^S", "^T", "^U", "^V", "^W",
"^X", "^Y", "^Z", "^[", "^\\", "^]", "^~", "^_",
" ", "!", "\"", "#", "$", "%", "&", "'", "(", ")", "*", "+", ",", "-",
".", "/", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ":", ";",
"<", "=", ">", "?", "@", "A", "B", "C", "D", "E", "F", "G", "H", "I",
"J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W",
"X", "Y", "Z", "[", "\\", "]", "^", "_", "`", "a", "b", "c", "d", "e",
"f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s",
"t", "u", "v", "w", "x", "y", "z", "{", "|", "}", "~", "^?",
"M-^@", "M-^A", "M-^B", "M-^C", "M-^D", "M-^E", "M-^F", "M-^G",
"M-^H", "M-^I", "M-^J", "M-^K", "M-^L", "M-^M", "M-^N", "M-^O",
"M-^P", "M-^Q", "M-^R", "M-^S", "M-^T", "M-^U", "M-^V", "M-^W",
"M-^X", "M-^Y", "M-^Z", "M-^[", "M-^\\", "M-^]", "M-^~", "M-^_",
"M- ", "M-!", "M-\"", "M-#", "M-$", "M-%", "M-&", "M-'",
"M-(", "M-)", "M-*", "M-+", "M-,", "M--", "M-.", "M-/",
"M-0", "M-1", "M-2", "M-3", "M-4", "M-5", "M-6", "M-7",
"M-8", "M-9", "M-:", "M-;", "M-<", "M-=", "M->", "M-?",
"M-@", "M-A", "M-B", "M-C", "M-D", "M-E", "M-F", "M-G",
"M-H", "M-I", "M-J", "M-K", "M-L", "M-M", "M-N", "M-O",
"M-P", "M-Q", "M-R", "M-S", "M-T", "M-U", "M-V", "M-W",
"M-X", "M-Y", "M-Z", "M-[", "M-\\", "M-]", "M-^", "M-_",
"M-`", "M-a", "M-b", "M-c", "M-d", "M-e", "M-f", "M-g",
"M-h", "M-i", "M-j", "M-k", "M-l", "M-m", "M-n", "M-o",
"M-p", "M-q", "M-r", "M-s", "M-t", "M-u", "M-v", "M-w",
"M-x", "M-y", "M-z", "M-{", "M-|", "M-}", "M-~", "M-^?"
};
/*
* prchar(ch); print ch in a readable format, ie ^X or X or ~^X or DEL, etc.
*/
void
prchar(unsigned int ch)
{
if (isprint(ch) || isspace(ch))
putchar(ch);
else
printf("%s", de_control[ch]);
}
/*
* error(errn, arglist)
* report an error to stderr using printf(3) conventions.
* Any output is preceded by '<progname>: '
*
* Uses ERR_EXIT bit to request exit(errn)
* ERR_ABORT to request abort()
* ERR_ERRNO to indicate use of errno instead of argument.
*
* If resulting 'errn' is non-zero, it is assumed to be an 'errno' and its
* associated error message is appended to the output.
*/
/*VARARGS*/
void
error(int error_flag, ...)
{
va_list arglist;
register char *format;
int local_errno;
extern int errno;
(void) fflush(stdout); /* in case stdout/stderr same */
local_errno = error_flag & ~ERR_MASK;
if (error_flag & ERR_ERRNO) /* use errno? */
local_errno = errno;
va_start(arglist, error_flag);
format = va_arg(arglist, char *);
(void) fprintf(stderr, "%s: ", progname);
(void) vfprintf(stderr, format, arglist);
va_end(arglist);
if (local_errno)
(void) fprintf(stderr, " (%s)\n", strerror(local_errno));
else
(void) fprintf(stderr, "\n");
(void) fflush(stderr);
if (error_flag & (ERR_FATAL | ERR_ABORT))
{
if (error_flag & ERR_FATAL)
{
error(0, local_errno ? "fatal error, exiting" : "exiting");
exit(local_errno);
}
else
{
error(0, "fatal error, aborting");
abort();
}
}
}

View File

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

View File

@@ -1,31 +0,0 @@
##
## $Id$
##
PGM = $(ARCH)/tty.rel
C_FILES = tty.c
C_O_FILES = $(C_FILES:%.c=$(ARCH)/%.$(OBJEXT))
OBJS = $(C_O_FILES)
include $(top_srcdir)/../../../../automake/compile.am
include $(top_srcdir)/../../../../automake/lib.am
#
# (OPTIONAL) Add local stuff here using +=
#
$(PGM): $(OBJS)
$(make-rel)
# the .rel file built here will be put into libbsp.a by ../wrapup/Makefile
all-local: $(ARCH) $(OBJS) $(PGM)
.PRECIOUS: $(PGM)
EXTRA_DIST = tty.c
include $(top_srcdir)/../../../../automake/local.am

View File

@@ -1,247 +0,0 @@
/*
* Tty IO Driver
* This is a "libio" driver based on libc/support/generic/libio interface
* which is on top of the RTEMS IO manager.
*
* These provide UNIX-like read and write calls for the C library.
*
* COPYRIGHT (c) 1994 by Division Incorporated
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#include <bsp.h>
#include <rtems/libio.h>
#include <errno.h>
#define PRINT_BUFFER_SIZE (16 * 1024)
/*
* NOTE: this structure is dumplicated in print_dump.c utility
*/
struct {
int index;
int size;
char buffer[PRINT_BUFFER_SIZE];
} print_buffer;
/* always use printf buffer if non-zero */
int use_print_buffer;
static int host_read_syscall(int fd, char *buffer, int count);
static int host_write_syscall(int fd, char *buffer, int count);
rtems_device_driver
console_initialize(
rtems_device_major_number major,
rtems_device_minor_number minor,
void * arg
)
{
rtems_status_code status;
status = rtems_io_register_name("/dev/tty00",
major,
(rtems_device_minor_number) 0);
if (status != RTEMS_SUCCESSFUL)
rtems_fatal_error_occurred(status);
return RTEMS_SUCCESSFUL;
}
rtems_device_driver
console_open(
rtems_device_major_number major,
rtems_device_minor_number minor,
void * arg
)
{
return RTEMS_SUCCESSFUL;
}
rtems_device_driver
console_close(
rtems_device_major_number major,
rtems_device_minor_number minor,
void * arg
)
{
return RTEMS_SUCCESSFUL;
}
rtems_device_driver
console_control(
rtems_device_major_number major,
rtems_device_minor_number minor,
void * arg
)
{
return RTEMS_SUCCESSFUL;
}
rtems_device_driver
console_read(
rtems_device_major_number major,
rtems_device_minor_number minor,
void * arg
)
{
rtems_libio_rw_args_t *rw_args;
int count = 0;
rw_args = (rtems_libio_rw_args_t *) arg;
/*
* If we are printing to a buffer, then just return newline on all
* read's. If we return 0 bytes read, then the pause() calls in
* the RTEMS tests get hosed (pause() does a gets())
*/
if ( use_print_buffer )
{
*rw_args->buffer = '\n';
count = 1;
}
else
{
count = host_read_syscall(0, rw_args->buffer, rw_args->count);
}
if (count >= 0)
{
rw_args->bytes_moved = count;
return RTEMS_SUCCESSFUL;
}
return RTEMS_UNSATISFIED;
}
rtems_device_driver
console_write(
rtems_device_major_number major,
rtems_device_minor_number minor,
void * arg
)
{
unsigned32 level;
rtems_libio_rw_args_t *rw_args;
int count = 0;
int fd = 1; /* XXX fixme; needs to be saved in iop */
rw_args = (rtems_libio_rw_args_t *) arg;
/*
* HACK alert
*
* Some of the simulators have real problems when multi cpu and
* using the system calls. Until this is fixed, if we are multi
* cpu then we write to a printf buffer
*/
if ( use_print_buffer )
{
/* save size in memory for dumper */
if (print_buffer.size == 0)
print_buffer.size = PRINT_BUFFER_SIZE;
while (rw_args->count-- > 0)
{
rtems_interrupt_disable(level);
print_buffer.buffer[print_buffer.index] = *rw_args->buffer++;
print_buffer.index++;
print_buffer.index &= (PRINT_BUFFER_SIZE - 1);
print_buffer.buffer[print_buffer.index] = 0;
rtems_interrupt_enable(level);
count++;
}
}
else
{
#if 1
/*
* if on a multi cpu system and writing to stdout, redirect to stderr
* so we can keep them separate
*/
if ((cpu_number == 1) && (fd == 1))
fd = 2;
#endif
count = host_write_syscall(fd, rw_args->buffer, rw_args->count);
}
if (count >= 0)
{
rw_args->bytes_moved = count;
return RTEMS_SUCCESSFUL;
}
return RTEMS_UNSATISFIED;
}
/*
* Host system call hack.
* This little trick gets all the args in the right registers
* for the system call and permits simpler inline asm.
* Since this whole thing (syscalls under simulator) is a hack,
* this little bit more is not going to hurt anything.
*/
static int
host_read_syscall(
int fd,
char *buffer,
int count
)
{
unsigned32 level;
int rc;
rtems_interrupt_disable(level);
/* This is an HPUX system call, with return value copied out */
asm volatile (" stw %%r19,-28(0,%%r30)\n\
ldil L%%0xc0000000,%%r1\n\
ble 4(7,%%r1)\n\
ldi 3,%%r22\n\
ldw -28(0,%%r30),%%r19\n\
copy %%r28, %0"
: "=r" (rc)
: );
rtems_interrupt_enable(level);
return rc;
}
static int
host_write_syscall(
int fd,
char *buffer,
int count
)
{
unsigned32 level;
int rc;
rtems_interrupt_disable(level);
/* This is an HPUX system call, with return value copied out */
asm volatile (" stw %%r19,-28(0,%%r30)\n\
ldil L%%0xc0000000,%%r1\n\
ble 4(7,%%r1)\n\
ldi 4,%%r22\n\
ldw -28(0,%%r30),%%r19\n\
copy %%r28, %0"
: "=r" (rc)
: );
rtems_interrupt_enable(level);
return rc;
}

View File

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

View File

@@ -1,37 +0,0 @@
##
## $Id$
##
# pieces to pick up out of libcpu/hppa
CPU_FILES = clock milli timer
if HAS_MP
GENERIC_MP_REL_FILES = shmdr
endif
GENERIC_FILES = $(GENERIC_MP_REL_FILES)
if HAS_MP
BSP_MP_O_FILES = shmsupp
endif
BSP_FILES = startup tty $(BSP_MP_O_FILES)
include $(top_srcdir)/../../../../automake/compile.am
include $(top_srcdir)/../../../../automake/lib.am
# bummer; have to use $foreach since % pattern subst rules only replace 1x
OBJS = $(foreach piece, $(BSP_FILES), $(wildcard ../$(piece)/$(ARCH)/*.$(OBJEXT))) \
$(foreach piece, $(CPU_FILES), ../../../../libcpu/$(RTEMS_CPU)/$(piece)/$(ARCH)/$(piece).rel) \
$(foreach piece, $(GENERIC_FILES), ../../../$(piece)/$(ARCH)/$(piece).rel)
LIB = $(ARCH)/libbsp.a
#
# (OPTIONAL) Add local stuff here using +=
#
$(LIB): $(OBJS)
$(make-library)
all-local: $(ARCH) $(LIB)
include $(top_srcdir)/../../../../automake/local.am