Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 19 Apr 2001 18:37:25 -0700
From:      Mike Smith <msmith@freebsd.org>
To:        Domas Mituzas <midom@delfi.lt>
Cc:        scsi@freebsd.org
Subject:   Re: mly driver does not work with SCA in up-to-date 4.3 
Message-ID:  <200104200137.f3K1bUu17530@mass.dis.org>
In-Reply-To: Your message of "Thu, 19 Apr 2001 11:17:40 %2B0200." <20010419102313.P66974-100000@axis.tdd.lt> 

next in thread | previous in thread | raw e-mail | index | archive | help
> Mylex logical volume was inicialized using automatic setup, cause it fully
> satisfied our needs (fault-tolerant mirror).
> 
> It always (during successful starts and not successful ones) showed us
> 
> (probe15:mly0:1:0:0): MODE SENSE(06). CDB: 1a 0 a 0 14 0
> (probe15:mly0:1:0:0): ILLEGAL REQUEST asc:21,0
> (probe15:mly0:1:0:0): Logical block address out of range

I think you're booting verbose; this shouldn't actually show up normally 
AFAIR.

> Unsuccessful starts included:
> 
> (probe6:mly0:0:6:0): INQUIRY. CDB 12 1 80 0 ff 0
> (probe6:mly0:0:6:0): ILLEGAL REQUEST asc:24,0
> (probe6:mly0:0:6:0): Invalid field in CDB
> 
> As far as I understand, 0:6:0 is SCA processor, identified by mylex bios
> as:
> 
> 0:06 Processor ESG-SHV SCA HBPM10 0.04
> 
> So it seams, that mylex doesn't know how to work with it.

Actually, the Mylex controller does know how to deal with it, the problem 
is that it doesn't tell the driver to leave it alone, so the driver 
exposes it to the generic SCSI interface.  That's really a bug in the 
driver (not detecting this and hiding it).

> Stopped at mly_cam_action+0x25d: idivl 0x8c(%esi,%ebx,1),%eax
...
> any details may be given upon request. This happens both with GENERIC and
> tailored version of kernel. Hardware is new, stable and works with
> 4.2-release.

I'm sorry I'm a bit slow responding to this.  I think that this is 
probably this line:

            /* convert speed (MHz) to usec */
            cts->sync_period = 1000000 / sc->mly_btl[bus][target].mb_speed;

and the problem is that the device isn't considered a "physical" device 
by the Mylex controller.  You might try something like

	if (sc->mly_btl[bus][target].mb_speed == 0) {
		cts->sync_period = 1000000 / 5;
	} else {
		cts->sync_period = 1000000 / sc->mly_btl[bus][target].mb_speed;
	}

and see if this works properly (yes, I know you'll have to build a 
replacement kernel to try this out).  It's not accurate, but I'm not sure 
how else to go about dealing with this.

I *knew* that interfacing this driver to CAM was a bad idea, and I was 
right. 8(


-- 
... every activity meets with opposition, everyone who acts has his
rivals and unfortunately opponents also.  But not because people want
to be opponents, rather because the tasks and relationships force
people to take different points of view.  [Dr. Fritz Todt]
           V I C T O R Y   N O T   V E N G E A N C E



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-scsi" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200104200137.f3K1bUu17530>