Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 7 Apr 1995 01:42:08 -0700 (PDT)
From:      Terry Lee <terryl@CS.Stanford.EDU>
To:        "Justin T. Gibbs" <gibbs@estienne.CS.Berkeley.EDU>
Cc:        freebsd-hackers@FreeBSD.org
Subject:   Re: AHA-2940 boot prob. 950322-SNAP 
Message-ID:  <Pine.SUN.3.91.950407013447.14857B-100000@Xenon.Stanford.EDU>
In-Reply-To: <199504061930.MAA24679@estienne.cs.berkeley.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
> I think this should fix it for you.  If for some reason your drive times
> out (and is detected as a tagged queuing device), try disabling the
> tagged queuing support.  Its just a couple #if 0's in i386/scsi/aic7xxx.c's
> ahc_done routine where it looks at the inquiry data to see if the drive
> can do tagged queueing.

Yes, my drive was detected with tagged queuing and could not mount root.  
So I made the following modification and it seems to work okay.  Just 
commented out one if line and replaced it with if(0)

        xs->flags |= ITSDONE;
        if(xs->cmd->opcode == 0x12 && xs->error == XS_NOERROR) 
        {
                struct ahc_data *ahc = ahcdata[unit];
                struct scsi_inquiry_data *inq_data;
                u_short mask = 0x01 << (xs->sc_link->target |
                                (scb->target_channel_lun & 0x08));
                /*
                 * Sneak a look at the results of the SCSI Inquiry
                 * command and see if we can do Tagged queing.  This
                 * should really be done by the higher level drivers.
                 */
                inq_data = (struct scsi_inquiry_data *)xs->data;
                /*if(((inq_data->device & SID_TYPE) == 0) 
                 *   && (inq_data->flags & SID_CmdQue)
                 *   && !(ahc->tagenable & mask))
                 */
                if(0)
                {
                        /*
                         * Disk type device and can tag
                         */
                        printf("ahc%d: target %d Tagged Queuing Device\n",
                                unit, xs->sc_link->target);
                        ahc->tagenable |= mask;
#ifdef QUEUE_FULL_SUPPORTED
                        xs->sc_link->opennings += 2; */
#endif
                }
        }
        ahc_free_scb(unit, scb, xs->flags);


Can you let me know if there is anythign else to watch out for?
Thanks, Justin.

BTW, I'm using a Seagate ST-31200N.

Best regards,

Terry


I N T E R N E T        Terry Lee, Technical Director
D E S I G N            745 Stanford Avenue, Palo Alto, California 94306
G R O U P              415 424 0747 voice    415 424-0751 fax
http://www.mall.net    terryl@cs.stanford.edu    http://www.mall.net/terry




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.SUN.3.91.950407013447.14857B-100000>