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

Subversion Repositories or1k

[/] [or1k/] [tags/] [before_ORP/] [uclinux/] [uClinux-2.0.x/] [include/] [asm-m68k/] [zorro.h] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 199 simons
/*
2
 * asm-m68k/zorro.h -- Amiga AutoConfig (Zorro) Expansion Device Definitions
3
 *
4
 * Copyright (C) 1995 Geert Uytterhoeven
5
 *
6
 * This file is subject to the terms and conditions of the GNU General Public
7
 * License.  See the file COPYING in the main directory of this archive
8
 * for more details.
9
 */
10
 
11
#ifndef _ASM_M68K_ZORRO_H_
12
#define _ASM_M68K_ZORRO_H_
13
 
14
#ifndef __ASSEMBLY__
15
 
16
#include <linux/config.h>
17
#include <asm/amigatypes.h>
18
 
19
 
20
/*
21
 * Defined Board Manufacturers
22
 *
23
 * Please update arch/m68k/amiga/zorro.c if you make changes here
24
 * Many IDs were obtained by using ExpName V1.4 ((C) Richard Körber)
25
 * and by looking at the NetBSD-Amiga kernel source
26
 */
27
 
28
#define MANUF_MEMPHIS          (0x0100) /* Memphis */
29
#define PROD_STORMBRINGER      (0x00)   /* Stormbringer */
30
 
31
#define MANUF_COMMODORE2       (0x0201) /* Commodore Germany */
32
#define PROD_A2088             (0x01)   /* CBM A2088 Bridgeboard */
33
#define PROD_A2386SX           (0x67)   /* CBM A2386-SX Bridgeboard */
34
 
35
#define MANUF_COMMODORE        (0x0202) /* Commodore USA */
36
#define PROD_A2090A            (0x01)   /* CBM A2090/A2090A HD Controller */
37
#define PROD_A590              (0x02)   /* CBM A590 SCSI Controller */
38
#define PROD_A2091             (0x03)   /* CBM A2091 SCSI Controller */
39
#define PROD_A2090B            (0x04)   /* CBM A2090B 2090 Autoboot Card */
40
#define PROD_ARCNET            (0x09)   /* CBM A2060 Arcnet Card */
41
#define PROD_CBMRAM            (0x0A)   /* CBM A2052/58.RAM | 590/2091.RAM */
42
#define PROD_A560RAM           (0x20)   /* CBM A560 Memory Module */
43
#define PROD_A2232PROTO        (0x45)   /* CBM A2232 Serial Prototype */
44
#define PROD_A2232             (0x46)   /* CBM A2232 Serial Production */
45
#define PROD_A2620             (0x50)   /* CBM A2620 68020/RAM Card */
46
#define PROD_A2630             (0x51)   /* CBM A2630 68030/RAM Card */
47
#define PROD_A4091             (0x54)   /* CBM A4091 SCSI Controller */
48
#define PROD_ROMULATOR         (0x60)   /* CBM Romulator Card */
49
#define PROD_A3000TESTFIX      (0x61)   /* CBM A3000 Test Fixture */
50
#define PROD_A2065             (0x70)   /* CBM A2065 Ethernet Card */
51
 
52
#define MANUF_CARDCO           (0x03EC) /* Cardco */
53
#define PROD_CC_A2410          (0xF5)   /* Cardco A2410 Hires Graphics Card */
54
 
55
#define MANUF_MICROBOTICS      (0x03F2) /* MicroBotics */
56
#define PROD_VXL_30            (0x45)   /* VXL-30 Turbo Board */
57
 
58
#define MANUF_ASDG             (0x03FF) /* ASDG */
59
#define PROD_LAN_ROVER         (0xFE)   /* Lan Rover Ethernet */
60
#define PROD_ASDG_DUAL_SERIAL  (0xFF)   /* Dual Serial Card */
61
 
62
#define MANUF_UNIV_OF_LOWELL   (0x0406) /* University of Lowell */
63
#define PROD_A2410             (0x00)   /* CBM A2410 Hires Graphics Card */
64
 
65
#define MANUF_AMERISTAR        (0x041D) /* Ameristar */
66
#define PROD_AMERISTAR2065     (0x01)   /* A2065 Ethernet Card */
67
#define PROD_A560              (0x09)   /* Arcnet Card */
68
#define PROD_A4066             (0x0A)   /* A4066 Ethernet Card */
69
 
70
#define MANUF_SUPRA            (0x0420) /* Supra */
71
#define PROD_WORDSYNC          (0x0C)   /* Supra Wordsync SCSI Controller */
72
#define PROD_WORDSYNC_II       (0x0D)   /* Supra Wordsync II SCSI Controller */
73
#define PROD_SUPRA_2400MODEM   (0x10)   /* Supra 2400 Modem */
74
 
75
#define MANUF_CSA              (0x0422) /* CSA */
76
#define PROD_MAGNUM            (0x11)   /* Magnum 40 SCSI Controller */
77
#define PROD_12GAUGE           (0x15)   /* 12 Gauge SCSI Controller */
78
 
79
#define MANUF_HACKER           (0x07DB) /* Test only: no product definitions */
80
 
81
#define MANUF_POWER_COMPUTING  (0x07DC) /* Power Computing */
82
#define PROD_DKB_1240          (0x12)   /* Viper II Turbo Board (DKB 1240) */
83
 
84
#define MANUF_GVP              (0x07E1) /* Great Valley Products */
85
#define PROD_GVPIISCSI         (0x0B)   /* GVP Series II SCSI Controller */
86
#define PROD_GVPIISCSI_2       (0x09)   /* evidence that the driver works
87
                                           for this product code also */
88
#define PROD_GVPIIRAM          (0x0A)   /* GVP Series II RAM */
89
#define PROD_GVP               (0x0B)   /* This code is used by a wide range of
90
                                           GVP products - use the epc to
91
                                           identify it correctly */
92
#define PROD_GVP_A2000_030     (0x0D)   /* GVP A2000 68030 Turbo Board */
93
#define PROD_GFORCE_040_SCSI   (0x16)   /* GForce 040 with SCSI (new) */
94
#define PROD_GVPIV_24          (0x20)   /* GVP IV-24 Graphics Board */
95
/* #define PROD_GVPIO_EXT      (0xFF)*/ /* GVP I/O Extender */
96
 
97
#define MANUF_PPI              (0x07EA) /* Progressive Peripherals Inc. */
98
#define PROD_MERCURY           (0x00)   /* Mercury Turbo Board */
99
#define PROD_PPS_A3000_040     (0x01)   /* PP&S A3000 68040 Turbo Board */
100
#define PROD_PPS_A2000_040     (0x69)   /* PP&S A2000 68040 Turbo Board */
101
#define PROD_ZEUS              (0x96)   /* Zeus SCSI Controller */
102
#define PROD_PPS_A500_040      (0xBB)   /* PP&S A500 68040 Turbo Board */
103
 
104
#define MANUF_BSC              (0x07FE) /* BSC */
105
#define PROD_ALF_3_SCSI        (0x03)   /* BSC ALF 3 SCSI Controller */
106
 
107
#define MANUF_C_LTD            (0x0802) /* C Ltd. */
108
#define PROD_KRONOS_SCSI       (0x04)   /* Kronos SCSI Controller */
109
 
110
#define MANUF_JOCHHEIM         (0x0804) /* Jochheim */
111
#define PROD_JOCHHEIM_RAM      (0x01)   /* Jochheim RAM */
112
 
113
#define MANUF_CHECKPOINT       (0x0807) /* Checkpoint Technologies */
114
#define PROD_SERIAL_SOLUTION   (0x00)   /* Serial Solution */
115
 
116
#define MANUF_GOLEM            (0x0819) /* Golem */
117
#define PROD_GOLEM_SCSI_II     (0x02)   /* Golem SCSI-II Controller */
118
 
119
#define MANUF_HARDITAL_SYNTHES (0x0817) /* Hardital Synthesis */
120
#define PROD_HARDITAL_SCSI     (0x01)   /* Hardital Synthesis SCSI Controller */
121
 
122
#define MANUF_HARDITAL2        (0x0820) /* Hardital Synthesis */
123
#define PROD_TQM               (0x14)   /* TQM 68030+68882 Turbo Board */
124
 
125
#define MANUF_BSC2             (0x082C) /* BSC */
126
#define PROD_OKTAGON_SCSI      (0x05)   /* BSC Oktagon 2008 SCSI Controller */
127
#define PROD_TANDEM            (0x06)   /* BSC Tandem */
128
#define PROD_OKTAGON_RAM       (0x08)   /* BSC Oktagon 2008 RAM */
129
#define PROD_MULTIFACE_I       (0x10)   /* Alfa Data MultiFace I */
130
#define PROD_MULTIFACE_II      (0x11)   /* Alfa Data MultiFace II */
131
#define PROD_MULTIFACE_III     (0x12)   /* Alfa Data MultiFace III */
132
#define PROD_ISDN_MASTER       (0x40)   /* BSC ISDN Master */
133
 
134
#define MANUF_ADV_SYS_SOFT     (0x0836) /* Advanced Systems & Software */
135
#define PROD_NEXUS_SCSI        (0x01)   /* Nexus SCSI Controller */
136
#define PROD_NEXUS_RAM         (0x08)   /* Nexus RAM */
137
 
138
#define MANUF_IVS              (0x0840) /* IVS */
139
#define PROD_TRUMPCARD_500     (0x30)   /* Trumpcard 500 SCSI Controller */
140
#define PROD_TRUMPCARD         (0x34)   /* Trumpcard SCSI Controller */
141
#define PROD_VECTOR            (0xF3)   /* Vector SCSI Controller */
142
 
143
#define MANUF_XPERT_PRODEV     (0x0845) /* XPert/ProDev */
144
#define PROD_MERLIN_RAM        (0x03)   /* Merlin Graphics Board */
145
#define PROD_MERLIN_REG        (0x04)
146
 
147
#define MANUF_HYDRA_SYSTEMS    (0x0849) /* Hydra Systems */
148
#define PROD_AMIGANET          (0x01)   /* Amiganet Board */
149
 
150
#define MANUF_DIG_MICRONICS    (0x0851) /* Digital Micronics Inc */
151
#define PROD_DMI_RESOLVER      (0x01)   /* DMI Resolver Graphics Board */
152
 
153
#define MANUF_HELFRICH1        (0x0861) /* Helfrich */
154
#define PROD_RAINBOW3          (0x21)   /* Rainbow3 Graphics Board */
155
 
156
#define MANUF_SW_RESULT_ENTS   (0x0866) /* Software Result Enterprises */
157
#define PROD_GG2PLUS           (0x01)   /* GG2+ Bus Converter */
158
 
159
#define MANUF_VILLAGE_TRONIC   (0x0877) /* Village Tronic */
160
#define PROD_PICASSO_II_RAM    (0x0B)   /* Picasso II Graphics Board */
161
#define PROD_PICASSO_II_REG    (0x0C)
162
#define PROD_ARIADNE           (0xC9)   /* Ariadne Ethernet */
163
 
164
#define MANUF_UTILITIES_ULTD   (0x087B) /* Utilities Unlimited */
165
#define PROD_EMPLANT_DELUXE    (0x15)   /* Emplant Deluxe SCSI Controller */
166
#define PROD_EMPLANT_DELUXE2   (0x20)   /* Emplant Deluxe SCSI Controller */
167
 
168
#define MANUF_MTEC             (0x0890) /* MTEC Germany */
169
#define PROD_MTEC_68030        (0x03)   /* 68030 Turbo Board */
170
#define PROD_MTEC_T1230        (0x20)   /* MTEC T1230/28 Turbo Board */
171
 
172
#define MANUF_GVP2             (0x0891) /* Great Valley Products */
173
#define PROD_SPECTRUM_RAM      (0x01)   /* GVP Spectrum Graphics Board */
174
#define PROD_SPECTRUM_REG      (0x02)
175
 
176
#define MANUF_HELFRICH2        (0x0893) /* Helfrich */
177
#define PROD_PICCOLO_RAM       (0x05)   /* Piccolo Graphics Board */
178
#define PROD_PICCOLO_REG       (0x06)
179
#define PROD_PEGGY_PLUS        (0x07)   /* PeggyPlus MPEG Decoder Board */
180
#define PROD_SD64_RAM          (0x0A)   /* SD64 Graphics Board */
181
#define PROD_SD64_REG          (0x0B)
182
 
183
#define MANUF_MACROSYSTEMS     (0x089B) /* MacroSystems USA */
184
#define PROD_WARP_ENGINE       (0x13)   /* Warp Engine SCSI Controller */
185
 
186
#define MANUF_HARMS_PROF       (0x0A00) /* Harms Professional */
187
#define PROD_3500_TURBO        (0xD0)   /* 3500 Turbo board */
188
 
189
#define MANUF_VORTEX           (0x2017) /* Vortex */
190
#define PROD_GOLDEN_GATE_386   (0x07)   /* Golden Gate 80386 Board */
191
#define PROD_GOLDEN_GATE_RAM   (0x08)   /* Golden Gate RAM */
192
#define PROD_GOLDEN_GATE_486   (0x09)   /* Golden Gate 80486 Board */
193
 
194
#define MANUF_DATAFLYER        (0x2062) /* DataFlyer */
195
#define PROD_DATAFLYER_4000SX  (0x01)   /* DataFlyer 4000SX SCSI Controller */
196
 
197
#define MANUF_PHASE5           (0x2140) /* Phase5 */
198
#define PROD_FASTLANE_RAM      (0x0A)   /* FastLane RAM */
199
#define PROD_FASTLANE_SCSI     (0x0B)   /* FastLane/Blizzard 1230-II SCSI */
200
#define PROD_CYBERSTORM_SCSI   (0x0C)   /* CyberStorm Fast SCSI-II Controller */
201
#define PROD_BLIZZARD_1230_III (0x0D)   /* Blizzard 1230-III Turbo Board */
202
#define PROD_BLIZZARD_1230_IV  (0x11)   /* Blizzard 1230-IV Turbo Board */
203
#define PROD_CYBERVISION       (0x22)   /* CyberVision64 Graphics Board */
204
 
205
#define MANUF_APOLLO           (0x2222) /* Apollo */
206
#define PROD_AT_APOLLO         (0x22)   /* AT-Apollo */
207
#define PROD_APOLLO_TURBO      (0x23)   /* Apollo Turbo Board */
208
 
209
#define MANUF_UWE_GERLACH      (0x3FF7) /* Uwe Gerlach */
210
#define PROD_UG_RAM_ROM        (0xd4)   /* RAM/ROM */
211
 
212
#define MANUF_MACROSYSTEMS2    (0x4754) /* MacroSystems Germany */
213
#define PROD_MAESTRO           (0x03)   /* Maestro */
214
#define PROD_VLAB              (0x04)   /* VLab */
215
#define PROD_MAESTRO_PRO       (0x05)   /* Maestro Pro */
216
#define PROD_RETINA_Z2         (0x06)   /* Retina Z2 Graphics Board */
217
#define PROD_MULTI_EVOLUTION   (0x08)   /* MultiEvolution */
218
#define PROD_RETINA_Z3         (0x10)   /* Retina Z3 Graphics Board */
219
#define PROD_FALCON_040        (0xFD)   /* Falcon '040 Turbo Board */
220
 
221
 
222
/* Illegal Manufacturer IDs. These do NOT appear in amiga/zorro.c! */
223
 
224
#define MANUF_HACKER_INC       (0x07DB) /* Hacker Inc. */
225
#define PROD_HACKER_SCSI       (0x01)   /* Hacker Inc. SCSI Controller */
226
 
227
#define MANUF_RES_MNGT_FORCE   (0x07DB) /* Resource Management Force */
228
#define PROD_QUICKNET          (0x02)   /* QuickNet Ethernet */
229
 
230
 
231
/*
232
 * GVP's identifies most of their product through the 'extended
233
 * product code' (epc). The epc has to be and'ed with the GVPEPCMASK
234
 * before the identification.
235
 */
236
 
237
#define GVP_EPCMASK (0xf8)
238
 
239
enum GVP_ident {
240
  GVP_GFORCE_040      = 0x20,
241
  GVP_GFORCE_040_SCSI = 0x30,
242
  GVP_A1291_SCSI      = 0x40,
243
  GVP_COMBO_R4        = 0x60,
244
  GVP_COMBO_R4_SCSI   = 0x70,
245
  GVP_PHONEPAK        = 0x78,
246
  GVP_IOEXT           = 0x98,
247
  GVP_GFORCE_030      = 0xa0,
248
  GVP_GFORCE_030_SCSI = 0xb0,
249
  GVP_A530            = 0xc0,
250
  GVP_A530_SCSI       = 0xd0,
251
  GVP_COMBO_R3        = 0xe0,
252
  GVP_COMBO_R3_SCSI   = 0xf0,
253
  GVP_SERIESII        = 0xf8,
254
};
255
 
256
enum GVP_flags {
257
  GVP_IO       = 0x01,
258
  GVP_ACCEL    = 0x02,
259
  GVP_SCSI     = 0x04,
260
  GVP_24BITDMA = 0x08,
261
  GVP_25BITDMA = 0x10,
262
  GVP_NOBANK   = 0x20,
263
  GVP_14MHZ    = 0x40,
264
};
265
 
266
 
267
struct Node {
268
    struct  Node *ln_Succ;      /* Pointer to next (successor) */
269
    struct  Node *ln_Pred;      /* Pointer to previous (predecessor) */
270
    u_char  ln_Type;
271
    char    ln_Pri;             /* Priority, for sorting */
272
    char    *ln_Name;           /* ID string, null terminated */
273
};
274
 
275
struct ExpansionRom {
276
    /* -First 16 bytes of the expansion ROM */
277
    u_char      er_Type;        /* Board type, size and flags */
278
    u_char      er_Product;     /* Product number, assigned by manufacturer */
279
    u_char      er_Flags;       /* Flags */
280
    u_char      er_Reserved03;  /* Must be zero ($ff inverted) */
281
    u_short     er_Manufacturer; /* Unique ID,ASSIGNED BY COMMODORE-AMIGA! */
282
    u_long      er_SerialNumber; /* Available for use by manufacturer */
283
    u_short     er_InitDiagVec; /* Offset to optional "DiagArea" structure */
284
    u_char      er_Reserved0c;
285
    u_char      er_Reserved0d;
286
    u_char      er_Reserved0e;
287
    u_char      er_Reserved0f;
288
};
289
 
290
/* er_Type board type bits */
291
#define ERT_TYPEMASK    0xc0
292
#define ERT_ZORROII     0xc0
293
#define ERT_ZORROIII    0x80
294
 
295
/* other bits defined in er_Type */
296
#define ERTB_MEMLIST    5               /* Link RAM into free memory list */
297
#define ERTF_MEMLIST    (1<<5)
298
 
299
struct ConfigDev {
300
    struct Node         cd_Node;
301
    u_char              cd_Flags;       /* (read/write) */
302
    u_char              cd_Pad;         /* reserved */
303
    struct ExpansionRom cd_Rom;         /* copy of board's expansion ROM */
304
    void                *cd_BoardAddr;  /* where in memory the board was placed */
305
    u_long              cd_BoardSize;   /* size of board in bytes */
306
    u_short             cd_SlotAddr;    /* which slot number (PRIVATE) */
307
    u_short             cd_SlotSize;    /* number of slots (PRIVATE) */
308
    void                *cd_Driver;     /* pointer to node of driver */
309
    struct ConfigDev    *cd_NextCD;     /* linked list of drivers to config */
310
    u_long              cd_Unused[4];   /* for whatever the driver wants */
311
};
312
 
313
#else   /* __ASSEMBLY__ */
314
 
315
LN_Succ         = 0
316
LN_Pred         = LN_Succ+4
317
LN_Type         = LN_Pred+4
318
LN_Pri          = LN_Type+1
319
LN_Name         = LN_Pri+1
320
LN_sizeof       = LN_Name+4
321
 
322
ER_Type         = 0
323
ER_Product      = ER_Type+1
324
ER_Flags        = ER_Product+1
325
ER_Reserved03   = ER_Flags+1
326
ER_Manufacturer = ER_Reserved03+1
327
ER_SerialNumber = ER_Manufacturer+2
328
ER_InitDiagVec  = ER_SerialNumber+4
329
ER_Reserved0c   = ER_InitDiagVec+2
330
ER_Reserved0d   = ER_Reserved0c+1
331
ER_Reserved0e   = ER_Reserved0d+1
332
ER_Reserved0f   = ER_Reserved0e+1
333
ER_sizeof       = ER_Reserved0f+1
334
 
335
CD_Node         = 0
336
CD_Flags        = CD_Node+LN_sizeof
337
CD_Pad          = CD_Flags+1
338
CD_Rom          = CD_Pad+1
339
CD_BoardAddr    = CD_Rom+ER_sizeof
340
CD_BoardSize    = CD_BoardAddr+4
341
CD_SlotAddr     = CD_BoardSize+4
342
CD_SlotSize     = CD_SlotAddr+2
343
CD_Driver       = CD_SlotSize+2
344
CD_NextCD       = CD_Driver+4
345
CD_Unused       = CD_NextCD+4
346
CD_sizeof       = CD_Unused+(4*4)
347
 
348
#endif  /* __ASSEMBLY__ */
349
 
350
#ifndef __ASSEMBLY__
351
 
352
/*
353
 * Zorro Functions
354
 */
355
 
356
extern int zorro_find(int manuf, int prod, int part, int index);
357
extern struct ConfigDev *zorro_get_board(int key);
358
extern void zorro_config_board(int key, int part);
359
extern void zorro_unconfig_board(int key, int part);
360
 
361
 
362
/*
363
 * Bitmask indicating portions of available Zorro II RAM that are unused
364
 * by the system. Every bit represents a 64K chunk, for a maximum of 8MB
365
 * (128 chunks, physical 0x00200000-0x009fffff).
366
 *
367
 * If you want to use (= allocate) portions of this RAM, you should clear
368
 * the corresponding bits.
369
 */
370
 
371
extern u_long zorro_unused_z2ram[4];
372
 
373
#define Z2RAM_START             (0x00200000)
374
#define Z2RAM_END               (0x00a00000)
375
#define Z2RAM_SIZE              (0x00800000)
376
#define Z2RAM_CHUNKSIZE         (0x00010000)
377
#define Z2RAM_CHUNKMASK         (0x0000ffff)
378
#define Z2RAM_CHUNKSHIFT        (16)
379
 
380
 
381
/*
382
 * Verbose Board Identification
383
 */
384
 
385
#ifdef CONFIG_ZORRO
386
extern void zorro_identify(void);
387
extern int zorro_get_list(char *buffer);
388
#endif CONFIG_ZORRO
389
 
390
#endif  /* __ASSEMBLY__ */
391
 
392
#endif /* _ASM_M68K_ZORRO_H_ */

powered by: WebSVN 2.1.0

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