Dear Bjorn Helgaas, On Thu, 1 Aug 2013 10:53:07 -0600, Bjorn Helgaas wrote: > On Thu, Aug 1, 2013 at 7:44 AM, Thomas Petazzoni > <thomas.petazzoni@xxxxxxxxxxxxxxxxxx> wrote: > > The Marvell PCIe driver uses an emulated PCI-to-PCI bridge to be able > > to dynamically set up MBus address decoding windows for PCI I/O and > > memory regions depending on the PCI devices enumerated by Linux. > > > > However, this emulated PCI-to-PCI bridge logic makes the Linux PCI > > core believe that prefetchable memory regions are supported (because > > the registers are read/write), while in fact no adress decoding window > > is ever created for such regions. Since the Marvell MBus address > > decoding windows do not distinguish memory regions and prefetchable > > memory regions, this patch takes a simple approach: change the > > PCI-to-PCI bridge emulation to let the Linux PCI core know that we > > don't support prefetchable memory regions. > > > > To achieve this, we simply make the prefetchable memory base a > > read-only register that always returns 0. Reading/writing all the > > other prefetchable memory related registers has no effect. > > > > This problem was originally reported by Finn Hoffmann > > <finn@xxxxxxxxxxxxx>, who couldn't get a RTL8111/8168B PCI NIC working > > on the NSA310 Kirkwood platform after updating to 3.11-rc. The problem > > was that the PCI-to-PCI bridge emulation was making the Linux PCI core > > believe that we support prefetchable memory, so the Linux PCI core was > > only filling the prefetchable memory base and limit registers, which > > does not lead to a MBus window being created. The below patch has been > > confirmed by Finn Hoffmann to fix his problem on Kirkwood, and has > > otherwise been successfully tested on the Armada XP GP platform with a > > e1000e PCIe NIC and a Marvell SATA PCIe card. > > > > Signed-off-by: Thomas Petazzoni <thomas.petazzoni@xxxxxxxxxxxxxxxxxx> > > Reported-by: Finn Hoffmann <finn@xxxxxxxxxxxxx> > > Signed-off-by: Thomas Petazzoni <thomas.petazzoni@xxxxxxxxxxxxxxxxxx> > > Acked-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx> > > Please merge along with your other pci-mvebu.c changes. I don't think we have other pci-mvebu.c lined up for 3.11. All the MSI stuff, mvebu-mbus DT stuff and so on is for 3.12. So I guess you could take that one through your pci tree. Jason, can you confirm? Thanks! Thomas -- Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com -- 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