source: rtems/c/src/lib/libbsp/i960/cvme961/include/bsp.h @ 5bb00a8

4.104.114.84.95
Last change on this file since 5bb00a8 was 3a4ae6c, checked in by Joel Sherrill <joel.sherrill@…>, on 09/11/95 at 19:35:39

The word "RTEMS" almost completely removed from the core.

Configuration Table Template file added and all tests
modified to use this. All gvar.h and conftbl.h files
removed from test directories.

Configuration parameter maximum_devices added.

Core semaphore and mutex handlers added and RTEMS API Semaphore
Manager updated to reflect this.

Initialization sequence changed to invoke API specific initialization
routines. Initialization tasks table now owned by RTEMS Tasks Manager.

Added user extension for post-switch.

Utilized user extensions to implement API specific functionality
like signal dispatching.

Added extensions to the System Initialization Thread so that an
API can register a function to be invoked while the system
is being initialized. These are largely equivalent to the
pre-driver and post-driver hooks.

Added the Modules file oar-go32_p5, modified oar-go32, and modified
the file make/custom/go32.cfg to look at an environment varable which
determines what CPU model is being used.

All BSPs updated to reflect named devices and clock driver's IOCTL
used by the Shared Memory Driver. Also merged clock isr into
main file and removed ckisr.c where possible.

Updated spsize to reflect new and moved variables.

Makefiles for the executive source and include files updated to show
break down of files into Core, RTEMS API, and Neither.

Header and inline files installed into subdirectory based on whether
logically in the Core or a part of the RTEMS API.

  • Property mode set to 100644
File size: 3.1 KB
Line 
1/*  bsp.h
2 *
3 *  This include file contains some definitions specific to the
4 *  Cyclone CVME960 and CVME961 boards.  These boards are the
5 *  same except the 960 uses SRAM and the 961 DRAM.
6 *
7 *  COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
8 *  On-Line Applications Research Corporation (OAR).
9 *  All rights assigned to U.S. Government, 1994.
10 *
11 *  This material may be reproduced by or for the U.S. Government pursuant
12 *  to the copyright license under the clause at DFARS 252.227-7013.  This
13 *  notice must appear in all copies of this file and its derivatives.
14 *
15 *  $Id$
16 */
17
18#ifndef __CVME961_h
19#define __CVME961_h
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
25#include <rtems.h>
26#include <iosupp.h>
27#include <console.h>
28#include <clockdrv.h>
29
30/*
31 *  Define the time limits for RTEMS Test Suite test durations.
32 *  Long test and short test duration limits are provided.  These
33 *  values are in seconds and need to be converted to ticks for the
34 *  application.
35 *
36 */
37
38#define MAX_LONG_TEST_DURATION       300 /* 5 minutes = 300 seconds */
39#define MAX_SHORT_TEST_DURATION      3   /* 3 seconds */
40
41/*
42 *  Define the interrupt mechanism for Time Test 27
43 *
44 *  NOTE: Following are for i960CA and are board independent
45 *
46 */
47
48#define MUST_WAIT_FOR_INTERRUPT 0
49
50#define Install_tm27_vector( handler ) set_vector( (handler), 6, 1 )
51
52#define Cause_tm27_intr()  i960_cause_intr( 0x62 )
53
54#define Clear_tm27_intr()  i960_clear_intr( 6 )
55
56#define Lower_tm27_intr()
57
58/*
59 *  Simple spin delay in microsecond units for device drivers.
60 *  This is very dependent on the clock speed of the target.
61 */
62
63#define delay( microseconds ) \
64  { register rtems_unsigned32 _delay=(microseconds); \
65    register rtems_unsigned32 _tmp; \
66    asm volatile( "0: \
67                     remo      3,31,%0 ; \
68                     cmpo      0,%0 ; \
69                     subo      1,%1,%1 ; \
70                     cmpobne.t 0,%1,0b " \
71                  : "=d" (_tmp), "=d" (_delay) \
72                  : "0"  (_tmp), "1"  (_delay) ); \
73  }
74
75/* Constants */
76
77#define RAM_START 0
78#define RAM_END   0x100000
79
80/* NINDY console I/O requests:
81 *   CO sends a single character to stdout,
82 *   CI reads one.
83 */
84
85#define NINDY_INPUT   0
86#define NINDY_OUTPUT  1
87
88/*
89 *  get_prcb
90 *
91 *  Returns the PRCB pointer.
92 */
93
94static inline i960ca_PRCB *get_prcb( void )
95{
96  register i960ca_PRCB *_prcb = 0;
97
98  asm volatile( "calls 5; \
99                 mov   g0,%0" \
100                 : "=d" (_prcb) \
101                 : "0" (_prcb) );
102  return ( _prcb );
103}
104
105#ifdef C961_INIT
106#undef BSP_EXTERN
107#define BSP_EXTERN
108#else
109#undef BSP_EXTERN
110#define BSP_EXTERN extern
111#endif
112
113/* miscellaneous stuff assumed to exist */
114
115extern rtems_configuration_table BSP_Configuration;
116
117BSP_EXTERN i960ca_PRCB          *Prcb;
118BSP_EXTERN i960ca_control_table *Ctl_tbl;
119
120/*
121 *  Device Driver Table Entries
122 */
123
124/*
125 * NOTE: Use the standard Console driver entry
126 */
127 
128/*
129 * NOTE: Use the standard Clock driver entry
130 */
131
132/*
133 * How many libio files we want
134 */
135
136#define BSP_LIBIO_MAX_FDS       20
137
138/* functions */
139
140void bsp_cleanup( void );
141
142i960_isr_entry set_vector( rtems_isr_entry, unsigned int, unsigned int );
143
144#ifdef __cplusplus
145}
146#endif
147
148#endif
149/* end of include file */
Note: See TracBrowser for help on using the repository browser.