Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 11 Apr 2005 01:26:00 -0700
From:      Bruce M Simpson <bms@spc.org>
To:        freebsd-hackers@FreeBSD.org
Subject:   A question about hot-pluggable PCI.
Message-ID:  <20050411082600.GA735@empiric.icir.org>

next in thread | raw e-mail | index | archive | help

--9jxsPFA5p3P2qPhR
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

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.

Cheers,
BMS

[(*) It is so called because unlike a normal PCI-PCI bridge, the bridge is
'split' in two; there is a CardBus card which goes into your laptop,
to which is connected a proprietary high-speed serial bus cable.
At the other end is a PCI chassis which looks much like any other desktop
PC, which has a jack for the proprietary connector out of the back, wired
up to the other half of the 'split bridge'; this sits on a passive PCI
backplane with several ordinary 33Mhz 32-bit-wide PCI slots.]

[(+) Yes, I know, if OpenCores.org had a PCI IEEE 1394 cell which could just
tunnel arbitrary PCI I/O and configuration transactions, we could implement
this thing using $20 cards from a chain store. If only.]

--9jxsPFA5p3P2qPhR
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Comment: ''

iD8DBQFCWjSXueUpAYYNtTsRApWWAJ44XIQmCznvFBwCxG8yOcZPtrnumgCdG36E
A+lcI9BCdSfI+6cey117vCA=
=BF4R
-----END PGP SIGNATURE-----

--9jxsPFA5p3P2qPhR--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050411082600.GA735>