From owner-freebsd-stable Mon Jun 5 13:45: 9 2000 Delivered-To: freebsd-stable@freebsd.org Received: from alice.pdq.net (alice.pdq.net [204.145.251.236]) by hub.freebsd.org (Postfix) with SMTP id 603A037B548 for ; Mon, 5 Jun 2000 13:45:05 -0700 (PDT) (envelope-from jsmethers@pdq.net) X-AirNote: 1 Received: from 64-31-203-13.pdq.net [64.31.203.13-11] by alice.pdq.net ID 41_-1; Mon, 05 Jun 2000 15:41:28 -0500 Message-ID: <00aa01bfcf2f$0478c760$0dcb1f40@mom> From: "Jason" To: , References: <200006011637.SAA66853@info.iet.unipi.it> <20000601113842.A92456@panzer.kdm.org> Subject: Re: changed pci bus probe order from 3.2 to 4.0 -- ideas? Date: Mon, 5 Jun 2000 15:45:41 -0500 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.00.2919.6700 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6700 Sender: owner-freebsd-stable@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG From: "Kenneth D. Merry" > The problem is that when the new-bus code was introduced, the probe order > was changed from a bus-by-bus probe (breadth first?) to a depth-first > probe. > > i.e. as soon as another PCI bus is found (e.g. on a bridge chip) it is > probed, rather than deferring the probe of the new bus until the probe of > the current bus has been completed. > > I think Doug Rabson had plans to fix the probe order, but it never > happened. > > There is no way to hardwire PCI devices, so you'll probably have to just > change which card is referenced in your scripts. > > Ken > -- > Kenneth Merry > ken@kdm.org The PCI spec basicly states that buses are to be probed depth first. As a PCI bridge is found, it is assigned the next sequential bus number and probed for additional bridges beyond it. As a new bridge is found, all the parent bridges' subordinat bus number register is updated to the highest numbered bus that exists beyond it. When no more PCI bridges are found on the current bus, the routine should return to the parent bus and continue probing for more PCI bridges, and so on. This is done in this fashion so that sub PCI bridges may claim the correct transactions. The probe routine is correct as is - at least for machines with a single host/PCI bridge. If anything, work may be done to allow the wiring down of devices, either by PCI bus, or as found by the probe. The first not really being practical considering that buses may be renumbered based on the addition or removal of PCI bridges. eg. a nice feature we don't support yet - hot swaping of PCI cards. -Jason To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message