Rene de Vries wrote...
> > It sounds like there may be a couple of things going on.  First, your
> > scanner may not be returning sense information properly.
> > 
> > Second, the NCR driver may be doing something wrong.
> > 
> > It would be helpful if you could hook this up to your 7890 controller and
> > see what happens.  In general, the Adaptec driver behaves a little better
> > than the NCR driver.
> 
> Unfortunately the AIC7890 has a 68pin HD connector for which I don't have a
> cable. As far as the scanner goes: I didn't expect it to have a decent SCSI
> implementation, this is the reason I used a separate NCR810 to connect it to
> my system. But I find it strange that the system panics on this
> configuration, if something is wrong I expected the kernel to complain but
> not panic (you could call a panic the ultimate way for the kernel to compain,
> but this was not very helpfull). I'll try to get my hands on an
> 25 (Centronics) <-> 68pin HD cable (is there someone near Delft, NL that
> has such a cable that I can borrow for a day or two?).
> Whould it help if I took my old PC and installed FreeBSD 2.2.6 (the latest
> 2.2R i've got) and see what happens?

I'm not sure installing 2.2.6 would be that helpful, since it probably
won't exhibit the same behavior.

Here are some things to try:

 - if you can, put the scanner on your 7890
 - turn the panic statement into a printf

If you turn it into a printf, that may give us a better idea of just what
command is failing.  The attached patch for cam_periph.c should do the
trick.  The patch is against -current, but I think it should apply to
-stable okay.

I haven't checked to make sure it compiles or works, so you may have to
tweak it if it doesn't.

Ken
-- 
Kenneth Merry
[EMAIL PROTECTED]
==== //depot/cam/sys/cam/cam_periph.c#74 - /a/ken/perforce/cam/sys/cam/cam_periph.c 
====
*** /tmp/tmp.25426.0    Sun Sep  5 23:10:36 1999
--- /a/ken/perforce/cam/sys/cam/cam_periph.c    Sun Sep  5 23:10:02 1999
***************
*** 1434,1445 ****
                                   SCSI_STATUS_CHECK_COND
                                && status != CAM_AUTOSENSE_FAIL) {
                                /* no point in decrementing the retry count */
!                               panic("cam_periph_error: scsi status of "
                                      "CHECK COND returned but no sense "
!                                     "information is availible.  "
!                                     "Controller should have returned "
!                                     "CAM_AUTOSENSE_FAILED");
!                               /* NOTREACHED */
                                error = EIO;
                        } else if (ccb->ccb_h.retry_count > 0) {
                                /*
--- 1434,1448 ----
                                   SCSI_STATUS_CHECK_COND
                                && status != CAM_AUTOSENSE_FAIL) {
                                /* no point in decrementing the retry count */
!                               printf("cam_periph_error: scsi status of "
                                      "CHECK COND returned but no sense "
!                                     "information is availible.\n"
!                                     "cam_periph_error: Controller should "
!                                     "have returned CAM_AUTOSENSE_FAILED\n");
! 
!                               retry = ccb->ccb_h.retry_count > 0;
!                               if (retry)
!                                       ccb->ccb_h.retry_count--;
                                error = EIO;
                        } else if (ccb->ccb_h.retry_count > 0) {
                                /*

Reply via email to