root/include/asm-m68k/zorro.h

/* [previous][next][first][last][top][bottom][index][help] */

INCLUDED FROM


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

/* [previous][next][first][last][top][bottom][index][help] */