[PATCH] ARM: enable PCI bridges after assigning resources (was orion/kirkwood pcie issue still open with 2.6.32-rc6 (marvell stock 188.8.131.52 works!))
buytenh at wantstofly.org
Thu Nov 12 14:56:47 EST 2009
On Thu, Nov 12, 2009 at 02:35:09AM +0100, Maxime Bizon wrote:
> Hi Lennert & Dieter,
> > It's the "Mem" one (surprise! :)). The minus in "Mem-" indicates that
> > the bit is disabled in the Control register.
> I sent this patch twice on arm mailing list but it went unnoticed. I
> think you're hitting the exact same problem.
> When kernel is doing PCI resource assignment on ARM, nothing ever
> enables PCI bridges, preventing any device behind them from working. The
> following patch fixes this.
As normal devices aren't enabled (in the MEM/IO decoding sense) by
default on boot either, I wonder if we should just have pci_enable_device()
walk through the PCI tree up to the root, enabling each of the bridges
on its path?
(pci_disable_device() doesn't disable MEM/IO decoding (just the initiator
bit), so there's no symmetry problem with not disabling those bridges
in pci_disable_device() again.)
More information about the linux-arm-kernel