Can Linux Support a PCI Expansion Chassis?
Snowfox asks: "Between having multiple network cards, video cards, SCSI controllers, audio, etc, I'm always hurting for expansion slots. Five or six just aren't enough for an everything box. Several companies offer PCI expansion chassis. I see these vendors on the show floor at Game Developers Conference and Siggraph every year, but the prices are high and none of the vendors can tell me whether these support Linux. Has anyone had any dealings with one of these units?"
"Magma has some sweet-looking units which even support 64-bit PCI, Mobility has some units which are far cheaper, and DigiDesign has a 7- and 14-slot unit as well. All three claim to be Plug-And-Play for Windows and Mac, but as on the show floor, none have responded to inquiries about Linux support or which chipset is used to bridge the busses.
I know that Linux supports PCI-PCI bridges which are on the motherboard, as are commonly used for on-board network, sound and drive controllers, but what about these external offerings?"
Google turned up a few reviews of these chassis. They show a slight reduction in the performance of an Adaptec SCSI controller when used in the external chassis.
Is there some sort of extra protocol overhead involved in accessing a remote PCI bus, or does it take an extra cycle to respond or ...?
i mean, an everything box might be cool, but if you're using more than 5 or 6 pci slots, you're probably hitting limitations in the pci bandwidth stream anyway. why not split the functionality out into discrete machines?
News for Geeks in Austin, TX
A PCI to PCI bridge is the same if it's on the motherboard or off. It's just another PCI device. (Albiet a special one) As long as it's a standard PCI bridge it should just work like the "second" PCI bus that's on alot of less expensive dual PCI bus motherboards. I wouldn't put a video card on the other side of it though :)
Linux supports pci-to-pci bridges, which is what these devices use.
The bigger problem is that the BIOS on your PC must support at least 3 levels of PCI bridging for these devices to work. Most of these types of chassis use one bridge chip on the PCI card that plugs into your PC, then the box itself has several more bridge chips, each of which control a number of the PCI slots.
I bought a Magma PCI expansion system and it works quite well. It has allowed a dell power edge system, with only 2-64 bit pci slots, to have 13-32 bit pci slots. It is just hardware - one pci card to bridge the computer to the expansion box. There are no additional software drivers to fool with.
I wouldn't run anything that is timing critical with it, but I wouldn't do that with a pc anyway. I'd rather use the computer to control external hardware that deals with timing issues (ex. multiple channel pulsars for triggering events, multichannel scalar for accumulation of timed data which is later dumped to computer, etc.)
...yes, they work. All of the above is handled in hardware and transparent to the OS.
Good luck finding any cheap ones though, try ebay I guess.
There are several motherboards designed for servers that have nearly everything you describe onboard already: 1 or 2 ethernet ports, AGP video, sound chip, even SCSI. Tyan makes one and so does ASUS.
Here is just one example:
http://tyan.com/products/html/thunderhe_p.html
Blekko
The magma website reports that their PCI systems work under Solaris. Its reasonable to say that it should also work under linux as it is of course just a simple PCI-PCI bridge.
- hyperbolix
- http://www.modindsol.com/product_detail.cfm?PRODU
C TID=114
-
http://www.icp-oem.com/passive_backplanes.html
with NetBSD and FreeBSD. Given how clean they work - I suspect linux to be fine. Usually with some intel procesor board. It works well. The typical usage was to have 8 slots with a 4 port ethernet card - and combining this with DummyNet. And then letting the processor netboot off its own ethernet and then act as a packet delay line of sorts. Do a search in google for 'PICMG' to find a whole range of those. One word of warning - you may need to add some special (userland) hacks for the watchdog - they can be quite a pain - and you almost certainly will need to learn about serial consoles. My experience with the latter and Linux is not too good