[PATCH v2 19/28] ARM: Add fixed PCI i/o mapping
Arnd Bergmann
arnd at arndb.de
Wed Feb 29 17:43:13 EST 2012
On Wednesday 29 February 2012, Rob Herring wrote:
> No, then the mapping will fail. I do need to double check all the
> mappings and make sure there is no overlap but we only care on the PCI
> platforms I converted.
>
> Also, it should be noted this shrinks the i/o space on some platforms.
> dove and kirkwood had 1MB x 2 buses and now have 64KB per bus. ixp2000 I
> think has 32MB with a note saying they need "a lot". Is there really a
> use for lots of i/o space?
Given that each PCI bus only wires up the lower 64k, I'd say no ;-)
My guess is that they used 1MB ranges in order to benefit from section
mapping. In case of ixp2000, I only see 64k in the resource:
static struct resource ixp2000_pci_io_space = {
.start = 0x00010000,
.end = 0x0001ffff,
.flags = IORESOURCE_IO,
.name = "PCI I/O Space"
};
The part that I don't understand here is why the resource starts at
64k and is another 64k in size. I think we need to double-check this
in order to be sure whether we have to put the pci io space into the
first or the second 64k chunk of the new mapping area.
Hmm, I guess you meant ixp23xx, not ixp2000, which indeed has
static struct resource ixp23xx_pci_io_space = {
.start = 0x00000100,
.end = 0x01ffffff,
.flags = IORESOURCE_IO,
.name = "PCI I/O Space"
};
This seems to be done just for simplicity in the implementation,
to keep all parts of the PCI controller 32MB aligned, I can't
see any real technical reason why it would be useful othewise.
Arnd
More information about the linux-arm-kernel
mailing list