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) { /*