2007-11-17 16:01:37

by Kai Ruhnau

[permalink] [raw]
Subject: Bogus PCI vendor ID

Hi,

I have a problem with two of my PCI devices showing the wrong PCI vendor
ID (0001) in vanilla kernels.

My system currently runs a 32 bit x86 kernel built from ubuntu sources
2.6.20.3-ubuntu1. This is the only kernel I have found so far that shows
the correct PCI IDs:

~ # lspci -n
00:00.0 0600: 1002:7930
00:02.0 0604: 1002:7933
00:06.0 0604: 1002:7936
00:12.0 0106: 1002:4380
00:13.0 0c03: 1002:4387
00:13.1 0c03: 1002:4388
00:13.2 0c03: 1002:4389
00:13.3 0c03: 1002:438a
00:13.4 0c03: 1002:438b
00:13.5 0c03: 1002:4386
00:14.0 0c05: 1002:4385 (rev 13)
00:14.1 0101: 1002:438c
00:14.2 0403: 1002:4383
00:14.3 0601: 1002:438d
00:14.4 0604: 1002:4384
01:00.0 0300: 10de:0193 (rev a2)
02:00.0 0200: 11ab:4364 (rev 12)
03:02.0 0c00: 104c:8024

I tested several vanilla kernels: 2.6.23.1, 2.6.23, 2.6.22, 2.6.21 and
somewhere between 2.6.20 and 2.6.21 via bisect. There, the output of
lspci is as follows:

~ # lspci -n
00:00.0 0600: 1002:7930
00:02.0 0604: 1002:7933
00:06.0 0604: 1002:7936
00:12.0 0106: 1002:4380
00:13.0 0c03: 1002:4387
00:13.1 0c03: 1002:4388
00:13.2 0c03: 1002:4389
00:13.3 0c03: 1002:438a
00:13.4 0c03: 1002:438b
00:13.5 0c03: 1002:4386
00:14.0 0c05: 1002:4385 (rev 13)
00:14.1 0101: 1002:438c
00:14.2 0403: 1002:4383
00:14.3 0601: 1002:438d
00:14.4 0604: 1002:4384
01:00.0 0300: 0001:0193 (rev a2)
02:00.0 0200: 0001:4364 (rev 12)
03:02.0 0c00: 104c:8024

Note the two vendor IDs 0001 for 01:00.0 and 02:00.0.

Since these two devices are my graphics card (PCI express) and network
card (builtin) respectively I have quite some trouble running my system
without the right vendor IDs ;-)
Can this be fixed?

Regards
Kai

--
This signature is left as an exercise for the reader.


2007-11-17 18:42:45

by Francois Romieu

[permalink] [raw]
Subject: Re: Bogus PCI vendor ID

Kai Ruhnau <[email protected]> :
[...]
> I have a problem with two of my PCI devices showing the wrong PCI vendor
> ID (0001) in vanilla kernels.
>
> My system currently runs a 32 bit x86 kernel built from ubuntu sources
> 2.6.20.3-ubuntu1. This is the only kernel I have found so far that shows
> the correct PCI IDs:
>
> ~ # lspci -n
> 00:00.0 0600: 1002:7930
> 00:02.0 0604: 1002:7933
> 00:06.0 0604: 1002:7936
> 00:12.0 0106: 1002:4380
> 00:13.0 0c03: 1002:4387
> 00:13.1 0c03: 1002:4388
> 00:13.2 0c03: 1002:4389
> 00:13.3 0c03: 1002:438a
> 00:13.4 0c03: 1002:438b
> 00:13.5 0c03: 1002:4386
> 00:14.0 0c05: 1002:4385 (rev 13)
> 00:14.1 0101: 1002:438c
> 00:14.2 0403: 1002:4383
> 00:14.3 0601: 1002:438d
> 00:14.4 0604: 1002:4384
> 01:00.0 0300: 10de:0193 (rev a2)
> 02:00.0 0200: 11ab:4364 (rev 12)
> 03:02.0 0c00: 104c:8024
>
> I tested several vanilla kernels: 2.6.23.1, 2.6.23, 2.6.22, 2.6.21 and
> somewhere between 2.6.20 and 2.6.21 via bisect. There, the output of
> lspci is as follows:
>
> ~ # lspci -n
[snip]
> 00:14.4 0604: 1002:4384
> 01:00.0 0300: 0001:0193 (rev a2)
> 02:00.0 0200: 0001:4364 (rev 12)
> 03:02.0 0c00: 104c:8024
>
> Note the two vendor IDs 0001 for 01:00.0 and 02:00.0.
>
> Since these two devices are my graphics card (PCI express) and network
> card (builtin) respectively I have quite some trouble running my system
> without the right vendor IDs ;-)
> Can this be fixed ?

No idea but it seems to be plaguing us:

- sky2

Kai Ruhnau <[email protected]>
[...]
> However, I just booted 2.6.23.1 and additionally checked the output of
> lspci against that from 2.6.20-ubuntu.
> Between both versions the vendor code of my networke device changes from
> 11ab to 0001. Why that?

- r8169 + Abit fatal1ty motherboard

(so far nobody reported a 8169 on a fatal1ty motherboard with a
sensible vendor id)

Josh Logan <[email protected]>
[...]
> 2.6.20 and above, maybe .18 or .19.
>
> I have never seen the card recognized by a stock kernel.

Ciaran McCreesh <[email protected]>
[...]
> I've used 2.6.21.6 and 2.6.24-rc1, both gave 0x0001. I just tried
> 2.6.18.8 as well, still 0x0001. With earlier kernels my SATA devices

--
Ueimor

2007-11-19 12:22:40

by Simon Arlott

[permalink] [raw]
Subject: Re: Bogus PCI vendor ID

On Sat, November 17, 2007 18:40, Francois Romieu wrote:
> Kai Ruhnau <[email protected]> :
> [...]
>> I have a problem with two of my PCI devices showing the wrong PCI vendor
>> ID (0001) in vanilla kernels.

Have you tried doing a cold boot at every test? I've had bogus PCI IDs
appear before where it was the device's fault, and the ID would change
after the first boot.

--
Simon Arlott

2007-11-19 17:28:24

by Stephen Hemminger

[permalink] [raw]
Subject: Re: Bogus PCI vendor ID

On Mon, 19 Nov 2007 12:22:20 -0000
"Simon Arlott" <[email protected]> wrote:

> On Sat, November 17, 2007 18:40, Francois Romieu wrote:
> > Kai Ruhnau <[email protected]> :
> > [...]
> >> I have a problem with two of my PCI devices showing the wrong PCI vendor
> >> ID (0001) in vanilla kernels.
>
> Have you tried doing a cold boot at every test? I've had bogus PCI IDs
> appear before where it was the device's fault, and the ID would change
> after the first boot.
>

With LAN devices you may even need to pull the plug because WOL will
keep the device in a warmstart state.

--
Stephen Hemminger <[email protected]>

2007-11-25 04:29:33

by Andrew Morton

[permalink] [raw]
Subject: Re: Bogus PCI vendor ID

On Mon, 19 Nov 2007 09:27:36 -0800 Stephen Hemminger <[email protected]> wrote:

> On Mon, 19 Nov 2007 12:22:20 -0000
> "Simon Arlott" <[email protected]> wrote:
>
> > On Sat, November 17, 2007 18:40, Francois Romieu wrote:
> > > Kai Ruhnau <[email protected]> :
> > > [...]
> > >> I have a problem with two of my PCI devices showing the wrong PCI vendor
> > >> ID (0001) in vanilla kernels.
> >

Please try CONFIG_PCI_MMCONFIG=n

2007-11-25 12:36:33

by Kai Ruhnau

[permalink] [raw]
Subject: Re: Bogus PCI vendor ID

Andrew Morton wrote:
>>>> Kai Ruhnau <[email protected]> :
>>>> [...]
>>>>
>>>>> I have a problem with two of my PCI devices showing the wrong PCI vendor
>>>>> ID (0001) in vanilla kernels.
>>>>>
>
> Please try CONFIG_PCI_MMCONFIG=n
>

If this is the same like the kernel option 'pci=conf1', that fixes the
vendor IDs.

Kai

--
This signature is left as an exercise for the reader.

2007-11-26 16:54:18

by Kyle McMartin

[permalink] [raw]
Subject: Re: Bogus PCI vendor ID

On Sun, Nov 25, 2007 at 01:36:19PM +0100, Kai Ruhnau wrote:
> If this is the same like the kernel option 'pci=conf1', that fixes the
> vendor IDs.
>

Same effect. Ubuntu and many other distros are shipping kernels with
MMCONFIG off by default for reasons like this. Check to see if you have
an updated BIOS from your motherboard manufacturer?

cheers,
Kyle

2007-11-28 20:42:44

by Kai Ruhnau

[permalink] [raw]
Subject: Re: Bogus PCI vendor ID

Kyle McMartin wrote:
> On Sun, Nov 25, 2007 at 01:36:19PM +0100, Kai Ruhnau wrote:
>
>> If this is the same like the kernel option 'pci=conf1', that fixes the
>> vendor IDs.
>>
>
> Same effect. Ubuntu and many other distros are shipping kernels with
> MMCONFIG off by default for reasons like this. Check to see if you have
> an updated BIOS from your motherboard manufacturer?
>

No, nothing available there. (OEM board, running fine under Vista, I
don't expect to get support there...)

Kai

--
This signature is left as an exercise for the reader.

2007-12-01 02:14:31

by Kyle McMartin

[permalink] [raw]
Subject: Re: Bogus PCI vendor ID

On Wed, Nov 28, 2007 at 09:41:24PM +0100, Kai Ruhnau wrote:
> Kyle McMartin wrote:
> > On Sun, Nov 25, 2007 at 01:36:19PM +0100, Kai Ruhnau wrote:
> >
> >> If this is the same like the kernel option 'pci=conf1', that fixes the
> >> vendor IDs.
> >>
> >
> > Same effect. Ubuntu and many other distros are shipping kernels with
> > MMCONFIG off by default for reasons like this. Check to see if you have
> > an updated BIOS from your motherboard manufacturer?
> >
>
> No, nothing available there. (OEM board, running fine under Vista, I
> don't expect to get support there...)
>

Ah, that's interesting, as Vista is supposed to require working MMCONFIG
support to be certified.

regards,
Kyle