[PATCH 00/11] ARM64 PCI hostbridge init based on ACPI

Hanjun Guo hanjun.guo at linaro.org
Tue May 26 05:49:13 PDT 2015


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




More information about the linux-arm-kernel mailing list