Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
include
uapi
linux
nubus.h
Go to the documentation of this file.
1
/*
2
nubus.h: various definitions and prototypes for NuBus drivers to use.
3
4
Originally written by Alan Cox.
5
6
Hacked to death by C. Scott Ananian and David Huggins-Daines.
7
8
Some of the constants in here are from the corresponding
9
NetBSD/OpenBSD header file, by Allen Briggs. We figured out the
10
rest of them on our own. */
11
12
#ifndef _UAPILINUX_NUBUS_H
13
#define _UAPILINUX_NUBUS_H
14
15
#include <linux/types.h>
16
17
enum
nubus_category
{
18
NUBUS_CAT_BOARD
= 0x0001,
19
NUBUS_CAT_DISPLAY
= 0x0003,
20
NUBUS_CAT_NETWORK
= 0x0004,
21
NUBUS_CAT_COMMUNICATIONS
= 0x0006,
22
NUBUS_CAT_FONT
= 0x0009,
23
NUBUS_CAT_CPU
= 0x000A,
24
/* For lack of a better name */
25
NUBUS_CAT_DUODOCK
= 0x0020
26
};
27
28
enum
nubus_type_network
{
29
NUBUS_TYPE_ETHERNET
= 0x0001,
30
NUBUS_TYPE_RS232
= 0x0002
31
};
32
33
enum
nubus_type_display
{
34
NUBUS_TYPE_VIDEO
= 0x0001
35
};
36
37
enum
nubus_type_cpu
{
38
NUBUS_TYPE_68020
= 0x0003,
39
NUBUS_TYPE_68030
= 0x0004,
40
NUBUS_TYPE_68040
= 0x0005
41
};
42
43
/* Known <Cat,Type,SW,HW> tuples: (according to TattleTech and Slots)
44
* 68030 motherboards: <10,4,0,24>
45
* 68040 motherboards: <10,5,0,24>
46
* DuoDock Plus: <32,1,1,2>
47
*
48
* Toby Frame Buffer card: <3,1,1,1>
49
* RBV built-in video (IIci): <3,1,1,24>
50
* Valkyrie built-in video (Q630): <3,1,1,46>
51
* Macintosh Display Card: <3,1,1,25>
52
* Sonora built-in video (P460): <3,1,1,34>
53
* Jet framebuffer (DuoDock Plus): <3,1,1,41>
54
*
55
* SONIC comm-slot/on-board and DuoDock Ethernet: <4,1,1,272>
56
* SONIC LC-PDS Ethernet (Dayna, but like Apple 16-bit, sort of): <4,1,1,271>
57
* Apple SONIC LC-PDS Ethernet ("Apple Ethernet LC Twisted-Pair Card"): <4,1,0,281>
58
* Sonic Systems Ethernet A-Series Card: <4,1,268,256>
59
* Asante MacCon NuBus-A: <4,1,260,256> (alpha-1.0,1.1 revision)
60
* ROM on the above card: <2,1,0,0>
61
* Cabletron ethernet card: <4,1,1,265>
62
* Farallon ethernet card: <4,1,268,256> (identical to Sonic Systems card)
63
* Kinetics EtherPort IIN: <4,1,259,262>
64
* API Engineering EtherRun_LCa PDS enet card: <4,1,282,256>
65
*
66
* Add your devices to the list! You can obtain the "Slots" utility
67
* from Apple's FTP site at:
68
* ftp://dev.apple.com/devworld/Tool_Chest/Devices_-_Hardware/NuBus_Slot_Manager/
69
*
70
* Alternately, TattleTech can be found at any Info-Mac mirror site.
71
* or from its distribution site: ftp://ftp.decismkr.com/dms
72
*/
73
74
/* DrSW: Uniquely identifies the software interface to a board. This
75
is usually the one you want to look at when writing a driver. It's
76
not as useful as you think, though, because as we should know by
77
now (duh), "Apple Compatible" can mean a lot of things... */
78
79
/* Add known DrSW values here */
80
enum
nubus_drsw
{
81
/* NUBUS_CAT_DISPLAY */
82
NUBUS_DRSW_APPLE
= 0x0001,
83
NUBUS_DRSW_APPLE_HIRES
= 0x0013,
/* MacII HiRes card driver */
84
85
/* NUBUS_CAT_NETWORK */
86
NUBUS_DRSW_3COM
= 0x0000,
87
NUBUS_DRSW_CABLETRON
= 0x0001,
88
NUBUS_DRSW_SONIC_LC
= 0x0001,
89
NUBUS_DRSW_KINETICS
= 0x0103,
90
NUBUS_DRSW_ASANTE
= 0x0104,
91
NUBUS_DRSW_TECHWORKS
= 0x0109,
92
NUBUS_DRSW_DAYNA
= 0x010b,
93
NUBUS_DRSW_FARALLON
= 0x010c,
94
NUBUS_DRSW_APPLE_SN
= 0x010f,
95
NUBUS_DRSW_DAYNA2
= 0x0115,
96
NUBUS_DRSW_FOCUS
= 0x011a,
97
NUBUS_DRSW_ASANTE_CS
= 0x011d,
/* use asante SMC9194 driver */
98
NUBUS_DRSW_DAYNA_LC
= 0x011e,
99
100
/* NUBUS_CAT_CPU */
101
NUBUS_DRSW_NONE
= 0x0000,
102
};
103
104
/* DrHW: Uniquely identifies the hardware interface to a board (or at
105
least, it should... some video cards are known to incorrectly
106
identify themselves as Toby cards) */
107
108
/* Add known DrHW values here */
109
enum
nubus_drhw
{
110
/* NUBUS_CAT_DISPLAY */
111
NUBUS_DRHW_APPLE_TFB
= 0x0001,
/* Toby frame buffer card */
112
NUBUS_DRHW_APPLE_WVC
= 0x0006,
/* Apple Workstation Video Card */
113
NUBUS_DRHW_SIGMA_CLRMAX
= 0x0007,
/* Sigma Design ColorMax */
114
NUBUS_DRHW_APPLE_SE30
= 0x0009,
/* Apple SE/30 video */
115
NUBUS_DRHW_APPLE_HRVC
= 0x0013,
/* Mac II High-Res Video Card */
116
NUBUS_DRHW_APPLE_PVC
= 0x0017,
/* Mac II Portrait Video Card */
117
NUBUS_DRHW_APPLE_RBV1
= 0x0018,
/* IIci RBV video */
118
NUBUS_DRHW_APPLE_MDC
= 0x0019,
/* Macintosh Display Card */
119
NUBUS_DRHW_APPLE_SONORA
= 0x0022,
/* Sonora built-in video */
120
NUBUS_DRHW_APPLE_24AC
= 0x002b,
/* Mac 24AC Video Card */
121
NUBUS_DRHW_APPLE_VALKYRIE
= 0x002e,
122
NUBUS_DRHW_APPLE_JET
= 0x0029,
/* Jet framebuffer (DuoDock) */
123
NUBUS_DRHW_SMAC_GFX
= 0x0105,
/* SuperMac GFX */
124
NUBUS_DRHW_RASTER_CB264
= 0x013B,
/* RasterOps ColorBoard 264 */
125
NUBUS_DRHW_MICRON_XCEED
= 0x0146,
/* Micron Exceed color */
126
NUBUS_DRHW_RDIUS_GSC
= 0x0153,
/* Radius GS/C */
127
NUBUS_DRHW_SMAC_SPEC8
= 0x017B,
/* SuperMac Spectrum/8 */
128
NUBUS_DRHW_SMAC_SPEC24
= 0x017C,
/* SuperMac Spectrum/24 */
129
NUBUS_DRHW_RASTER_CB364
= 0x026F,
/* RasterOps ColorBoard 364 */
130
NUBUS_DRHW_RDIUS_DCGX
= 0x027C,
/* Radius DirectColor/GX */
131
NUBUS_DRHW_RDIUS_PC8
= 0x0291,
/* Radius PrecisionColor 8 */
132
NUBUS_DRHW_LAPIS_PCS8
= 0x0292,
/* Lapis ProColorServer 8 */
133
NUBUS_DRHW_RASTER_24XLI
= 0x02A0,
/* RasterOps 8/24 XLi */
134
NUBUS_DRHW_RASTER_PBPGT
= 0x02A5,
/* RasterOps PaintBoard Prism GT */
135
NUBUS_DRHW_EMACH_FSX
= 0x02AE,
/* E-Machines Futura SX */
136
NUBUS_DRHW_RASTER_24XLTV
= 0x02B7,
/* RasterOps 24XLTV */
137
NUBUS_DRHW_SMAC_THUND24
= 0x02CB,
/* SuperMac Thunder/24 */
138
NUBUS_DRHW_SMAC_THUNDLGHT
= 0x03D9,
/* SuperMac ThunderLight */
139
NUBUS_DRHW_RDIUS_PC24XP
= 0x0406,
/* Radius PrecisionColor 24Xp */
140
NUBUS_DRHW_RDIUS_PC24X
= 0x040A,
/* Radius PrecisionColor 24X */
141
NUBUS_DRHW_RDIUS_PC8XJ
= 0x040B,
/* Radius PrecisionColor 8XJ */
142
143
/* NUBUS_CAT_NETWORK */
144
NUBUS_DRHW_INTERLAN
= 0x0100,
145
NUBUS_DRHW_SMC9194
= 0x0101,
146
NUBUS_DRHW_KINETICS
= 0x0106,
147
NUBUS_DRHW_CABLETRON
= 0x0109,
148
NUBUS_DRHW_ASANTE_LC
= 0x010f,
149
NUBUS_DRHW_SONIC
= 0x0110,
150
NUBUS_DRHW_TECHWORKS
= 0x0112,
151
NUBUS_DRHW_APPLE_SONIC_NB
= 0x0118,
152
NUBUS_DRHW_APPLE_SONIC_LC
= 0x0119,
153
NUBUS_DRHW_FOCUS
= 0x011c,
154
NUBUS_DRHW_SONNET
= 0x011d,
155
};
156
157
/* Resource IDs: These are the identifiers for the various weird and
158
wonderful tidbits of information that may or may not reside in the
159
NuBus ROM directory. */
160
enum
nubus_res_id
{
161
NUBUS_RESID_TYPE
= 0x0001,
162
NUBUS_RESID_NAME
= 0x0002,
163
NUBUS_RESID_ICON
= 0x0003,
164
NUBUS_RESID_DRVRDIR
= 0x0004,
165
NUBUS_RESID_LOADREC
= 0x0005,
166
NUBUS_RESID_BOOTREC
= 0x0006,
167
NUBUS_RESID_FLAGS
= 0x0007,
168
NUBUS_RESID_HWDEVID
= 0x0008,
169
NUBUS_RESID_MINOR_BASEOS
= 0x000a,
170
NUBUS_RESID_MINOR_LENGTH
= 0x000b,
171
NUBUS_RESID_MAJOR_BASEOS
= 0x000c,
172
NUBUS_RESID_MAJOR_LENGTH
= 0x000d,
173
NUBUS_RESID_CICN
= 0x000f,
174
NUBUS_RESID_ICL8
= 0x0010,
175
NUBUS_RESID_ICL4
= 0x0011,
176
};
177
178
/* Category-specific resources. */
179
enum
nubus_board_res_id
{
180
NUBUS_RESID_BOARDID
= 0x0020,
181
NUBUS_RESID_PRAMINITDATA
= 0x0021,
182
NUBUS_RESID_PRIMARYINIT
= 0x0022,
183
NUBUS_RESID_TIMEOUTCONST
= 0x0023,
184
NUBUS_RESID_VENDORINFO
= 0x0024,
185
NUBUS_RESID_BOARDFLAGS
= 0x0025,
186
NUBUS_RESID_SECONDINIT
= 0x0026,
187
188
/* Not sure why Apple put these next two in here */
189
NUBUS_RESID_VIDNAMES
= 0x0041,
190
NUBUS_RESID_VIDMODES
= 0x007e
191
};
192
193
/* Fields within the vendor info directory */
194
enum
nubus_vendor_res_id
{
195
NUBUS_RESID_VEND_ID
= 0x0001,
196
NUBUS_RESID_VEND_SERIAL
= 0x0002,
197
NUBUS_RESID_VEND_REV
= 0x0003,
198
NUBUS_RESID_VEND_PART
= 0x0004,
199
NUBUS_RESID_VEND_DATE
= 0x0005
200
};
201
202
enum
nubus_net_res_id
{
203
NUBUS_RESID_MAC_ADDRESS
= 0x0080
204
};
205
206
enum
nubus_cpu_res_id
{
207
NUBUS_RESID_MEMINFO
= 0x0081,
208
NUBUS_RESID_ROMINFO
= 0x0082
209
};
210
211
enum
nubus_display_res_id
{
212
NUBUS_RESID_GAMMADIR
= 0x0040,
213
NUBUS_RESID_FIRSTMODE
= 0x0080,
214
NUBUS_RESID_SECONDMODE
= 0x0081,
215
NUBUS_RESID_THIRDMODE
= 0x0082,
216
NUBUS_RESID_FOURTHMODE
= 0x0083,
217
NUBUS_RESID_FIFTHMODE
= 0x0084,
218
NUBUS_RESID_SIXTHMODE
= 0x0085
219
};
220
221
struct
nubus_dir
222
{
223
unsigned
char
*
base
;
224
unsigned
char
*
ptr
;
225
int
done
;
226
int
mask
;
227
};
228
229
struct
nubus_dirent
230
{
231
unsigned
char
*
base
;
232
unsigned
char
type
;
233
__u32
data
;
/* Actually 24bits used */
234
int
mask
;
235
};
236
237
238
/* We'd like to get rid of this eventually. Only daynaport.c uses it now. */
239
static
inline
void
*nubus_slot_addr(
int
slot
)
240
{
241
return
(
void
*)(0xF0000000|(slot<<24));
242
}
243
244
#endif
/* _UAPILINUX_NUBUS_H */
Generated on Thu Jan 10 2013 13:08:07 for Linux Kernel by
1.8.2