On Tue, Jun 16, 2009 at 08:48:38AM +0200, Thierry Reding wrote: > I have the following setup: a processor board with an FPGA that implements > additional functionality such as UART, network interface, etc. This FPGA > should be connected to the processor via a PCIe interface. That means the > FPGA instantiates a PCIe core for communication with the processor. > > I'm now facing the following problem: for better code quality I'd like to > implement the different components in the FPGA as separate logical PCI > devices, and support this functionality with a single Linux PCI driver > for that specific device. On the other hand the FPGA PCIe core is unable to > run in PCI bridge mode. My understanding was that in order to support > multiple devices through a single PCI host the only solution would be to have > the host run in bridge mode so that it can probe the subsequent devices. Can the core be configured to support multiple functions? Both PCI and PCIe allow a single device to support up to 8 functions. Here's an example from my laptop: 1c:03.0 CardBus bridge: O2 Micro, Inc. OZ711SP1 Memory CardBus Controller (rev 01) 1c:03.2 SD Host controller: O2 Micro, Inc. Integrated MMC/SD Controller (rev 02) 1c:03.4 FireWire (IEEE 1394): O2 Micro, Inc. Firewire (IEEE 1394) (rev 02) (PCIe has extensions to allow a device to support more than eight functions, but that comes with limitations you probably don't want). -- Matthew Wilcox Intel Open Source Technology Centre "Bill, look, we understand that you're interested in selling us this operating system, but compare it to ours. We can't possibly take such a retrograde step." -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html