~ubuntu-branches/ubuntu/precise/linux-ti-omap4/precise

« back to all changes in this revision

Viewing changes to drivers/char/rio/rioboard.h

  • Committer: Bazaar Package Importer
  • Author(s): Paolo Pisati
  • Date: 2011-06-29 15:23:51 UTC
  • mfrom: (26.1.1 natty-proposed)
  • Revision ID: james.westby@ubuntu.com-20110629152351-xs96tm303d95rpbk
Tags: 3.0.0-1200.2
* Rebased against 3.0.0-6.7
* BSP from TI based on 3.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/************************************************************************/
2
 
/*                                                                      */
3
 
/*      Title           :       RIO Host Card Hardware Definitions      */
4
 
/*                                                                      */
5
 
/*      Author          :       N.P.Vassallo                            */
6
 
/*                                                                      */
7
 
/*      Creation        :       26th April 1999                         */
8
 
/*                                                                      */
9
 
/*      Version         :       1.0.0                                   */
10
 
/*                                                                      */
11
 
/*      Copyright       :       (c) Specialix International Ltd. 1999   *
12
 
 *
13
 
 *      This program is free software; you can redistribute it and/or modify
14
 
 *      it under the terms of the GNU General Public License as published by
15
 
 *      the Free Software Foundation; either version 2 of the License, or
16
 
 *      (at your option) any later version.
17
 
 *
18
 
 *      This program is distributed in the hope that it will be useful,
19
 
 *      but WITHOUT ANY WARRANTY; without even the implied warranty of
20
 
 *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21
 
 *      GNU General Public License for more details.
22
 
 *
23
 
 *      You should have received a copy of the GNU General Public License
24
 
 *      along with this program; if not, write to the Free Software
25
 
 *      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
26
 
 *                                                                      */
27
 
/*      Description     :       Prototypes, structures and definitions  */
28
 
/*                              describing the RIO board hardware       */
29
 
/*                                                                      */
30
 
/************************************************************************/
31
 
 
32
 
#ifndef _rioboard_h             /* If RIOBOARD.H not already defined */
33
 
#define _rioboard_h    1
34
 
 
35
 
/*****************************************************************************
36
 
***********************                                ***********************
37
 
***********************   Hardware Control Registers   ***********************
38
 
***********************                                ***********************
39
 
*****************************************************************************/
40
 
 
41
 
/* Hardware Registers... */
42
 
 
43
 
#define RIO_REG_BASE    0x7C00  /* Base of control registers */
44
 
 
45
 
#define RIO_CONFIG      RIO_REG_BASE + 0x0000   /* WRITE: Configuration Register */
46
 
#define RIO_INTSET      RIO_REG_BASE + 0x0080   /* WRITE: Interrupt Set */
47
 
#define RIO_RESET       RIO_REG_BASE + 0x0100   /* WRITE: Host Reset */
48
 
#define RIO_INTRESET    RIO_REG_BASE + 0x0180   /* WRITE: Interrupt Reset */
49
 
 
50
 
#define RIO_VPD_ROM     RIO_REG_BASE + 0x0000   /* READ: Vital Product Data ROM */
51
 
#define RIO_INTSTAT     RIO_REG_BASE + 0x0080   /* READ: Interrupt Status (Jet boards only) */
52
 
#define RIO_RESETSTAT   RIO_REG_BASE + 0x0100   /* READ: Reset Status (Jet boards only) */
53
 
 
54
 
/* RIO_VPD_ROM definitions... */
55
 
#define VPD_SLX_ID1     0x00    /* READ: Specialix Identifier #1 */
56
 
#define VPD_SLX_ID2     0x01    /* READ: Specialix Identifier #2 */
57
 
#define VPD_HW_REV      0x02    /* READ: Hardware Revision */
58
 
#define VPD_HW_ASSEM    0x03    /* READ: Hardware Assembly Level */
59
 
#define VPD_UNIQUEID4   0x04    /* READ: Unique Identifier #4 */
60
 
#define VPD_UNIQUEID3   0x05    /* READ: Unique Identifier #3 */
61
 
#define VPD_UNIQUEID2   0x06    /* READ: Unique Identifier #2 */
62
 
#define VPD_UNIQUEID1   0x07    /* READ: Unique Identifier #1 */
63
 
#define VPD_MANU_YEAR   0x08    /* READ: Year Of Manufacture (0 = 1970) */
64
 
#define VPD_MANU_WEEK   0x09    /* READ: Week Of Manufacture (0 = week 1 Jan) */
65
 
#define VPD_HWFEATURE1  0x0A    /* READ: Hardware Feature Byte 1 */
66
 
#define VPD_HWFEATURE2  0x0B    /* READ: Hardware Feature Byte 2 */
67
 
#define VPD_HWFEATURE3  0x0C    /* READ: Hardware Feature Byte 3 */
68
 
#define VPD_HWFEATURE4  0x0D    /* READ: Hardware Feature Byte 4 */
69
 
#define VPD_HWFEATURE5  0x0E    /* READ: Hardware Feature Byte 5 */
70
 
#define VPD_OEMID       0x0F    /* READ: OEM Identifier */
71
 
#define VPD_IDENT       0x10    /* READ: Identifier string (16 bytes) */
72
 
#define VPD_IDENT_LEN   0x10
73
 
 
74
 
/* VPD ROM Definitions... */
75
 
#define SLX_ID1         0x4D
76
 
#define SLX_ID2         0x98
77
 
 
78
 
#define PRODUCT_ID(a)   ((a>>4)&0xF)    /* Use to obtain Product ID from VPD_UNIQUEID1 */
79
 
 
80
 
#define ID_SX_ISA       0x2
81
 
#define ID_RIO_EISA     0x3
82
 
#define ID_SX_PCI       0x5
83
 
#define ID_SX_EISA      0x7
84
 
#define ID_RIO_RTA16    0x9
85
 
#define ID_RIO_ISA      0xA
86
 
#define ID_RIO_MCA      0xB
87
 
#define ID_RIO_SBUS     0xC
88
 
#define ID_RIO_PCI      0xD
89
 
#define ID_RIO_RTA8     0xE
90
 
 
91
 
/* Transputer bootstrap definitions... */
92
 
 
93
 
#define BOOTLOADADDR            (0x8000 - 6)
94
 
#define BOOTINDICATE            (0x8000 - 2)
95
 
 
96
 
/* Firmware load position... */
97
 
 
98
 
#define FIRMWARELOADADDR        0x7C00  /* Firmware is loaded _before_ this address */
99
 
 
100
 
/*****************************************************************************
101
 
*****************************                    *****************************
102
 
*****************************   RIO (Rev1) ISA   *****************************
103
 
*****************************                    *****************************
104
 
*****************************************************************************/
105
 
 
106
 
/* Control Register Definitions... */
107
 
#define RIO_ISA_IDENT   "JBJGPGGHINSMJPJR"
108
 
 
109
 
#define RIO_ISA_CFG_BOOTRAM     0x01    /* Boot from RAM, else Link */
110
 
#define RIO_ISA_CFG_BUSENABLE   0x02    /* Enable processor bus */
111
 
#define RIO_ISA_CFG_IRQMASK     0x30    /* Interrupt mask */
112
 
#define   RIO_ISA_CFG_IRQ12     0x10    /* Interrupt Level 12 */
113
 
#define   RIO_ISA_CFG_IRQ11     0x20    /* Interrupt Level 11 */
114
 
#define   RIO_ISA_CFG_IRQ9      0x30    /* Interrupt Level 9 */
115
 
#define RIO_ISA_CFG_LINK20      0x40    /* 20Mbps link, else 10Mbps */
116
 
#define RIO_ISA_CFG_WAITSTATE0  0x80    /* 0 waitstates, else 1 */
117
 
 
118
 
/*****************************************************************************
119
 
*****************************                    *****************************
120
 
*****************************   RIO (Rev2) ISA   *****************************
121
 
*****************************                    *****************************
122
 
*****************************************************************************/
123
 
 
124
 
/* Control Register Definitions... */
125
 
#define RIO_ISA2_IDENT  "JBJGPGGHINSMJPJR"
126
 
 
127
 
#define RIO_ISA2_CFG_BOOTRAM    0x01    /* Boot from RAM, else Link */
128
 
#define RIO_ISA2_CFG_BUSENABLE  0x02    /* Enable processor bus */
129
 
#define RIO_ISA2_CFG_INTENABLE  0x04    /* Interrupt enable, else disable */
130
 
#define RIO_ISA2_CFG_16BIT      0x08    /* 16bit mode, else 8bit */
131
 
#define RIO_ISA2_CFG_IRQMASK    0x30    /* Interrupt mask */
132
 
#define   RIO_ISA2_CFG_IRQ15    0x00    /* Interrupt Level 15 */
133
 
#define   RIO_ISA2_CFG_IRQ12    0x10    /* Interrupt Level 12 */
134
 
#define   RIO_ISA2_CFG_IRQ11    0x20    /* Interrupt Level 11 */
135
 
#define   RIO_ISA2_CFG_IRQ9     0x30    /* Interrupt Level 9 */
136
 
#define RIO_ISA2_CFG_LINK20     0x40    /* 20Mbps link, else 10Mbps */
137
 
#define RIO_ISA2_CFG_WAITSTATE0 0x80    /* 0 waitstates, else 1 */
138
 
 
139
 
/*****************************************************************************
140
 
*****************************                   ******************************
141
 
*****************************   RIO (Jet) ISA   ******************************
142
 
*****************************                   ******************************
143
 
*****************************************************************************/
144
 
 
145
 
/* Control Register Definitions... */
146
 
#define RIO_ISA3_IDENT  "JET HOST BY KEV#"
147
 
 
148
 
#define RIO_ISA3_CFG_BUSENABLE  0x02    /* Enable processor bus */
149
 
#define RIO_ISA3_CFG_INTENABLE  0x04    /* Interrupt enable, else disable */
150
 
#define RIO_ISA32_CFG_IRQMASK   0xF30   /* Interrupt mask */
151
 
#define   RIO_ISA3_CFG_IRQ15    0xF0    /* Interrupt Level 15 */
152
 
#define   RIO_ISA3_CFG_IRQ12    0xC0    /* Interrupt Level 12 */
153
 
#define   RIO_ISA3_CFG_IRQ11    0xB0    /* Interrupt Level 11 */
154
 
#define   RIO_ISA3_CFG_IRQ10    0xA0    /* Interrupt Level 10 */
155
 
#define   RIO_ISA3_CFG_IRQ9     0x90    /* Interrupt Level 9 */
156
 
 
157
 
/*****************************************************************************
158
 
*********************************             ********************************
159
 
*********************************   RIO MCA   ********************************
160
 
*********************************             ********************************
161
 
*****************************************************************************/
162
 
 
163
 
/* Control Register Definitions... */
164
 
#define RIO_MCA_IDENT   "JBJGPGGHINSMJPJR"
165
 
 
166
 
#define RIO_MCA_CFG_BOOTRAM     0x01    /* Boot from RAM, else Link */
167
 
#define RIO_MCA_CFG_BUSENABLE   0x02    /* Enable processor bus */
168
 
#define RIO_MCA_CFG_LINK20      0x40    /* 20Mbps link, else 10Mbps */
169
 
 
170
 
/*****************************************************************************
171
 
********************************              ********************************
172
 
********************************   RIO EISA   ********************************
173
 
********************************              ********************************
174
 
*****************************************************************************/
175
 
 
176
 
/* EISA Configuration Space Definitions... */
177
 
#define EISA_PRODUCT_ID1        0xC80
178
 
#define EISA_PRODUCT_ID2        0xC81
179
 
#define EISA_PRODUCT_NUMBER     0xC82
180
 
#define EISA_REVISION_NUMBER    0xC83
181
 
#define EISA_CARD_ENABLE        0xC84
182
 
#define EISA_VPD_UNIQUEID4      0xC88   /* READ: Unique Identifier #4 */
183
 
#define EISA_VPD_UNIQUEID3      0xC8A   /* READ: Unique Identifier #3 */
184
 
#define EISA_VPD_UNIQUEID2      0xC90   /* READ: Unique Identifier #2 */
185
 
#define EISA_VPD_UNIQUEID1      0xC92   /* READ: Unique Identifier #1 */
186
 
#define EISA_VPD_MANU_YEAR      0xC98   /* READ: Year Of Manufacture (0 = 1970) */
187
 
#define EISA_VPD_MANU_WEEK      0xC9A   /* READ: Week Of Manufacture (0 = week 1 Jan) */
188
 
#define EISA_MEM_ADDR_23_16     0xC00
189
 
#define EISA_MEM_ADDR_31_24     0xC01
190
 
#define EISA_RIO_CONFIG         0xC02   /* WRITE: Configuration Register */
191
 
#define EISA_RIO_INTSET         0xC03   /* WRITE: Interrupt Set */
192
 
#define EISA_RIO_INTRESET       0xC03   /* READ:  Interrupt Reset */
193
 
 
194
 
/* Control Register Definitions... */
195
 
#define RIO_EISA_CFG_BOOTRAM    0x01    /* Boot from RAM, else Link */
196
 
#define RIO_EISA_CFG_LINK20     0x02    /* 20Mbps link, else 10Mbps */
197
 
#define RIO_EISA_CFG_BUSENABLE  0x04    /* Enable processor bus */
198
 
#define RIO_EISA_CFG_PROCRUN    0x08    /* Processor running, else reset */
199
 
#define RIO_EISA_CFG_IRQMASK    0xF0    /* Interrupt mask */
200
 
#define   RIO_EISA_CFG_IRQ15    0xF0    /* Interrupt Level 15 */
201
 
#define   RIO_EISA_CFG_IRQ14    0xE0    /* Interrupt Level 14 */
202
 
#define   RIO_EISA_CFG_IRQ12    0xC0    /* Interrupt Level 12 */
203
 
#define   RIO_EISA_CFG_IRQ11    0xB0    /* Interrupt Level 11 */
204
 
#define   RIO_EISA_CFG_IRQ10    0xA0    /* Interrupt Level 10 */
205
 
#define   RIO_EISA_CFG_IRQ9     0x90    /* Interrupt Level 9 */
206
 
#define   RIO_EISA_CFG_IRQ7     0x70    /* Interrupt Level 7 */
207
 
#define   RIO_EISA_CFG_IRQ6     0x60    /* Interrupt Level 6 */
208
 
#define   RIO_EISA_CFG_IRQ5     0x50    /* Interrupt Level 5 */
209
 
#define   RIO_EISA_CFG_IRQ4     0x40    /* Interrupt Level 4 */
210
 
#define   RIO_EISA_CFG_IRQ3     0x30    /* Interrupt Level 3 */
211
 
 
212
 
/*****************************************************************************
213
 
********************************              ********************************
214
 
********************************   RIO SBus   ********************************
215
 
********************************              ********************************
216
 
*****************************************************************************/
217
 
 
218
 
/* Control Register Definitions... */
219
 
#define RIO_SBUS_IDENT  "JBPGK#\0\0\0\0\0\0\0\0\0\0"
220
 
 
221
 
#define RIO_SBUS_CFG_BOOTRAM    0x01    /* Boot from RAM, else Link */
222
 
#define RIO_SBUS_CFG_BUSENABLE  0x02    /* Enable processor bus */
223
 
#define RIO_SBUS_CFG_INTENABLE  0x04    /* Interrupt enable, else disable */
224
 
#define RIO_SBUS_CFG_IRQMASK    0x38    /* Interrupt mask */
225
 
#define   RIO_SBUS_CFG_IRQNONE  0x00    /* No Interrupt */
226
 
#define   RIO_SBUS_CFG_IRQ7     0x38    /* Interrupt Level 7 */
227
 
#define   RIO_SBUS_CFG_IRQ6     0x30    /* Interrupt Level 6 */
228
 
#define   RIO_SBUS_CFG_IRQ5     0x28    /* Interrupt Level 5 */
229
 
#define   RIO_SBUS_CFG_IRQ4     0x20    /* Interrupt Level 4 */
230
 
#define   RIO_SBUS_CFG_IRQ3     0x18    /* Interrupt Level 3 */
231
 
#define   RIO_SBUS_CFG_IRQ2     0x10    /* Interrupt Level 2 */
232
 
#define   RIO_SBUS_CFG_IRQ1     0x08    /* Interrupt Level 1 */
233
 
#define RIO_SBUS_CFG_LINK20     0x40    /* 20Mbps link, else 10Mbps */
234
 
#define RIO_SBUS_CFG_PROC25     0x80    /* 25Mhz processor clock, else 20Mhz */
235
 
 
236
 
/*****************************************************************************
237
 
*********************************             ********************************
238
 
*********************************   RIO PCI   ********************************
239
 
*********************************             ********************************
240
 
*****************************************************************************/
241
 
 
242
 
/* Control Register Definitions... */
243
 
#define RIO_PCI_IDENT   "ECDDPGJGJHJRGSK#"
244
 
 
245
 
#define RIO_PCI_CFG_BOOTRAM     0x01    /* Boot from RAM, else Link */
246
 
#define RIO_PCI_CFG_BUSENABLE   0x02    /* Enable processor bus */
247
 
#define RIO_PCI_CFG_INTENABLE   0x04    /* Interrupt enable, else disable */
248
 
#define RIO_PCI_CFG_LINK20      0x40    /* 20Mbps link, else 10Mbps */
249
 
#define RIO_PCI_CFG_PROC25      0x80    /* 25Mhz processor clock, else 20Mhz */
250
 
 
251
 
/* PCI Definitions... */
252
 
#define SPX_VENDOR_ID           0x11CB  /* Assigned by the PCI SIG */
253
 
#define SPX_DEVICE_ID           0x8000  /* RIO bridge boards */
254
 
#define SPX_PLXDEVICE_ID        0x2000  /* PLX bridge boards */
255
 
#define SPX_SUB_VENDOR_ID       SPX_VENDOR_ID   /* Same as vendor id */
256
 
#define RIO_SUB_SYS_ID          0x0800  /* RIO PCI board */
257
 
 
258
 
/*****************************************************************************
259
 
*****************************                   ******************************
260
 
*****************************   RIO (Jet) PCI   ******************************
261
 
*****************************                   ******************************
262
 
*****************************************************************************/
263
 
 
264
 
/* Control Register Definitions... */
265
 
#define RIO_PCI2_IDENT  "JET HOST BY KEV#"
266
 
 
267
 
#define RIO_PCI2_CFG_BUSENABLE  0x02    /* Enable processor bus */
268
 
#define RIO_PCI2_CFG_INTENABLE  0x04    /* Interrupt enable, else disable */
269
 
 
270
 
/* PCI Definitions... */
271
 
#define RIO2_SUB_SYS_ID         0x0100  /* RIO (Jet) PCI board */
272
 
 
273
 
#endif                                          /*_rioboard_h */
274
 
 
275
 
/* End of RIOBOARD.H */