Tested on AMD Seattle platform (Overdrive revB) w/ both MSI and legacy interrupt.
Tested-by: Suravee Suthikulpanit Suravee.Suthikulpanit@amd.com
Thanks, Suravee
On 10/27/15 11:38, Tomasz Nowicki wrote:
From the functionality point of view this series might be split into two logic parts:
- Making MMCONFIG code arch-agnostic which allows all architectures to collect PCI config regions and used when necessary.
- Using generic MMCONFIG code and introducing ACPI based PCI hostbridge initialization for ARM64
Patches has been built on top of: [Patch v7 0/7] Consolidate ACPI PCI root common code into ACPI core https://lkml.org/lkml/2015/10/14/31 Git branch can be found here: https://git.linaro.org/leg/acpi/acpi.git/shortlog/refs/heads/pci-acpi-upstre...
This has been tested on Cavium ThunderX 1 socket server. Any help in reviewing and testing is very appreciated.
Hanjun Guo (1): XEN / PCI: Remove the dependence on arch x86 when PCI_MMCONFIG=y
Tomasz Nowicki (10): 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: Provide default RAW ACPI PCI config space accessors. pci, acpi, ecam: Add flag to indicate whether ECAM region was hot added or not. x86, pci: Use previously added ECAM hot_added flag to remove ECAM regions. pci, acpi: Provide generic way to assign bus domain number. arm64, pci, acpi: Support for ACPI based PCI hostbridge init
arch/arm64/Kconfig | 6 + arch/arm64/kernel/pci.c | 208 ++++++++++++++++++++++++++++++++-- arch/x86/Kconfig | 4 + arch/x86/include/asm/pci_x86.h | 28 +---- arch/x86/pci/acpi.c | 17 +-- arch/x86/pci/mmconfig-shared.c | 250 +++++++---------------------------------- arch/x86/pci/mmconfig_32.c | 11 +- arch/x86/pci/mmconfig_64.c | 67 +---------- arch/x86/pci/numachip.c | 1 + drivers/acpi/Makefile | 1 + drivers/acpi/mcfg.c | 104 +++++++++++++++++ drivers/acpi/pci_root.c | 2 +- drivers/pci/Kconfig | 10 ++ drivers/pci/Makefile | 5 + drivers/pci/ecam.c | 234 ++++++++++++++++++++++++++++++++++++++ drivers/pci/pci.c | 30 ++++- drivers/xen/pci.c | 7 +- include/linux/acpi.h | 2 + include/linux/ecam.h | 44 ++++++++ 19 files changed, 691 insertions(+), 340 deletions(-) create mode 100644 drivers/acpi/mcfg.c create mode 100644 drivers/pci/ecam.c create mode 100644 include/linux/ecam.h