From owner-freebsd-hardware Sat May 16 04:52:38 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id EAA04644 for freebsd-hardware-outgoing; Sat, 16 May 1998 04:52:38 -0700 (PDT) (envelope-from owner-freebsd-hardware@FreeBSD.ORG) Received: from Octopussy.MI.Uni-Koeln.DE (Octopussy.MI.Uni-Koeln.DE [134.95.166.20]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id EAA04639; Sat, 16 May 1998 04:52:31 -0700 (PDT) (envelope-from se@dialup124.zpr.uni-koeln.de) Received: from dialup124.zpr.Uni-Koeln.DE (dialup124.zpr.Uni-Koeln.DE [134.95.219.124]) by Octopussy.MI.Uni-Koeln.DE (8.8.8/8.8.8) with ESMTP id NAA14779; Sat, 16 May 1998 13:52:18 +0200 (MET DST) Received: (from se@localhost) by dialup124.zpr.Uni-Koeln.DE (8.8.8/8.6.9) id NAA02795; Sat, 16 May 1998 13:30:28 +0200 (CEST) X-Face: " Date: Sat, 16 May 1998 13:30:27 +0200 From: Stefan Esser To: Luis Munoz , freebsd-hardware@FreeBSD.ORG Cc: Stefan Esser Subject: Re: Multiple PCI busses on a Compaq Proliant 1600 References: <3.0.5.32.19980515103507.03a1b520@pop.cantv.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 0.89i In-Reply-To: <3.0.5.32.19980515103507.03a1b520@pop.cantv.net>; from Luis Munoz on Fri, May 15, 1998 at 10:35:07AM -0400 Sender: owner-freebsd-hardware@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org On 1998-05-15 10:35 -0400, Luis Munoz wrote: > > Hi there: > > On a Compaq Proliant 1600, ROM Rev E31. This machine has 6 PCI > slots which according to the docs, are in two different PCI > busses. Slots 4-6 are in the first bus, slots 1-3 are in the > second. The problem is that any PCI cards plugged > to the PCI slots 1 to 3 are not seen by the FreeBSD > probes. Cards in slots 4-6 are probed fine. I only learned about these Proliant machines after 2.2.6 was released, but the support for the 1200 and 1600 has been commited to -stable in March. Just fetch a recent version of /sys/pci/pcisupport.c or apply the following patch: > Perhaps the PCI bridges are not being recognized correctly? PCI to PCI bridge chips are defined in the PCI specs to be compatible without the need of drivers specific to each such chip. But in the case of multiple host to PCI bridges, there is no standard that defines the registers to hold the range of attached buses (the original specification expected to have only bus 0 directly connected to the CPU and all other buses behind PCI to PCI bridges), and for that reason, support for chip sets with multiple host bridges is required. > I have physical access to the PCs and can provide specific chip > numbers if req'd. I can also do a lot of testing on this as it's > not yet in production ('till this is fixed :) Great, I'd love to know the chip numbers, since I only know them by PCI ID, right now :) Regards, STefan Index: /sys/pci/pcisupport.c =================================================================== RCS file: /usr/cvs/src/sys/pci/pcisupport.c,v retrieving revision 1.40.2.6 retrieving revision 1.40.2.7 diff -C2 -r1.40.2.6 -r1.40.2.7 *** pcisupport.c 1998/03/01 10:12:00 1.40.2.6 --- pcisupport.c 1998/03/26 22:28:42 1.40.2.7 *************** *** 1,5 **** /************************************************************************** ** ! ** $Id: pcisupport.c,v 1.40.2.6 1998/03/01 10:12:00 asami Exp $ ** ** Device driver for DEC/INTEL PCI chipsets. --- 1,5 ---- /************************************************************************** ** ! ** $Id: pcisupport.c,v 1.40.2.7 1998/03/26 22:28:42 se Exp $ ** ** Device driver for DEC/INTEL PCI chipsets. *************** *** 52,55 **** --- 52,57 ---- static void config_orion (pcici_t tag); + static void config_i1225 (pcici_t tag); + static void config_Ross (pcici_t tag); /*--------------------------------------------------------- *************** *** 171,174 **** --- 173,178 ---- case 0x84c58086: return ("Intel 82454GX (Orion) host to PCI bridge"); + case 0x00051166: + return ("Ross (?) host to PCI bridge"); case 0x00221014: return ("IBM 82351 PCI-PCI bridge"); *************** *** 700,703 **** --- 704,718 ---- static void + config_Ross(pcici_t tag) + { + int secondarybus; + + /* just guessing the secondary bus register number ... */ + secondarybus = (pci_conf_read(tag, 0x44) >> 8) & 0xff; + if (secondarybus != 0) + pciroots++; + } + + static void chipset_attach (pcici_t config_id, int unit) { *************** *** 709,712 **** --- 724,730 ---- case 0x12258086: /* unidentified Intel host bridge, dev ID == 0x1225 */ config_i1225 (config_id); + break; + case 0x00051166: /* Ross ??? */ + config_Ross (config_id); break; } To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hardware" in the body of the message