OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [rtos/] [rtems/] [c/] [src/] [lib/] [libbsp/] [m68k/] [ods68302/] [include/] [bare.h] - Blame information for rev 30

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 30 unneback
/*****************************************************************************/
2
/*
3
  $Id: bare.h,v 1.2 2001-09-27 12:00:21 chris Exp $
4
 
5
  Card Definition for a bare board.
6
 
7
  This is an example file which actually builds a BSP for a 68302 card
8
  called an MVF (Multi-Voice-Frequency). The card is one of a range
9
  which run in a 100Mbit voice/video/data switch used for high end
10
  applications such as Air Traffic Control. The transport is
11
  FDDI-2. Yes it alive and well and working in real systems.
12
 
13
  Chip selects are programmed as required. Three are controlled in the
14
  boot code. They are RAM, ROM, and peripherals. You can optionally
15
  configure the other two chip selects.
16
 
17
  SYSTEM_CLOCK - You must defined this. It is used for setting the
18
  baud rate.
19
 
20
  CSEL_ROM, CSEL_RAM - Must be defined, and made to be a single number
21
  with brackets.
22
 
23
  ROM_WAIT_STATES, RAM_WAIT_STATES - Must be defined. This sets the
24
  speed for the ROM and RAM.
25
 
26
  ROM and RAM size is passed on the command line. The makefile holds
27
  them. This allows a single place to defined it. The makefile allows
28
  them to be passed to the linker.
29
 
30
  CSEL_1, CSEL_2 - If defined the other macros needed to define the
31
  chip select must be defined. If not defined they are not programmed
32
  and registers are left in the reset state.
33
 
34
  Card Specific Devices - The MVF card uses a chip select to address a
35
  range of peripherials (CSEL_2). These include front panel leds, and
36
  4 digit diagnostic display device. Put what ever you need.
37
 
38
  LED_CONTROL - If defined the boot code will set leds as it goes.
39
 
40
  UPDATE_DISPLAY - A four digit display device will also be updated to
41
  show the boot state.
42
 
43
  CARD_PA, CARD_PB - The default configuration, data direction and
44
  data must be specified.
45
 
46
  This file allows a range of common parameters which vary from one
47
  variant of card to another to placed in a central file.
48
 
49
*/
50
/*****************************************************************************/
51
 
52
#ifndef _BARE_H_
53
#define _BARE_H_
54
 
55
#if __cplusplus
56
extern "C"
57
{
58
#endif
59
 
60
/* name of the card */
61
#define CARD_ID "m68302-odsbare"
62
 
63
/* speed of the processor */
64
#define SYSTEM_CLOCK (15360000)
65
 
66
#define SCR_DEFAULT  (RBIT_SCR_IPA | RBIT_SCR_HWT | RBIT_SCR_WPV | RBIT_SCR_ADC | \
67
                      RBIT_SCR_HWDEN | RBIT_SCR_HWDCN1 | RBIT_SCR_EMWS)
68
 
69
/* define the chip selects */
70
#define CSEL_ROM           0            /* token pasted so no brackets */
71
#define ROM_WAIT_STATES    (OR_DTACK_1) /* 100nsec at 16MHz */
72
#define CSEL_RAM           3
73
#define RAM_WAIT_STATES    (OR_DTACK_0) /* 70nsec at 16MHz */
74
 
75
/* The remaining chip selects are called 1 and 2 */
76
/*
77
#define CSEL_1             1
78
#define CSEL_1_BASE        (0x00?00000)
79
#define CSEL_1_SIZE        (0x00?00000)
80
#define CSEL_1_WAIT_STATES (OR_DTACK_1)
81
*/
82
#define CSEL_2             2
83
#define CSEL_2_BASE        (0x00800000)
84
#define CSEL_2_SIZE        (0x00040000)
85
#define CSEL_2_WAIT_STATES (OR_DTACK_EXT)
86
 
87
/*
88
 * Need to define a watchdog period
89
 */
90
#define WATCHDOG_TIMEOUT_PERIOD (3000 * 2)
91
 
92
/*
93
 * Console and debug port allocation, 0=SCC1, 2=SCC3
94
 */
95
 
96
#define CONSOLE_PORT  1
97
#define CONSOLE_BAUD  SCC_9600
98
#define DEBUG_PORT    2
99
#define DEBUG_BAUD    SCC_57600
100
 
101
/* ----
102
   Parallel Port Configuration, and default data directions
103
 
104
   PORT  BITS - NAME                 , WHO       , DEFAULT WHAT
105
   ------------------------------------------------------------
106
   PPA:: 1: 0 - Serial               , PERIPHERAL, -
107
   PPA:: 7: 2 - MVF_PPA:7:2          , IO        , INPUTS
108
   PPA:: 9: 8 - Serial               , PERIPHERAL, -
109
   PPA::15:10 - MVF_PPB:15:10        , IO        , INPUTS
110
 
111
   PPB:: 1: 0 - Setup                , IO        , INPUTS
112
   PPB:: 3: 2 - SYNC_HIGHWAY_1:2     , IO        , INPUTS
113
              - SYNC_HIGHWAY_2:3     , IO        , INPUTS
114
   PPB:: 4: 4 - HARDWARE_RESET:4     , IO        , OUTPUT
115
   PPB:: 6: 5 - SOFTWARE_OVERRIDE_1:6, IO        , OUTPUT
116
              - SOFTWARE_OVERRIDE_2:5, IO        , OUTPUT
117
   PPB:: 7: 7 - Watchdog             , PERIPHERAL, -
118
   PPB::11: 8 - Interrupt            , PERIPHERAL, -
119
   PPB::15:12 - Not implemented on the 68302
120
 
121
         15 14 13 12 11 10  9  8  7  6  5  4  3  2  1  0
122
   ------------------------------------------------------
123
   PACNT  0  0  0  0  0  0  1  1  0  0  0  0  0  0  1  1 = 0x0303
124
   PBCNT  -  -  -  -  -  -  -  -  1  0  0  0  0  0  0  0 = 0x0080
125
 
126
   PADDR  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 = 0x0000
127
   PBDDR  0  0  0  0  0  0  0  0  0  1  1  1  0  0  0  0 = 0x0070
128
 
129
   PADAT  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 = 0x0000
130
 
131
 */
132
#define CARD_PA_CONFIGURATION       0x0303
133
#define CARD_PB_CONFIGURATION       0x0080
134
 
135
#define CARD_PA_DEFAULT_DIRECTIONS  0x0000
136
#define CARD_PB_DEFAULT_DIRECTIONS  0x0070
137
 
138
#define CARD_PA_DEFAULT_DATA        0x0000
139
#define CARD_PB_DEFAULT_DATA        (HARDWARE_RESET_DISABLE | \
140
                                     SOFTWARE_OVERRIDE_1_DISABLE | \
141
                                     SOFTWARE_OVERRIDE_2_DISABLE)
142
 
143
/* these are specific to the card and are not required */
144
#define HARDWARE_RESET_ENABLE       0x0000
145
#define HARDWARE_RESET_DISABLE      0x0010
146
 
147
#define SOFTWARE_OVERRIDE_1_ENABLE  0x0000
148
#define SOFTWARE_OVERRIDE_1_DISABLE 0x0040
149
#define SOFTWARE_OVERRIDE_2_ENABLE  0x0000
150
#define SOFTWARE_OVERRIDE_2_DISABLE 0x0020
151
 
152
/*
153
 * Card Specific Devices, these are not required. Add what ever you
154
 * like here.
155
 */
156
 
157
/* Write */
158
#define WRITE_REGISTER_8(address, data) \
159
                 *((rtems_unsigned8 *) (address)) = ((rtems_unsigned8) (data))
160
#define WRITE_REGISTER_16(address, data) \
161
                 *((rtems_unsigned16 *) (address)) = ((rtems_unsigned16) (data))
162
#define WRITE_REGISTER_32(address, data) \
163
                 *((rtems_unsigned32 *) (address)) = ((rtems_unsigned32) (data))
164
/* Read */
165
#define READ_REGISTER_8(address, data) data = *((rtems_unsigned8 *) (address))
166
#define READ_REGISTER_16(address, data) data = *((rtems_unsigned16 *) (address))
167
#define READ_REGISTER_32(address, data) data = *((rtems_unsigned32 *) (address))
168
 
169
/* CS2 : Peripherials */
170
#define PERIPHERIALS_BASE         (CSEL_2_BASE)
171
 
172
#define STATUS_REGISTER_BASE      (PERIPHERIALS_BASE + 0x00000000)
173
 
174
#define PERIPHERIALS_SIZE         (0x00040000)
175
 
176
#define LEDS_BASE                 (PERIPHERIALS_BASE + 0x00004000)
177
#define MSC_BASE                  (PERIPHERIALS_BASE + 0x00008000)
178
#define SPARE_1_BASE              (PERIPHERIALS_BASE + 0x0000C000)
179
#define DISPLAY_BASE              (PERIPHERIALS_BASE + 0x00010000)
180
#define PIO_INT_BASE              (PERIPHERIALS_BASE + 0x00014000)
181
#define UART_BASE                 (PERIPHERIALS_BASE + 0x00018000)
182
#define PIA_BASE                  (PERIPHERIALS_BASE + 0x0001C000)
183
 
184
#define LED_1         0x0002
185
#define LED_1_GREEN   0xFFFD                  
186
#define LED_1_RED     0xFFFF
187
#define LED_1_OFF     0xFFFC       
188
 
189
#define LED_2         0x0001
190
#define LED_2_GREEN   0xFFFE    
191
#define LED_2_RED     0xFFFF
192
#define LED_2_OFF     0xFFFC
193
 
194
#define LED_3         0x0000
195
#define LED_3_GREEN   0xFFFC    
196
#define LED_3_RED     0xFFFC
197
#define LED_3_OFF     0xFFFC
198
 
199
#define LED_4         0x0000
200
#define LED_4_GREEN   0xFFFC    
201
#define LED_4_RED     0xFFFC
202
#define LED_4_OFF     0xFFFC
203
 
204
#define LED_5         0x0000
205
#define LED_5_GREEN   0xFFFC    
206
#define LED_5_RED     0xFFFC
207
#define LED_5_OFF     0xFFFC
208
 
209
#define LED_6         0x0000
210
#define LED_6_GREEN   0xFFFC    
211
#define LED_6_RED     0xFFFC
212
#define LED_6_OFF     0xFFFC
213
 
214
#define LED_7         0x0000
215
#define LED_7_GREEN   0xFFFC    
216
#define LED_7_RED     0xFFFC
217
#define LED_7_OFF     0xFFFC
218
 
219
#define LED_8         0x0000
220
#define LED_8_GREEN   0xFFFC    
221
#define LED_8_RED     0xFFFC
222
#define LED_8_OFF     0xFFFC
223
 
224
#define MAKE_LED(L1, L2, L3, L4) ((L1 & LED_1) | (L2 & LED_2) | (L3 & LED_3) | (L4 & LED_4))
225
 
226
#define LED_CONTROL(L1, L2, L3, L4, L5, L6, L7, L8) \
227
            WRITE_REGISTER_16(LEDS_BASE, MAKE_LED(L1, L2, L3, L4))
228
 
229
 /* update the display, needs a long word */
230
#define UPDATE_DISPLAY(LongWordPtr) \
231
         ( WRITE_REGISTER_16(DISPLAY_BASE, *(((rtems_unsigned8 *) LongWordPtr) + 3)), \
232
           WRITE_REGISTER_16(DISPLAY_BASE + 2, *(((rtems_unsigned8 *) LongWordPtr) + 2)), \
233
           WRITE_REGISTER_16(DISPLAY_BASE + 4, *(((rtems_unsigned8 *) LongWordPtr) + 1)), \
234
           WRITE_REGISTER_16(DISPLAY_BASE + 6, *((rtems_unsigned8 *) LongWordPtr)) )
235
 
236
/* make a better test, say switches */
237
#if defined(GDB_MONITOR_ACTIVE)
238
#define GDB_RUN_MONITOR() (1 == 1)
239
#else
240
#define GDB_RUN_MONITOR() (1 == 0)
241
#endif
242
 
243
#if __cplusplus
244
}
245
#endif
246
#endif

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.