The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dev/trm/trm.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*-
    2  *      File Name : trm.h       
    3  *                                  
    4  *      Tekram DC395U/UW/F ,DC315/U 
    5  *   PCI SCSI Bus Master Host Adapter Device Driver     
    6  *   (SCSI chip set used Tekram ASIC TRM-S1040) 
    7  *
    8  * (C)Copyright 1995-2001 Tekram Technology Co.,Ltd.
    9  *
   10  * Redistribution and use in source and binary forms, with or without
   11  * modification, are permitted provided that the following conditions
   12  * are met:
   13  * 1. Redistributions of source code must retain the above copyright
   14  *    notice, this list of conditions and the following disclaimer.
   15  * 2. Redistributions in binary form must reproduce the above copyright
   16  *    notice, this list of conditions and the following disclaimer in the
   17  *    documentation and/or other materials provided with the distribution.
   18  * 3. The name of the author may not be used to endorse or promote products
   19  *    derived from this software without specific prior written permission.
   20  *
   21  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
   22  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   23  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
   24  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
   25  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
   26  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
   27  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
   28  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
   29  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
   30  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.    
   31  *
   32  * $FreeBSD: releng/11.2/sys/dev/trm/trm.h 331722 2018-03-29 02:50:57Z eadler $
   33  */
   34 
   35 #ifndef trm_H
   36 #define trm_H
   37 
   38 /* SCSI CAM */
   39 
   40 #define TRM_TRANS_CUR           0x01    /* Modify current neogtiation status */
   41 #define TRM_TRANS_ACTIVE        0x03    /* Assume this is the active target */
   42 #define TRM_TRANS_GOAL          0x04    /* Modify negotiation goal */
   43 #define TRM_TRANS_USER          0x08    /* Modify user negotiation settings */
   44 
   45 struct trm_transinfo {
   46         u_int8_t width;
   47         u_int8_t period;
   48         u_int8_t offset;
   49 };
   50 
   51 struct trm_target_info {
   52         u_int8_t                        disc_tag;   /* bits define..... */
   53 #define TRM_CUR_DISCENB 0x01 /* current setting disconnect enable */
   54 #define TRM_CUR_TAGENB 0x02  /* current setting tag command Q enable */
   55 #define TRM_USR_DISCENB 0x04 /* user adapter device setting disconnect enable */
   56 #define TRM_USR_TAGENB 0x08  /* user adapter device setting tag command Q enable*/
   57         struct trm_transinfo    current; /* info of current */
   58         struct trm_transinfo    goal;    /* info of after negotiating */
   59         struct trm_transinfo    user;    /* info of user adapter device setting  */
   60 };
   61 /*
   62  * SCSI CAM  **
   63  */
   64 
   65 /*
   66  *      bus_dma_segment_t
   67  *
   68  *      Describes a single contiguous DMA transaction.  Values
   69  *      are suitable for programming into DMA registers.
   70  *
   71  *typedef struct bus_dma_segment 
   72  *{
   73  *      bus_addr_t      ds_addr;        // DMA address
   74  *      bus_size_t      ds_len;         // length of transfer
   75  *} bus_dma_segment_t;
   76  */
   77 
   78 /*;----------------------Segment Entry------------------------------------*/
   79 typedef  struct  _SGentry {
   80        u_int32_t        address;
   81        u_int32_t        length;
   82 } SGentry, *PSEG;
   83 /*
   84  *-----------------------------------------------------------------------
   85  *     feature of chip set MAX value
   86  *-----------------------------------------------------------------------
   87  */
   88 
   89 #define TRM_MAX_ADAPTER_NUM     4
   90 #define TRM_MAX_DEVICES         16
   91 #define TRM_MAX_SG_LISTENTRY    32
   92 #define TRM_MAX_TARGETS         16
   93 #define TRM_MAX_TAGS_CMD_QUEUE  256 /* MAX_CMD_QUEUE    20*/
   94 #define TRM_MAX_CMD_PER_LUN     32
   95 #define TRM_MAX_SRB_CNT         256
   96 #define TRM_MAX_START_JOB       256
   97 #define TRM_MAXPHYS             (128 * 1024)
   98 #define TRM_NSEG                (btoc(TRM_MAXPHYS) + 1)
   99 #define TRM_MAXTRANSFER_SIZE    0xFFFFFF /* restricted by 24 bit counter */
  100 #define PAGELEN                 4096
  101 
  102 #define SEL_TIMEOUT             153     /* 250 ms selection timeout (@ 40MHz) */
  103 
  104 /*
  105  *  CAM ccb
  106  * Union of all CCB types for kernel space allocation.  This union should
  107  * never be used for manipulating CCBs - its only use is for the allocation
  108  * and deallocation of raw CCB space and is the return type of xpt_ccb_alloc
  109  * and the argument to xpt_ccb_free.
  110  * 
  111  *union ccb {
  112  *      struct  ccb_hdr                     ccb_h;      // For convenience 
  113  *      struct  ccb_scsiio              csio;
  114  *      struct  ccb_getdev              cgd;
  115  *      struct  ccb_getdevlist          cgdl;
  116  *      struct  ccb_pathinq                 cpi;
  117  *      struct  ccb_relsim              crs;
  118  *      struct  ccb_setasync            csa;
  119  *      struct  ccb_setdev              csd;
  120  *      struct  ccb_dev_match           cdm;
  121  *      struct  ccb_trans_settings      cts;
  122  *      struct  ccb_calc_geometry       ccg;    
  123  *      struct  ccb_abort               cab;
  124  *      struct  ccb_resetbus            crb;
  125  *      struct  ccb_resetdev            crd;
  126  *      struct  ccb_termio              tio;
  127  *      struct  ccb_accept_tio          atio;
  128  *      struct  ccb_scsiio              ctio;
  129  *      struct  ccb_en_lun              cel;
  130  *      struct  ccb_immed_notify        cin;
  131  *      struct  ccb_notify_ack          cna;
  132  *      struct  ccb_eng_inq             cei;
  133  *      struct  ccb_eng_exec            cee;
  134  *      struct  ccb_rescan              crcn;
  135  *      struct  ccb_debug               cdbg;
  136  *  };
  137  */
  138 
  139 /*
  140  *-----------------------------------------------------------------------
  141  *               SCSI Request Block
  142  *-----------------------------------------------------------------------
  143  */
  144 struct  _SRB {
  145         u_int8_t        CmdBlock[12];
  146         u_long          Segment0[2];
  147         u_long          Segment1[2];
  148         struct _SRB     *pNextSRB;
  149         struct _DCB     *pSRBDCB;
  150         SGentry         SgSenseTemp;
  151 
  152         PSEG            pSRBSGL;        /* scatter gather list */
  153 
  154         u_int32_t       SRBSGPhyAddr;   /* a segment starting address */
  155         u_int32_t       SRBTotalXferLength;
  156         
  157         /*
  158          *                CAM ccb
  159          */
  160         union  ccb      *pccb; 
  161         bus_dmamap_t    sg_dmamap;
  162         bus_dmamap_t     dmamap;
  163         u_int16_t       SRBState;
  164         u_int8_t *      pMsgPtr;
  165         
  166         u_int8_t        SRBSGCount;
  167         u_int8_t        SRBSGIndex;
  168         u_int8_t        MsgInBuf[6];
  169         u_int8_t        MsgOutBuf[6];
  170         
  171         u_int8_t        AdaptStatus;
  172         u_int8_t        TargetStatus;
  173         u_int8_t        MsgCnt;
  174         u_int8_t        TagNumber;
  175         
  176         u_int8_t        SRBStatus;
  177         u_int8_t        RetryCnt;
  178         u_int8_t        SRBFlag;   
  179         u_int8_t        ScsiCmdLen;
  180         u_int8_t        ScsiPhase;
  181         u_int8_t        Reserved[3]; /*;for dword alignment */
  182 };
  183 typedef struct _SRB     TRM_SRB, *PSRB;
  184 
  185 /*
  186  *-----------------------------------------------------------------------
  187  *                   Device Control Block
  188  *-----------------------------------------------------------------------
  189  */
  190 struct  _DCB
  191 {
  192         PSRB            pWaitingSRB;
  193         PSRB            pWaitingLastSRB;
  194         
  195         PSRB            pGoingSRB;
  196         PSRB            pGoingLastSRB;
  197         
  198         PSRB            pActiveSRB;
  199 
  200         u_int16_t       GoingSRBCnt;
  201         u_int16_t       MaxActiveCommandCnt;
  202 
  203         u_int8_t        TargetID;       /*; SCSI Target ID  (SCSI Only) */
  204         u_int8_t        TargetLUN;      /*; SCSI Log.  Unit (SCSI Only) */
  205         u_int8_t        DCBFlag;
  206         u_int8_t        DevType;
  207 
  208         u_int8_t        SyncMode;       /* mode ? (1 sync):(0 async)  */
  209         u_int8_t        MaxNegoPeriod;  /* for nego. */
  210         u_int8_t        SyncPeriod;     /* for reg. */
  211         u_int8_t        SyncOffset;     /* for reg. and nego.(low nibble) */
  212         
  213         u_int8_t        DevMode;
  214         u_int8_t        AdpMode;
  215 
  216         u_int8_t        IdentifyMsg;
  217         u_int8_t        DCBstatus;      /* DCB status */
  218         /*u_int8_t      Reserved[3];    for dword alignment */
  219         struct          trm_target_info tinfo; /* 10 bytes */
  220         struct _DCB     *pNextDCB;
  221 };
  222 typedef struct _DCB     TRM_DCB, *PDCB;
  223 
  224 /*
  225  *-----------------------------------------------------------------------
  226  *                  Adapter Control Block
  227  *-----------------------------------------------------------------------
  228  */
  229 struct  _ACB
  230 {
  231         device_t                dev;
  232         
  233         bus_space_tag_t         tag;
  234         bus_space_handle_t      bsh;
  235         bus_dma_tag_t           parent_dmat;
  236         bus_dma_tag_t           buffer_dmat;   /* dmat for buffer I/O */  
  237         bus_dma_tag_t           srb_dmat;
  238         bus_dma_tag_t           sense_dmat; /* dmat for sense buffer */
  239         bus_dma_tag_t           sg_dmat;
  240         bus_dmamap_t            sense_dmamap;
  241         bus_dmamap_t            srb_dmamap;
  242         bus_addr_t              sense_busaddr;
  243         struct scsi_sense_data  *sense_buffers;
  244         struct resource         *iores, *irq;
  245         void                    *ih;
  246     /*
  247      *            CAM SIM/XPT
  248      */
  249         struct                  cam_sim  *psim;
  250         struct                  cam_path *ppath;
  251 
  252         TRM_SRB                 TmpSRB;
  253         TRM_DCB                 DCBarray[16][8];
  254 
  255         u_int32_t               srb_physbase;
  256         
  257         PSRB                    pFreeSRB;
  258         PDCB                    pActiveDCB;
  259 
  260         PDCB                    pLinkDCB;
  261         PDCB                    pDCBRunRobin;
  262 
  263         u_int16_t               max_id;
  264         u_int16_t               max_lun;
  265 
  266         u_int8_t                msgin123[4];
  267 
  268         u_int8_t                scan_devices[16][8];
  269 
  270         u_int8_t                AdaptSCSIID;    /*; Adapter SCSI Target ID */
  271         u_int8_t                AdaptSCSILUN;   /*; Adapter SCSI LUN */
  272         u_int8_t                DeviceCnt;
  273         u_int8_t                ACBFlag;
  274 
  275         u_int8_t                TagMaxNum;
  276         u_int8_t                Config;
  277         u_int8_t                AdaptType;
  278         u_int8_t                AdapterUnit;    /* nth Adapter this driver */
  279 };
  280 typedef struct  _ACB             TRM_ACB, *PACB;
  281 /*
  282  *   ----SRB State machine definition
  283  */
  284 #define SRB_FREE                        0x0000
  285 #define SRB_WAIT                        0x0001
  286 #define SRB_READY                       0x0002
  287 #define SRB_MSGOUT                      0x0004  /*arbitration+msg_out 1st byte*/
  288 #define SRB_MSGIN                       0x0008
  289 #define SRB_EXTEND_MSGIN                0x0010
  290 #define SRB_COMMAND                     0x0020
  291 #define SRB_START_                      0x0040  /*arbitration+msg_out+command_out*/
  292 #define SRB_DISCONNECT                  0x0080
  293 #define SRB_DATA_XFER                   0x0100
  294 #define SRB_XFERPAD                     0x0200
  295 #define SRB_STATUS                      0x0400
  296 #define SRB_COMPLETED                   0x0800
  297 #define SRB_ABORT_SENT                  0x1000
  298 #define SRB_DO_SYNC_NEGO                0x2000
  299 #define SRB_DO_WIDE_NEGO                0x4000
  300 #define SRB_UNEXPECT_RESEL              0x8000
  301 /*
  302  *
  303  *      ACB Config      
  304  *
  305  */
  306 #define HCC_WIDE_CARD                   0x20
  307 #define HCC_SCSI_RESET                  0x10
  308 #define HCC_PARITY                      0x08
  309 #define HCC_AUTOTERM                    0x04
  310 #define HCC_LOW8TERM                    0x02
  311 #define HCC_UP8TERM                     0x01
  312 /*
  313  *   ---ACB Flag
  314  */
  315 #define RESET_DEV                       0x00000001
  316 #define RESET_DETECT                    0x00000002
  317 #define RESET_DONE                      0x00000004
  318 
  319 /*
  320  *   ---DCB Flag
  321  */
  322 #define ABORT_DEV_                      0x00000001
  323 
  324 /*
  325  *   ---DCB status
  326  */
  327 #define DS_IN_QUEUE                     0x00000001
  328 
  329 /*
  330  *   ---SRB status 
  331  */
  332 #define SRB_OK                          0x00000001
  333 #define ABORTION                        0x00000002
  334 #define OVER_RUN                        0x00000004
  335 #define UNDER_RUN                       0x00000008
  336 #define PARITY_ERROR                    0x00000010
  337 #define SRB_ERROR                       0x00000020
  338 
  339 /*
  340  *   ---SRB Flag 
  341  */
  342 #define DATAOUT                         0x00000080
  343 #define DATAIN                          0x00000040
  344 #define RESIDUAL_VALID                  0x00000020
  345 #define ENABLE_TIMER                    0x00000010
  346 #define RESET_DEV0                      0x00000004
  347 #define ABORT_DEV                       0x00000002
  348 #define AUTO_REQSENSE                   0x00000001
  349 
  350 /*
  351  *   ---Adapter status
  352  */
  353 #define H_STATUS_GOOD                   0x00
  354 #define H_SEL_TIMEOUT                   0x11
  355 #define H_OVER_UNDER_RUN                0x12
  356 #define H_UNEXP_BUS_FREE                0x13
  357 #define H_TARGET_PHASE_F                0x14
  358 #define H_INVALID_CCB_OP                0x16
  359 #define H_LINK_CCB_BAD                  0x17
  360 #define H_BAD_TARGET_DIR                0x18
  361 #define H_DUPLICATE_CCB                 0x19
  362 #define H_BAD_CCB_OR_SG                 0x1A
  363 #define H_ABORT                         0x0FF
  364 
  365 /*
  366  *   ---SCSI Status byte codes
  367  */
  368 #define SCSI_STAT_GOOD                  0x00    /*;  Good status */
  369 #define SCSI_STAT_CHECKCOND             0x02    /*;  SCSI Check Condition */
  370 #define SCSI_STAT_CONDMET               0x04    /*;  Condition Met */
  371 #define SCSI_STAT_BUSY                  0x08    /*;  Target busy status */
  372 #define SCSI_STAT_INTER                 0x10    /*;  Intermediate status */
  373 #define SCSI_STAT_INTERCONDMET          0x14    /*;  Intermediate condition met */
  374 #define SCSI_STAT_RESCONFLICT           0x18    /*;  Reservation conflict */
  375 #define SCSI_STAT_CMDTERM               0x22    /*;  Command Terminated */
  376 #define SCSI_STAT_QUEUEFULL             0x28    /*;  Queue Full */
  377 #define SCSI_STAT_UNEXP_BUS_F           0xFD    /*;  Unexpect Bus Free */
  378 #define SCSI_STAT_BUS_RST_DETECT        0xFE    /*;  Scsi Bus Reset detected */
  379 #define SCSI_STAT_SEL_TIMEOUT           0xFF    /*;  Selection Time out */
  380 
  381 /*
  382  *   ---Sync_Mode
  383  */
  384 #define SYNC_WIDE_TAG_ATNT_DISABLE      0x00000000
  385 #define SYNC_NEGO_ENABLE                0x00000001
  386 #define SYNC_NEGO_DONE                  0x00000002
  387 #define WIDE_NEGO_ENABLE                0x00000004
  388 #define WIDE_NEGO_DONE                  0x00000008
  389 #define EN_TAG_QUEUING                  0x00000010
  390 #define EN_ATN_STOP                     0x00000020
  391 
  392 #define SYNC_NEGO_OFFSET                15
  393 /*
  394  *    ---SCSI bus phase
  395  */
  396 #define SCSI_DATA_OUT_                  0
  397 #define SCSI_DATA_IN_                   1
  398 #define SCSI_COMMAND                    2
  399 #define SCSI_STATUS_                    3
  400 #define SCSI_NOP0                       4
  401 #define SCSI_NOP1                       5
  402 #define SCSI_MSG_OUT                    6
  403 #define SCSI_MSG_IN                     7
  404         
  405 /*
  406  *     ----SCSI MSG u_int8_t
  407  */
  408 #define MSG_COMPLETE                    0x00
  409 #define MSG_EXTENDED                    0x01
  410 #define MSG_SAVE_PTR                    0x02
  411 #define MSG_RESTORE_PTR                 0x03
  412 #define MSG_DISCONNECT                  0x04
  413 #define MSG_INITIATOR_ERROR             0x05
  414 #define MSG_ABORT                       0x06
  415 #define MSG_REJECT_                     0x07
  416 #define MSG_NOP                         0x08
  417 #define MSG_PARITY_ERROR                0x09
  418 #define MSG_LINK_CMD_COMPL              0x0A
  419 #define MSG_LINK_CMD_COMPL_FLG          0x0B
  420 #define MSG_BUS_RESET                   0x0C
  421 /* #define MSG_ABORT_TAG                0x0D */
  422 #define MSG_SIMPLE_QTAG                 0x20
  423 #define MSG_HEAD_QTAG                   0x21
  424 #define MSG_ORDER_QTAG                  0x22
  425 #define MSG_IGNOREWIDE                  0x23
  426 /* #define MSG_IDENTIFY                 0x80 */
  427 #define MSG_HOST_ID                     0xC0
  428 /*     bus wide length     */
  429 #define MSG_EXT_WDTR_BUS_8_BIT          0x00
  430 #define MSG_EXT_WDTR_BUS_16_BIT         0x01
  431 #define MSG_EXT_WDTR_BUS_32_BIT         0x02 
  432 /*
  433  *     ----SCSI STATUS u_int8_t
  434  */
  435 #define STATUS_GOOD                     0x00
  436 #define CHECK_CONDITION_                0x02
  437 #define STATUS_BUSY                     0x08
  438 #define STATUS_INTERMEDIATE             0x10
  439 #define RESERVE_CONFLICT                0x18
  440 
  441 /*
  442  *     ---- cmd->result
  443  */
  444 #define STATUS_MASK_                    0xFF
  445 #define MSG_MASK                        0xFF00
  446 #define RETURN_MASK                     0xFF0000
  447 
  448 /*
  449  *  Inquiry Data format
  450  */
  451 
  452 typedef struct  _SCSIInqData { /* INQ */
  453 
  454         u_int8_t         DevType;       /* Periph Qualifier & Periph Dev Type */
  455         u_int8_t         RMB_TypeMod;   /* rem media bit & Dev Type Modifier  */
  456         u_int8_t         Vers;          /* ISO, ECMA, & ANSI versions         */
  457         u_int8_t         RDF;           /* AEN, TRMIOP, & response data format*/
  458         u_int8_t         AddLen;        /* length of additional data          */
  459         u_int8_t         Res1;          /* reserved                           */
  460         u_int8_t         Res2;          /* reserved                           */
  461         u_int8_t         Flags;         /* RelADr,Wbus32,Wbus16,Sync,etc.     */
  462         u_int8_t         VendorID[8];   /* Vendor Identification              */
  463         u_int8_t         ProductID[16]; /* Product Identification          */
  464         u_int8_t         ProductRev[4]; /* Product Revision              */
  465 } SCSI_INQDATA, *PSCSI_INQDATA;
  466 
  467 
  468 /*  
  469  *      Inquiry byte 0 masks 
  470  */
  471 #define SCSI_DEVTYPE              0x1F    /* Peripheral Device Type         */
  472 #define SCSI_PERIPHQUAL           0xE0      /* Peripheral Qualifier         */
  473 /* 
  474  *      Inquiry byte 1 mask
  475  */
  476 #define SCSI_REMOVABLE_MEDIA      0x80    /* Removable Media bit (1=removable)  */
  477 /* 
  478  *      Peripheral Device Type definitions
  479  */
  480 #define SCSI_DASD                 0x00     /* Direct-access Device        */
  481 #define SCSI_SEQACESS             0x01     /* Sequential-access device    */
  482 #define SCSI_PRINTER              0x02     /* Printer device              */
  483 #define SCSI_PROCESSOR            0x03     /* Processor device            */
  484 #define SCSI_WRITEONCE            0x04     /* Write-once device           */
  485 #define SCSI_CDROM                0x05     /* CD-ROM device               */
  486 #define SCSI_SCANNER              0x06     /* Scanner device              */
  487 #define SCSI_OPTICAL              0x07     /* Optical memory device       */
  488 #define SCSI_MEDCHGR              0x08     /* Medium changer device       */
  489 #define SCSI_COMM                 0x09     /* Communications device       */
  490 #define SCSI_NODEV                0x1F     /* Unknown or no device type   */
  491 /*
  492  *      Inquiry flag definitions (Inq data byte 7)
  493  */
  494 #define SCSI_INQ_RELADR       0x80    /* device supports relative addressing*/
  495 #define SCSI_INQ_WBUS32       0x40    /* device supports 32 bit data xfers  */
  496 #define SCSI_INQ_WBUS16       0x20    /* device supports 16 bit data xfers  */
  497 #define SCSI_INQ_SYNC         0x10    /* device supports synchronous xfer   */
  498 #define SCSI_INQ_LINKED       0x08    /* device supports linked commands    */
  499 #define SCSI_INQ_CMDQUEUE     0x02    /* device supports command queueing   */
  500 #define SCSI_INQ_SFTRE        0x01    /* device supports soft resets */
  501 /*
  502  *==========================================================
  503  *                EEPROM byte offset
  504  *==========================================================
  505  */
  506 typedef  struct  _EEprom {
  507         u_int8_t        EE_MODE1;
  508         u_int8_t        EE_SPEED;
  509         u_int8_t        xx1;
  510         u_int8_t        xx2;
  511 } EEprom, *PEEprom;
  512 
  513 #define EE_ADAPT_SCSI_ID        64
  514 #define EE_MODE2                65
  515 #define EE_DELAY                66
  516 #define EE_TAG_CMD_NUM          67
  517 
  518 /*
  519  *    EE_MODE1 bits definition
  520  */
  521 #define PARITY_CHK_             0x00000001
  522 #define SYNC_NEGO_              0x00000002
  523 #define EN_DISCONNECT_          0x00000004
  524 #define SEND_START_             0x00000008
  525 #define TAG_QUEUING_            0x00000010
  526 
  527 /*
  528  *    EE_MODE2 bits definition
  529  */
  530 #define MORE2_DRV               0x00000001
  531 #define GREATER_1G              0x00000002
  532 #define RST_SCSI_BUS            0x00000004
  533 #define ACTIVE_NEGATION         0x00000008
  534 #define NO_SEEK                 0x00000010
  535 #define LUN_CHECK               0x00000020
  536 
  537 #define ENABLE_CE               0x01
  538 #define DISABLE_CE              0x00
  539 #define EEPROM_READ             0x80
  540 
  541 /*
  542  * The PCI configuration register offset for TRM_S1040  
  543  *                  Registers bit Definition            
  544  */
  545 #define     TRMREG_ID           0x00    /* Vendor and Device ID         */
  546 #define     TRMREG_COMMAND      0x04    /* PCI command register         */
  547 #define     TRMREG_IOBASE       0x10    /* I/O Space base address       */
  548 #define     TRMREG_ROMBASE      0x30    /* Expansion ROM Base Address   */
  549 #define     TRMREG_INTLINE      0x3C    /* Interrupt line               */
  550 
  551 /*
  552  *
  553  * The SCSI register offset for TRM_S1040               
  554  *
  555  */
  556 #define TRMREG_SCSI_STATUS      0x80    /* SCSI Status (R)              */
  557 /* ######### */
  558 #define     COMMANDPHASEDONE    0x2000  /* SCSI command phase done      */
  559 #define     SCSIXFERDONE            0x0800  /* SCSI SCSI transfer done  */
  560 #define     SCSIXFERCNT_2_ZERO  0x0100  /* SCSI SCSI transfer count to zero*/
  561 #define     SCSIINTERRUPT       0x0080  /* SCSI interrupt pending       */
  562 #define     COMMANDABORT        0x0040  /* SCSI command abort           */
  563 #define     SEQUENCERACTIVE     0x0020  /* SCSI sequencer active        */
  564 #define     PHASEMISMATCH       0x0010  /* SCSI phase mismatch          */
  565 #define     PARITYERROR         0x0008  /* SCSI parity error            */
  566 
  567 #define     PHASEMASK           0x0007  /* Phase MSG/CD/IO              */
  568 #define         PH_DATA_OUT             0x00    /* Data out phase       */
  569 #define         PH_DATA_IN              0x01    /* Data in phase        */
  570 #define         PH_COMMAND              0x02    /* Command phase        */
  571 #define         PH_STATUS               0x03    /* Status phase         */
  572 #define         PH_BUS_FREE             0x05    /* Invalid phase used as bus free       */
  573 #define         PH_MSG_OUT              0x06    /* Message out phase    */
  574 #define         PH_MSG_IN               0x07    /* Message in phase     */
  575 
  576 #define TRMREG_SCSI_CONTROL     0x80    /* SCSI Control (W)             */
  577 /* ######### */
  578 #define     DO_CLRATN           0x0400  /* Clear ATN                    */
  579 #define     DO_SETATN           0x0200  /* Set ATN                      */
  580 #define     DO_CMDABORT         0x0100  /* Abort SCSI command           */
  581 #define     DO_RSTMODULE        0x0010  /* Reset SCSI chip              */
  582 #define     DO_RSTSCSI          0x0008  /* Reset SCSI bus               */
  583 #define     DO_CLRFIFO          0x0004  /* Clear SCSI transfer FIFO     */
  584 #define     DO_DATALATCH        0x0002  /* Enable SCSI bus data latch   */
  585 #define     DO_HWRESELECT       0x0001  /* Enable hardware reselection  */
  586 #define TRMREG_SCSI_FIFOCNT     0x82    /* SCSI FIFO Counter 5bits(R)   */
  587 #define TRMREG_SCSI_SIGNAL      0x83    /* SCSI low level signal (R/W)  */
  588 #define TRMREG_SCSI_INTSTATUS   0x84    /* SCSI Interrupt Status (R)    */
  589 /* ######### */
  590 #define     INT_SCAM            0x80    /* SCAM selection interrupt     */
  591 #define     INT_SELECT          0x40    /* Selection interrupt          */
  592 #define     INT_SELTIMEOUT      0x20    /* Selection timeout interrupt  */
  593 #define     INT_DISCONNECT      0x10    /* Bus disconnected interrupt   */
  594 #define     INT_RESELECTED      0x08    /* Reselected interrupt         */
  595 #define     INT_SCSIRESET       0x04    /* SCSI reset detected interrupt*/
  596 #define     INT_BUSSERVICE      0x02    /* Bus service interrupt        */
  597 #define     INT_CMDDONE         0x01    /* SCSI command done interrupt  */
  598 #define TRMREG_SCSI_OFFSET      0x84    /* SCSI Offset Count (W)        */
  599 /*
  600  *   Bit                Name            Definition
  601  *   07-05      0       RSVD            Reversed. Always 0.
  602  *   04         0       OFFSET4         Reversed for LVDS. Always 0.
  603  *   03-00      0       OFFSET[03:00]   Offset number from 0 to 15
  604  */
  605 #define TRMREG_SCSI_SYNC        0x85    /* SCSI Synchronous Control (R/W)*/
  606 /* ######### */
  607 #define     LVDS_SYNC           0x20    /* Enable LVDS synchronous       */
  608 #define     WIDE_SYNC           0x10    /* Enable WIDE synchronous       */
  609 #define     ALT_SYNC            0x08    /* Enable Fast-20 alternate synchronous */
  610 /*
  611  * SYNCM        7    6    5        4    3       2       1       0
  612  * Name         RSVD RSVD LVDS WIDE     ALTPERD PERIOD2 PERIOD1 PERIOD0
  613  * Default      0        0        0        0    0           0       0       0
  614  *
  615  *
  616  * Bit              Name                        Definition
  617  * 07-06        0       RSVD                    Reversed. Always read 0
  618  * 05           0       LVDS                    Reversed. Always read 0
  619  * 04           0       WIDE/WSCSI              Enable wide (16-bits) SCSI transfer.
  620  * 03           0       ALTPERD/ALTPD           Alternate (Sync./Period) mode. 
  621  *
  622  *                                      @@ When this bit is set,
  623  *                                         the synchronous period bits 2:0 
  624  *                                         in the Synchronous Mode register
  625  *                                         are used to transfer data 
  626  *                                         at the Fast-20 rate.
  627  *                                      @@ When this bit is reset,
  628  *                                         the synchronous period bits 2:0 
  629  *                                         in the Synchronous Mode Register
  630  *                                         are used to transfer data 
  631  *                                         at the Fast-40 rate.
  632  *
  633  * 02-00        0       PERIOD[2:0]/SXPD[02:00] Synchronous SCSI Transfer Rate.
  634  *                                      These 3 bits specify 
  635  *                                      the Synchronous SCSI Transfer Rate
  636  *                                      for Fast-20 and Fast-10.
  637  *                                      These bits are also reset
  638  *                                      by a SCSI Bus reset.
  639  *
  640  * For Fast-10 bit ALTPD = 0 and LVDS = 0 
  641  *     and 0x00000004,0x00000002,0x00000001 is defined as follows :
  642  *
  643  *         000  100ns, 10.0 Mbytes/s
  644  *         001  150ns,  6.6 Mbytes/s
  645  *         010  200ns,  5.0 Mbytes/s
  646  *         011  250ns,  4.0 Mbytes/s
  647  *         100  300ns,  3.3 Mbytes/s
  648  *         101  350ns,  2.8 Mbytes/s
  649  *             110      400ns,  2.5 Mbytes/s
  650  *             111      450ns,  2.2 Mbytes/s
  651  *
  652  * For Fast-20 bit ALTPD = 1 and LVDS = 0 
  653  *     and 0x00000004,0x00000002,0x00000001 is defined as follows :
  654  *
  655  *             000       50ns, 20.0 Mbytes/s
  656  *             001       75ns, 13.3 Mbytes/s
  657  *             010      100ns, 10.0 Mbytes/s
  658  *             011      125ns,  8.0 Mbytes/s
  659  *             100      150ns,  6.6 Mbytes/s
  660  *             101      175ns,  5.7 Mbytes/s
  661  *             110      200ns,  5.0 Mbytes/s
  662  *             111      250ns,  4.0 Mbytes/s
  663  *
  664  * For Fast-40 bit ALTPD = 0 and LVDS = 1
  665  *     and 0x00000004,0x00000002,0x00000001 is defined as follows :
  666  *
  667  *             000       25ns, 40.0 Mbytes/s
  668  *             001       50ns, 20.0 Mbytes/s
  669  *             010       75ns, 13.3 Mbytes/s
  670  *             011      100ns, 10.0 Mbytes/s
  671  *             100      125ns,  8.0 Mbytes/s
  672  *             101      150ns,  6.6 Mbytes/s
  673  *             110      175ns,  5.7 Mbytes/s
  674  *             111      200ns,  5.0 Mbytes/s
  675  */
  676 
  677 /*
  678  ***************************************
  679  */
  680 #define TRMREG_SCSI_TARGETID    0x86    /* SCSI Target ID (R/W)         */
  681 /*
  682  ***************************************
  683  */
  684 #define TRMREG_SCSI_IDMSG       0x87    /* SCSI Identify Message (R)    */
  685 /*
  686  ***************************************
  687  */
  688 #define TRMREG_SCSI_HOSTID      0x87    /* SCSI Host ID (W)             */
  689 /*
  690  ***************************************
  691  */
  692 #define TRMREG_SCSI_COUNTER     0x88    /* SCSI Transfer Counter 24bits(R/W)*/
  693 /*
  694  ***************************************
  695  */
  696 #define TRMREG_SCSI_INTEN       0x8C    /* SCSI Interrupt Enable (R/W)   */
  697 /* ######### */
  698 #define     EN_SCAM             0x80    /* Enable SCAM selection interrupt*/
  699 #define     EN_SELECT           0x40    /* Enable selection interrupt     */
  700 #define     EN_SELTIMEOUT       0x20    /* Enable selection timeout interrupt*/
  701 #define     EN_DISCONNECT       0x10    /* Enable bus disconnected interrupt*/
  702 #define     EN_RESELECTED       0x08    /* Enable reselected interrupt   */
  703 #define     EN_SCSIRESET        0x04    /* Enable SCSI reset detected interrupt*/
  704 #define     EN_BUSSERVICE       0x02    /* Enable bus service interrupt  */
  705 #define     EN_CMDDONE          0x01    /* Enable SCSI command done interrupt*/
  706 /*
  707  ***************************************
  708  */
  709 #define TRMREG_SCSI_CONFIG0     0x8D    /* SCSI Configuration 0 (R/W)   */
  710 /* ######### */
  711 #define     PHASELATCH          0x40    /* Enable phase latch           */
  712 #define     INITIATOR           0x20    /* Enable initiator mode        */
  713 #define     PARITYCHECK         0x10    /* Enable parity check          */
  714 #define     BLOCKRST            0x01    /* Disable SCSI reset1          */
  715 /*
  716  ***************************************
  717  */
  718 #define TRMREG_SCSI_CONFIG1     0x8E    /* SCSI Configuration 1 (R/W)   */
  719 /* ######### */
  720 #define     ACTIVE_NEGPLUS      0x10    /* Enhance active negation      */
  721 #define     FILTER_DISABLE      0x08    /* Disable SCSI data filter     */
  722 #define     ACTIVE_NEG          0x02    /* Enable active negation       */
  723 #define     ACTIVE_HISLEW       0x01    /* Enable high slew rate (3/6 ns) */
  724 /*
  725  ***************************************
  726  */
  727 #define TRMREG_SCSI_CONFIG2     0x8F    /* SCSI Configuration 2 (R/W)   */
  728 /*
  729  ***************************************
  730  */
  731 #define TRMREG_SCSI_COMMAND     0x90    /* SCSI Command (R/W)           */
  732 /* ######### */
  733 #define     SCMD_COMP           0x12    /* Command complete             */
  734 #define     SCMD_SEL_ATN        0x60    /* Selection with ATN           */
  735 #define     SCMD_SEL_ATN3       0x64    /* Selection with ATN3          */
  736 #define     SCMD_SEL_ATNSTOP    0xB8    /* Selection with ATN and Stop  */
  737 #define     SCMD_FIFO_OUT       0xC0    /* SCSI FIFO transfer out       */
  738 #define     SCMD_DMA_OUT        0xC1    /* SCSI DMA transfer out        */
  739 #define     SCMD_FIFO_IN        0xC2    /* SCSI FIFO transfer in        */
  740 #define     SCMD_DMA_IN         0xC3    /* SCSI DMA transfer in         */
  741 #define     SCMD_MSGACCEPT      0xD8    /* Message accept               */
  742 /*
  743  *  Code        Command Description
  744  *
  745  *  02      Enable reselection with FIFO
  746  *  40          Select without ATN with FIFO
  747  *  60          Select with ATN with FIFO
  748  *  64          Select with ATN3 with FIFO
  749  *  A0          Select with ATN and stop with FIFO
  750  *  C0          Transfer information out with FIFO
  751  *  C1          Transfer information out with DMA
  752  *  C2          Transfer information in with FIFO
  753  *  C3          Transfer information in with DMA
  754  *  12          Initiator command complete with FIFO
  755  *  50          Initiator transfer information out sequence without ATN with FIFO
  756  *  70          Initiator transfer information out sequence with ATN with FIFO
  757  *  74          Initiator transfer information out sequence with ATN3 with FIFO
  758  *  52          Initiator transfer information in sequence without ATN with FIFO
  759  *  72          Initiator transfer information in sequence with ATN with FIFO
  760  *  76      Initiator transfer information in sequence with ATN3 with FIFO
  761  *  90          Initiator transfer information out command complete with FIFO
  762  *  92          Initiator transfer information in command complete with FIFO
  763  *  D2          Enable selection
  764  *  08          Reselection
  765  *  48          Disconnect command with FIFO
  766  *  88          Terminate command with FIFO
  767  *  C8          Target command complete with FIFO
  768  *  18          SCAM Arbitration/ Selection
  769  *  5A          Enable reselection
  770  *  98          Select without ATN with FIFO
  771  *  B8          Select with ATN with FIFO
  772  *  D8          Message Accepted
  773  *  58          NOP
  774  */
  775 /*
  776  ***************************************
  777  */
  778 #define TRMREG_SCSI_TIMEOUT     0x91    /* SCSI Time Out Value (R/W)    */
  779 /*
  780  ***************************************
  781  */
  782 #define TRMREG_SCSI_FIFO        0x98    /* SCSI FIFO (R/W)              */
  783 /*
  784  ***************************************
  785  */
  786 #define     TRMREG_SCSI_TCR00           0x9C    /* SCSI Target Control 0 (R/W)  */
  787 /* ######### */
  788 #define     TCR0_DO_WIDE_NEGO           0x80    /* Do wide NEGO                 */
  789 #define     TCR0_DO_SYNC_NEGO           0x40    /* Do sync NEGO                 */
  790 #define     TCR0_DISCONNECT_EN          0x20    /* Disconnection enable         */
  791 #define     TCR0_OFFSET_MASK            0x1F    /* Offset number                */
  792 /*
  793  ***************************************
  794  */
  795 #define     TRMREG_SCSI_TCR01           0x9D    /* SCSI Target Control 0 (R/W)  */
  796 /* ######### */
  797 #define     TCR0_ENABLE_LVDS            0xF8    /* LVD                          */
  798 #define     TCR0_ENABLE_WIDE            0xF9    /* SE                           */
  799 /*
  800 ****************************************
  801 */
  802 
  803 /*
  804  ***************************************
  805  */
  806 #define TRMREG_SCSI_TCR1        0x9E    /* SCSI Target Control 1 (R/W)  */
  807 /* ######### */
  808 #define     MAXTAG_MASK         0x7F00  /* Maximum tags (127)           */
  809 #define     NON_TAG_BUSY        0x0080  /* Non tag command active       */
  810 #define     ACTTAG_MASK         0x007F  /* Active tags                  */
  811 /*
  812  *
  813  * The DMA register offset for TRM_S1040                                
  814  *
  815  */
  816 #define TRMREG_DMA_COMMAND      0xA0    /* DMA Command (R/W)                    */
  817 /* ######### */
  818 #define     XFERDATAIN          0x0103  /* Transfer data in             */
  819 #define     XFERDATAOUT         0x0102  /* Transfer data out            */
  820 /*
  821  ***************************************
  822  */
  823 #define TRMREG_DMA_FIFOCNT      0xA1    /* DMA FIFO Counter (R)         */
  824 /*
  825  ***************************************
  826  */
  827 #define TRMREG_DMA_CONTROL      0xA1    /* DMA Control (W)              */
  828 /* ######### */
  829 #define     STOPDMAXFER         0x08    /* Stop  DMA transfer           */
  830 #define     ABORTXFER           0x04    /* Abort DMA transfer           */
  831 #define     CLRXFIFO            0x02    /* Clear DMA transfer FIFO      */
  832 #define     STARTDMAXFER        0x01    /* Start DMA transfer           */
  833 /*
  834  ***************************************
  835  */
  836 #define TRMREG_DMA_STATUS       0xA3    /* DMA Interrupt Status (R/W)   */
  837 /* ######### */
  838 #define     XFERPENDING         0x80    /* Transfer pending             */
  839 #define     DMAXFERCOMP         0x02    /* Bus Master XFER Complete status  */
  840 #define     SCSICOMP            0x01    /* SCSI complete interrupt      */
  841 /*
  842  ***************************************
  843  */
  844 #define TRMREG_DMA_INTEN            0xA4        /* DMA Interrupt Enable (R/W)*/
  845 /* ######### */
  846 #define     EN_SCSIINTR         0x01    /* Enable SCSI complete interrupt   */
  847 /*
  848  ***************************************
  849  */
  850 #define TRMREG_DMA_CONFIG       0xA6    /* DMA Configuration (R/W)      */
  851 /* ######### */
  852 #define     DMA_ENHANCE         0x8000  /* Enable DMA enhance feature   */
  853 /*
  854  ***************************************
  855  */
  856 #define TRMREG_DMA_XCNT             0xA8        /* DMA Transfer Counter (R/W)*/
  857 /*
  858  ***************************************
  859  */
  860 #define TRMREG_DMA_CXCNT            0xAC        /* DMA Current Transfer Counter (R) */
  861 /*
  862  ***************************************
  863  */
  864 #define TRMREG_DMA_XLOWADDR     0xB0    /* DMA Transfer Physical Low Address  */
  865 /*
  866  ***************************************
  867  */
  868 #define TRMREG_DMA_XHIGHADDR    0xB4    /* DMA Transfer Physical High Address */
  869 
  870 /*
  871  *
  872  * The general register offset for TRM_S1040    
  873  *
  874  */
  875 #define TRMREG_GEN_CONTROL      0xD4    /* Global Control               */
  876 /* ######### */
  877 #define     EN_EEPROM           0x10    /* Enable EEPROM programming    */
  878 #define     AUTOTERM            0x04    /* Enable Auto SCSI terminator  */
  879 #define     LOW8TERM            0x02    /* Enable Lower 8 bit SCSI terminator */
  880 #define     UP8TERM                 0x01        /* Enable Upper 8 bit SCSI terminator */
  881 /*
  882  ***************************************
  883  */
  884 #define TRMREG_GEN_STATUS       0xD5    /* Global Status                */
  885 /* ######### */
  886 #define     GTIMEOUT            0x80    /* Global timer reach 0         */
  887 #define     CON5068             0x10    /* External 50/68 pin connected */
  888 #define     CON68               0x08    /* Internal 68 pin connected    */
  889 #define     CON50               0x04    /* Internal 50 pin connected    */
  890 #define     WIDESCSI            0x02    /* Wide SCSI card               */
  891 /*
  892  ***************************************
  893  */
  894 #define TRMREG_GEN_NVRAM        0xD6    /* Serial NON-VOLATILE RAM port */
  895 /* ######### */
  896 #define     NVR_BITOUT          0x08    /* Serial data out              */
  897 #define     NVR_BITIN           0x04    /* Serial data in               */
  898 #define     NVR_CLOCK           0x02    /* Serial clock                 */
  899 #define     NVR_SELECT          0x01    /* Serial select                */
  900 /*
  901  ***************************************
  902  */
  903 #define TRMREG_GEN_EDATA        0xD7    /* Parallel EEPROM data port    */
  904 /*
  905  ***************************************
  906  */
  907 #define TRMREG_GEN_EADDRESS     0xD8    /* Parallel EEPROM address      */
  908 /*
  909  ***************************************
  910  */
  911 #define TRMREG_GEN_TIMER        0xDB    /* Global timer                 */
  912 
  913 /*
  914  * The SEEPROM structure for TRM_S1040                  
  915  */
  916 typedef struct NVRAM_TARGET_STRUCT
  917 {
  918         u_int8_t        NvmTarCfg0;     /* Target configuration byte 0  */
  919         u_int8_t        NvmTarPeriod;   /* Target period                */
  920         u_int8_t        NvmTarCfg2;     /* Target configuration byte 2  */
  921         u_int8_t        NvmTarCfg3;     /* Target configuration byte 3  */
  922 } NVRAMTARGETTYPE;
  923 /*   NvmTarCfg0: Target configuration byte 0 :..pDCB->DevMode */
  924 #define NTC_DO_WIDE_NEGO            0x20    /* Wide negotiate           */
  925 #define NTC_DO_TAG_QUEUING      0x10    /* Enable SCSI tag queuing      */
  926 #define NTC_DO_SEND_START       0x08    /* Send start command SPINUP*/
  927 #define NTC_DO_DISCONNECT       0x04    /* Enable SCSI disconnect       */
  928 #define NTC_DO_SYNC_NEGO        0x02    /* Sync negotiation             */
  929 #define NTC_DO_PARITY_CHK       0x01    /* (it should define at NAC )
  930                                            Parity check enable          */
  931 
  932 /*
  933  *
  934  *
  935  *
  936  */
  937 typedef struct NVRAM_STRUC {
  938         u_int8_t        NvramSubVendorID[2];     /*0,1  Sub Vendor ID    */
  939         u_int8_t        NvramSubSysID[2];            /*2,3  Sub System ID*/
  940         u_int8_t        NvramSubClass;               /*4    Sub Class   */      
  941         u_int8_t        NvramVendorID[2];            /*5,6  Vendor ID   */
  942         u_int8_t        NvramDeviceID[2];            /*7,8  Device ID   */
  943         u_int8_t        NvramReserved;               /*9    Reserved    */
  944         NVRAMTARGETTYPE NvramTarget[TRM_MAX_TARGETS];/*                                                                           *10,11,12,13
  945                                                   *14,15,16,17                                                                    * ....
  946                                                   * ....
  947                                                   *70,71,72,73
  948                                                   */
  949         u_int8_t        NvramScsiId;       /*74 Host Adapter SCSI ID    */
  950         u_int8_t        NvramChannelCfg;   /*75 Channel configuration   */
  951         u_int8_t        NvramDelayTime;    /*76 Power on delay time     */
  952         u_int8_t        NvramMaxTag;       /*77 Maximum tags            */
  953         u_int8_t        NvramReserved0;    /*78  */
  954         u_int8_t        NvramBootTarget;   /*79  */
  955         u_int8_t        NvramBootLun;      /*80  */
  956         u_int8_t        NvramReserved1;    /*81  */
  957         u_int16_t       Reserved[22];      /*82,..125 */
  958         u_int16_t       NvramCheckSum;     /*126,127*/
  959 } NVRAMTYPE,*PNVRAMTYPE;
  960 /* Nvram Initiater bits definition */
  961 #define MORE2_DRV               0x00000001
  962 #define GREATER_1G              0x00000002
  963 #define RST_SCSI_BUS            0x00000004
  964 #define ACTIVE_NEGATION         0x00000008
  965 #define NO_SEEK                 0x00000010
  966 #define LUN_CHECK               0x00000020
  967 
  968 /* Nvram Adapter NvramChannelCfg bits definition */
  969 #define NAC_SCANLUN                     0x20    /* Include LUN as BIOS device*/
  970 #define NAC_POWERON_SCSI_RESET          0x04    /* Power on reset enable     */
  971 #define NAC_GREATER_1G                   0x02   /* > 1G support enable       */
  972 #define NAC_GT2DRIVES                   0x01    /* Support more than 2 drives*/
  973 /*
  974  *#define NAC_DO_PARITY_CHK             0x08    // Parity check enable      
  975  */
  976 
  977 #endif /* trm_H */

Cache object: efd3c79bf1584f86e8914aeadf1ae097


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.