Vista hot plug

Hi

I have device that implement PCI express switch .
I have to 2 PCI-PCI bridges one for upstream port and one for the downstream port

On the downstream port I have slot connected.
When I plug and unplug devices to the slot , my device does not generate and interrupt.

While debugging I notice the follow:
After boot I can see that Vista is not configure PCIexCap:SlotControl:Hot-Plug-Interrupt-Enable bit to one.
PCIexCap:SlotControl:Presence detect enable bit to one.

If I manually set this bit my device generate interrupt (IntA) and set the SlotStatus presence bit according to the spec.

Is this bit is set by the OS or by the BIOS ?
Any reason why Vista will not set it ?

10x
Yossi

Generally it is set by the bios based on platform support for actual hot
plug slots.

On Mon, Apr 28, 2008 at 9:55 AM, wrote:

> Hi
>
> I have device that implement PCI express switch .
> I have to 2 PCI-PCI bridges one for upstream port and one for the
> downstream port
>
> On the downstream port I have slot connected.
> When I plug and unplug devices to the slot , my device does not generate
> and interrupt.
>
> While debugging I notice the follow:
> After boot I can see that Vista is not configure
> PCIexCap:SlotControl:Hot-Plug-Interrupt-Enable bit to one.
> PCIexCap:SlotControl:Presence detect enable bit to one.
>
> If I manually set this bit my device generate interrupt (IntA) and set the
> SlotStatus presence bit according to the spec.
>
> Is this bit is set by the OS or by the BIOS ?
> Any reason why Vista will not set it ?
>
> 10x
> Yossi
>
>
> —
> 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
>


Mark Roddy

> On the downstream port I have slot connected.

When I plug and unplug devices to the slot , my device does
not generate and interrupt.

While debugging I notice the follow:
After boot I can see that Vista is not configure
PCIexCap:SlotControl:Hot-Plug-Interrupt-Enable bit to one.
PCIexCap:SlotControl:Presence detect enable bit to one.

Is that physically hot plugged, or does you device have a bridge, and then
has dynamically created virtualized devices inside the bridge? If it does
dynamically created devices, is the outer device (one exposed as the
physical device at boot time) a bridge class or some other PCI class (like
IB adapter)? I suspect your talking about a virtualized device, as otherwise
how could it generate an interrupt to indicate it was unplugged. I’d think a
bridge could generate an interupt saying a child device was gone. Assuming
the path I’m going matches reality, the question might be: does Vista/W2K8
support hot add/remove of children behind PCIe bridges that have been added
in normal PCIe slots. I’m might be off track from what your hardware is like
though, in which case never mind.

I’m assuming this is the ConnectX chip?

Jan