Hi, This patch adds support for PCIe to AArch64. It depends on my v11 patch that adds support for creating generic host bridge resources from device trees. With that in place, I was able to boot a platform that has PCIe host bridge support and use a PCIe network card. Changes from v10: - Added Catalin's Acked-by Changes from v9: - Moved the pcibios_add_device() patch that parses the IRQ number from DT into here. - Moved the arm64-specific redefine of pgprot_device here from the generic patchset. - Readability fix for definition of IO_SPACE_LIMIT Changes from v8: - Added support for generic PCI domains Changes from v7: - Rebased to v3.16-rc3 - Removed pci_ioremap_io() function as it is provided by my v8 generic PCI host bridge patches under a different name. Changes from v6: - Guard the pci_domain_nr() inline implementation with #ifdef CONFIG_PCI as to avoid conflict with default empty version present in include/linux/pci.h. Thanks to Jingoo Han for catching this. Changes from v5: - Removed pcibios_fixup_bridge_ranges() as the week default version is fine. - Removed the ALIGN() call in pcibios_align_resource() - Stopped exporting pcibios_align_resource() Changes from v4: - Fixed the pci_domain_nr() implementation for arm64. Now we use find_pci_host_bride() to find the host bridge before we retrieve the domain number. Changes from v3: - Added Acks accumulated so far ;) - Still carrying Catalin's patch for moving the PCI_IO_BASE until it lands in linux-next or mainline, in order to ease applying the series Changes from v2: - Implement an arch specific version of pci_register_io_range() and pci_address_to_pio(). - Return 1 from pci_proc_domain(). Changes from v1: - Added Catalin's patch for moving the PCI_IO_BASE location and extend its size to 16MB - Integrated Arnd's version of pci_ioremap_io that uses a bitmap for keeping track of assigned IO space and returns an io_offset. At the moment the code is added in arch/arm64 but it can be moved in drivers/pci. - Added a fix for the generic ioport_map() function when !CONFIG_GENERIC_IOMAP as suggested by Arnd. v10 thread here: https://lkml.org/lkml/2014/9/8/325 v9 thread here: https://lkml.org/lkml/2014/8/12/394 v8 thread here: https://lkml.org/lkml/2014/7/1/705 v7 thread here: https://lkml.org/lkml/2014/3/14/320 v6 thread here: https://lkml.org/lkml/2014/3/5/41 v5 thread here: https://lkml.org/lkml/2014/3/4/307 v4 thread here: https://lkml.org/lkml/2014/3/3/298 v3 thread here: https://lkml.org/lkml/2014/2/28/211 v2 thread here: https://lkml.org/lkml/2014/2/27/255 v1 thread here: https://lkml.org/lkml/2014/2/3/389 Best regards, Liviu Liviu Dudau (1): arm64: Add architectural support for PCIe arch/arm64/Kconfig | 22 ++++++++++++++- arch/arm64/include/asm/Kbuild | 1 + arch/arm64/include/asm/io.h | 3 +- arch/arm64/include/asm/pci.h | 37 +++++++++++++++++++++++++ arch/arm64/include/asm/pgtable.h | 2 ++ arch/arm64/kernel/Makefile | 1 + arch/arm64/kernel/pci.c | 59 ++++++++++++++++++++++++++++++++++++++++ 7 files changed, 123 insertions(+), 2 deletions(-) create mode 100644 arch/arm64/include/asm/pci.h create mode 100644 arch/arm64/kernel/pci.c -- 2.1.0 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html