Index: dc390/README.tmscsim =================================================================== RCS file: /usr/local/cvsroot/dc390/README.tmscsim,v retrieving revision 2.18 retrieving revision 2.19 diff -u -r2.18 -r2.19 --- dc390/README.tmscsim 1999/06/01 22:39:13 2.18 +++ dc390/README.tmscsim 1999/06/06 20:17:11 2.19 @@ -141,14 +141,15 @@ Here's an example: garloff@kg1:/home/garloff > cat /proc/scsi/tmscsim/0 -Tekram DC390/AM53C974 PCI SCSI Host Adapter, Driver Version 2.0d2, 1999/02/20 -SCSI Host Nr 0, AM53C974 Adapter Nr 0 -IOPortBase 0x6200, IRQLevel 0x09 +Tekram DC390/AM53C974 PCI SCSI Host Adapter, Driver Version 2.0d9 1999/06/06 +SCSI Host Nr 1, AM53C974 Adapter Nr 0 +IOPortBase 0xe800, IRQ 17 MaxID 7, MaxLUN 8, AdapterID 7, SelTimeout 250 ms, DelayReset 1 s -TagMaxNum 16, Status 0, ACBFlag 0, GlitchEater 24 ns -Statistics: Nr of Cmnds 39563, Cmnds not sent directly 0, Out of SRB conds 0 - Nr of lost arbitrations 17 +TagMaxNum 16, Status 0x00, ACBFlag 0x00, GlitchEater 24 ns +Statistics: Cmnds 39563, Cmnds not sent directly 0, Out of SRB conds 0 + Lost arbitrations 0, Connected: No Nr of attached devices: 4, Nr of DCBs: 4 +Map of attached LUNs: 01 01 00 01 00 01 00 00 Idx ID LUN Prty Sync DsCn SndS TagQ NegoPeriod SyncSpeed SyncOffs 00 00 00 Yes Yes Yes Yes Yes 100 ns 10.0 M 15 01 01 00 Yes Yes Yes Yes Yes 100 ns 10.0 M 15 @@ -205,7 +206,7 @@ an INQUIRY on the device if necessary to check if it is capable to operate with the given settings (Sync, TagQ). Examples: - echo "0 0 0 y y y - y - - 10 " >/proc/scsi/tmscsim/0 + echo "0 0 0 y y y - y - 10 " >/proc/scsi/tmscsim/0 echo "3 5 0 y n y " >/proc/scsi/tmscsim/0 To give a short explanation of the first example: @@ -431,4 +432,4 @@ ------------------------------------------------------------------------- Written by Kurt Garloff 1998/06/11 Last updated 1999/06/02, driver revision 2.0d6 -$Id: README.tmscsim,v 2.18 1999/06/01 22:39:13 garloff Exp $ +$Id: README.tmscsim,v 2.19 1999/06/06 20:17:11 garloff Exp $ Index: dc390/dc390.h =================================================================== RCS file: /usr/local/cvsroot/dc390/dc390.h,v retrieving revision 2.24 retrieving revision 2.25 diff -u -r2.24 -r2.25 --- dc390/dc390.h 1999/06/03 21:34:31 2.24 +++ dc390/dc390.h 1999/06/06 20:17:11 2.25 @@ -4,7 +4,7 @@ * Description: Device Driver for Tekram DC-390(T) PCI SCSI * * Bus Master Host Adapter * ***********************************************************************/ -/* $Id: dc390.h,v 2.24 1999/06/03 21:34:31 garloff Exp $ */ +/* $Id: dc390.h,v 2.25 1999/06/06 20:17:11 garloff Exp $ */ #include @@ -16,7 +16,7 @@ #define DC390_H #define DC390_BANNER "Tekram DC390/AM53C974" -#define DC390_VERSION "2.0d8 1999/06/03" +#define DC390_VERSION "2.0d9 1999/06/06" #if defined(HOSTS_C) || defined(MODULE) Index: dc390/scsiiom.c =================================================================== RCS file: /usr/local/cvsroot/dc390/scsiiom.c,v retrieving revision 2.31 retrieving revision 2.32 diff -u -r2.31 -r2.32 --- dc390/scsiiom.c 1999/06/04 09:07:05 2.31 +++ dc390/scsiiom.c 1999/06/06 20:17:11 2.32 @@ -4,7 +4,7 @@ * Description: Device Driver for Tekram DC-390 (T) PCI SCSI * * Bus Master Host Adapter * ***********************************************************************/ -/* $Id: scsiiom.c,v 2.31 1999/06/04 09:07:05 garloff Exp $ */ +/* $Id: scsiiom.c,v 2.32 1999/06/06 20:17:11 garloff Exp $ */ UCHAR dc390_StartSCSI( PACB pACB, PDCB pDCB, PSRB pSRB ) @@ -33,11 +33,14 @@ DEBUG1(printk (KERN_INFO "DC390: Start SCSI command: %02x (Sync:%02x)\n",\ pSRB->pcmd->cmnd[0], pDCB->SyncMode);) disc_allowed = pDCB->DevMode & EN_DISCONNECT_; try_sync_nego = 0; - /* Be conservative: Don't disconnect for REQ_SENSE, TEST_U_READY, INQ */ - /* Changed KG, 99/06/01 */ - if( (((pSRB->pcmd->cmnd[0] == INQUIRY) || (pSRB->pcmd->cmnd[0] == REQUEST_SENSE) || + /* Don't disconnect on AUTO_REQ_SENSE, cause it might be an + * Contingent Allegiance Condition (6.6), where no tags should be used. + * All other have to be allowed to disconnect to prevent Incorrect + * Initiator Connection (6.8.2/6.5.2) */ + /* Changed KG, 99/06/06 */ + if( /*(((pSRB->pcmd->cmnd[0] == INQUIRY) || (pSRB->pcmd->cmnd[0] == REQUEST_SENSE) || (pSRB->pcmd->cmnd[0] == TEST_UNIT_READY)) && pACB->scan_devices) - || (pSRB->SRBFlag & AUTO_REQSENSE) ) + ||*/ (pSRB->SRBFlag & AUTO_REQSENSE) ) disc_allowed = 0; if ( (pDCB->SyncMode & SYNC_ENABLE) && !(pDCB->SyncMode & SYNC_NEGO_DONE) && (pDCB->UnitSCSILUN == 0) && @@ -47,7 +50,7 @@ pSRB->MsgCnt = 0; cmd = SEL_W_ATN; DC390_write8 (ScsiFifo, IDENTIFY(disc_allowed, pDCB->UnitSCSILUN)); - /* Change 99/05/31: Don't use tags when not disconnecting */ + /* Change 99/05/31: Don't use tags when not disconnecting (BUSY) */ if ((pDCB->SyncMode & EN_TAG_QUEUEING) && disc_allowed) { UCHAR tag_no = 0; Index: dc390/tmscsim.c =================================================================== RCS file: /usr/local/cvsroot/dc390/tmscsim.c,v retrieving revision 2.38 retrieving revision 2.39 diff -u -r2.38 -r2.39 --- dc390/tmscsim.c 1999/06/04 09:07:05 2.38 +++ dc390/tmscsim.c 1999/06/06 20:17:11 2.39 @@ -7,7 +7,7 @@ ***********************************************************************/ /* (C) Copyright: put under GNU GPL in 10/96 (see README.tmscsim) * *************************************************************************/ -/* $Id: tmscsim.c,v 2.38 1999/06/04 09:07:05 garloff Exp $ */ +/* $Id: tmscsim.c,v 2.39 1999/06/06 20:17:11 garloff Exp $ */ /* Enhancements and bugfixes by * * Kurt Garloff * ***********************************************************************/ @@ -115,6 +115,8 @@ * 2.0d7 99/06/03 KG Fixed bugs wrt add,remove commands * * 2.0d8 99/06/04 KG Removed copying of cmnd into CmdBlock. * * Fixed Oops in _release(). * + * 2.0d9 99/06/06 KG Also tag queue INQUIRY, T_U_R, ... * + * Allow arb. no. of Tagged Cmnds. Max 32 * ***********************************************************************/ /* Uncomment SA_INTERRUPT, if the driver refuses to share its IRQ with other devices */ @@ -2380,8 +2382,8 @@ ok2: pACB->glitch_cfg = NS_TO_GLITCH (dum); if (pACB->sel_timeout < 60) pACB->sel_timeout = 60; - dum = 0; while (1 << dum <= pACB->TagMaxNum) dum ++; - pACB->TagMaxNum &= (1 << --dum); + //dum = 0; while (1 << dum <= pACB->TagMaxNum) dum ++; + //pACB->TagMaxNum &= (1 << --dum); if (pos == p1) goto einv; dc390_updateDCBs (pACB); } Index: dc390/tmscsim.h =================================================================== RCS file: /usr/local/cvsroot/dc390/tmscsim.h,v retrieving revision 2.10 retrieving revision 2.11 diff -u -r2.10 -r2.11 --- dc390/tmscsim.h 1999/06/03 21:34:31 2.10 +++ dc390/tmscsim.h 1999/06/06 20:17:11 2.11 @@ -3,7 +3,7 @@ ;* TEKRAM DC-390(T) PCI SCSI Bus Master Host Adapter * ;* Device Driver * ;***********************************************************************/ -/* $Id: tmscsim.h,v 2.10 1999/06/03 21:34:31 garloff Exp $ */ +/* $Id: tmscsim.h,v 2.11 1999/06/06 20:17:11 garloff Exp $ */ #ifndef _TMSCSIM_H #define _TMSCSIM_H @@ -12,8 +12,8 @@ #define MAX_ADAPTER_NUM 4 #define MAX_SG_LIST_BUF 16 /* Not used */ -#define MAX_CMD_PER_LUN 24 -#define MAX_CMD_QUEUE 2*MAX_CMD_PER_LUN+1 +#define MAX_CMD_PER_LUN 32 +#define MAX_CMD_QUEUE MAX_CMD_PER_LUN+MAX_CMD_PER_LUN/2+1 #define MAX_SCSI_ID 8 #define MAX_SRB_CNT MAX_CMD_QUEUE+1 /* Max number of started commands */