Determining PCI express (PCI-e) capability on a given computer?

Posted by: tfabris

Determining PCI express (PCI-e) capability on a given computer? - 24/07/2007 17:04

This might be very esoteric, perhaps even beyond the reach of the empeg braintrust. But I'll give it a shot.

I'm trying to repro a bug. The details of the bug are not important, that's not what I need the help with.

The bug only happens on certain laptops with a very rare combination of hardware details. One of those details is that the laptop must be using a PCI-express bus instead of a regular PCI bus, and that its built-in wireless card must be on that bus.

We keep borrowing laptops from different labs which are supposed to have this feature, but the Windows Device Manager (under System Devices) sometimes shows a PCI-e bus very clearly, and sometimes, it looks like it's just ordinary PCI. When it does show it clearly, it often has a specific chipset name attached to it, such as "Intel(R) 82801G (ICH7 Family) PCI Express Root Port".

I'm currently having a discussion with a supplier guy from HP claiming that all his laptops are PCI-e, but the one he gave me looks like regular PCI. For instance, the device manager says "Standard PCI-to-PCI bridge", and it has a regular PCMCIA slot instead of the newer kind. He says I'm wrong, and that the machine is definitely PCI-e, and that the kind of card slot it's got is irrelevant, and what the Device Manager is telling me is irrelevant. I can see no way of proving him definitively right or wrong.

Anyone know how to determine this for sure?
Posted by: tman

Re: Determining PCI express (PCI-e) capability on a given computer? - 24/07/2007 17:11

Not particularly helpful but you still get PCI on most PCI Express motherboards/laptops. Same with Cardbus. My old VAIO has PCI Express and Cardbus whilst my work VAIO has PCI Express, Cardbus and an ExpressCard slot.

Best bet is to look up the chipset used and see what it supports.
Posted by: tfabris

Re: Determining PCI express (PCI-e) capability on a given computer? - 24/07/2007 17:34

That's helpful to know. The fact that it's got an old cardbus slot doesn't rule out PCI-e. Thanks.
Posted by: Attack

Re: Determining PCI express (PCI-e) capability on a given computer? - 24/07/2007 17:54

Unknown Devices might tell you something different about the hardware than the windows drivers.

http://www.halfdone.com/ukd/
Posted by: tfabris

Re: Determining PCI express (PCI-e) capability on a given computer? - 24/07/2007 18:08

Thanks for that link. Looks like a great utility.

Too bad it doesn't work properly on Vista when I just tried it. Claims it found 23 devices, but then the list window is blank.
Posted by: AndrewT

Re: Determining PCI express (PCI-e) capability on a given computer? - 24/07/2007 18:09

What I would do is have Device Manager show me "Devices by connection" in order to explore the device tree. Then, on a given device of interest, look at the device string within Properties->Details and use www.pcidatabase.com to lookup the device's actual chipset.
Posted by: pim

Re: Determining PCI express (PCI-e) capability on a given computer? - 24/07/2007 18:11

or boot from a Linux live CD (eg Knoppix) and type "lspci -v"

Pim
Posted by: tfabris

Re: Determining PCI express (PCI-e) capability on a given computer? - 24/07/2007 18:19

I'm already looking at Devices By Connection, but thanks for that tip.

I've used PCIdatabase.com extensively, but I wasn't sure if it would tell me that much detail about a chip, so I hadn't tried it for this particular case yet. Thanks.
Posted by: tfabris

Re: Determining PCI express (PCI-e) capability on a given computer? - 24/07/2007 18:21

I've just gotten some information from our PCI-express support people that the way to determine is this:

- View devices by connection.

- For the device in question, look at its parent.

- If its parent says "Root Port" and/or "Express" somewhere in its name, it is almost definitely a PCI-express bus to which that device is connected. However, the name string is vendor-generated and comes from the vendor's driver, so it could say just about anything. Hopefully they all follow the convention and say approximately the right thing.

- If its parent says "PCI Standard PCI-to-PCI bridge", then it is a legacy PCI bridge, and definitely not a PCI-express bus. In this case, that particular name string is built into Windows and you can be fairly certain about it.

So there we go.
Posted by: gbeer

Re: Determining PCI express (PCI-e) capability on a given computer? - 24/07/2007 22:58

Quote:

that particular name string is built into Windows and you can be fairly certain about it.
So there we go.


Can you hear me smiling?
Posted by: DeadFire

Re: Determining PCI express (PCI-e) capability on a given computer? - 26/07/2007 02:15

Screenshot: Devices by connection - showing two PCI-E video cards.



*sigh*
Posted by: tfabris

Re: Determining PCI express (PCI-e) capability on a given computer? - 26/07/2007 02:29


Hm. That directly contradicts my internal source.

But that's good information you're showing me, and I'm glad you posted it. Those video cards can't operate as anything but PCI-E I'm sure, and yet the device manager is saying they're legacy.

Now I don't know WHAT to believe.

*SIGH*
Posted by: Roger

Re: Determining PCI express (PCI-e) capability on a given computer? - 26/07/2007 06:49

Quote:
Now I don't know WHAT to believe.


Is that Windows 2000, or Windows XP running in classic mode? Maybe W2K doesn't understand PCI-E. Does PCI-E have a mode where it looks like PCI to older OS's?

My Windows 2003 box shows my PCI-E FireGL graphics card attached to an "Intel(R) E7525/E7520 PCI Express Root Port B0", which is what I'd expect to see.
Posted by: tman

Re: Determining PCI express (PCI-e) capability on a given computer? - 26/07/2007 07:03

Quote:
Quote:
Now I don't know WHAT to believe.


Is that Windows 2000, or Windows XP running in classic mode? Maybe W2K doesn't understand PCI-E. Does PCI-E have a mode where it looks like PCI to older OS's?

PCI Express was designed to look like PCI from a software point of view so it is possible.

Best bet still is to use something like Advanced PCI Info to list the PCI IDs of all the hardware and then look it up to see what it supports.
Posted by: tfabris

Re: Determining PCI express (PCI-e) capability on a given computer? - 26/07/2007 15:56

Quote:
Is that Windows 2000, or Windows XP running in classic mode?

Good point. I forgot to say that this is all only relevant in regards to Windows Vista, as that's the only platform on which I need to repro this bug.
Posted by: DeadFire

Re: Determining PCI express (PCI-e) capability on a given computer? - 26/07/2007 21:15

Well then you may be able to disregard my screenshot, since it WAS taken on a Windows XP machine using the Windows Classic theme.
Posted by: Roger

Re: Determining PCI express (PCI-e) capability on a given computer? - 27/07/2007 04:56

Quote:
Good point. I forgot to say that this is all only relevant in regards to Windows Vista, as that's the only platform on which I need to repro this bug.


Well, here's me raining on your parade:



That's definitely a PCI-E graphics card in there.
Posted by: tfabris

Re: Determining PCI express (PCI-e) capability on a given computer? - 27/07/2007 15:05

And that's definitely Vista?

The guy just got back to me today, he says XP is different, because PCI-E awareness didn't exist in XP.
Posted by: tman

Re: Determining PCI express (PCI-e) capability on a given computer? - 27/07/2007 16:30

Quote:
And that's definitely Vista?

The guy just got back to me today, he says XP is different, because PCI-E awareness didn't exist in XP.

The screenshot has the smeary Aero glass title bar.
Posted by: drakino

Re: Determining PCI express (PCI-e) capability on a given computer? - 27/07/2007 16:51

Keep in mind everything in device manager is driven by what someone typed into an inf file somewhere as a text description, including the stock inf files Windows ships with. I could go in and change my PCIe entry to read "Flying Monkeys ISA Bus 65.2" if I wanted to and Windows would show that.

You shouldn't be relying on the text at all for something like this. Relying on the driver file also isn't a good idea, as my PCIe system shows a simple "pci.sys" file.

Posted by: andym

Re: Determining PCI express (PCI-e) capability on a given computer? - 27/07/2007 21:52

Quote:
Well, here's me raining on your parade:


I prefer the term 'pissing on your bonfire'.
Posted by: gbeer

Re: Determining PCI express (PCI-e) capability on a given computer? - 28/07/2007 00:43

Quote:
Quote:
Well, here's me raining on your parade:


I prefer the term 'pissing on your bonfire'.


Or maybe...

edit: You know this UBB code worked in the preview.

Edit: it doesn't like the quotes. Fortunately, Google thinks that quoted phrases spaced with spaces and non-quoted phrases spaced by dashes are equivalent. -wfaulk
Posted by: LittleBlueThing

Re: Determining PCI express (PCI-e) capability on a given computer? - 28/07/2007 06:34

Would this help?

http://www.belarc.com/free_download.html

I don't have any vista or PCI-E so can't test it. I just remember it being used for HW diagnosis - the name stuck.
Posted by: tfabris

Re: Determining PCI express (PCI-e) capability on a given computer? - 29/07/2007 03:42

Quote:
[The screenshot has the smeary Aero glass title bar.


Yeah, my internal source said he just remembered a situation where some systems would show up as legacy PCI even if they had a PCI-E bus. If the motherboard doesn't report itself in exactly the right way to the OS, then Vista just treats it like PCI.

*SIGH*

He's checking with his team for other ways to determine it.
Posted by: mlord

Re: Determining PCI express (PCI-e) capability on a given computer? - 01/08/2007 10:24

If you really want to know what's under the hood, then either
  • open the hood and look at the chips and connectors, or
  • boot Linux (live CD) and do lspci -v (see attachment from a pure PCIe notebook).
Posted by: music

Re: Determining PCI express (PCI-e) capability on a given computer? - 01/08/2007 22:12

Quote:
Or maybe...

edit: You know this UBB code worked in the preview.

Edit: it doesn't like the quotes. Fortunately, Google thinks that quoted phrases spaced with spaces and non-quoted phrases spaced by dashes are equivalent. -wfaulk


Uh, Google is now very angry with you, Bitt.
Here's what it gave me when I clicked the link.

Posted by: wfaulk

Re: Determining PCI express (PCI-e) capability on a given computer? - 02/08/2007 00:26

Weird. It still works fine for me.
Posted by: gbeer

Re: Determining PCI express (PCI-e) capability on a given computer? - 02/08/2007 01:47

The bbs didn't like the quotes inside the ubb code. So why did it like them ok when I previewed the post?
Posted by: wfaulk

Re: Determining PCI express (PCI-e) capability on a given computer? - 02/08/2007 14:02

I cannot explain that, other than to note that that is expected behavior. Not that it's correct behavior.
Posted by: tfabris

Re: Determining PCI express (PCI-e) capability on a given computer? - 02/08/2007 19:03

Okay, I think I've got the final answer. This seems to hold true in the cases I've examined.

- Get the properties of the device in question.

- Go to the "Details" tab.

- Pull down the list of properties and find the one labeled as follows:
{3AB22E31-8264-4b4e-9AF5-A8D2D8E33E62}[1]
(There may be several of these properties, you want the one with [1] at the end).

- The value of this property (which may show up in hexadecimal) is defined as follows:
0 DevProp_PciDevice_DeviceType_PciConventional
1 DevProp_PciDevice_DeviceType_PciX
2 DevProp_PciDevice_DeviceType_PciExpressEndpoint
3 DevProp_PciDevice_DeviceType_PciExpressLegacyEndpoint
4 DevProp_PciDevice_DeviceType_PciExpressRootComplexIntegratedEndpoint
5 DevProp_PciDevice_DeviceType_PciExpressTreatedAsPci
6 DevProp_PciDevice_BridgeType_PciConventional
7 DevProp_PciDevice_BridgeType_PciX
8 DevProp_PciDevice_BridgeType_PciExpressRootPort
9 DevProp_PciDevice_BridgeType_PciExpressUpstreamSwitchPort
10 DevProp_PciDevice_BridgeType_PciExpressDownstreamSwitchPort
11 DevProp_PciDevice_BridgeType_PciExpressToPciXBridge
12 DevProp_PciDevice_BridgeType_PciXToExpressBridge
13 DevProp_PciDevice_BridgeType_PciExpressTreatedAsPci
Posted by: wfaulk

Re: Determining PCI express (PCI-e) capability on a given computer? - 02/08/2007 19:12

Oh! {3AB22E31-8264-4b4e-9AF5-A8D2D8E33E62}[1]! It couldn't be more obvious!
Posted by: music

Re: Determining PCI express (PCI-e) capability on a given computer? - 02/08/2007 20:33

Quote:
Weird. It still works fine for me.


And it works now for me, as well.

Somebody on my network must have been virusized, so I bet they blocked us all for a little while.

Weird. I've never seen that before.
Posted by: tfabris

Re: Determining PCI express (PCI-e) capability on a given computer? - 02/08/2007 21:17

Quote:
Oh! {3AB22E31-8264-4b4e-9AF5-A8D2D8E33E62}[1]! It couldn't be more obvious!


He apologized for not getting a more readable format in place for the Device Manager prior to Vista shipment.
Posted by: gbeer

Re: Determining PCI express (PCI-e) capability on a given computer? - 03/08/2007 01:45

Hurray! Tony finally found his Billy Gates Secret Decoder Ring.
Posted by: Roger

Re: Determining PCI express (PCI-e) capability on a given computer? - 03/08/2007 04:13

Quote:
If the motherboard doesn't report itself in exactly the right way to the OS, then Vista just treats it like PCI.


Does your internal source know whether there are performance implications of this? Should I be worried about it? Should I try upgrading my BIOS?
Posted by: tfabris

Re: Determining PCI express (PCI-e) capability on a given computer? - 03/08/2007 13:14

Quote:
Does your internal source know whether there are performance implications of this? Should I be worried about it? Should I try upgrading my BIOS?


He didn't say. But I don't believe there should be any performance implications. After all, there have been PCI-E video cards that ran fine under Windows XP for a long time now, and Windows XP treats PCI-E like PCI in all cases. I think that if anything needed to be done performance-wise, it would get done in the driver.
Posted by: Roger

Re: Determining PCI express (PCI-e) capability on a given computer? - 09/07/2009 10:50

Originally Posted By: tfabris
{3AB22E31-8264-4b4e-9AF5-A8D2D8E33E62}[1]
(There may be several of these properties, you want the one with [1] at the end).


Heh. I'm just writing some stuff to enumerate devices on Windows (for capturing driver info); I googled for that GUID and found this page smile
Posted by: tfabris

Re: Determining PCI express (PCI-e) capability on a given computer? - 06/01/2011 20:48

Originally Posted By: Roger
Heh. I'm just writing some stuff to enumerate devices on Windows (for capturing driver info); I googled for that GUID and found this page smile


... And I just got an email from someone who'd done the same thing. smile

It's hilarious, I'd completely forgotten this thread existed, and completely forgotten about ever needing to find out the information above. I hope this BBS never goes away, there's so much useful information squirreled away here.