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>