Misunderstanding documentation caused me to try and set 1Gbps/2Gps/Auto
connection speed for the 2300 in the wrong offset in the ICB. Oops. Respect some QLogic errat wrt PCI errors on certain shared host/RISC registers.
This commit is contained in:
parent
3bd4033010
commit
cd37f56f5a
@ -548,15 +548,22 @@ again:
|
|||||||
ISP_RESET1(isp);
|
ISP_RESET1(isp);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Wait for everything to finish firing up...
|
* Wait for everything to finish firing up.
|
||||||
|
*
|
||||||
|
* Avoid doing this on the 2312 because you can generate a PCI
|
||||||
|
* parity error (chip breakage).
|
||||||
*/
|
*/
|
||||||
loops = MBOX_DELAY_COUNT;
|
if (IS_2300(isp)) {
|
||||||
while (ISP_READ(isp, OUTMAILBOX0) == MBOX_BUSY) {
|
USEC_DELAY(5);
|
||||||
USEC_DELAY(100);
|
} else {
|
||||||
if (--loops < 0) {
|
loops = MBOX_DELAY_COUNT;
|
||||||
isp_prt(isp, ISP_LOGERR,
|
while (ISP_READ(isp, OUTMAILBOX0) == MBOX_BUSY) {
|
||||||
"MBOX_BUSY never cleared on reset");
|
USEC_DELAY(100);
|
||||||
return;
|
if (--loops < 0) {
|
||||||
|
isp_prt(isp, ISP_LOGERR,
|
||||||
|
"MBOX_BUSY never cleared on reset");
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1223,11 +1230,11 @@ isp_fibre_init(struct ispsoftc *isp)
|
|||||||
icbp->icb_fwoptions &= ~ICBOPT_FAST_POST;
|
icbp->icb_fwoptions &= ~ICBOPT_FAST_POST;
|
||||||
}
|
}
|
||||||
if (isp->isp_confopts & ISP_CFG_ONEGB) {
|
if (isp->isp_confopts & ISP_CFG_ONEGB) {
|
||||||
icbp->icb_xfwoptions |= ICBXOPT_RATE_ONEGB;
|
icbp->icb_zfwoptions |= ICBZOPT_RATE_ONEGB;
|
||||||
} else if (isp->isp_confopts & ISP_CFG_TWOGB) {
|
} else if (isp->isp_confopts & ISP_CFG_TWOGB) {
|
||||||
icbp->icb_xfwoptions |= ICBXOPT_RATE_TWOGB;
|
icbp->icb_zfwoptions |= ICBZOPT_RATE_TWOGB;
|
||||||
} else {
|
} else {
|
||||||
icbp->icb_xfwoptions |= ICBXOPT_RATE_AUTO;
|
icbp->icb_zfwoptions |= ICBZOPT_RATE_AUTO;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -662,9 +662,9 @@ typedef struct isp_icb {
|
|||||||
#define ICBXOPT_RIO_32BIT_DELAY 4
|
#define ICBXOPT_RIO_32BIT_DELAY 4
|
||||||
|
|
||||||
/* These 3 only apply to the 2300 */
|
/* These 3 only apply to the 2300 */
|
||||||
#define ICBXOPT_RATE_ONEGB (MBGSD_ONEGB << 14)
|
#define ICBZOPT_RATE_ONEGB (MBGSD_ONEGB << 14)
|
||||||
#define ICBXOPT_RATE_TWOGB (MBGSD_TWOGB << 14)
|
#define ICBZOPT_RATE_TWOGB (MBGSD_TWOGB << 14)
|
||||||
#define ICBXOPT_RATE_AUTO (MBGSD_AUTO << 14)
|
#define ICBZOPT_RATE_AUTO (MBGSD_AUTO << 14)
|
||||||
|
|
||||||
|
|
||||||
#define ICB_MIN_FRMLEN 256
|
#define ICB_MIN_FRMLEN 256
|
||||||
|
Loading…
x
Reference in New Issue
Block a user