root/kernel/blk_drv/scsi/ultrastor.h

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

INCLUDED FROM


   1 /*
   2  *      ultrastor.c     (C) 1991 David B. Gentzel
   3  *      Low-level scsi driver for UltraStor 14F
   4  *      by David B. Gentzel, Whitfield Software Services, Carnegie, PA
   5  *          (gentzel@nova.enet.dec.com)
   6  *      Thanks to UltraStor for providing the necessary documentation
   7  */
   8 
   9 #ifndef _ULTRASTOR_H
  10 #define _ULTRASTOR_H
  11 
  12 /* ??? These don't really belong here */
  13 #ifndef TRUE
  14 # define TRUE 1
  15 #endif
  16 #ifndef FALSE
  17 # define FALSE 0
  18 #endif
  19 
  20 /* ??? This should go eventually, once I'm convinced the queueing stuff is
  21    stable enough... */
  22 /* #define NO_QUEUEING */
  23 
  24 int ultrastor_14f_detect(int);
  25 const char *ultrastor_14f_info(void);
  26 int ultrastor_14f_queuecommand(Scsi_Cmnd *, void (*done)(Scsi_Cmnd *));
  27 #ifdef NO_QUEUEING
  28 int ultrastor_14f_command(Scsi_Cmnd *);
  29 #endif
  30 int ultrastor_14f_abort(Scsi_Cmnd *, int);
  31 int ultrastor_14f_reset(void);
  32 
  33 #ifndef NO_QUEUEING
  34 #define ULTRASTOR_14F \
  35     { "UltraStor 14F", ultrastor_14f_detect, ultrastor_14f_info, 0, \
  36       ultrastor_14f_queuecommand, ultrastor_14f_abort, ultrastor_14f_reset, \
  37       NULL, NULL, 1, 0, SG_NONE, 1, 0, 1}
  38     /* ??? What should can_queue be set to?  Currently 1... */
  39 /* Set it to the number of outstanding requests that the host adapter can keep
  40    track of at one time.  ERY */
  41 #else
  42 #define ULTRASTOR_14F \
  43     { "UltraStor 14F", ultrastor_14f_detect, ultrastor_14f_info, \
  44       ultrastor_14f_command, 0, ultrastor_14f_abort, ultrastor_14f_reset, \
  45       NULL, NULL, 0, 0, SG_NONE, 1, 0, 1}
  46 #endif
  47 
  48 #define UD_ABORT 0x0001
  49 #define UD_COMMAND 0x0002
  50 #define UD_DETECT 0x0004
  51 #define UD_INTERRUPT 0x0008
  52 #define UD_RESET 0x0010
  53 
  54 #ifdef ULTRASTOR_PRIVATE
  55 
  56 /* #define PORT_OVERRIDE 0x330 */
  57 
  58 /* Port addresses (relative to the base address) */
  59 #define LCL_DOORBELL_MASK(port) ((port) + 0x0)
  60 #define LCL_DOORBELL_INTR(port) ((port) + 0x1)
  61 #define SYS_DOORBELL_MASK(port) ((port) + 0x2)
  62 #define SYS_DOORBELL_INTR(port) ((port) + 0x3)
  63 #define PRODUCT_ID(port) ((port) + 0x4)
  64 #define CONFIG(port) ((port) + 0x6)
  65 #define OGM_DATA_PTR(port) ((port) + 0x8)
  66 #define ICM_DATA_PTR(port) ((port) + 0xC)
  67 
  68 /* Values for the PRODUCT_ID ports for the 14F */
  69 #define US14F_PRODUCT_ID_0 0x56
  70 #define US14F_PRODUCT_ID_1 0x40         /* NOTE: Only upper nibble is used */
  71 
  72 /* MSCP field values */
  73 
  74 /* Opcode */
  75 #define OP_HOST_ADAPTER 0x1
  76 #define OP_SCSI 0x2
  77 #define OP_RESET 0x4
  78 
  79 /* Date Transfer Direction */
  80 #define DTD_SCSI 0x0
  81 #define DTD_IN 0x1
  82 #define DTD_OUT 0x2
  83 #define DTD_NONE 0x3
  84 
  85 /* Host Adapter command subcodes */
  86 #define HA_CMD_INQUIRY 0x1
  87 #define HA_CMD_SELF_DIAG 0x2
  88 #define HA_CMD_READ_BUFF 0x3
  89 #define HA_CMD_WRITE_BUFF 0x4
  90 
  91 #endif
  92 
  93 #endif

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