source: rtems/c/src/lib/libbsp/powerpc/papyrus/include/bsp.h @ 591d45e

4.104.114.84.95
Last change on this file since 591d45e was eb5a7e07, checked in by Joel Sherrill <joel.sherrill@…>, on 10/06/95 at 20:48:38

fixed missing CVS IDs

  • Property mode set to 100644
File size: 3.4 KB
Line 
1/*  bsp.h
2 *
3 *  This include file contains all Papyrus board IO definitions.
4 *
5 *  Author:     Andrew Bray <andy@i-cubed.demon.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
48/*
49 *  Define the time limits for RTEMS Test Suite test durations.
50 *  Long test and short test duration limits are provided.  These
51 *  values are in seconds and need to be converted to ticks for the
52 *  application.
53 *
54 */
55
56#define MAX_LONG_TEST_DURATION       300 /* 5 minutes = 300 seconds */
57#define MAX_SHORT_TEST_DURATION      3   /* 3 seconds */
58
59/*
60 *  Stuff for Time Test 27
61 */
62
63#define MUST_WAIT_FOR_INTERRUPT 0
64
65#define Install_tm27_vector( handler ) set_vector( (handler), PPC_IRQ_SCALL, 1 )
66
67#define Cause_tm27_intr()  asm volatile ("sc")
68
69#define Clear_tm27_intr()
70
71#define Lower_tm27_intr()
72
73/*
74 *  Simple spin delay in microsecond units for device drivers.
75 *  This is very dependent on the clock speed of the target.
76 */
77
78#define delay( microseconds ) \
79  { \
80    unsigned32 start, ticks, now; \
81    asm volatile ("mftblo %0" : "=r" (start)); \
82    ticks = (microseconds) * Cpu_table.clicks_per_usec; \
83    do \
84      asm volatile ("mftblo %0" : "=r" (now)); \
85    while (now - start < ticks); \
86  }
87
88/* Constants */
89
90#define RAM_START 0
91#define RAM_END   0x00200000
92
93/* miscellaneous stuff assumed to exist */
94
95extern rtems_configuration_table BSP_Configuration;     /* owned by BSP */
96extern rtems_cpu_table           Cpu_table;             /* owned by BSP */
97
98/*
99 *  Device Driver Table Entries
100 */
101
102/*
103 * NOTE: Use the standard Console driver entry
104 */
105 
106/*
107 * NOTE: Use the standard Clock driver entry
108 */
109
110/*
111 * How many libio files we want
112 */
113
114#define BSP_LIBIO_MAX_FDS       20
115
116/* functions */
117
118void bsp_start( void );
119void bsp_cleanup( void );
120
121rtems_isr_entry set_vector(                    /* returns old vector */
122  rtems_isr_entry     handler,                  /* isr routine        */
123  rtems_vector_number vector,                   /* vector number      */
124  int                 type                      /* RTEMS or RAW intr  */
125);
126#endif /* ASM */
127
128#ifdef __cplusplus
129}
130#endif
131
132#endif
133/* end of include file */
Note: See TracBrowser for help on using the repository browser.