Subject: port-i386/4704: i386 port doesn't detect multiple PCI buses.
To: None <gnats-bugs@gnats.netbsd.org>
From: None <michael.robinson@vuw.ac.nz>
List: netbsd-bugs
Date: 12/17/1997 04:42:59
>Number:         4704
>Category:       port-i386
>Synopsis:       i386 port doesn't detect multiple PCI buses.
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    gnats-admin (GNATS administrator)
>State:          open
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Tue Dec 16 20:50:00 1997
>Last-Modified:
>Originator:     smrf
>Organization:
Victoris University of Wellington
>Release:        1.3_BETA
>Environment:
System: NetBSD kowhai.its.vuw.ac.nz 1.3_BETA NetBSD 1.3_BETA (RAUPETI)
#1: Tue Dec 16 13:33:05 NZDT 1997 smrf@tawhai:/usr/src/sys/arch/i386/compile/RAUPETI i386

>Description:
	The mainbus_attach function for i386's only attaches
	one PCI bus; the Compaq Proliant 1200 (at least) has
	two separate PCI buses.  All credit to Matthias Drochner
	for suggesting the solution to my problems.
>How-To-Repeat:
	Boot netbsd on Compaq Proliant 1200, which has two
	PCI buses -- the second contains the onboard ethernet
	controller and SCSI controller, which makes life
	difficult.
>Fix:
	The following patch allows the Proliant to boot.
	However, something more general needs to be done, as
	this just probes one more bus; I don't know enough
	about what is going on here to suggest a better
	solution.

--- mainbus.c.old Thu Dec 11 10:41:32 1997
+++ mainbus.c   Tue Dec 16 13:32:50 1997
@@ -120,6 +120,15 @@
		mba.mba_pba.pba_dmat = &pci_bus_dma_tag;
		mba.mba_pba.pba_flags =
		    PCI_FLAGS_IO_ENABLED | PCI_FLAGS_MEM_ENABLED;
+               mba.mba_pba.pba_bus = 1;
+               config_found(self, &mba.mba_pba, mainbus_print);
+
+               mba.mba_pba.pba_busname = "pci";
+               mba.mba_pba.pba_iot = I386_BUS_SPACE_IO;
+               mba.mba_pba.pba_memt = I386_BUS_SPACE_MEM;
+               mba.mba_pba.pba_dmat = &pci_bus_dma_tag;
+               mba.mba_pba.pba_flags =
+                   PCI_FLAGS_IO_ENABLED | PCI_FLAGS_MEM_ENABLED;
		mba.mba_pba.pba_bus = 0;
		config_found(self, &mba.mba_pba, mainbus_print);
	}
>Audit-Trail:
>Unformatted: