3
votes

What if I have a PCI bus (w/o PCI-PCI bridges) with 3 devices: spy-device, sender PCI device and receiver device (e.g. bridge from PCI to CPU).

The sender start transferring data to receiver. The transmitter state of spy-device is Z (disconnected from bus). Can the spy device listen to the bus and have all data sent from sender copied?

Update: I'm ready to buy special FPGA with PCI adaptor and program it.

2

2 Answers

3
votes

On legacy PCI (assuming no PCI-to-PCI bridges in between), it is possible to "listen" to bus transactions intended for other devices. We have some in-house developed debug hardware that does exactly this. You need to make sure that your listening devices does not "claim" the transaction itself, though. Most off-the-shelf PCI IP cores and ASICs will not be suitable for this task.

On PCI Express, it is not so easy due to the point to point nature of the bus. Your listening device would have to be physically between the peripheral device and the CPU.

1
votes

That depends. On PCI, I think all are connected in a shared bus. So probably yes. But on PCI-Express each device has its own "bus" - so they are not physically connected (directly).