source: rtems/c/src/lib/libbsp/powerpc/papyrus/include/bsp.h @ 254b4450

4.104.114.84.95
Last change on this file since 254b4450 was 5c491aef, checked in by Joel Sherrill <joel.sherrill@…>, on 12/20/95 at 15:39:19

changes remerged after lost in disk crash -- recovered from snapshot, partially recovered working tree, etc

  • Property mode set to 100644
File size: 3.7 KB
Line 
1/*  bsp.h
2 *
3 *  This include file contains all Papyrus board IO definitions.
4 *
5 *  Author:     Andrew Bray <andy@i-cubed.co.uk>
6 *
7 *  COPYRIGHT (c) 1995 by i-cubed ltd.
8 *
9 *  To anyone who acknowledges that this file is provided "AS IS"
10 *  without any express or implied warranty:
11 *      permission to use, copy, modify, and distribute this file
12 *      for any purpose is hereby granted without fee, provided that
13 *      the above copyright notice and this notice appears in all
14 *      copies, and that the name of i-cubed limited not be used in
15 *      advertising or publicity pertaining to distribution of the
16 *      software without specific, written prior permission.
17 *      i-cubed limited makes no representations about the suitability
18 *      of this software for any purpose.
19 *
20 *  Derived from c/src/lib/libbsp/no_cpu/no_bsp/include/bsp.h
21 *
22 *  COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
23 *  On-Line Applications Research Corporation (OAR).
24 *  All rights assigned to U.S. Government, 1994.
25 *
26 *  This material may be reproduced by or for the U.S. Government pursuant
27 *  to the copyright license under the clause at DFARS 252.227-7013.  This
28 *  notice must appear in all copies of this file and its derivatives.
29 *
30 *  $Id$
31 */
32
33#ifndef __PAPYRUS_h
34#define __PAPYRUS_h
35
36#ifdef __cplusplus
37extern "C" {
38#endif
39
40#ifdef ASM
41/* Definition of where to store registers in alignment handler */
42#define ALIGN_REGS 0x0140
43
44#else
45#include <rtems.h>
46#include <console.h>
47#include <clockdrv.h>
48#include <console.h>
49#include <iosupp.h>
50
51/*
52 *  Define the time limits for RTEMS Test Suite test durations.
53 *  Long test and short test duration limits are provided.  These
54 *  values are in seconds and need to be converted to ticks for the
55 *  application.
56 *
57 */
58
59#define MAX_LONG_TEST_DURATION       300 /* 5 minutes = 300 seconds */
60#define MAX_SHORT_TEST_DURATION      3   /* 3 seconds */
61
62
63/*
64 *  Stuff for Time Test 27
65 */
66
67#define MUST_WAIT_FOR_INTERRUPT 0
68
69#define Install_tm27_vector( handler ) set_vector( (handler), PPC_IRQ_SCALL, 1 )
70
71#define Cause_tm27_intr()  asm volatile ("sc")
72
73#define Clear_tm27_intr()
74
75#define Lower_tm27_intr()
76
77/*
78 *  Simple spin delay in microsecond units for device drivers.
79 *  This is very dependent on the clock speed of the target.
80 */
81
82#define delay( microseconds ) \
83  { \
84    unsigned32 start, ticks, now; \
85    asm volatile ("mfspr %0, 0x3dd" : "=r" (start)); /* TBLO */ \
86    ticks = (microseconds) * Cpu_table.clicks_per_usec; \
87    do \
88      asm volatile ("mfspr %0, 0x3dd" : "=r" (now)); /* TBLO */ \
89    while (now - start < ticks); \
90  }
91
92
93/* Constants */
94
95#define RAM_START 0
96#define RAM_END   0x00200000
97
98
99/* Some useful LED debugging bits */
100/* LED numbers are from 0-2 */
101#define __led_base      ((volatile int *)0x7F200000)
102
103/* Turn a LED on */
104#define led_on(n)       (__led_base[n] = 0)
105
106/* Turn a LED off */
107#define led_off(n)      (__led_base[n] = 1)
108
109/* miscellaneous stuff assumed to exist */
110
111extern rtems_configuration_table BSP_Configuration;     /* owned by BSP */
112extern rtems_cpu_table           Cpu_table;             /* owned by BSP */
113
114/*
115 *  Device Driver Table Entries
116 */
117 
118/*
119 * NOTE: Use the standard Console driver entry
120 */
121 
122/*
123 * NOTE: Use the standard Clock driver entry
124 */
125 
126/*
127 * How many libio files we want
128 */
129 
130#define BSP_LIBIO_MAX_FDS       20
131
132/* functions */
133
134int bsp_start(
135  int   argc,
136  char **argv,
137  char **environp
138);
139
140void bsp_cleanup( void );
141
142rtems_isr_entry set_vector(                    /* returns old vector */
143  rtems_isr_entry     handler,                  /* isr routine        */
144  rtems_vector_number vector,                   /* vector number      */
145  int                 type                      /* RTEMS or RAW intr  */
146);
147#endif /* ASM */
148
149#ifdef __cplusplus
150}
151#endif
152
153#endif
154/* end of include file */
Note: See TracBrowser for help on using the repository browser.