svn commit: r190079 - in stable/7/sys: . contrib/pf dev/cxgb dev/isp
Marius Strobl
marius at FreeBSD.org
Thu Mar 19 09:14:07 PDT 2009
Author: marius
Date: Thu Mar 19 16:14:00 2009
New Revision: 190079
URL: http://svn.freebsd.org/changeset/base/190079
Log:
MFC: r186140
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:
stable/7/sys/ (props changed)
stable/7/sys/contrib/pf/ (props changed)
stable/7/sys/dev/cxgb/ (props changed)
stable/7/sys/dev/isp/isp.c
Modified: stable/7/sys/dev/isp/isp.c
==============================================================================
--- stable/7/sys/dev/isp/isp.c Thu Mar 19 16:11:14 2009 (r190078)
+++ stable/7/sys/dev/isp/isp.c Thu Mar 19 16:14:00 2009 (r190079)
@@ -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>";
More information about the svn-src-stable-7
mailing list