Date: Sat, 18 Mar 1995 16:40:02 -0800 From: pritc003@maroon.tc.umn.edu To: freebsd-bugs Subject: kern/253: Tagged queuing doesn't work w/Adaptec 2842 controller Message-ID: <199503190040.QAA00712@freefall.cdrom.com> In-Reply-To: Your message of Sat, 18 Mar 1995 17:59:10 -0600 (CST) <2f6b73cf120e002@maroon.tc.umn.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
>Number: 253 >Category: kern >Synopsis: Tagged queuing with an Adaptec 2842 controller doesn't work >Confidential: no >Severity: serious >Priority: high >Responsible: freebsd-bugs (FreeBSD bugs mailing list) >State: open >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sat Mar 18 16:40:01 1995 >Originator: Mike Pritchard >Organization: None >Release: FreeBSD 2.1.0-Development i386 >Environment: Adaptec 2842VL SCSI controller 1 Seagate ST1239N SCSI-1 hard disk 1 Seagate ST31230 SCSI-2 hard disk >Description: System fails to boot when using the latest version of the Adaptec 2842 drive (sys/i386/scsi/aic7xxx.c). About 15 - 20 "sd1: Target Busy" messages are displayed on the console, and the system panics because it is unable to mount the root file system. I tracked this down to the fact that the driver is now enabling "tagged queuing" for the ST31230 SCSI-2 disk. If I disable the line of code that does this, the system boots fine. >How-To-Repeat: Boot with a device that supports tagged queuing (or one that the driver thinks does). Here is all of the relevant information from the boot sequence after I disabled the tagged queing code and with AHC_DEBUG turned on. ahc0: scb 2104 bytes; SCB_SIZE 19 bytes, ahc_dma 8 bytes ahc0: reading board settings ahc0: 284x Single Channel, SCSI Id=7, aic7770 <= Rev C, 4 SCBs NEEDSDTR == 0xfffa NEEDWDTR == 0x0 ahc0: Downloading Sequencer Program...Done ahc0 at 0x1000-0x10ff irq 11 on eisa slot 1 ahc0: Probing channel A scbus0: ahc0 waiting for scsi devices to settle ahc0: target 0, lun 0 (probe0) requests Check Status ahc0: target 0, lun 0 (probe0) Sending Sense (ahc0:0:0): "CDC ST1239NS 9212" is a type 0 fixed SCSI 1 sd0(ahc0:0:0): Direct-Access sd0(ahc0:0:0): 194MB (398790 sectors), 1268 C 9 H 34 S/T 512 B/S ahc0: target 1 synchronous at 10.0MB/s, offset = 0xf ahc0: target 1, lun 0 (probe0) requests Check Status ahc0: target 1, lun 0 (probe0) Sending Sense ahc0: target 1 Tagged Queuing Device (ahc0:1:0): "SEAGATE ST31230N 0290" is a type 0 fixed SCSI 2 sd1(ahc0:1:0): Direct-Access sd1(ahc0:1:0): 1010MB (2069860 sectors), 3992 C 5 H 103 S/T 512 B/S ahc0: target 2, lun 0 (probe0) requests Check Status ahc0: target 2, lun 0 (probe0) Sending Sense (ahc0:2:0): "ARCHIVE VIPER 150 21944 -001" is a type 1 removable SCSI 1 st0(ahc0:2:0): Sequential-Access st0: Archive Viper 150 is a known rogue density code 0x0, ahc0: target 2, lun 0 (st0) requests Check Status ahc0: target 2, lun 0 (st0) Sending Sense drive empty ahc0: target 1, lun 0 (sd1) requests Check Status ahc0: target 1, lun 0 (sd1) Sending Sense ahc0: target 1, lun 0 (sd1) requests Check Status ahc0: target 1, lun 0 (sd1) Sending Sense ... >Fix: A workaround is to disable tagged queuing for now: *** orig/aic7xxx.c Sat Mar 18 15:12:43 1995 --- ./aic7xxx.c Sat Mar 18 17:28:25 1995 *************** *** 1652,1659 **** --- 1653,1662 ---- scb->control |= SCB_NEEDSDTR; ahc->sdtrpending |= mask; } + #ifdef BROKEN else if(ahc->tagenable & mask) scb->control |= SCB_TE; + #endif scb->target_channel_lun = ((xs->sc_link->target << 4) & 0xF0) | ((u_long)xs->sc_link->fordriver & 0x08) | (xs->sc_link->lun & 0x07); >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199503190040.QAA00712>