Bug 18412 - Intel DP43BF requires "pci=assign-busses" to discover some devices
Summary: Intel DP43BF requires "pci=assign-busses" to discover some devices
Status: RESOLVED CODE_FIX
Alias: None
Product: Drivers
Classification: Unclassified
Component: PCI (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: drivers_pci@kernel-bugs.osdl.org
URL: http://marc.info/?l=linux-pci&m=12832...
Keywords:
Depends on:
Blocks:
 
Reported: 2010-09-13 15:24 UTC by Bjorn Helgaas
Modified: 2013-02-28 19:56 UTC (History)
3 users (show)

See Also:
Kernel Version: 3.4.9
Subsystem:
Regression: No
Bisected commit-id:


Attachments
dmesg (devices not detected) (36.10 KB, text/plain)
2010-09-13 15:27 UTC, Bjorn Helgaas
Details
dmesg (devices detected) (50.07 KB, text/plain)
2010-09-13 15:28 UTC, Bjorn Helgaas
Details
check bus range to reject invalid one. (543 bytes, patch)
2012-09-07 22:50 UTC, Yinghai Lu
Details | Diff
dmesg, lspci and other info on old and tested kernels (39.84 KB, application/x-gzip)
2012-09-08 10:09 UTC, Khomutov Vladimir
Details
full dmesg,lspci,lshw,uname with adn without suggested patch (30.61 KB, application/x-gzip)
2012-09-09 08:15 UTC, Khomutov Vladimir
Details

Description Bjorn Helgaas 2010-09-13 15:24:53 UTC
Brian C. Huffman <bhuffman@graze.net> reports:

> I have an Intel DP43BF motherboard with 4 PCI slots, 2 PCIe x1 and 1 PCIe x16
> slots.  With 2.6.36-rc2-git5 (as well as stable 2.6.34 and .35), the kernel
> doesn't see my conventional PCI devices.  They can be seen with dmidecode
> but do not show up with lspci.  I've tried pci=noacpi, pci=use_crs and while
> it takes the options, it doesn't change the visibility of the devices.

> These same devices (a PVR250,Maudio Delta DiO, and Fusion HD DVB card)
> previously worked with another motherboard.

Brian determined that the devices work correctly under Windows XP SP2,
and they also work under Linux if we use "pci=assign-busses".

The bug here is that Linux should be smart enough to work even without
"pci=assign-busses".
Comment 1 Bjorn Helgaas 2010-09-13 15:27:05 UTC
Created attachment 29802 [details]
dmesg (devices not detected)

dmesg where we don't find the conventional PCI devices.
Comment 2 Bjorn Helgaas 2010-09-13 15:28:41 UTC
Created attachment 29812 [details]
dmesg (devices detected)

Here's a log with "pci=assign-busses", where we do detect the devices.
Comment 3 Alan 2012-08-13 16:31:57 UTC
If this is still seen with modern kernels please update/re-open the bug, thanks
Comment 4 Khomutov Vladimir 2012-09-07 21:40:04 UTC
The bug is still there with behaviour exactly as specified by reporter.

Tested with linux-3.4.9 (gentoo), DP43BF motherboard and Intel PRO/1000 NICs.
With pci=assign-busses lspci shows devices properly, without it nothing
is in the list.
Comment 5 Bjorn Helgaas 2012-09-07 21:53:04 UTC
On Fri, Sep 7, 2012 at 2:40 PM,  <bugzilla-daemon@bugzilla.kernel.org> wrote:
> https://bugzilla.kernel.org/show_bug.cgi?id=18412

> --- Comment #4 from VL <vl.homutov@gmail.com>  2012-09-07 21:40:04 ---
> The bug is still there with behaviour exactly as specified by reporter.
>
> Tested with linux-3.4.9 (gentoo), DP43BF motherboard and Intel PRO/1000 NICs.
> With pci=assign-busses lspci shows devices properly, without it nothing
> is in the list.

Anybody who wants to help with bugs like this, feel free :)  There are
a number of open regressions and bugs in the PCI subsystem of
https://bugzilla.kernel.org/

I spend a lot of time looking at these bugs, and that reduces the time
I have to review and apply patches.
Comment 6 Yinghai Lu 2012-09-07 22:15:54 UTC
On Fri, Sep 7, 2012 at 2:52 PM, Bjorn Helgaas <bhelgaas@google.com> wrote:
> On Fri, Sep 7, 2012 at 2:40 PM,  <bugzilla-daemon@bugzilla.kernel.org> wrote:
>> https://bugzilla.kernel.org/show_bug.cgi?id=18412
>
>> --- Comment #4 from VL <vl.homutov@gmail.com>  2012-09-07 21:40:04 ---
>> The bug is still there with behaviour exactly as specified by reporter.
>>
>> Tested with linux-3.4.9 (gentoo), DP43BF motherboard and Intel PRO/1000
>> NICs.
>> With pci=assign-busses lspci shows devices properly, without it nothing
>> is in the list.

VL,

I rebased for-pci-busn-alloc branch to current pci-next

please check if could fix the problem.

git://git.kernel.org/pub/scm/linux/kernel/git/yinghai/linux-yinghai.git
for-pci-busn-alloc

http://git.kernel.org/?p=linux/kernel/git/yinghai/linux-yinghai.git;a=shortlog;h=refs/heads/for-pci-busn-alloc

Thanks

Yinghai
Comment 7 Khomutov Vladimir 2012-09-07 22:25:36 UTC
Thank you, I'll give it a try and report results
Comment 8 Yinghai Lu 2012-09-07 22:35:59 UTC
On Fri, Sep 7, 2012 at 3:15 PM, Yinghai Lu <yinghai@kernel.org> wrote:
> On Fri, Sep 7, 2012 at 2:52 PM, Bjorn Helgaas <bhelgaas@google.com> wrote:
>> On Fri, Sep 7, 2012 at 2:40 PM,  <bugzilla-daemon@bugzilla.kernel.org>
>> wrote:
>>> https://bugzilla.kernel.org/show_bug.cgi?id=18412
>>
>>> --- Comment #4 from VL <vl.homutov@gmail.com>  2012-09-07 21:40:04 ---
>>> The bug is still there with behaviour exactly as specified by reporter.
>>>
>>> Tested with linux-3.4.9 (gentoo), DP43BF motherboard and Intel PRO/1000
>>> NICs.
>>> With pci=assign-busses lspci shows devices properly, without it nothing
>>> is in the list.
>
> VL,
>
> I rebased for-pci-busn-alloc branch to current pci-next
>
> please check if could fix the problem.
>
> git://git.kernel.org/pub/scm/linux/kernel/git/yinghai/linux-yinghai.git
> for-pci-busn-alloc
>
>
> http://git.kernel.org/?p=linux/kernel/git/yinghai/linux-yinghai.git;a=shortlog;h=refs/heads/for-pci-busn-alloc
>

also you could try attached patch

Thanks

Yinghai
Comment 9 Yinghai Lu 2012-09-07 22:50:36 UTC
Created attachment 79461 [details]
check bus range to reject invalid one.

it seems attachment from mail get dropped by bugzilla.
Comment 10 Khomutov Vladimir 2012-09-08 10:07:05 UTC
I confirm that this kernel: git://git.kernel.org/pub/scm/linux/kernel/git/yinghai/linux-yinghai.git
solves problem.
Comment 11 Khomutov Vladimir 2012-09-08 10:09:19 UTC
Created attachment 79481 [details]
dmesg, lspci and other info on old and tested kernels

The tarball contains output of dmesg, lspci, lshw, dmidecode and uname
commands for 3.4.9 with and without pci-assign-busses option passed
and 3.5 from git provided by yinghai
Comment 12 Bjorn Helgaas 2012-09-08 18:14:05 UTC
Thanks!  The dmesg logs are incomplete and don't start early enough to show exactly what fixed the problem.  But I suspect the problem is that the BIOS left the 00:1e.0 bridge programmed like this (from the gentoo-3.4.9 kernel):

pci 0000:00:1e.0: PCI bridge to [bus 20-08] (subtractive decode)

where the bus number range is clearly wrong.  With Yinghai's kernel we reset that to [bus 08].

I assume you're using the "for-pci-busn-alloc" branch of Yinghai's tree.  There are things on that branch that I'm not comfortable with yet, so we need to identify the specific change that fixes your box.

Given the [bus 20-08] range, I suspect that the patch in comment #9 may fix it, and that's something we could apply.  Can you try just that patch on top of a 3.5 or 3.6-rc4 kernel?
Comment 13 Khomutov Vladimir 2012-09-09 08:15:30 UTC
Created attachment 79521 [details]
full dmesg,lspci,lshw,uname with adn without suggested patch

Two sets of outputs for 3.5.3 gentoo kernel with and without
suggested patch applied.
Comment 14 Khomutov Vladimir 2012-09-09 08:27:17 UTC
> Given the [bus 20-08] range, I suspect that the patch in comment #9 may fix
> it,
> and that's something we could apply.  Can you try just that patch on top of a
> 3.5 or 3.6-rc4 kernel?

yes, this patch fixes the problem.
I've increased kernel buffer length and got full dmesg outputs -attached.

In which kernel version do you think we'll have this patch applied? 

Thank you!
Comment 15 Bjorn Helgaas 2012-09-24 23:25:29 UTC
This patch should appear in v3.7 if everything goes well.
Comment 16 Bjorn Helgaas 2012-10-05 16:54:00 UTC
Merged to upstream here, will appear in v3.7-rc1:

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commitdiff;h=1965f66e7db08d1ebccd24a59043eba826cc1ce8
Comment 17 Bjorn Helgaas 2013-02-28 18:39:16 UTC
Now upstream in v3.7.
Comment 18 Khomutov Vladimir 2013-02-28 19:56:45 UTC
yes, works great with 3.7.9 here.

Thanks again for great work!

Note You need to log in before you can comment on or make changes to this bug.