summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
Diffstat (limited to 'sys')
-rw-r--r--sys/arch/i386/conf/GENERIC3
-rw-r--r--sys/arch/i386/conf/files.i3864
-rw-r--r--sys/arch/i386/pci/pcib.c38
3 files changed, 40 insertions, 5 deletions
diff --git a/sys/arch/i386/conf/GENERIC b/sys/arch/i386/conf/GENERIC
index b9c9994af1c..39f92981587 100644
--- a/sys/arch/i386/conf/GENERIC
+++ b/sys/arch/i386/conf/GENERIC
@@ -1,4 +1,4 @@
-# $OpenBSD: GENERIC,v 1.128 1999/09/08 12:56:41 aaron Exp $
+# $OpenBSD: GENERIC,v 1.129 1999/09/13 13:08:13 deraadt Exp $
# $NetBSD: GENERIC,v 1.48 1996/05/20 18:17:23 mrg Exp $
#
# GENERIC -- everything that's currently supported
@@ -41,6 +41,7 @@ bios0 at mainbus0
apm0 at bios0
isa0 at mainbus0
+isa0 at pcib?
eisa0 at mainbus0
pci* at mainbus0 bus ?
diff --git a/sys/arch/i386/conf/files.i386 b/sys/arch/i386/conf/files.i386
index 38775f4b0d9..0b946841edb 100644
--- a/sys/arch/i386/conf/files.i386
+++ b/sys/arch/i386/conf/files.i386
@@ -1,4 +1,4 @@
-# $OpenBSD: files.i386,v 1.56 1999/08/13 05:56:58 fgsch Exp $
+# $OpenBSD: files.i386,v 1.57 1999/09/13 13:08:13 deraadt Exp $
# $NetBSD: files.i386,v 1.73 1996/05/07 00:58:36 thorpej Exp $
#
# new style config file for i386 architecture
@@ -93,7 +93,7 @@ attach pchb at pci
file arch/i386/pci/pchb.c pchb
# PCI-ISA bridge chipsets
-device pcib: pcibus
+device pcib: isabus
attach pcib at pci
file arch/i386/pci/pcib.c pcib
diff --git a/sys/arch/i386/pci/pcib.c b/sys/arch/i386/pci/pcib.c
index 11524a1a647..16be67102a0 100644
--- a/sys/arch/i386/pci/pcib.c
+++ b/sys/arch/i386/pci/pcib.c
@@ -42,15 +42,18 @@
#include <sys/device.h>
#include <machine/bus.h>
+#include <dev/isa/isavar.h>
#include <dev/pci/pcivar.h>
#include <dev/pci/pcireg.h>
#include <dev/pci/pcidevs.h>
+#include "isa.h"
+
int pcibmatch __P((struct device *, void *, void *));
void pcibattach __P((struct device *, struct device *, void *));
-
+void pcib_callback __P((struct device *));
int pcib_print __P((void *, const char *));
struct cfattach pcib_ca = {
@@ -61,7 +64,6 @@ struct cfdriver pcib_cd = {
NULL, "pcib", DV_DULL
};
-
int
pcibmatch(parent, match, aux)
struct device *parent;
@@ -102,4 +104,36 @@ pcibattach(parent, self, aux)
* Cannot attach isa bus now; must postpone for various reasons
*/
printf("\n");
+
+ config_defer(self, pcib_callback);
+}
+
+void
+pcib_callback(self)
+ struct device *self;
+{
+ struct isabus_attach_args iba;
+
+ /*
+ * Attach the ISA bus behind this bridge.
+ */
+ memset(&iba, 0, sizeof(iba));
+ iba.iba_busname = "isa";
+ iba.iba_iot = I386_BUS_SPACE_IO;
+ iba.iba_memt = I386_BUS_SPACE_MEM;
+#if NISA > 0
+ iba.iba_dmat = &isa_bus_dma_tag;
+#endif
+ config_found(self, &iba, pcib_print);
+}
+
+int
+pcib_print(aux, pnp)
+ void *aux;
+ const char *pnp;
+{
+ /* Only ISAs can attach to pcib's; easy. */
+ if (pnp)
+ printf("isa at %s", pnp);
+ return (UNCONF);
}