2001-11-08 Jiri Gaisler <jiri@gaisler.com>

This fix is in response to test results reported by Jerry Needell
	<jerry.needell@unh.edu> for the SPARC/ERC32 and tracked as PR80.
	* include/bsp.h: TM27 was not running properly because the ERC32
	and LEON cannot nest interrupts at the same level.  The BSP test support
	had to be modified to support using two different interrupt sources.
This commit is contained in:
Joel Sherrill
2001-11-08 13:39:52 +00:00
parent 47901d84b3
commit 5354ab0574
4 changed files with 32 additions and 14 deletions

View File

@@ -1,3 +1,11 @@
2001-11-08 Jiri Gaisler <jiri@gaisler.com>
This fix is in response to test results reported by Jerry Needell
<jerry.needell@unh.edu> for the SPARC/ERC32 and tracked as PR80.
* include/bsp.h: TM27 was not running properly because the ERC32
and LEON cannot nest interrupts at the same level. The BSP test support
had to be modified to support using two different interrupt sources.
2001-10-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* .cvsignore: Add autom4te.cache for autoconf > 2.52.

View File

@@ -19,18 +19,16 @@
* $Id$
*/
#ifndef __ERC32_BSP_h
#define __ERC32_BSP_h
#ifndef __SIS_h
#define __SIS_h
#ifdef __cplusplus
extern "C" {
#endif
#include <bspopts.h>
#include <rtems.h>
#include <iosupp.h>
#include <libcpu/erc32.h>
#include <erc32.h>
#include <clockdrv.h>
#include <console.h>
@@ -101,16 +99,19 @@ extern int rtems_erc32_sonic_driver_attach (struct rtems_bsdnet_ifconfig *config
#else /* use a regular asynchronous trap */
#define TEST_INTERRUPT_SOURCE ERC32_INTERRUPT_EXTERNAL_1
#define TEST_INTERRUPT_SOURCE2 (ERC32_INTERRUPT_EXTERNAL_1+1)
#define TEST_VECTOR ERC32_TRAP_TYPE( TEST_INTERRUPT_SOURCE )
#define TEST_VECTOR2 ERC32_TRAP_TYPE( TEST_INTERRUPT_SOURCE2 )
#define MUST_WAIT_FOR_INTERRUPT 1
#define Install_tm27_vector( handler ) \
set_vector( (handler), TEST_VECTOR, 1 );
set_vector( (handler), TEST_VECTOR, 1 ); \
set_vector( (handler), TEST_VECTOR2, 1 );
#define Cause_tm27_intr() \
do { \
ERC32_Force_interrupt( TEST_INTERRUPT_SOURCE ); \
ERC32_Force_interrupt( TEST_INTERRUPT_SOURCE+(Interrupt_nest>>1) ); \
nop(); \
nop(); \
nop(); \
@@ -130,7 +131,7 @@ extern int rtems_erc32_sonic_driver_attach (struct rtems_bsdnet_ifconfig *config
extern void Clock_delay(rtems_unsigned32 microseconds);
#define rtems_bsp_delay( microseconds ) Clock_delay(microseconds)
#define delay( microseconds ) Clock_delay(microseconds)
/* Constants */

View File

@@ -1,3 +1,11 @@
2001-11-08 Jiri Gaisler <jiri@gaisler.com>
This fix is in response to test results reported by Jerry Needell
<jerry.needell@unh.edu> for the SPARC/ERC32 and tracked as PR80.
* include/bsp.h: TM27 was not running properly because the ERC32
and LEON cannot nest interrupts at the same level. The BSP test support
had to be modified to support using two different interrupt sources.
2001-10-12 Joel Sherrill <joel@OARcorp.com>
* clock/ckinit.c, console/console.c, include/bsp.h, include/leon.h,

View File

@@ -4,6 +4,7 @@
*
* COPYRIGHT (c) 1989-1998.
* On-Line Applications Research Corporation (OAR).
* Copyright assigned to U.S. Government, 1994.
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
@@ -26,8 +27,6 @@
extern "C" {
#endif
#include <bspopts.h>
#include <rtems.h>
#include <iosupp.h>
#include <leon.h>
@@ -94,15 +93,17 @@ extern "C" {
#define TEST_INTERRUPT_SOURCE LEON_INTERRUPT_EXTERNAL_1
#define TEST_VECTOR LEON_TRAP_TYPE( TEST_INTERRUPT_SOURCE )
#define TEST_INTERRUPT_SOURCE2 LEON_INTERRUPT_EXTERNAL_1+1
#define TEST_VECTOR2 LEON_TRAP_TYPE( TEST_INTERRUPT_SOURCE2 )
#define MUST_WAIT_FOR_INTERRUPT 1
#define Install_tm27_vector( handler ) \
set_vector( (handler), TEST_VECTOR, 1 );
set_vector( (handler), TEST_VECTOR, 1 ); \
set_vector( (handler), TEST_VECTOR2, 1 );
#define Cause_tm27_intr() \
do { \
LEON_Force_interrupt( TEST_INTERRUPT_SOURCE ); \
LEON_Force_interrupt( TEST_INTERRUPT_SOURCE+(Interrupt_nest>>1)); \
nop(); \
nop(); \
nop(); \
@@ -122,7 +123,7 @@ extern "C" {
extern void Clock_delay(rtems_unsigned32 microseconds);
#define rtems_bsp_delay( microseconds ) Clock_delay(microseconds)
#define delay( microseconds ) Clock_delay(microseconds)
/* Constants */