How to connect two linux computers via their pci slots?
Linux - HardwareThis forum is for Hardware issues.
Having trouble installing a piece of hardware? Want to know if that peripheral is compatible with Linux?
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
How to connect two linux computers via their pci slots?
Hi,
We are attemting to connect two desktop motherboards via a pci-to-pci bridge plugged into each motherboard's pci slot. One desktop(cpu) will do the security processing needed by the other cpu. Both computers will have Linux loaded.
*We don't know how to emulate "pci configuration space" on the security processing computer to let the other computer's BIOS (or OS) locate the emulated pci conf space and read the necessary information(I/O memory address range, device id etc..).
*Also, we want to learn how to emulate an I/O memory on the security processing computer(i.e., how to map a pci bus address to a logical/physical RAM address) to let the other computer read/write from/to the security processing computer's I/O memory using its pci bus address.
Later, we want to replace the security processing computer with a PC/104+ single board computer and connect this
to the other computer via a pci-to-pc/104+ bridge. Can the two problems stated above be solved same as in the first case?
You have to satisfy the electrical, mechanical, and logical specifications of the PCI bus on both machines. You can't do something as simple as cabling between the two machines.
There are PCI development cards available that will permit you to focus on your development "off the bus" in that they provide you with a complete interface to the PCI bus. Get one of these for each machine, study them, then build some logic on those cards that will permit you to ship your data back and forth between machines. For instance, the input buffers on one PCI card would map to the output buffers on the other, and vice-versa.
After you have done this, your PCI interface will be automatically detected by BIOS and by Linux. You then will have the job of writing drivers for both sides to do what you want to do.
Creating a multi-processor system in this manner is going to be a pretty significant technical endeavor. You can't just arbitrarily read another processor's memory without expecting to cause an impact on that other processor. Writing to that other processor's memory space would be disastrous, since you have no way to update the on-chip memory cache in that other CPU. My advice is to forget it now before you have too much effort in the idea. If you want a multi-processor system, buy a system with multiple processors. If you have two machines that you want to play with for shared tasking, then bind them together with gigabit ethernet and mess around with some of the task sharing software that's already out there.
"Oh, you have brain farts too. Wait till you see what it is like when you pass 50."
In my case, the brain farts are from fibromyalgia - I lose words but not concepts. But don't get the idea from my name that I'm just a kid. I'll be 55 in June.
Actually, I'm just shy of 51. Have a bit of grey in the hair (and a lot of grey in the moustache). Muscular, fairly fit. Holding up a LOT better than many of my contemporaries. I'm rather surprised when people do something like that.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.