PCI Express hot-plug

Does anyone know if there are motherboards/PCs around that support PCI
Express hot-plug?

I searched on Google and I basically found just whitepapers, presentations
and such, but nothing else (maybe I’m using the wrong search keywords).

Have a nice day
GV

Gianluca:

I don’t know the answer to your question, but I kind of doubt it, at
least in commodity hardware. In any case, the best idea I have would be
to contact SuperMicro directly (www.supermicro.com). They tend to
support some of the more exotic features; I’ve used them to find early
product runs of Intel boards that either still have an XDP socket, or at
least have enabled XDP traces even though they don’t have a header, for
example. Their sales/technical support is also very good, and they
might be able to help.

Not really answer, but I hope it helps.

Good luck,

mm

Gianluca Varenni wrote:

Does anyone know if there are motherboards/PCs around that support PCI
Express hot-plug?

I searched on Google and I basically found just whitepapers,
presentations and such, but nothing else (maybe I’m using the wrong
search keywords).

Have a nice day
GV

Gianluca Varenni wrote:

Does anyone know if there are motherboards/PCs around that support PCI
Express hot-plug?

I searched on Google and I basically found just whitepapers,
presentations and such, but nothing else (maybe I’m using the wrong
search keywords).

EVERY PCIExpress socket supports hotplug. It’s a requirement of the bus.

The problem, of course, is the operating system support. As far as I
know, it won’t be until Longhorn that the operating system will expect
to have PCI devices come and go.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

----- Original Message -----
From: “Tim Roberts”
To: “Windows System Software Devs Interest List”
Sent: Thursday, October 25, 2007 5:12 PM
Subject: Re: [ntdev] PCI Express hot-plug

> Gianluca Varenni wrote:
>> Does anyone know if there are motherboards/PCs around that support PCI
>> Express hot-plug?
>>
>> I searched on Google and I basically found just whitepapers,
>> presentations and such, but nothing else (maybe I’m using the wrong
>> search keywords).
>
> EVERY PCIExpress socket supports hotplug. It’s a requirement of the bus.

I was sort of expecting this. What made me doubt was a slide (#7) coming
from WinHEC 2004

http://download.microsoft.com/download/1/8/f/18f8cee2-0b64-41f2-893d-a6f2295b40c8/TW04024_WINHEC2004.ppt

It seems to indicate that motherboards supporting hot-plug should have leds
and button to indicate their state and such.

>
> The problem, of course, is the operating system support. As far as I
> know, it won’t be until Longhorn that the operating system will expect
> to have PCI devices come and go.

How does it work with ExpressCard, then?

Have a nice day
GV

>
> –
> Tim Roberts, xxxxx@probo.com
> Providenza & Boekelheide, Inc.
>
>
> —
> 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

----- Original Message -----
From: “Tim Roberts”
To: “Windows System Software Devs Interest List”
Sent: Thursday, October 25, 2007 5:12 PM
Subject: Re: [ntdev] PCI Express hot-plug

> Gianluca Varenni wrote:
>> Does anyone know if there are motherboards/PCs around that support PCI
>> Express hot-plug?
>>
>> I searched on Google and I basically found just whitepapers,
>> presentations and such, but nothing else (maybe I’m using the wrong
>> search keywords).
>
> EVERY PCIExpress socket supports hotplug. It’s a requirement of the bus.
>
> The problem, of course, is the operating system support. As far as I
> know, it won’t be until Longhorn that the operating system will expect
> to have PCI devices come and go.

Interesting enough, I asked SuperMicro if they had any motherboard
supporting it, the answer was “no”…

GV

>
> –
> Tim Roberts, xxxxx@probo.com
> Providenza & Boekelheide, Inc.
>
>
> —
> 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

Gianluca Varenni wrote:

>
> The problem, of course, is the operating system support. As far as I
> know, it won’t be until Longhorn that the operating system will expect
> to have PCI devices come and go.

How does it work with ExpressCard, then?

Doesn’t ExpressCard have its own bus driver? PCIExpress uses the PCI
bus driver, which isn’t yet prepared for surprise comings and goings.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

----- Original Message -----
From: “Tim Roberts”
To: “Windows System Software Devs Interest List”
Sent: Friday, October 26, 2007 10:07 AM
Subject: Re: [ntdev] PCI Express hot-plug

> Gianluca Varenni wrote:
>>
>>>
>>> The problem, of course, is the operating system support. As far as I
>>> know, it won’t be until Longhorn that the operating system will expect
>>> to have PCI devices come and go.
>>
>> How does it work with ExpressCard, then?
>
> Doesn’t ExpressCard have its own bus driver? PCIExpress uses the PCI
> bus driver, which isn’t yet prepared for surprise comings and goings.

I just checked on a laptop with an express card slot and an express card
network adapter. There’s no specific bus driver for it. It’s managed
directly by the pci bus driver, and supports ExpressCard hot plug. For
cardbus instead there is a separate bus driver (pcmcia.sys).

It looks like the OS should support hot plug for pci express…

Have a nice day
GV

>
> –
> Tim Roberts, xxxxx@probo.com
> Providenza & Boekelheide, Inc.
>
>
> —
> 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

Vista and later support pcie hotplug, or at least they claim to support pcie
hotplug. There are disclaimers on that support that note that of course the
platform firmware has to be implemented correctly as well. Apart from
expresscard on notebooks, I have yet to see the standard commodity desktop
or server that supports reaching into the box while it is up and running and
snatching out a pci card or plugging one in. Even if the firmware and os
support hotplug, you may still be out of luck.

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:bounce-304319-
xxxxx@lists.osr.com] On Behalf Of Gianluca Varenni
Sent: Friday, October 26, 2007 2:24 PM
To: Windows System Software Devs Interest List
Subject: Re: [ntdev] PCI Express hot-plug

----- Original Message -----
From: “Tim Roberts”
> To: “Windows System Software Devs Interest List”
> Sent: Friday, October 26, 2007 10:07 AM
> Subject: Re: [ntdev] PCI Express hot-plug
>
>
> > Gianluca Varenni wrote:
> >>
> >>>
> >>> The problem, of course, is the operating system support. As far as
> I
> >>> know, it won’t be until Longhorn that the operating system will
> expect
> >>> to have PCI devices come and go.
> >>
> >> How does it work with ExpressCard, then?
> >
> > Doesn’t ExpressCard have its own bus driver? PCIExpress uses the PCI
> > bus driver, which isn’t yet prepared for surprise comings and goings.
>
> I just checked on a laptop with an express card slot and an express
> card
> network adapter. There’s no specific bus driver for it. It’s managed
> directly by the pci bus driver, and supports ExpressCard hot plug. For
> cardbus instead there is a separate bus driver (pcmcia.sys).
>
> It looks like the OS should support hot plug for pci express…
>
> Have a nice day
> GV
>
> >
> > –
> > Tim Roberts, xxxxx@probo.com
> > Providenza & Boekelheide, Inc.
> >
> >
> > —
> > 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
>
>
> —
> 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

This is why I though that it required motherboard support; the platform
firmware. Is this correct or incorrect; I’m still confused.

Thanks,

mm
Mark Roddy wrote:

Vista and later support pcie hotplug, or at least they claim to support pcie
hotplug. There are disclaimers on that support that note that of course the
platform firmware has to be implemented correctly as well. Apart from
expresscard on notebooks, I have yet to see the standard commodity desktop
or server that supports reaching into the box while it is up and running and
snatching out a pci card or plugging one in. Even if the firmware and os
support hotplug, you may still be out of luck.

> -----Original Message-----
> From: xxxxx@lists.osr.com [mailto:bounce-304319-
> xxxxx@lists.osr.com] On Behalf Of Gianluca Varenni
> Sent: Friday, October 26, 2007 2:24 PM
> To: Windows System Software Devs Interest List
> Subject: Re: [ntdev] PCI Express hot-plug
>
> ----- Original Message -----
> From: “Tim Roberts”
>> To: “Windows System Software Devs Interest List”
>> Sent: Friday, October 26, 2007 10:07 AM
>> Subject: Re: [ntdev] PCI Express hot-plug
>>
>>
>>> Gianluca Varenni wrote:
>>>>> The problem, of course, is the operating system support. As far as
>> I
>>>>> know, it won’t be until Longhorn that the operating system will
>> expect
>>>>> to have PCI devices come and go.
>>>> How does it work with ExpressCard, then?
>>> Doesn’t ExpressCard have its own bus driver? PCIExpress uses the PCI
>>> bus driver, which isn’t yet prepared for surprise comings and goings.
>> I just checked on a laptop with an express card slot and an express
>> card
>> network adapter. There’s no specific bus driver for it. It’s managed
>> directly by the pci bus driver, and supports ExpressCard hot plug. For
>> cardbus instead there is a separate bus driver (pcmcia.sys).
>>
>> It looks like the OS should support hot plug for pci express…
>>
>> Have a nice day
>> GV
>>
>>> –
>>> Tim Roberts, xxxxx@probo.com
>>> Providenza & Boekelheide, Inc.
>>>
>>>
>>> —
>>> 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
>>
>> —
>> 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
>
>

No you are not confused. The bios has to support pcie hotplug, the
motherboard chipset has to support pcie hotplug, the physical system itself
has to support hot add/remove of pcie devices. Vista and later support
hotplug pcie devices.

Oh, and the device driver has to support surprise remove correctly. In my
experience that is hardly ever the case for pci device drivers that have not
been fully tested on hot plug systems.

----- Original Message -----
From: “Martin O’Brien”
Newsgroups: ntdev
To: “Windows System Software Devs Interest List”
Sent: Sunday, October 28, 2007 6:04 AM
Subject: Re:[ntdev] PCI Express hot-plug

> This is why I though that it required motherboard support; the platform
> firmware. Is this correct or incorrect; I’m still confused.
>
> Thanks,
>
> mm
> Mark Roddy wrote:
>> Vista and later support pcie hotplug, or at least they claim to support
>> pcie
>> hotplug. There are disclaimers on that support that note that of course
>> the
>> platform firmware has to be implemented correctly as well. Apart from
>> expresscard on notebooks, I have yet to see the standard commodity
>> desktop
>> or server that supports reaching into the box while it is up and running
>> and
>> snatching out a pci card or plugging one in. Even if the firmware and os
>> support hotplug, you may still be out of luck.
>>
>>> -----Original Message-----
>>> From: xxxxx@lists.osr.com [mailto:bounce-304319-
>>> xxxxx@lists.osr.com] On Behalf Of Gianluca Varenni
>>> Sent: Friday, October 26, 2007 2:24 PM
>>> To: Windows System Software Devs Interest List
>>> Subject: Re: [ntdev] PCI Express hot-plug
>>>
>>> ----- Original Message -----
>>> From: “Tim Roberts”
>>> To: “Windows System Software Devs Interest List”
>>> Sent: Friday, October 26, 2007 10:07 AM
>>> Subject: Re: [ntdev] PCI Express hot-plug
>>>
>>>
>>>> Gianluca Varenni wrote:
>>>>>> The problem, of course, is the operating system support. As far as
>>> I
>>>>>> know, it won’t be until Longhorn that the operating system will
>>> expect
>>>>>> to have PCI devices come and go.
>>>>> How does it work with ExpressCard, then?
>>>> Doesn’t ExpressCard have its own bus driver? PCIExpress uses the PCI
>>>> bus driver, which isn’t yet prepared for surprise comings and goings.
>>> I just checked on a laptop with an express card slot and an express
>>> card
>>> network adapter. There’s no specific bus driver for it. It’s managed
>>> directly by the pci bus driver, and supports ExpressCard hot plug. For
>>> cardbus instead there is a separate bus driver (pcmcia.sys).
>>>
>>> It looks like the OS should support hot plug for pci express…
>>>
>>> Have a nice day
>>> GV
>>>
>>>> –
>>>> Tim Roberts, xxxxx@probo.com
>>>> Providenza & Boekelheide, Inc.
>>>>
>>>>
>>>> —
>>>> 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
>>>
>>> —
>>> 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
>>
>>
>
> —
> 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
>

Thanks, Mark.

mm
Mark Roddy wrote:

No you are not confused. The bios has to support pcie hotplug, the
motherboard chipset has to support pcie hotplug, the physical system
itself has to support hot add/remove of pcie devices. Vista and later
support hotplug pcie devices.

Oh, and the device driver has to support surprise remove correctly. In
my experience that is hardly ever the case for pci device drivers that
have not been fully tested on hot plug systems.

----- Original Message ----- From: “Martin O’Brien”

> Newsgroups: ntdev
> To: “Windows System Software Devs Interest List”
> Sent: Sunday, October 28, 2007 6:04 AM
> Subject: Re:[ntdev] PCI Express hot-plug
>
>
>> This is why I though that it required motherboard support; the
>> platform firmware. Is this correct or incorrect; I’m still confused.
>>
>> Thanks,
>>
>> mm
>> Mark Roddy wrote:
>>> Vista and later support pcie hotplug, or at least they claim to
>>> support pcie
>>> hotplug. There are disclaimers on that support that note that of
>>> course the
>>> platform firmware has to be implemented correctly as well. Apart from
>>> expresscard on notebooks, I have yet to see the standard commodity
>>> desktop
>>> or server that supports reaching into the box while it is up and
>>> running and
>>> snatching out a pci card or plugging one in. Even if the firmware and os
>>> support hotplug, you may still be out of luck.
>>>
>>>> -----Original Message-----
>>>> From: xxxxx@lists.osr.com [mailto:bounce-304319-
>>>> xxxxx@lists.osr.com] On Behalf Of Gianluca Varenni
>>>> Sent: Friday, October 26, 2007 2:24 PM
>>>> To: Windows System Software Devs Interest List
>>>> Subject: Re: [ntdev] PCI Express hot-plug
>>>>
>>>> ----- Original Message -----
>>>> From: “Tim Roberts”
>>>> To: “Windows System Software Devs Interest List”
>>>> Sent: Friday, October 26, 2007 10:07 AM
>>>> Subject: Re: [ntdev] PCI Express hot-plug
>>>>
>>>>
>>>>> Gianluca Varenni wrote:
>>>>>>> The problem, of course, is the operating system support. As far as
>>>> I
>>>>>>> know, it won’t be until Longhorn that the operating system will
>>>> expect
>>>>>>> to have PCI devices come and go.
>>>>>> How does it work with ExpressCard, then?
>>>>> Doesn’t ExpressCard have its own bus driver? PCIExpress uses the PCI
>>>>> bus driver, which isn’t yet prepared for surprise comings and goings.
>>>> I just checked on a laptop with an express card slot and an express
>>>> card
>>>> network adapter. There’s no specific bus driver for it. It’s managed
>>>> directly by the pci bus driver, and supports ExpressCard hot plug. For
>>>> cardbus instead there is a separate bus driver (pcmcia.sys).
>>>>
>>>> It looks like the OS should support hot plug for pci express…
>>>>
>>>> Have a nice day
>>>> GV
>>>>
>>>>> –
>>>>> Tim Roberts, xxxxx@probo.com
>>>>> Providenza & Boekelheide, Inc.
>>>>>
>>>>>
>>>>> —
>>>>> 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
>>>>
>>>> —
>>>> 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
>>>
>>>
>>
>> —
>> 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
>>
>
>

A couple more things to add here. OS versions since Windows 2000 have supported hot-plug of PCI as long as the firmware does all of the work of identifying when hot-plug events actually happen, controlling power to slots, etc. The PnP system and the PCI bus driver (which is the bus driver for ExpressCard, as an aside) will both handle devices disappearing, so the biggest software issue you face is driver support for removal, which is spotty. Resource allocation can also be an issue, since OS versions before Vista don’t do a very good job of making space for the BARs of a PCI device that isn’t known to the BIOS. So that’s a couple of caveats, but in theory Windows 2000 and forward support firmware-directed hot-plug PCI (and PCIe).

What is meant by the statement that Vista supports hot-plug PCIe is that Vista natively handles the hot-plug events and programs the hardware that allows the hot-plugged device to come online. This reduces the firmware requirements down to a bare minimum.

Regardless, though, there are hardware requirements for PCIe hotplug. It’s true that the bus itself supports hotplug in all cases, but the form factor of the slot doesn’t always. Traditional, edge-style cards don’t have support for power being applied automatically on the insertion of a card, so some extra registers in the motherboard/chipset are necessary. These registers are optional, as is the firmware support to control them on an OS older than Vista. As a result, I doubt that any commodity motherboards with edge-style cards have hot-plug support. ExpressCard, however, is a different form factor and therefore a different ball of wax. It supports automatic power control, so its register requirements are much smaller, and it’s an ExpressCard requirement that these registers are in place. So any motherboard with an ExpressCard should support hot-plug of devices in that slot, at least from a hardware perspective. Then you need a firmware/OS combination that will control it.

Dave

Dave,

first of all, thanks for the very detailed answer. It was really
explanatory. My conclusion from this mail is basically “forget about
PCI-express hot plug for now…”. As a matter of facts, I was looking into
hot-plug to solve a problem we have when reprogramming the EEPROM of some
PCI-express boards (the EEPROM contains the vendor and device id, among
other things). In practice to verify that everything went right, the only
way is to physically power down the card and power it back. Without hot-plug
it means that we have to shut down the OS, physically remove power to the
machine and reboot the OS. Pretty annoying in a production environment.

I still have a question. What do you mean exactly by firmware in this case?
Do you mean motherboard firmware? I don’t know how to interpret this
sentence
“These registers are optional, as is the firmware support to control them on
an OS older than Vista”

Thanks again
GV

----- Original Message -----
From:
To: “Windows System Software Devs Interest List”
Sent: Monday, October 29, 2007 9:29 AM
Subject: RE:[ntdev] PCI Express hot-plug

>A couple more things to add here. OS versions since Windows 2000 have
>supported hot-plug of PCI as long as the firmware does all of the work of
>identifying when hot-plug events actually happen, controlling power to
>slots, etc. The PnP system and the PCI bus driver (which is the bus driver
>for ExpressCard, as an aside) will both handle devices disappearing, so the
>biggest software issue you face is driver support for removal, which is
>spotty. Resource allocation can also be an issue, since OS versions before
>Vista don’t do a very good job of making space for the BARs of a PCI device
>that isn’t known to the BIOS. So that’s a couple of caveats, but in theory
>Windows 2000 and forward support firmware-directed hot-plug PCI (and PCIe).
>
> What is meant by the statement that Vista supports hot-plug PCIe is that
> Vista natively handles the hot-plug events and programs the hardware that
> allows the hot-plugged device to come online. This reduces the firmware
> requirements down to a bare minimum.
>
> Regardless, though, there are hardware requirements for PCIe hotplug.
> It’s true that the bus itself supports hotplug in all cases, but the form
> factor of the slot doesn’t always. Traditional, edge-style cards don’t
> have support for power being applied automatically on the insertion of a
> card, so some extra registers in the motherboard/chipset are necessary.
> These registers are optional, as is the firmware support to control them
> on an OS older than Vista. As a result, I doubt that any commodity
> motherboards with edge-style cards have hot-plug support. ExpressCard,
> however, is a different form factor and therefore a different ball of wax.
> It supports automatic power control, so its register requirements are much
> smaller, and it’s an ExpressCard requirement that these registers are in
> place. So any motherboard with an ExpressCard should support hot-plug of
> devices in that slot, at least from a hardware perspective. Then you need
> a firmware/OS combination that will control it.
>
> Dave
>
> —
> 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

Gianluca,

If you’re talking about edge-style cards, then yes, I think you’re unlikely to find hot-plug support on commodity motherboards. The form factor you’re referring to really changes the answer a lot.

re: firmware - I’m referring to ACPI namespace firmware. This abstracts the signals that get triggered when hot-plug events happen, and all of the hardware programming that has to happen on hot-plug events. This is shipped as part of the system image, but isn’t the firmware that runs during POST.

Dave

----- Original Message -----
From:
To: “Windows System Software Devs Interest List”
Sent: Monday, October 29, 2007 10:20 AM
Subject: RE:[ntdev] PCI Express hot-plug

> Gianluca,
>
> If you’re talking about edge-style cards, then yes, I think you’re
> unlikely to find hot-plug support on commodity motherboards. The form
> factor you’re referring to really changes the answer a lot.

Standard PCI-Express cards (edge-style).

>
> re: firmware - I’m referring to ACPI namespace firmware. This abstracts
> the signals that get triggered when hot-plug events happen, and all of the
> hardware programming that has to happen on hot-plug events. This is
> shipped as part of the system image, but isn’t the firmware that runs
> during POST.

I think I have a lot to study about ACPI… I thought my question about
hot-plug was an easy question…

Thanks again for the help!
GV

>
> Dave
>
> —
> 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

Thanks, Dave. That was very helpful.

mm
xxxxx@microsoft.com wrote:

A couple more things to add here. OS versions since Windows 2000 have supported hot-plug of PCI as long as the firmware does all of the work of identifying when hot-plug events actually happen, controlling power to slots, etc. The PnP system and the PCI bus driver (which is the bus driver for ExpressCard, as an aside) will both handle devices disappearing, so the biggest software issue you face is driver support for removal, which is spotty. Resource allocation can also be an issue, since OS versions before Vista don’t do a very good job of making space for the BARs of a PCI device that isn’t known to the BIOS. So that’s a couple of caveats, but in theory Windows 2000 and forward support firmware-directed hot-plug PCI (and PCIe).

What is meant by the statement that Vista supports hot-plug PCIe is that Vista natively handles the hot-plug events and programs the hardware that allows the hot-plugged device to come online. This reduces the firmware requirements down to a bare minimum.

Regardless, though, there are hardware requirements for PCIe hotplug. It’s true that the bus itself supports hotplug in all cases, but the form factor of the slot doesn’t always. Traditional, edge-style cards don’t have support for power being applied automatically on the insertion of a card, so some extra registers in the motherboard/chipset are necessary. These registers are optional, as is the firmware support to control them on an OS older than Vista. As a result, I doubt that any commodity motherboards with edge-style cards have hot-plug support. ExpressCard, however, is a different form factor and therefore a different ball of wax. It supports automatic power control, so its register requirements are much smaller, and it’s an ExpressCard requirement that these registers are in place. So any motherboard with an ExpressCard should support hot-plug of devices in that slot, at least from a hardware perspective. Then you need a firmware/OS combination that will co
ntrol it.

Dave

Actually, Mark, see Dave Walker’s recent post. He went into detail and the
answer to the original question was in there. But I worry that it may not
have been clear enough.

If you have a pre-Vista OS, then PCIe or ExpressCard hot-plug depends on a
bunch of ACPI firmware which the motherboard implementer may or may not
choose to bother with. (Or the motherboard implementer may not have a clue
that there is even something to bother with.) It’s more likely that the
BIOS will contain the necessary goop for ExpressCard.

With Vista, a lot of the dependencies on ACPI are obviated by direct
hardware support in the PCI driver. A motherboard with a much simpler BIOS
may have the same functionality as one with a complex BIOS once Vista is
installed.

With that said, any BIOS can stop the OS (intentionally or not) from doing
hot-plug.

  • Jake Oshins

“Mark Roddy” wrote in message news:xxxxx@ntdev…
> No you are not confused. The bios has to support pcie hotplug, the
> motherboard chipset has to support pcie hotplug, the physical system
> itself has to support hot add/remove of pcie devices. Vista and later
> support hotplug pcie devices.
>
> Oh, and the device driver has to support surprise remove correctly. In my
> experience that is hardly ever the case for pci device drivers that have
> not been fully tested on hot plug systems.
>
> ----- Original Message -----
> From: “Martin O’Brien”
> Newsgroups: ntdev
> To: “Windows System Software Devs Interest List”
> Sent: Sunday, October 28, 2007 6:04 AM
> Subject: Re:[ntdev] PCI Express hot-plug
>
>
>> This is why I though that it required motherboard support; the platform
>> firmware. Is this correct or incorrect; I’m still confused.
>>
>> Thanks,
>>
>> mm
>> Mark Roddy wrote:
>>> Vista and later support pcie hotplug, or at least they claim to support
>>> pcie
>>> hotplug. There are disclaimers on that support that note that of course
>>> the
>>> platform firmware has to be implemented correctly as well. Apart from
>>> expresscard on notebooks, I have yet to see the standard commodity
>>> desktop
>>> or server that supports reaching into the box while it is up and running
>>> and
>>> snatching out a pci card or plugging one in. Even if the firmware and os
>>> support hotplug, you may still be out of luck.
>>>
>>>> -----Original Message-----
>>>> From: xxxxx@lists.osr.com [mailto:bounce-304319-
>>>> xxxxx@lists.osr.com] On Behalf Of Gianluca Varenni
>>>> Sent: Friday, October 26, 2007 2:24 PM
>>>> To: Windows System Software Devs Interest List
>>>> Subject: Re: [ntdev] PCI Express hot-plug
>>>>
>>>> ----- Original Message -----
>>>> From: “Tim Roberts”
>>>> To: “Windows System Software Devs Interest List”
>>>> Sent: Friday, October 26, 2007 10:07 AM
>>>> Subject: Re: [ntdev] PCI Express hot-plug
>>>>
>>>>
>>>>> Gianluca Varenni wrote:
>>>>>>> The problem, of course, is the operating system support. As far as
>>>> I
>>>>>>> know, it won’t be until Longhorn that the operating system will
>>>> expect
>>>>>>> to have PCI devices come and go.
>>>>>> How does it work with ExpressCard, then?
>>>>> Doesn’t ExpressCard have its own bus driver? PCIExpress uses the PCI
>>>>> bus driver, which isn’t yet prepared for surprise comings and goings.
>>>> I just checked on a laptop with an express card slot and an express
>>>> card
>>>> network adapter. There’s no specific bus driver for it. It’s managed
>>>> directly by the pci bus driver, and supports ExpressCard hot plug. For
>>>> cardbus instead there is a separate bus driver (pcmcia.sys).
>>>>
>>>> It looks like the OS should support hot plug for pci express…
>>>>
>>>> Have a nice day
>>>> GV
>>>>
>>>>> –
>>>>> Tim Roberts, xxxxx@probo.com
>>>>> Providenza & Boekelheide, Inc.
>>>>>
>>>>>
>>>>> —
>>>>> 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
>>>>
>>>> —
>>>> 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
>>>
>>>
>>
>> —
>> 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
>>
>
>