Date: Mon, 11 Apr 2005 11:21:14 -0600 (MDT) From: "M. Warner Losh" <imp@bsdimp.com> To: bms@spc.org Cc: scottl@samsco.org Subject: Re: A question about hot-pluggable PCI. Message-ID: <20050411.112114.36185200.imp@bsdimp.com> In-Reply-To: <20050411134817.GA4176@empiric.icir.org> References: <20050411082600.GA735@empiric.icir.org> <425A7AB3.7040908@samsco.org> <20050411134817.GA4176@empiric.icir.org>
next in thread | previous in thread | raw e-mail | index | archive | help
In message: <20050411134817.GA4176@empiric.icir.org> Bruce M Simpson <bms@spc.org> writes: : On Mon, Apr 11, 2005 at 07:25:07AM -0600, Scott Long wrote: : > Asking for 'hotplug support' is pretty generic and non-descriptive. Are : > you asking for device level hotplug support, where we carefully drain : > transactions out of a device, device driver, and whatever I/O or network : > or whatever layers are above it? Or are you talking about PCI hotplug : > support? If so, which de-facto standard? Compaq? IBM? ACPI? : > PCI-SIG? Something else? : : Sorry, I thought my original post was quite clear; in order to support : my hot-pluggable PCI chassis, FreeBSD needs to grow the ability to manage : PCI resources without any firmware support (other than possibly the ability : to route interrupts). Since I sent that mail I looked at the requirements : list for 5-STABLE and realized this is in fact on it. The trouble is that 'Hot Plug' pci is a semi-standardized thing. That's why people are confused. :-) You want to plug in a new PCI bus, while most people consider hot-plug PCI a way to replace cards in a running system. : I looked in src/sys/dev/cardbus/cardbus_cis.c, and Linux's ACPI-based PCI : hotplug driver, and realised that at the lowest level, they are all in fact : pretty much doing the same thing -- that is, setting all bits in a BAR, and : then figuring out the desired aperture size for each BAR, allocating the : appropriate resources using rman, figuring out base addresses, etc. Yup. : We currently rely on the BIOS to do this. The bit I've been discussing with : Warner is how to deal with the problem of setting subordinate bus numbers, : though because I can get away without doing that for the 'pcib is an immediate : child of cardbus' case, I haven't done it. No we don't. We use what the BIOS provides, but will lazily allocate the BARs as necessary. We don't open the resource windows on the bridges, however. : I had also thought of passing down a 'cold' flag, for pcibX to indicate to : pciY that this is a 'cold attach' (the BIOS hasn't been anywhere near the : devices behind this bridge -- it is as fresh as after a RST# assert). I don't think that's a wise idea. Warner
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050411.112114.36185200.imp>