2003-02-14 Joel Sherrill <joel@OARcorp.com>

AMD a29k is obsolete.
	* Makefile.am: Removed reference.
	* a29k/.cvsignore, a29k/ChangeLog, a29k/Makefile.am, a29k/configure.ac,
	a29k/clock/.cvsignore, a29k/clock/Makefile.am, a29k/clock/ckinit.c,
	a29k/clock/clock.S, a29k/clock/clock.h, a29k/timer/.cvsignore,
	a29k/timer/Makefile.am, a29k/timer/timer.c, a29k/timer/timerisr.c:
	Removed.
This commit is contained in:
Joel Sherrill
2003-02-14 19:52:49 +00:00
parent c4b0613f0d
commit 4e7d2181a8
15 changed files with 11 additions and 723 deletions

View File

@@ -1,3 +1,13 @@
2003-02-14 Joel Sherrill <joel@OARcorp.com>
AMD a29k is obsolete.
* Makefile.am: Removed reference.
* a29k/.cvsignore, a29k/ChangeLog, a29k/Makefile.am, a29k/configure.ac,
a29k/clock/.cvsignore, a29k/clock/Makefile.am, a29k/clock/ckinit.c,
a29k/clock/clock.S, a29k/clock/clock.h, a29k/timer/.cvsignore,
a29k/timer/Makefile.am, a29k/timer/timer.c, a29k/timer/timerisr.c:
Removed.
2003-02-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: AM_INIT_AUTOMAKE([1.7.2]).

View File

@@ -13,7 +13,6 @@ shared/src/cache_manager.c
SUBDIRS = @subdirs@
DIST_SUBDIRS = \
a29k \
hppa1.1 \
i386 \
i960 \
@@ -22,6 +21,7 @@ mips \
mips64orion \
powerpc \
sh \
shared \
sparc
include $(top_srcdir)/../../../../automake/subdirs.am

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,92 +0,0 @@
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-15 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* clock/Makefile.am: Eliminate *_O_FILES.
Don't include @RTEMS_BSP@.cfg.
* timer/Makefile.am: Ditto.
2002-12-06 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Remove RTEMS_CHECK_BSP_CACHE.
2002-12-01 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Add RTEMS_PROG_CCAS.
2002-10-21 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* .cvsignore: Reformat.
Add autom4te*cache.
Remove autom4te.cache.
2002-08-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* clock/Makefile.am: Use .$(OBJEXT) instead of .o.
* timer/Makefile.am: Use .$(OBJEXT) instead of .o.
2002-03-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac:
AC_INIT(package,_RTEMS_VERSION,_RTEMS_BUGS).
AM_INIT_AUTOMAKE([no-define foreign 1.6]).
* clock/Makefile.am: Remove AUTOMAKE_OPTIONS.
* Makefile.am: Remove AUTOMAKE_OPTIONS.
* timer/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-19 Ralf Corsepius <corsepiu@faw.uni-ulm.de:
* clock/Makefile.am: Apply include_*HEADERS instead of H_FILES.
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-26 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: ACLOCAL_AMFLAGS= -I $(RTEMS_TOPdir)/macros.
Switch to GNU canonicalization.
2000-10-18 Joel Sherrill <joel@OARcorp.com>
* ChangeLog: Corrected comment.
2000-10-18 Joel Sherrill <joel@OARcorp.com>
* clock/ckinit.c: Removed commented out include of bsp.h.
* timer/timer.c: Removed commented out include of bsp.h.
2000-09-25 Joel Sherrill <joel@OARcorp.com>
* clock/ckinit.c: Removed include of <bsp.h>. Also switch to
macros to get configuration data.
* timer/timer.c: Removed include of <bsp.h>. Fixed comment
that said 4650 (a mips part).
2000-09-22 Joel Sherrill <joel@OARcorp.com>
* clock/clock.S: Commented out non-GNU assembly.
2000-09-04 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* clock/Makefile.am, timer/Makefile.am: Include compile.am
2000-08-10 Joel Sherrill <joel@OARcorp.com>
* ChangeLog: New file.

View File

@@ -1,10 +0,0 @@
##
## $Id$
##
ACLOCAL_AMFLAGS = -I ../../../../../aclocal
SUBDIRS = clock timer
include $(top_srcdir)/../../../../../automake/subdirs.am
include $(top_srcdir)/../../../../../automake/local.am

View File

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

View File

@@ -1,32 +0,0 @@
##
## $Id$
##
PGM = $(ARCH)/clock.rel
C_FILES = ckinit.c
OBJS = $(C_FILES:%.c=$(ARCH)/%.$(OBJEXT))
noinst_HEADERS = clock.h
S_FILES = clock.S
OBJS += $(S_FILES:%.S=$(ARCH)/%.$(OBJEXT))
include $(top_srcdir)/../../../../../automake/compile.am
include $(top_srcdir)/../../../../../automake/lib.am
#
# (OPTIONAL) Add local stuff here using +=
#
$(PGM): $(OBJS)
$(make-rel)
all-local: $(ARCH) $(OBJS) $(PGM)
.PRECIOUS: $(PGM)
EXTRA_DIST = Makefile ckinit.c clock.S clock.h
include $(top_srcdir)/../../../../../automake/local.am

View File

@@ -1,213 +0,0 @@
/* ckinit.c
*
* This file provides a template for the clock device driver initialization.
*
* COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
* On-Line Applications Research Corporation (OAR).
* All rights assigned to U.S. Government, 1994.
*
* This material may be reproduced by or for the U.S. Government pursuant
* to the copyright license under the clause at DFARS 252.227-7013. This
* notice must appear in all copies of this file and its derivatives.
*
* $Id$
*/
#ifndef lint
static char _sccsid[] = "@(#)ckinit.c 03/15/96 1.1\n";
#endif
#include <stdlib.h>
#include <rtems.h>
#include <rtems/libio.h>
#include "clock.h"
extern int CPU_CLOCK_RATE_MHZ; /* provided in bsp */
#define CLOCKS_PER_MICROSECOND ( CPU_CLOCK_RATE_MHZ ) /* equivalent to CPU clock speed in MHz */
void Clock_exit( void );
rtems_isr Clock_isr( rtems_vector_number vector );
/*
* The interrupt vector number associated with the clock tick device
* driver.
*/
#define CLOCK_VECTOR 14
/*
* Clock_driver_ticks is a monotonically increasing counter of the
* number of clock ticks since the driver was initialized.
*/
volatile rtems_unsigned32 Clock_driver_ticks;
/*
* These are set by clock driver during its init
*/
rtems_device_major_number rtems_clock_major = ~0;
rtems_device_minor_number rtems_clock_minor;
/*
* The previous ISR on this clock tick interrupt vector.
*/
rtems_isr_entry Old_ticker;
void Clock_exit( void );
static unsigned32 a29k_timer_rate = 0;
/*
* Isr Handler
*/
rtems_isr Clock_isr(
rtems_vector_number vector
)
{
/*
* bump the number of clock driver ticks since initialization
*
* determine if it is time to announce the passing of tick as configured
* to RTEMS through the rtems_clock_tick directive
*
* perform any timer dependent tasks
*/
a29k_clear_timer();
Clock_driver_ticks += 1;
rtems_clock_tick();
}
/* User callback shell (set from Clock_Control) */
static void (*user_callback)(void);
rtems_isr User_Clock_isr(
rtems_vector_number vector
)
{
/* refresh the internal CPU timer */
a29k_clear_timer();
if (user_callback)
user_callback();
}
/*
* Install_clock
*
* Install a clock tick handler and reprograms the chip. This
* is used to initially establish the clock tick.
*/
void Install_clock(
rtems_isr_entry clock_isr
)
{
/*
* Initialize the clock tick device driver variables
*/
Clock_driver_ticks = 0;
/*
* If ticks_per_timeslice is configured as non-zero, then the user
* wants a clock tick.
*/
if ( rtems_configuration_get_ticks_per_timeslice() ) {
Old_ticker = (rtems_isr_entry) set_vector( clock_isr, CLOCK_VECTOR, 1 );
/*
* Hardware specific initialize goes here
*/
a29k_timer_rate = rtems_configuration_get_microseconds_per_tick() * CLOCKS_PER_MICROSECOND;
a29k_init_timer( a29k_timer_rate );
}
/*
* Schedule the clock cleanup routine to execute if the application exits.
*/
atexit( Clock_exit );
}
/*
* Clean up before the application exits
*/
void Clock_exit( void )
{
if ( rtems_configuration_get_ticks_per_timeslice() ) {
/* a29k: turn off the timer interrupts */
a29k_disable_timer();
}
}
/*
* 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( Clock_isr );
/*
* 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
)
{
rtems_unsigned32 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);
}
else if (args->command == rtems_build_name('N', 'E', 'W', ' '))
{
rtems_interrupt_disable( isrlevel );
user_callback = (void (*)(void))args->buffer;
(void) set_vector( User_Clock_isr, CLOCK_VECTOR, 1 );
rtems_interrupt_enable( isrlevel );
}
done:
return RTEMS_SUCCESSFUL;
}

View File

@@ -1,126 +0,0 @@
;
#if 0
; .include "register.ah"
.include "amd.ah"
.include "pswmacro.ah"
.text
; .equ IN,0x2000000
.reg CLOCK,gr78
.reg SECS,gr79
.equ CPUCLK,16
.equ RATE,100
.reg it0,gr64
.reg it1,gr65
.reg v0,gr96
timer_clear_sup:
const it0,IN
consth it0,IN
mfsr it1,tmr
andn it1,it1,it0
mtsr tmr,it1
const it0,RATE
cplt it0,CLOCK,it0
jmpf it0,carry
add CLOCK,CLOCK,1
iret
carry:
const CLOCK,0
add SECS,SECS,1
iret
.equ TICKS,(CPUCLK*1000000/RATE)
; .equ IE,0x1000000
timer_init_sup:
const it0,TICKS
consth it0,TICKS
mtsr tmc,it0
const it0,(IE|TICKS)
consth it0,(IE|TICKS)
mtsr tmr,it0
const SECS,0
const CLOCK,0
iret
timer_get_sup:
add gr96,SECS,0
iret
timer_disable_sup:
mfsr it0,ops
const it1,TD
consth it1,TD
andn it0,it1,it0
mtsr ops,it0
iret
#endif
.global _a29k_init_timer
_a29k_init_timer:
#if 0
push msp,lr0
const lr2,INIT_TIMER
consth lr2,INIT_TIMER
const lr3,timer_init_sup
consth lr3,timer_init_sup
const v0,__settrap
consth v0,__settrap
calli lr0,v0
nop
const lr2,CLEAR_TIMER
consth lr2,CLEAR_TIMER
const lr3,timer_clear_sup
consth lr3,timer_clear_sup
const v0,__settrap
consth v0,__settrap
calli lr0,v0
nop
const lr2,DISABLE_TIMER
consth lr2,DISABLE_TIMER
const lr3,timer_disable_sup
consth lr3,timer_disable_sup
const v0,__settrap
consth v0,__settrap
calli lr0,v0
nop
const lr2,GET_TIMER
consth lr2,GET_TIMER
const lr3,timer_get_sup
consth lr3,timer_get_sup
const v0,__settrap
consth v0,__settrap
calli lr0,v0
nop
asneq INIT_TIMER,gr1,gr1
pop lr0,msp
jmpi lr0
nop
#endif
.global _a29k_clear_timer
_a29k_clear_timer:
#if 0
; asneq CLEAR_TIMER,gr1,gr1
jmpi lr0
nop
#endif
.global _a29k_disable_timer
_a29k_disable_timer:
#if 0
asneq DISABLE_TIMER,gr1,gr1
jmpi lr0
nop
#endif
.global _a29k_get_timer
_a29k_get_timer:
#if 0
asneq GET_TIMER,gr1,gr1
jmpi lr0
nop
#endif

View File

@@ -1,7 +0,0 @@
/*
* $Id$
*/
extern void a29k_init_timer( unsigned32 timer_clock_interval );
extern void a29k_disable_timer(void);
extern void a29k_clear_timer(void);

View File

@@ -1,34 +0,0 @@
## Process this file with autoconf to produce a configure script.
##
## $Id$
AC_PREREQ(2.57)
AC_INIT([rtems-c-src-lib-libcpu-a29k],[_RTEMS_VERSION],[rtems-bugs@OARcorp.com])
AC_CONFIG_SRCDIR([clock])
RTEMS_TOP(../../../../..)
AC_CONFIG_AUX_DIR(../../../../..)
RTEMS_CANONICAL_TARGET_CPU
AM_INIT_AUTOMAKE([no-define foreign 1.7.2])
AM_MAINTAINER_MODE
RTEMS_ENABLE_BARE
RTEMS_ENV_RTEMSBSP
RTEMS_CHECK_CPU
RTEMS_CANONICAL_HOST
RTEMS_PROJECT_ROOT
RTEMS_PROG_CC_FOR_TARGET
RTEMS_CANONICALIZE_TOOLS
RTEMS_PROG_CCAS
RTEMS_CHECK_CUSTOM_BSP(RTEMS_BSP)
# Explicitly list all Makefiles here
AC_CONFIG_FILES([Makefile
clock/Makefile
timer/Makefile])
AC_OUTPUT

View File

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

View File

@@ -1,29 +0,0 @@
##
## $Id$
##
PGM = $(ARCH)/timer.rel
# NOTE: timerisr is normally an assembly file!!!
C_FILES = timer.c timerisr.c
OBJS = $(C_FILES:%.c=$(ARCH)/%.$(OBJEXT))
include $(top_srcdir)/../../../../../automake/compile.am
include $(top_srcdir)/../../../../../automake/lib.am
#
# (OPTIONAL) Add local stuff here using +=
#
$(PGM): $(OBJS)
$(make-rel)
all-local: $(ARCH) $(OBJS) $(PGM)
.PRECIOUS: $(PGM)
EXTRA_DIST = Makefile timer.c timerisr.c
include $(top_srcdir)/../../../../../automake/local.am

View File

@@ -1,120 +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, 1990, 1991, 1992, 1993, 1994.
* On-Line Applications Research Corporation (OAR).
* All rights assigned to U.S. Government, 1994.
*
* This material may be reproduced by or for the U.S. Government pursuant
* to the copyright license under the clause at DFARS 252.227-7013. This
* notice must appear in all copies of this file and its derivatives.
*
* $Id$
*/
#ifndef lint
static char _sccsid[] = "@(#)timer.c 05/07/96 1.4\n";
#endif
#include <rtems.h>
#define CLOCKS_PER_MICROSECOND ( CPU_CLOCK_RATE_MHZ )
#define TIMER_MAX_VALUE 0xffffffff
static unsigned32 read_timer( void )
{
return 0; /* do something with real hardware here */
}
static rtems_boolean Timer_driver_Find_average_overhead;
static unsigned32 Timer_initial_value = 0;
void Timer_initialize( void )
{
Timer_initial_value = read_timer();
/*
* Somehow start the timer
*/
/* Timer is always running */
}
/*
* 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 8 /* It typically takes X.X microseconds */
/* (Y countdowns) to start/stop the timer. */
/* This value is in cycles. */
#define LEAST_VALID 1 /* Don't trust a clicks value lower than this */
int Read_timer( void )
{
unsigned64 clicks;
unsigned32 total;
/*
* Read the timer and see how many clicks it has been since we started.
*/
clicks = read_timer(); /* XXX: read some HW here */
if (clicks < Timer_initial_value)
{
clicks += TIMER_MAX_VALUE;
}
clicks -= Timer_initial_value;
/*
* Total is calculated by taking into account the number of timer overflow
* interrupts since the timer was initialized and clicks since the last
* interrupts.
*/
#if 0 /* leave total in number of cycles */
total = clicks / CLOCKS_PER_MICROSECOND;
#else
total = clicks;
#endif
if ( Timer_driver_Find_average_overhead == 1 )
return total; /* in # cycles units */
else {
if ( total < LEAST_VALID )
return 0; /* below timer resolution */
/*
* leave total in cycles
*/
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;
}

View File

@@ -1,41 +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, 1990, 1991, 1992, 1993, 1994.
* On-Line Applications Research Corporation (OAR).
* All rights assigned to U.S. Government, 1994.
*
* This material may be reproduced by or for the U.S. Government pursuant
* to the copyright license under the clause at DFARS 252.227-7013. This
* notice must appear in all copies of this file and its derivatives.
*
* $Id$
*/
#ifndef lint
static char _sccsid[] = "@(#)timerisr.c 03/15/96 1.1\n";
#endif
#include <rtems.h>
extern rtems_unsigned32 _Timer_interrupts;
void timerisr( void )
{
/*
* _Timer_interrupts += TIMER_BETWEEN_OVERFLOWS (usually in microseconds)
* return from interrupt
*/
}