[PATCH 6/8] arm: mach-armada: add support for Armada XP board with device tree
Stephen Warren
swarren at wwwdotorg.org
Tue May 15 12:31:58 EDT 2012
On 05/15/2012 08:37 AM, Arnd Bergmann wrote:
> On Tuesday 15 May 2012, Ben Dooks wrote:
>>> * Maybe those mappings can be done using a normal ioremap() rather
>>> than in ->map_io(), according to DT informations (but most other ARM
>>> SoC support at the moment seem to do PCI mappings using static
>>> mappings in ->map_io)
>> That's a very old way of doing it. I'm pretty sure there's no reason to
>> get these allocated so early.
>
> Well, you might actually still want to use static mappings for any large
> areas that are accessed a lot in the kernel, because that lets you
> use larger page TLB entries, which ioremap by itself cannot. The host
> driver should however still use ioremap, it will now just get the area
> that was set up with map_io.
>
>> I believe you can probably leave the PCI/PCIe bindings until you have
>> enough kernel state to do ioremap() or similar and then associate the
>> necessary mappings with the bus creation.
>
> I think it was Stephen Warrent who told me that he can actually do
> a PCI host driver as a loadable module now, with only a few changes
> in the ARM core code.
Thierry Redding was working on this (actually, perhaps PCIe as a
platform driver rather than as a module, but I'm not sure) in the
context of the Tegra PCIe driver. See some of the patches at
http://patchwork.ozlabs.org/project/linux-tegra/list/, e.g. "PCI: Keep
pci_fixup_irqs() around after init" and "ARM: pci: Keep
pci_common_init() around after init" IIRC.
More information about the linux-arm-kernel
mailing list