Author: marius
Date: Mon Dec 15 21:42:38 2008
New Revision: 186140
URL: http://svn.freebsd.org/changeset/base/186140

Log:
  Don't try reading the SXP_PINS_DIFF on the 10160 and 12160 SCSI
  controllers. Reading this register, for which there are indications
  that it doesn't really exist, returns 0 on at least some 12160
  and doing so on Sun Fire V880 causes a data access error exception.
  
  Reported and tested by:       Beat Gaetzi
  Approved by:          mjacob
  Obtained from:                OpenBSD (modulo setting isp_lvdmode)

Modified:
  head/sys/dev/isp/isp.c

Modified: head/sys/dev/isp/isp.c
==============================================================================
--- head/sys/dev/isp/isp.c      Mon Dec 15 21:39:31 2008        (r186139)
+++ head/sys/dev/isp/isp.c      Mon Dec 15 21:42:38 2008        (r186140)
@@ -335,6 +335,23 @@ isp_reset(ispsoftc_t *isp)
                /*
                 * XXX: Should probably do some bus sensing.
                 */
+       } else if (IS_ULTRA3(isp)) {
+               sdparam *sdp = isp->isp_param;
+
+               isp->isp_clock = 100;
+
+               if (IS_10160(isp))
+                       btype = "10160";
+               else if (IS_12160(isp))
+                       btype = "12160";
+               else
+                       btype = "<UNKLVD>";
+               sdp->isp_lvdmode = 1;
+
+               if (IS_DUALBUS(isp)) {
+                       sdp++;
+                       sdp->isp_lvdmode = 1;
+               }
        } else if (IS_ULTRA2(isp)) {
                static const char m[] = "bus %d is in %s Mode";
                uint16_t l;
@@ -346,10 +363,6 @@ isp_reset(ispsoftc_t *isp)
                        btype = "1280";
                else if (IS_1080(isp))
                        btype = "1080";
-               else if (IS_10160(isp))
-                       btype = "10160";
-               else if (IS_12160(isp))
-                       btype = "12160";
                else
                        btype = "<UNKLVD>";
 
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to