diff options
author | msmith <msmith@FreeBSD.org> | 1998-12-19 02:58:29 +0000 |
---|---|---|
committer | msmith <msmith@FreeBSD.org> | 1998-12-19 02:58:29 +0000 |
commit | 434b0ce44240597b49085b60f3b96f87166796c3 (patch) | |
tree | 359d04b6904248c4ed51c532796f3eed5ccd8e38 | |
parent | 61490236bcee0615867517e76eb92c1b20075f82 (diff) | |
download | FreeBSD-src-434b0ce44240597b49085b60f3b96f87166796c3.zip FreeBSD-src-434b0ce44240597b49085b60f3b96f87166796c3.tar.gz |
Fix for bogus BIOS configuration of the 450NX PCI interface on some
systems (eg. Dell 6300).
PR: kern/8928
Submitted by: David Malone <dwmalone@maths.tcd.ie>
-rw-r--r-- | sys/pci/pcisupport.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/sys/pci/pcisupport.c b/sys/pci/pcisupport.c index f08155e..41531a6 100644 --- a/sys/pci/pcisupport.c +++ b/sys/pci/pcisupport.c @@ -1,6 +1,6 @@ -/************************************************************************** +42/************************************************************************** ** -** $Id: pcisupport.c,v 1.80 1998/12/14 09:46:31 n_hibma Exp $ +** $Id: pcisupport.c,v 1.81 1998/12/19 02:51:22 msmith Exp $ ** ** Device driver for DEC/INTEL PCI chipsets. ** @@ -42,6 +42,7 @@ */ #include "opt_pci.h" +#include "opt_smp.h" #include <sys/param.h> #include <sys/systm.h> @@ -183,6 +184,17 @@ fixbushigh_450nx(pcici_t tag) } else /* if (devmap & 0x4) */ { /* A0 */ subordinatebus = pci_cfgread(tag, 0xd1, 1); } + if (subordinatebus == 255) { + printf("fixbushigh_450nx: bogus highest PCI bus %d", + subordinatebus); +#ifdef NBUS + subordinatebus = NBUS - 2; +#else + subordinatebus = 10; +#endif + printf(", reduced to %d\n", subordinatebus); + } + if (bootverbose) printf("fixbushigh_450nx: subordinatebus is %d\n", subordinatebus); |