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