PCI device behind PCI Bridge

I’m writing a driver for a PCI device which is behind a PCI-to-PCI bridge chip. This is very new to me. The PCI-to-PCI bridge chip loads a Microsoft driver automatically. I’m assuming this should be transparent to my driver. Is this true? This is a PCI plug in board with a PCI-to-PCI bridge and a single PCI device.

My driver can read the configuration space on the PCI device and sets up the appropriate number of base address regions with the appropriate sizes. When I try to read the Memory Mapped registers at base address 2 (eg VID/DID mirror and translation address registers) I see only 0x0. At this point I’m not sure if I can’t treat this device like any other PCI device. Does the PCI-to-PCI bridge chip make this different than a normal PCI device driver? I’ve tried reading every memory space and every address. None of them match the VID/DID I’m looking for. This may be a bug in the board but I’m not sure. My device has 5 memory regions. Base 0 and Base 5 seem to have non-zero values. My registers are on Base 2.

I just read that the bridge chip is supposed to be transparent which I assume means my driver needs no knowledge of it. Is that true? According to the PCI device documentation the translation address for my base address region is a greater number than the registers that it maps. If the documentation is correct than everything makes sense. There is a bug on the chip making the PCI-to-PCI Bridge useless and my driver will never work. I just want to make sure I am not making faulty assumptions.

If your bridge device is functioning correctly then it will be transparent and the OS will enumerate the devices on the child bus and your driver should not have to be aware of the bridge at all.

You should be able to use device manager ‘view devices by connection’ so see that your bridge and its child bus devices are correctly enumerated. Also windbg does a pretty good job of showing the current pci device tree.

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:bounce-298160-
xxxxx@lists.osr.com] On Behalf Of xxxxx@yahoo.com
Sent: Thursday, August 23, 2007 10:05 PM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] PCI device behind PCI Bridge

I just read that the bridge chip is supposed to be transparent which I
assume means my driver needs no knowledge of it. Is that true?
According to the PCI device documentation the translation address for
my base address region is a greater number than the registers that it
maps. If the documentation is correct than everything makes sense.
There is a bug on the chip making the PCI-to-PCI Bridge useless and my
driver will never work. I just want to make sure I am not making
faulty assumptions.


NTDEV is sponsored by OSR

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer