Linux Audio

Check our new training course

Embedded Linux Audio

Check our new training course
with Creative Commons CC-BY-SA
lecture materials

Bootlin logo

Elixir Cross Referencer

Loading...
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
/*
 * asm-m68k/zorro.h -- Amiga AutoConfig (Zorro) Expansion Device Definitions
 *
 * Copyright (C) 1995 Geert Uytterhoeven
 *
 * This file is subject to the terms and conditions of the GNU General Public
 * License.  See the file COPYING in the main directory of this archive
 * for more details.
 */

#ifndef _M68K_ZORRO_H
#define _M68K_ZORRO_H

#ifndef __ASSEMBLY__

/*
 * Defined Board Manufacturers
 *
 * Please update arch/m68k/amiga/zorro.c if you make changes here
 * Many IDs were obtained from ExpName/Identify ((C) Richard Körber)
 * and by looking at the NetBSD-Amiga kernel sources
 */

#define MANUF_PACIFIC          (0x00D3)	/* Pacific Peripherals */
#define PROD_SE_2000_A500      (0x00)	/* SE 2000 A500 */
#define PROD_PACIFIC_HD        (0x0A)	/* HD Controller */

#define MANUF_KUPKE            (0x00DD)	/* Kupke */
#define PROD_GOLEM_BOX_2       (0x00)	/* Golem RAM Box 2MB */

#define MANUF_MEMPHIS          (0x0100)	/* Memphis */
#define PROD_STORMBRINGER      (0x00)	/* Stormbringer */

#define MANUF_COMMODORE2       (0x0201)	/* Commodore Braunschweig */
#define PROD_A2088             (0x01)	/* CBM A2088 XT Bridgeboard */
#define PROD_A2286             (0x02)	/* CBM A2286 AT Bridgeboard */
#define PROD_A4091_2           (0x54)	/* CBM A4091 SCSI Controller */
#define PROD_A2386SX           (0x67)	/* CBM A2386-SX Bridgeboard */

#define MANUF_COMMODORE        (0x0202)	/* Commodore West Chester */
#define PROD_A2090A            (0x01)	/* CBM A2090/A2090A HD Controller */
#define PROD_A590              (0x02)	/* CBM A590 SCSI Controller */
#define PROD_A2091             (0x03)	/* CBM A2091 SCSI Controller */
#define PROD_A2090B            (0x04)	/* CBM A2090B 2090 Autoboot Card */
#define PROD_ARCNET            (0x09)	/* CBM A2060 Arcnet Card */
#define PROD_CBMRAM            (0x0A)	/* CBM A2052/58.RAM | 590/2091.RAM */
#define PROD_A560RAM           (0x20)	/* CBM A560 Memory Module */
#define PROD_A2232PROTO        (0x45)	/* CBM A2232 Serial Prototype */
#define PROD_A2232             (0x46)	/* CBM A2232 Serial Production */
#define PROD_A2620             (0x50)	/* CBM A2620 68020/RAM Card */
#define PROD_A2630             (0x51)	/* CBM A2630 68030/RAM Card */
#define PROD_A4091             (0x54)	/* CBM A4091 SCSI Controller */
#define PROD_A2065_2           (0x5A)	/* A2065 Ethernet Card */
#define PROD_ROMULATOR         (0x60)	/* CBM Romulator Card */
#define PROD_A3000TESTFIX      (0x61)	/* CBM A3000 Test Fixture */
#define PROD_A2386SX_2         (0x67)	/* A2386-SX Bridgeboard */
#define PROD_A2065             (0x70)	/* CBM A2065 Ethernet Card */

#define MANUF_COMMODORE3       (0x0203)	/* Commodore West Chester */
#define PROD_A2090A_CM         (0x03)	/* A2090A Combitec/MacroSystem */

#define MANUF_KCS              (0x02FF)	/* Kolff Computer Supplies */
#define PROD_POWER_BOARD       (0x00)	/* KCS Power PC Board */

#define MANUF_CARDCO           (0x03EC)	/* Cardco */
#define PROD_KRONOS_2000_SCSI  (0x04)	/* Kronos 2000 SCSI Controller */
#define PROD_A1000_SCSI        (0x0C)	/* A1000 SCSI Controller */
#define PROD_ESCORT_SCSI       (0x0E)	/* Escort SCSI Controller */
#define PROD_CC_A2410          (0xF5)	/* Cardco A2410 Hires Graphics Card */

#define MANUF_A_SQUARED        (0x03ED)	/* A-Squared */
#define PROD_LIVE_2000         (0x01)	/* Live! 2000 */

#define MANUF_COMSPEC          (0x03EE)	/* ComSpec Communications */
#define PROD_AX2000            (0x01)	/* AX2000 */

#define MANUF_ANAKIN           (0x03F1)	/* Anakin */
#define PROD_EASYL             (0x01)	/* Easyl Tablet */

#define MANUF_MICROBOTICS      (0x03F2)	/* MicroBotics */
#define PROD_STARBOARD_II      (0x00)	/* StarBoard II */
#define PROD_STARDRIVE         (0x02)	/* StarDrive */
#define PROD_8_UP_A            (0x03)	/* 8-Up (Rev A) */
#define PROD_8_UP_Z            (0x04)	/* 8-Up (Rev Z) */
#define PROD_VXL_RAM           (0x44)	/* VXL RAM */
#define PROD_VXL_30            (0x45)	/* VXL-30 Turbo Board */
#define PROD_MBX_1200          (0x81)	/* MBX 1200 */
#define PROD_HARDFRAME_2000    (0x9E)	/* Hardframe 2000 */
#define PROD_MBX_1200_2        (0xC1)	/* MBX 1200 */

#define MANUF_ACCESS           (0x03F4)	/* Access Associates */

#define MANUF_EXPANSION_TECH   (0x03F6)	/* Expansion Technologies */

#define MANUF_ASDG             (0x03FF)	/* ASDG */
#define PROD_ASDG_MEMORY       (0x01)	/* Memory Expansion */
#define PROD_ASDG_MEMORY_2     (0x02)	/* Memory Expansion */
#define PROD_LAN_ROVER         (0xFE)	/* Lan Rover Ethernet */
#define PROD_TWIN_X            (0xFF)	/* Twin-X Serial Card */

#define MANUF_IMTRONICS        (0x0404)	/* Imtronics */
#define PROD_HURRICANE_2800    (0x39)	/* Hurricane 2800 68030 */
#define PROD_HURRICANE_2800_2  (0x57)	/* Hurricane 2800 68030 */

#define MANUF_UNIV_OF_LOWELL   (0x0406)	/* University of Lowell */
#define PROD_A2410             (0x00)	/* CBM A2410 Hires Graphics Card */

#define MANUF_AMERISTAR        (0x041D)	/* Ameristar */
#define PROD_AMERISTAR2065     (0x01)	/* A2065 Ethernet Card */
#define PROD_A560              (0x09)	/* Arcnet Card */
#define PROD_A4066             (0x0A)	/* A4066 Ethernet Card */

#define MANUF_SUPRA            (0x0420)	/* Supra */
#define PROD_SUPRADRIVE_4x4    (0x01)	/* SupraDrive 4x4 SCSI Controller */
#define PROD_SUPRA_2000        (0x03)	/* 2000 DMA HD */
#define PROD_SUPRA_500         (0x05)	/* 500 HD/RAM */
#define PROD_SUPRA_500RX       (0x09)	/* 500RX/2000 RAM */
#define PROD_SUPRA_500RX_2     (0x0A)	/* 500RX/2000 RAM */
#define PROD_SUPRA_2400ZI      (0x0B)	/* 2400zi Modem */
#define PROD_WORDSYNC          (0x0C)	/* Supra Wordsync SCSI Controller */
#define PROD_WORDSYNC_II       (0x0D)	/* Supra Wordsync II SCSI Controller */
#define PROD_SUPRA_2400ZIPLUS  (0x10)	/* 2400zi+ Modem */

#define MANUF_CSA              (0x0422)	/* CSA */
#define PROD_MAGNUM            (0x11)	/* Magnum 40 SCSI Controller */
#define PROD_12GAUGE           (0x15)	/* 12 Gauge SCSI Controller */

#define MANUF_GVP3             (0x06E1)	/* Great Valley Products */
#define PROD_IMPACT            (0x08)	/* Impact SCSI/Memory */

#define MANUF_BYTEBOX          (0x07DA)	/* ByteBox */
#define PROD_BYTEBOX_A500      (0x00)	/* A500 */

#define MANUF_HACKER           (0x07DB)	/* Test only: no product definitions */

#define MANUF_POWER_COMPUTING  (0x07DC)	/* Power Computing (DKB) */
#define PROD_DKB_3128          (0x0E)	/* DKB 3128 RAM */
#define PROD_VIPER_II_COBRA    (0x12)	/* Viper II Turbo Board (DKB Cobra) */

#define MANUF_GVP              (0x07E1)	/* Great Valley Products */
#define PROD_IMPACT_I_4K       (0x01)	/* Impact Series-I SCSI 4K */
#define PROD_IMPACT_I_16K_2    (0x02)	/* Impact Series-I SCSI 16K/2 */
#define PROD_IMPACT_I_16K_3    (0x03)	/* Impact Series-I SCSI 16K/3 */
#define PROD_IMPACT_3001_IDE   (0x08)	/* Impact 3001 IDE */
#define PROD_IMPACT_3001_RAM   (0x09)	/* Impact 3001 RAM */
#define PROD_GVPIISCSI         (0x0B)	/* GVP Series II SCSI Controller */
#define PROD_GVPIISCSI_2       (0x09)	/* evidence that the driver works
					   for this product code also */
#define PROD_GVPIIRAM          (0x0A)	/* GVP Series II RAM */
#define PROD_GVP               (0x0B)	/* This code is used by a wide range of
					   GVP products - use the epc to
					   identify it correctly */
#define PROD_GVP_A2000_030     (0x0D)	/* GVP A2000 68030 Turbo Board */
#define PROD_IMPACT_3001_IDE_2 (0x0D)	/* Impact 3001 IDE */
#define PROD_GFORCE_040_SCSI   (0x16)	/* GForce 040 with SCSI (new) */
#define PROD_GVPIV_24          (0x20)	/* GVP IV-24 Graphics Board */
#define PROD_GFORCE_040        (0xFF)	/* GForce 040 Turbo Board */
/* #define PROD_GVPIO_EXT      (0xFF)*/	/* GVP I/O Extender */

#define MANUF_SYNERGY          (0x07E5)	/* Synergy */

#define MANUF_XETEC            (0x07E6)	/* Xetec */
#define PROD_FASTCARD_SCSI     (0x01)	/* FastCard SCSI Controller */
#define PROD_FASTCARD_RAM      (0x02)	/* FastCard RAM */

#define MANUF_PPI              (0x07EA)	/* Progressive Peripherals Inc. */
#define PROD_MERCURY           (0x00)	/* Mercury Turbo Board */
#define PROD_PPS_A3000_040     (0x01)	/* PP&S A3000 68040 Turbo Board */
#define PROD_PPS_A2000_040     (0x69)	/* PP&S A2000 68040 Turbo Board */
#define PROD_ZEUS              (0x96)	/* Zeus SCSI Controller */
#define PROD_PPS_A500_040      (0xBB)	/* PP&S A500 68040 Turbo Board */

#define MANUF_XEBEC            (0x07EC)	/* Xebec */

#define MANUF_SPIRIT           (0x07F2)	/* Spirit */
#define PROD_HDA_506           (0x04)	/* HDA 506 Harddisk */
#define PROD_OCTABYTE_RAM      (0x06)	/* OctaByte RAM */

#define MANUF_BSC              (0x07FE)	/* BSC */
#define PROD_ALF_3_SCSI        (0x03)	/* BSC ALF 3 SCSI Controller */

#define MANUF_BSC3             (0x0801)	/* BSC */
#define PROD_ALF_2_SCSI        (0x01)	/* ALF 2 SCSI Controller */
#define PROD_ALF_3_SCSI_2      (0x03)	/* ALF 3 SCSI Controller */

#define MANUF_C_LTD            (0x0802)	/* C Ltd. */
#define PROD_KRONOS_SCSI       (0x04)	/* Kronos SCSI Controller */
#define PROD_A1000_SCSI_2      (0x0C)	/* A1000 SCSI Controller */

#define MANUF_JOCHHEIM         (0x0804)	/* Jochheim */
#define PROD_JOCHHEIM_RAM      (0x01)	/* Jochheim RAM */

#define MANUF_CHECKPOINT       (0x0807)	/* Checkpoint Technologies */
#define PROD_SERIAL_SOLUTION   (0x00)	/* Serial Solution */

#define MANUF_ICD              (0x0817)	/* ICD */
#define PROD_ADVANTAGE_2000    (0x01)	/* Advantage 2000 SCSI Controller */

#define MANUF_KUPKE2           (0x0819)	/* Kupke */
#define PROD_KUPKE_SCSI_II     (0x02)	/* Golem SCSI-II Controller */
#define PROD_GOLEM_BOX         (0x03)	/* Golem Box */
#define PROD_KUPKE_SCSI_AT     (0x05)	/* SCSI/AT Controller */

#define MANUF_HARDITAL         (0x0820)	/* Hardital Synthesis */
#define PROD_TQM               (0x14)	/* TQM 68030+68882 Turbo Board */

#define MANUF_BSC2             (0x082C)	/* BSC */
#define PROD_OKTAGON_SCSI      (0x05)	/* BSC Oktagon 2008 SCSI Controller */
#define PROD_TANDEM            (0x06)	/* BSC Tandem AT-2008/508 IDE */
#define PROD_OKTAGON_RAM       (0x08)	/* BSC Oktagon 2008 RAM */
#define PROD_MULTIFACE_I       (0x10)	/* Alfa Data MultiFace I */
#define PROD_MULTIFACE_II      (0x11)	/* Alfa Data MultiFace II */
#define PROD_MULTIFACE_III     (0x12)	/* Alfa Data MultiFace III */
#define PROD_ISDN_MASTERCARD   (0x40)	/* BSC ISDN MasterCard */
#define PROD_ISDN_MASTERCARD_2 (0x41)	/* BSC ISDN MasterCard II */

#define MANUF_ADV_SYS_SOFT     (0x0836)	/* Advanced Systems & Software */
#define PROD_NEXUS_SCSI        (0x01)	/* Nexus SCSI Controller */
#define PROD_NEXUS_RAM         (0x08)	/* Nexus RAM */

#define MANUF_IMPULSE          (0x0838)	/* Impulse */
#define PROD_FIRECRACKER_24    (0x00)	/* FireCracker 24 */

#define MANUF_IVS              (0x0840)	/* IVS */
#define PROD_GRANDSLAM         (0x04)	/* GrandSlam RAM */
#define PROD_IVS_OVERDRIVE     (0x10)	/* OverDrive HD */
#define PROD_TRUMPCARD_CLASSIC (0x30)	/* Trumpcard Classic SCSI Controller */
#define PROD_TRUMPCARD_PRO     (0x34)	/* Trumpcard Pro SCSI Controller */
#define PROD_META_4            (0x40)	/* Meta-4 RAM */
#define PROD_VECTOR            (0xF3)	/* Vector SCSI Controller */

#define MANUF_VECTOR           (0x0841)	/* Vector */
#define PROD_CONNECTION        (0xE3)	/* Connection Serial IO */

#define MANUF_XPERT_PRODEV     (0x0845)	/* XPert/ProDev */
#define PROD_VISIONA_RAM       (0x01)	/* Visiona Graphics Board */
#define PROD_VISIONA_REG       (0x02)
#define PROD_MERLIN_RAM        (0x03)	/* Merlin Graphics Board */
#define PROD_MERLIN_REG        (0x04)

#define MANUF_HYDRA_SYSTEMS    (0x0849)	/* Hydra Systems */
#define PROD_AMIGANET          (0x01)	/* Amiganet Board */

#define MANUF_SUNRIZE          (0x084F)	/* Sunrize Industries */
#define PROD_AD516             (0x02)	/* AD516 Audio */

#define MANUF_TRICERATOPS      (0x0850)	/* Triceratops */
#define PROD_TRICERATOPS       (0x01)	/* Triceratops Multi I/O Board */

#define MANUF_APPLIED_MAGIC    (0x0851)	/* Applied Magic Inc */
#define PROD_DMI_RESOLVER      (0x01)	/* DMI Resolver Graphics Board */
#define PROD_DIGITAL_BCASTER   (0x06)	/* Digital Broadcaster */

#define MANUF_GFX_BASE         (0x085E)	/* GFX-Base */
#define PROD_GDA_1_RAM         (0x00)	/* GDA-1 Graphics Board */
#define PROD_GDA_1_REG         (0x01)

#define MANUF_ROCTEC           (0x0860)	/* RocTec */
#define PROD_RH_800C           (0x01)	/* RH 800C Hard Disk Controller */
#define PROD_RH_800C_RAM       (0x01)	/* RH 800C RAM */

#define MANUF_HELFRICH1        (0x0861)	/* Helfrich */
#define PROD_RAINBOW3          (0x21)	/* Rainbow3 Graphics Board */

#define MANUF_SW_RESULT_ENTS   (0x0866)	/* Software Result Enterprises */
#define PROD_GG2PLUS           (0x01)	/* GG2+ Bus Converter */

#define MANUF_MASOBOSHI        (0x086D)	/* Masoboshi */
#define PROD_MASTER_CARD_RAM   (0x03)	/* Master Card RAM */
#define PROD_MASTER_CARD_SCSI  (0x04)	/* Master Card SCSI Controller */
#define PROD_MVD_819           (0x07)	/* MVD 819 */

#define MANUF_DELACOMP         (0x0873)	/* DelaComp */
#define PROD_DELACOMP_RAM_2000 (0x01)	/* RAM Expansion 2000 */

#define MANUF_VILLAGE_TRONIC   (0x0877)	/* Village Tronic */
#define PROD_DOMINO_RAM        (0x01)	/* Domino Graphics Board (RAM) */
#define PROD_DOMINO_REG        (0x02)	/* Domino Graphics Board (REG) */
#define PROD_PICASSO_II_RAM    (0x0B)	/* Picasso II Graphics Board */
#define PROD_PICASSO_II_REG    (0x0C)
#define PROD_PICASSO_II_REG_2  (0x0D)
#define PROD_ARIADNE           (0xC9)	/* Ariadne Ethernet */

#define MANUF_UTILITIES_ULTD   (0x087B)	/* Utilities Unlimited */
#define PROD_EMPLANT_DELUXE    (0x15)	/* Emplant Deluxe SCSI Controller */
#define PROD_EMPLANT_DELUXE2   (0x20)	/* Emplant Deluxe SCSI Controller */

#define MANUF_AMITRIX          (0x0880)	/* Amitrix */
#define PROD_AMITRIX_MULTI_IO  (0x01)	/* Multi-IO */
#define PROD_AMITRIX_CD_RAM    (0x02)	/* CD-RAM Memory */

#define MANUF_MTEC             (0x0890)	/* MTEC Germany */
#define PROD_MTEC_68030        (0x03)	/* 68030 Turbo Board */
#define PROD_MTEC_T1230        (0x20)	/* A1200 T68030/42 RTC Turbo Board */
#define PROD_MTEC_RAM          (0x22)	/* MTEC 8MB RAM */

#define MANUF_GVP2             (0x0891)	/* Great Valley Products */
#define PROD_SPECTRUM_RAM      (0x01)	/* EGS 28/24 Spectrum Graphics Board */
#define PROD_SPECTRUM_REG      (0x02)

#define MANUF_HELFRICH2        (0x0893)	/* Helfrich */
#define PROD_PICCOLO_RAM       (0x05)	/* Piccolo Graphics Board */
#define PROD_PICCOLO_REG       (0x06)
#define PROD_PEGGY_PLUS        (0x07)	/* PeggyPlus MPEG Decoder Board */
#define PROD_VIDEOCRUNCHER     (0x08)	/* VideoCruncher */
#define PROD_SD64_RAM          (0x0A)	/* SD64 Graphics Board */
#define PROD_SD64_REG          (0x0B)

#define MANUF_MACROSYSTEMS     (0x089B)	/* MacroSystems USA */
#define PROD_WARP_ENGINE       (0x13)	/* Warp Engine 40xx SCSI Controller */

#define MANUF_ELBOX            (0x089E)	/* ElBox Computer */
#define PROD_ELBOX_1200        (0x06)	/* Elbox 1200/4 RAM */

#define MANUF_HARMS_PROF       (0x0A00)	/* Harms Professional */
#define PROD_HARMS_030_PLUS    (0x10)	/* 030 plus */
#define PROD_3500_TURBO        (0xD0)	/* 3500 Turbo board */

#define MANUF_MICRONIK         (0x0A50)	/* Micronik */
#define PROD_RCA_120           (0x0A)	/* RCA 120 RAM */

#define MANUF_IMTRONICS2       (0x1028)	/* Imtronics */
#define PROD_HURRICANE_2800_3  (0x39)	/* Hurricane 2800 68030 */
#define PROD_HURRICANE_2800_4  (0x57)	/* Hurricane 2800 68030 */

#define MANUF_KUPKE3           (0x1248)	/* Kupke */
#define PROD_GOLEM_3000        (0x01)	/* Golem HD 3000 */

#define MANUF_INFORMATION      (0x157C)	/* Information */
#define PROD_ISDN_ENGINE_I     (0x64)	/* ISDN Engine I */

#define MANUF_VORTEX           (0x2017)	/* Vortex */
#define PROD_GOLDEN_GATE_386SX (0x07)	/* Golden Gate 80386SX Board */
#define PROD_GOLDEN_GATE_RAM   (0x08)	/* Golden Gate RAM */
#define PROD_GOLDEN_GATE_486   (0x09)	/* Golden Gate 80486 Board */

#define MANUF_DATAFLYER        (0x2062)	/* DataFlyer */
#define PROD_DATAFLYER_4000SXS (0x01)	/* DataFlyer 4000SX SCSI Controller */
#define PROD_DATAFLYER_4000SXR (0x02)	/* DataFlyer 4000SX RAM */

#define MANUF_READYSOFT        (0x2100)	/* ReadySoft */
#define PROD_AMAX              (0x01)	/* AMax II/IV */

#define MANUF_PHASE5           (0x2140)	/* Phase5 */
#define PROD_BLIZZARD_RAM      (0x01)	/* Blizzard RAM */
#define PROD_BLIZZARD          (0x02)	/* Blizzard */
#define PROD_BLIZZARD_1220_IV  (0x06)	/* Blizzard 1220-IV Turbo Board */
#define PROD_FASTLANE_RAM      (0x0A)	/* FastLane RAM */
#define PROD_FASTLANE_SCSI     (0x0B)	/* FastLane/Blizzard 1230-II SCSI/CyberSCSI */
#define PROD_CYBERSTORM_SCSI   (0x0C)	/* Blizzard 1220/CyberStorm */
#define PROD_BLIZZARD_1230_III (0x0D)	/* Blizzard 1230-III Turbo Board */
#define PROD_BLIZZARD_1230_IV  (0x11)	/* Blizzard 1230-IV/1260 Turbo Board */
#define PROD_BLIZZARD_2060SCSI (0x18)	/* Blizzard 2060 SCSI Controller */
#define PROD_CYBERSTORM_II     (0x19)	/* CyberStorm Mk II */
#define PROD_CYBERVISION       (0x22)	/* CyberVision64 Graphics Board */

#define MANUF_DPS              (0x2169)	/* DPS */
#define PROD_DPS_PAR           (0x01)	/* Personal Animation Recorder */

#define MANUF_APOLLO2          (0x2200)	/* Apollo */
#define PROD_A620              (0x00)	/* A620 68020 Accelerator */

#define MANUF_APOLLO           (0x2222)	/* Apollo */
#define PROD_AT_APOLLO         (0x22)	/* AT-Apollo */
#define PROD_APOLLO_TURBO      (0x23)	/* Apollo Turbo Board */

#define MANUF_UWE_GERLACH      (0x3FF7)	/* Uwe Gerlach */
#define PROD_UG_RAM_ROM        (0xd4)	/* RAM/ROM */

#define MANUF_MACROSYSTEMS2    (0x4754)	/* MacroSystems Germany */
#define PROD_MAESTRO           (0x03)	/* Maestro */
#define PROD_VLAB              (0x04)	/* VLab */
#define PROD_MAESTRO_PRO       (0x05)	/* Maestro Pro */
#define PROD_RETINA_Z2         (0x06)	/* Retina Z2 Graphics Board */
#define PROD_MULTI_EVOLUTION   (0x08)	/* MultiEvolution */
#define PROD_TOCCATA           (0x0C)	/* Toccata Sound Board */
#define PROD_RETINA_Z3         (0x10)	/* Retina Z3 Graphics Board */
#define PROD_VLAB_MOTION       (0x12)	/* VLab Motion */
#define PROD_FALCON_040        (0xFD)	/* Falcon '040 Turbo Board */

#define MANUF_COMBITEC         (0x6766)	/* Combitec */

#define MANUF_SKI              (0x8000)	/* SKI Peripherals */
#define PROD_SKI_SCSI_SERIAL   (0x80)	/* SCSI / Dual Serial */

#define MANUF_CAMERON          (0xAA01)	/* Cameron */
#define PROD_CAMERON_SCANNER   (0x10)	/* Scanner Interface */

#define MANUF_REIS_WARE        (0xAA11)	/* Reis-Ware */
#define PROD_RW_HANDYSCANNER   (0x11)	/* Handyscanner */


/* Illegal Manufacturer IDs. These do NOT appear in arch/m68k/amiga/zorro.c! */

#define MANUF_HACKER_INC       (0x07DB)	/* Hacker Inc. */
#define PROD_HACKER_SCSI       (0x01)	/* Hacker Inc. SCSI Controller */

#define MANUF_RES_MNGT_FORCE   (0x07DB)	/* Resource Management Force */
#define PROD_QUICKNET          (0x02)	/* QuickNet Ethernet */

#define MANUF_VECTOR2          (0x07DB)	/* Vector */
#define PROD_CONNECTION_2      (0xE0)	/* Vector Connection */
#define PROD_CONNECTION_3      (0xE1)	/* Vector Connection */
#define PROD_CONNECTION_4      (0xE2)	/* Vector Connection */
#define PROD_CONNECTION_5      (0xE3)	/* Vector Connection */


/*
 * GVP's identifies most of their product through the 'extended
 * product code' (epc). The epc has to be and'ed with the GVP_PRODMASK
 * before the identification.
 */

#define GVP_PRODMASK    (0xf8)
#define GVP_SCSICLKMASK (0x01)

enum GVP_ident {
  GVP_GFORCE_040      = 0x20,
  GVP_GFORCE_040_SCSI = 0x30,
  GVP_A1291_SCSI      = 0x40,
  GVP_COMBO_R4        = 0x60,
  GVP_COMBO_R4_SCSI   = 0x70,
  GVP_PHONEPAK        = 0x78,
  GVP_IOEXT           = 0x98,
  GVP_GFORCE_030      = 0xa0,
  GVP_GFORCE_030_SCSI = 0xb0,
  GVP_A530            = 0xc0,
  GVP_A530_SCSI       = 0xd0,
  GVP_COMBO_R3        = 0xe0,
  GVP_COMBO_R3_SCSI   = 0xf0,
  GVP_SERIESII        = 0xf8,
};

enum GVP_flags {
  GVP_IO       = 0x01,
  GVP_ACCEL    = 0x02,
  GVP_SCSI     = 0x04,
  GVP_24BITDMA = 0x08,
  GVP_25BITDMA = 0x10,
  GVP_NOBANK   = 0x20,
  GVP_14MHZ    = 0x40,
};


struct Node {
    struct  Node *ln_Succ;	/* Pointer to next (successor) */
    struct  Node *ln_Pred;	/* Pointer to previous (predecessor) */
    u_char  ln_Type;
    char    ln_Pri;		/* Priority, for sorting */
    char    *ln_Name;		/* ID string, null terminated */
};

struct ExpansionRom {
    /* -First 16 bytes of the expansion ROM */
    u_char	er_Type;	/* Board type, size and flags */
    u_char	er_Product;	/* Product number, assigned by manufacturer */
    u_char	er_Flags;	/* Flags */
    u_char	er_Reserved03;	/* Must be zero ($ff inverted) */
    u_short	er_Manufacturer; /* Unique ID,ASSIGNED BY COMMODORE-AMIGA! */
    u_long	er_SerialNumber; /* Available for use by manufacturer */
    u_short	er_InitDiagVec;	/* Offset to optional "DiagArea" structure */
    u_char	er_Reserved0c;
    u_char	er_Reserved0d;
    u_char	er_Reserved0e;
    u_char	er_Reserved0f;
};

/* er_Type board type bits */
#define ERT_TYPEMASK	0xc0
#define ERT_ZORROII	0xc0
#define ERT_ZORROIII	0x80

/* other bits defined in er_Type */
#define ERTB_MEMLIST	5		/* Link RAM into free memory list */
#define ERTF_MEMLIST	(1<<5)

struct ConfigDev {
    struct Node 	cd_Node;
    u_char		cd_Flags;	/* (read/write) */
    u_char		cd_Pad; 	/* reserved */
    struct ExpansionRom cd_Rom; 	/* copy of board's expansion ROM */
    void		*cd_BoardAddr;	/* where in memory the board was placed */
    u_long		cd_BoardSize;	/* size of board in bytes */
    u_short		cd_SlotAddr;	/* which slot number (PRIVATE) */
    u_short		cd_SlotSize;	/* number of slots (PRIVATE) */
    void		*cd_Driver;	/* pointer to node of driver */
    struct ConfigDev	*cd_NextCD;	/* linked list of drivers to config */
    u_long		cd_Unused[4];	/* for whatever the driver wants */
};

#else	/* __ASSEMBLY__ */

LN_Succ		= 0
LN_Pred		= LN_Succ+4
LN_Type		= LN_Pred+4
LN_Pri		= LN_Type+1
LN_Name		= LN_Pri+1
LN_sizeof	= LN_Name+4

ER_Type		= 0
ER_Product	= ER_Type+1
ER_Flags	= ER_Product+1
ER_Reserved03	= ER_Flags+1
ER_Manufacturer	= ER_Reserved03+1
ER_SerialNumber	= ER_Manufacturer+2
ER_InitDiagVec	= ER_SerialNumber+4
ER_Reserved0c	= ER_InitDiagVec+2
ER_Reserved0d	= ER_Reserved0c+1
ER_Reserved0e	= ER_Reserved0d+1
ER_Reserved0f	= ER_Reserved0e+1
ER_sizeof	= ER_Reserved0f+1

CD_Node		= 0
CD_Flags	= CD_Node+LN_sizeof
CD_Pad		= CD_Flags+1
CD_Rom		= CD_Pad+1
CD_BoardAddr	= CD_Rom+ER_sizeof
CD_BoardSize	= CD_BoardAddr+4
CD_SlotAddr	= CD_BoardSize+4
CD_SlotSize	= CD_SlotAddr+2
CD_Driver	= CD_SlotSize+2
CD_NextCD	= CD_Driver+4
CD_Unused	= CD_NextCD+4
CD_sizeof	= CD_Unused+(4*4)

#endif	/* __ASSEMBLY__ */

#ifndef __ASSEMBLY__

#define ZORRO_NUM_AUTO		16

#ifdef __KERNEL__

extern int zorro_num_autocon;		/* # of autoconfig devices found */
extern struct ConfigDev zorro_autocon[ZORRO_NUM_AUTO];


/*
 * Zorro Functions
 */

extern int zorro_find(int manuf, int prod, int part, int index);
extern struct ConfigDev *zorro_get_board(int key);
extern void zorro_config_board(int key, int part);
extern void zorro_unconfig_board(int key, int part);


/*
 * Bitmask indicating portions of available Zorro II RAM that are unused
 * by the system. Every bit represents a 64K chunk, for a maximum of 8MB
 * (128 chunks, physical 0x00200000-0x009fffff).
 *
 * If you want to use (= allocate) portions of this RAM, you should clear
 * the corresponding bits.
 */

extern u_long zorro_unused_z2ram[4];

#define Z2RAM_START		(0x00200000)
#define Z2RAM_END		(0x00a00000)
#define Z2RAM_SIZE		(0x00800000)
#define Z2RAM_CHUNKSIZE		(0x00010000)
#define Z2RAM_CHUNKMASK		(0x0000ffff)
#define Z2RAM_CHUNKSHIFT	(16)


/*
 * Verbose Board Identification
 */

extern void zorro_identify(void);
extern int zorro_get_list(char *buffer);

#endif	/* !__ASSEMBLY__ */
#endif	/* __KERNEL__ */

#endif /* __ASMm68K_ZORRO_H */