source: rtems/c/src/lib/libbsp/m68k/mvme147s/include/bsp.h @ 9b4422a2

4.115
Last change on this file since 9b4422a2 was 9b4422a2, checked in by Joel Sherrill <joel.sherrill@…>, on 05/03/12 at 15:09:24

Remove All CVS Id Strings Possible Using a Script

Script does what is expected and tries to do it as
smartly as possible.

+ remove occurrences of two blank comment lines

next to each other after Id string line removed.

+ remove entire comment blocks which only exited to

contain CVS Ids

+ If the processing left a blank line at the top of

a file, it was removed.

  • Property mode set to 100644
File size: 6.6 KB
Line 
1/*  bsp.h
2 *
3 *  This include file contains all MVME147 board IO definitions.
4 *
5 *  COPYRIGHT (c) 1989-1999.
6 *  On-Line Applications Research Corporation (OAR).
7 *
8 *  The license and distribution terms for this file may be
9 *  found in the file LICENSE in this distribution or at
10 *  http://www.rtems.com/license/LICENSE.
11 *
12 *  MVME147 port for TNI - Telecom Bretagne
13 *  by Dominique LE CAMPION (Dominique.LECAMPION@enst-bretagne.fr)
14 *  May 1996
15 */
16
17#ifndef _BSP_H
18#define _BSP_H
19
20#ifdef __cplusplus
21extern "C" {
22#endif
23
24#include <bspopts.h>
25
26#include <rtems.h>
27#include <rtems/clockdrv.h>
28#include <rtems/console.h>
29#include <rtems/iosupp.h>
30
31/* Constants */
32
33#define RAM_START 0x00007000
34#define RAM_END   0x003e0000
35#define DRAM_END  0x00400000
36  /* We leave 128k for the shared memory */
37
38  /* MVME 147 Peripheral controller chip
39     see MVME147/D1, 3.4 */
40
41struct pcc_map {
42  /* 32 bit registers */
43  uint32_t         dma_table_address;            /* 0xfffe1000 */
44  uint32_t         dma_data_address;             /* 0xfffe1004 */
45  uint32_t         dma_bytecount;                /* 0xfffe1008 */
46  uint32_t         dma_data_holding;             /* 0xfffe100c */
47
48  /* 16 bit registers */
49  uint16_t         timer1_preload;               /* 0xfffe1010 */
50  uint16_t         timer1_count;                 /* 0xfffe1012 */
51  uint16_t         timer2_preload;               /* 0xfffe1014 */
52  uint16_t         timer2_count;                 /* 0xfffe1016 */
53
54  /* 8 bit registers */
55  uint8_t         timer1_int_control;            /* 0xfffe1018 */
56  uint8_t         timer1_control;                /* 0xfffe1019 */
57  uint8_t         timer2_int_control;            /* 0xfffe101a */
58  uint8_t         timer2_control;                /* 0xfffe101b */
59
60  uint8_t         acfail_int_control;            /* 0xfffe101c */
61  uint8_t         watchdog_control;              /* 0xfffe101d */
62
63  uint8_t         printer_int_control;           /* 0xfffe101e */
64  uint8_t         printer_control;               /* 0xfffe102f */
65
66  uint8_t         dma_int_control;               /* 0xfffe1020 */
67  uint8_t         dma_control;                   /* 0xfffe1021 */
68  uint8_t         bus_error_int_control;         /* 0xfffe1022 */
69  uint8_t         dma_status;                    /* 0xfffe1023 */
70  uint8_t         abort_int_control;             /* 0xfffe1024 */
71  uint8_t         table_address_function_code;   /* 0xfffe1025 */
72  uint8_t         serial_port_int_control;       /* 0xfffe1026 */
73  uint8_t         general_purpose_control;       /* 0xfffe1027 */
74  uint8_t         lan_int_control;               /* 0xfffe1028 */
75  uint8_t         general_purpose_status;        /* 0xfffe1029 */
76  uint8_t         scsi_port_int_control;         /* 0xfffe102a */
77  uint8_t         slave_base_address;            /* 0xfffe102b */
78  uint8_t         software_int_1_control;        /* 0xfffe102c */
79  uint8_t         int_base_vector;               /* 0xfffe102d */
80  uint8_t         software_int_2_control;        /* 0xfffe102e */
81  uint8_t         revision_level;                /* 0xfffe102f */
82};
83
84#define pcc      ((volatile struct pcc_map * const) 0xfffe1000)
85
86/* VME chip configuration registers */
87
88struct vme_lcsr_map {
89  uint8_t         unused_1;
90  uint8_t         system_controller;             /* 0xfffe2001 */
91  uint8_t         unused_2;
92  uint8_t         vme_bus_requester;             /* 0xfffe2003 */
93  uint8_t         unused_3;
94  uint8_t         master_configuration;          /* 0xfffe2005 */
95  uint8_t         unused_4;
96  uint8_t         slave_configuration;           /* 0xfffe2007 */
97  uint8_t         unused_5;
98  uint8_t         timer_configuration;           /* 0xfffe2009 */
99  uint8_t         unused_6;
100  uint8_t         slave_address_modifier;        /* 0xfffe200b */
101  uint8_t         unused_7;
102  uint8_t         master_address_modifier;       /* 0xfffe200d */
103  uint8_t         unused_8;
104  uint8_t         interrupt_handler_mask;        /* 0xfffe200f */
105  uint8_t         unused_9;
106  uint8_t         utility_interrupt_mask;        /* 0xfffe2011 */
107  uint8_t         unused_10;
108  uint8_t         utility_interrupt_vector;      /* 0xfffe2013 */
109  uint8_t         unused_11;
110  uint8_t         interrupt_request;             /* 0xfffe2015 */
111  uint8_t         unused_12;
112  uint8_t         vme_bus_status_id;             /* 0xfffe2017 */
113  uint8_t         unused_13;
114  uint8_t         bus_error_status;              /* 0xfffe2019 */
115  uint8_t         unused_14;
116  uint8_t         gcsr_base_address;             /* 0xfffe201b */
117};
118
119#define vme_lcsr      ((volatile struct vme_lcsr_map * const) 0xfffe2000)
120
121struct vme_gcsr_map {
122  uint8_t         unused_1;
123  uint8_t         global_0;                      /* 0xfffe2021 */
124  uint8_t         unused_2;
125  uint8_t         global_1;                      /* 0xfffe2023 */
126  uint8_t         unused_3;
127  uint8_t         board_identification;          /* 0xfffe2025 */
128  uint8_t         unused_4;
129  uint8_t         general_purpose_0;             /* 0xfffe2027 */
130  uint8_t         unused_5;
131  uint8_t         general_purpose_1;             /* 0xfffe2029 */
132  uint8_t         unused_6;
133  uint8_t         general_purpose_2;             /* 0xfffe202b */
134  uint8_t         unused_7;
135  uint8_t         general_purpose_3;             /* 0xfffe202d */
136  uint8_t         unused_8;
137  uint8_t         general_purpose_4;             /* 0xfffe202f */
138};
139
140#define vme_gcsr      ((volatile struct vme_gcsr_map * const) 0xfffe2020)
141
142#define z8530 0xfffe3001
143
144/* interrupt vectors - see MVME147/D1 4.14 */
145#define PCC_BASE_VECTOR        0x40 /* First user int */
146#define SCC_VECTOR             PCC_BASE_VECTOR+3
147#define TIMER_1_VECTOR         PCC_BASE_VECTOR+8
148#define TIMER_2_VECTOR         PCC_BASE_VECTOR+9
149#define SOFT_1_VECTOR          PCC_BASE_VECTOR+10
150#define SOFT_2_VECTOR          PCC_BASE_VECTOR+11
151
152#define VME_BASE_VECTOR        0x50
153#define VME_SIGLP_VECTOR       VME_BASE_VECTOR+1
154
155#define USE_CHANNEL_A   1                /* 1 = use channel A for console */
156#define USE_CHANNEL_B   0                /* 1 = use channel B for console */
157
158#if (USE_CHANNEL_A == 1)
159#define CONSOLE_CONTROL  0xfffe3002
160#define CONSOLE_DATA     0xfffe3003
161#elif (USE_CHANNEL_B == 1)
162#define CONSOLE_CONTROL  0xfffe3000
163#define CONSOLE_DATA     0xfffe3001
164#endif
165
166#define FOREVER       1                  /* infinite loop */
167
168#ifdef M147_INIT
169#undef EXTERN
170#define EXTERN
171#else
172#undef EXTERN
173#define EXTERN extern
174#endif
175
176extern rtems_isr_entry M68Kvec[];   /* vector table address */
177
178/*
179 * NOTE: Use the standard Clock driver entry
180 */
181
182/* functions */
183
184rtems_isr_entry set_vector(
185  rtems_isr_entry     handler,
186  rtems_vector_number vector,
187  int                 type
188);
189
190#ifdef __cplusplus
191}
192#endif
193
194#endif
Note: See TracBrowser for help on using the repository browser.