The check_extport() function appears to have some new code in it that checks

the scratch RAM for data normally found in the SEEPROM (presumably in the
event that the SEEPROM is unavailable or can't be read). This code causes
a spontaneous reboot on monster.osd.bsdi.com, which has an embedded aic7880
controller. The problem appears to happen either when it writes to the
SCBPTR port and then reads from the SCB_CONTROL port. Somewhere during
the inb/outb operations, the system has a heart attack and restarts.

This code looks very suspicious, particularly since it has unconditionalized
debug mesages such as "Got here!" and "And it even worked!". With this
block #ifdef'ed out, the machine boots and runs properly. I stronly suggest
that it stay #ifdef'ed out until it's properly tested.
This commit is contained in:
Bill Paul 2000-08-04 18:09:56 +00:00
parent 6c388e8448
commit 624539bb38
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=64247

View File

@ -1143,6 +1143,12 @@ check_extport(struct ahc_softc *ahc, u_int *sxfrctl1)
}
}
#ifdef 0
/*
* This code causes a machine with an aic7880 chipset
* to reboot spontaneously. Whatever it's supposed to do,
* it's doing it wrong. -wpaul
*/
if (!have_seeprom) {
/*
* Pull scratch ram settings and treat them as
@ -1168,6 +1174,7 @@ check_extport(struct ahc_softc *ahc, u_int *sxfrctl1)
printf("And it even worked!\n");
}
}
#endif
if (!have_seeprom) {
if (bootverbose)