This patch set is introducing ARM64 PCI hostbridge init based on ACPI, which based on Jiang Liu's patch set "Consolidate ACPI PCI root common code into ACPI core": https://lkml.org/lkml/2015/5/14/98 This patch set including three parts: - the first part is PATCH 1, which should be merged into Jiang Liu's patch set to fix the compile error on ARM64 when ACPI enabled. - the senconed part is the refactoring of mmconfig to let that mechanism can be used for ARM64 too, it's Tomasz's work but he is moving to other work and pretty busy for now, so I will take care of those patches, Tomasz will show up when some comments need to be addressed :) In this version of mmconfig refactor patches, I removed the rename of mmconfig -> ecam patch, because mmconfig is in multi places, and need much more effort to convert them all to ecam, Bjorn, if you don't like it, I can add them back. - The third part is about the ARM64 PCI hostbridge init based on ACPI, first I fixed a compile error for XEN PCI on ARM64 when PCI_MMCONFIG=y, and then introduce PCI init based on Jiang Liu and Tomasz's patch set. patch for ARM64 ACPI PCI still reserve the bus sysdata to get the domain number, because Yijing's patch set is still under review, will be removed when Yijing's patch set hits upstream. This patch set was tested by Suravee on Seattle board with legacy interrupt (not MSI), and it works, also tested on qemu by Graeme. You can get the code from: git://git.linaro.org/leg/acpi/acpi.git, devel branch Comments are welcomed. Thanks Hanjun Hanjun Guo (3): ARM64 / PCI: introduce struct pci_controller for ACPI XEN / PCI: Remove the dependence on arch x86 when PCI_MMCONFIG=y ARM64 / PCI / ACPI: support for ACPI based PCI hostbridge init Tomasz Nowicki (8): x86, pci: Clean up comment about buggy MMIO config space access for AMD Fam10h CPUs. x86, pci: Abstract PCI config accessors and use AMD Fam10h workaround exclusively. x86, pci: Reorder logic of pci_mmconfig_insert() function x86, pci, acpi: Move arch-agnostic MMCONFIG (aka ECAM) and ACPI code out of arch/x86/ directory pci, acpi, mcfg: Provide generic implementation of MCFG code initialization. x86, pci: mmconfig_{32,64}.c code refactoring - remove code duplication. x86, pci, ecam: mmconfig_64.c becomes default implementation for ECAM driver. pci, acpi, mcfg: Share ACPI PCI config space accessors. arch/arm64/Kconfig | 7 + arch/arm64/include/asm/pci.h | 10 ++ arch/arm64/kernel/pci.c | 245 ++++++++++++++++++++++++++-- arch/x86/Kconfig | 4 + arch/x86/include/asm/pci_x86.h | 34 +--- arch/x86/pci/Makefile | 4 +- arch/x86/pci/acpi.c | 1 + arch/x86/pci/mmconfig-shared.c | 301 +++++++++++----------------------- arch/x86/pci/mmconfig_32.c | 35 +--- arch/x86/pci/mmconfig_64.c | 153 ------------------ arch/x86/pci/numachip.c | 25 +-- drivers/acpi/Makefile | 1 + drivers/acpi/mcfg.c | 103 ++++++++++++ drivers/pci/Kconfig | 10 ++ drivers/pci/Makefile | 5 + drivers/pci/ecam.c | 358 +++++++++++++++++++++++++++++++++++++++++ drivers/pci/pci.c | 26 +-- drivers/xen/pci.c | 7 +- include/linux/acpi.h | 2 + include/linux/ecam.h | 56 +++++++ 20 files changed, 923 insertions(+), 464 deletions(-) delete mode 100644 arch/x86/pci/mmconfig_64.c create mode 100644 drivers/acpi/mcfg.c create mode 100644 drivers/pci/ecam.c create mode 100644 include/linux/ecam.h -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html