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

4.104.114.84.95
Last change on this file since e2a2ec60 was e2a2ec60, checked in by Joel Sherrill <joel.sherrill@…>, on Mar 21, 1998 at 3:37:18 PM

Switch to using a shared main() for all of the embedded BSPs
based on the GNU tools. This usually involved correcting the
type of bsp_start(), bsp_cleanup(), adjusting the start code to
call the right start routine (the shared boot_card()), and then
removing code from bsp_start() which was performed in the new
boot_card()/main() path.

  • Property mode set to 100644
File size: 3.6 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-1998.
23 *  On-Line Applications Research Corporation (OAR).
24 *  Copyright assigned to U.S. Government, 1994.
25 *
26 *  The license and distribution terms for this file may be
27 *  found in the file LICENSE in this distribution or at
28 *  http://www.OARcorp.com/rtems/license.html.
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
134rtems_isr_entry set_vector(                    /* returns old vector */
135  rtems_isr_entry     handler,                  /* isr routine        */
136  rtems_vector_number vector,                   /* vector number      */
137  int                 type                      /* RTEMS or RAW intr  */
138);
139#endif /* ASM */
140
141#ifdef __cplusplus
142}
143#endif
144
145#endif
146/* end of include file */
Note: See TracBrowser for help on using the repository browser.