A question about hot-pluggable PCI.

Scott Long scottl at samsco.org
Mon Apr 11 06:28:15 PDT 2005


Bruce M Simpson wrote:
> Hi,
> 
> I have acquired a Mobility Electronics EasiDock 5000. As some of you may
> already know, this is a device which allows you to connect regular PCI
> cards to your laptop, using a device called a 'Split Bridge'. (*)
> 
> Ok. Cool toy, you may be thinking. Indeed.
> 
> But I want to make it work with FreeBSD. (+)
> 
> I'd love to hear from anyone who has plans to implement hot-plug in
> a BSD, because this is the missing piece of the puzzle currently.
> 
> It seems that this device is known to work with Linux, with some further
> hacking of support which Magma (who acquired Mobility a few years back)
> provide on a 'as is' basis.
> 
> So I've begun hacking the pci and pcib drivers from RELENG_5_4 to support
> this device. So far, I've been able to probe configuration space. I see
> all the devices on the PCI bus inside the expansion chassis.
> 
> However I cannot get drivers to attach properly, because resources have
> not been assigned to the cards. Normally the BIOS would do this. But
> because BIOSes do not normally explore beyond the CardBus bridges, none
> of the devices have had their I/O, memory, or interrupt registers set
> to non-default values; everything is the same as a pristine bus reset,
> even when I boot with the bridge card in a CardBus slot.
> 
> In order to get this far I've had to add NEWBUS detach methods to both
> pci and pcib, as well as some cleanup in pci_pci.c, and some downright
> dirty hacks to deal with subordinate bus numbering which rely on the
> current behaviour of our CardBus driver.
> 
> I'll post diffs if anyone else is interested; but right now it's pretty
> trivial stuff.

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?

Scott



More information about the freebsd-hackers mailing list