On Compaq Prolinea with Pentium CPU (Prolinea 575/590/5133/5150, I have only these models), all kernels will panic. The problem is due to due to a call at "bios32_SDCI" address. This addess is given bios_sigsearch function in bios.c (see fix) after a cast in bios32_SDheader structure and on Compaq Prolinea, this value is too big (perhaps coded diffently). Fix: Fix bios32_init function in /usr/src/sys/i386/i386/bios.c: very value of sdh->entry, I think in should be less than BIOS max address: /* get a virtual pointer to the structure */ sdh = (struct bios32_SDheader *)BIOS_PADDRTOVADDR(sigaddr); for (cv = (u_int8_t *)sdh, ck = 0, i = 0; i < (sdh->len * 16); i++) { ck += cv[i]; } /* If checksum is OK, enable use of the entrypoint */ if (ck == 0 && sdh->entry < (BIOS_START + BIOS_SIZE)) { <<<<- bios32_SDCI = (caddr_t)BIOS_PADDRTOVADDR(sdh->entry); How-To-Repeat: Boot 3.0-971123-SNAP (or some more older versions) from boot floppy, kernel will panic very quickly.
State Changed From-To: open->closed Suggested range check implemented.
Responsible Changed From-To: freebsd-bugs->msmith My code.