Re: PCI bus conflict hang: how to avoid the allocation of an I/O range.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Monday 17 November 2008 07:05:22 am GARCIA DE SORIA LUCENA, JUAN JESUS wrote:
> After commit 
> 
> commit 12c22d6ef299ccf0955e5756eb57d90d7577ac68
> Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
> Date:   Wed Mar 26 11:22:40 2008 -0700
> 
>     Revert "PCI: remove transparent bridge sizing"
> 
> 
> My laptop began hanging when booting, and I filed
> http://bugzilla.kernel.org/show_bug.cgi?id=11054.
> 
> 
> I had to disable the sizing of transparent bridges until, after a
> conversation in the kernel mailing list, I think I've found the root of
> the problem.
> 
> A CardBus bridge is on the secondary bus of a transparent bridge. By
> default it gets assigned two I/O ranges: 0x1000-0x10ff and
> 0x-1400-0x14ff, which is translated to the transparent bridge positively
> forwarding the range 0x1000-0x1fff. There are no more I/O resources
> allocated behind the transparent PCI to PCI bridge.
> 
> I suspect there's "something" (some device unknown by the kernel)
> decoding I/O accesses in the primary PCI bus, in the 0x1000-0x1fff
> range. This device must be causing bus conflicts with the range
> allocated to the PCI to PCI bridge. Not sizing the transparent bridge
> wouldn't configure any I/O range in it for positive decoding, thus
> avoiding the conflict.

I added your nice analysis from http://lkml.org/lkml/2008/11/12/60
to the bugzilla.

Theoretically, ACPI should tell us about any non-PCI devices that
might be in the 0x1000-0x1fff range.  This command:
  $ grep . /sys/bus/pnp/devices/*/*
should tell you about them.

Bjorn

--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux