Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1419698 > unrolled thread

[PATCH V9 00/11] Support for ARM64 ACPI based PCI host controller

Started byTomasz Nowicki <tn@semihalf.com>
First post2016-06-10 22:00 +0200
Last post2016-06-11 12:00 +0200
Articles 5 — 4 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH V9 00/11] Support for ARM64 ACPI based PCI host controller Tomasz Nowicki <tn@semihalf.com> - 2016-06-10 22:00 +0200
    Re: [PATCH V9 00/11] Support for ARM64 ACPI based PCI host controller Bjorn Helgaas <helgaas@kernel.org> - 2016-06-11 01:50 +0200
      Re: [Linaro-acpi] [PATCH V9 00/11] Support for ARM64 ACPI based PCI  host controller Jon Masters <jcm@jonmasters.org> - 2016-06-11 02:00 +0200
      Re: [PATCH V9 00/11] Support for ARM64 ACPI based PCI host controller Jon Masters <jcm@redhat.com> - 2016-06-11 02:00 +0200
      Re: [PATCH V9 00/11] Support for ARM64 ACPI based PCI host controller Tomasz Nowicki <tn@semihalf.com> - 2016-06-11 12:00 +0200

#1419698 — [PATCH V9 00/11] Support for ARM64 ACPI based PCI host controller

FromTomasz Nowicki <tn@semihalf.com>
Date2016-06-10 22:00 +0200
Subject[PATCH V9 00/11] Support for ARM64 ACPI based PCI host controller
Message-ID<rIAKZ-Mx-5@gated-at.bofh.it>
From the functionality point of view this series may be split into the
following logic parts:
1. Export ECAM API and add parent device to pci_config_window
2. Add IO resources handling to PCI core code
3. New MCFG driver
4. Cleanups and support for generic domain assignment based on ACPI
5. Implement ARM64 ACPI based PCI host controller driver under arch/arm64/

Patches has been built on top of 4.7-rc2 and can be found here:
git@github.com:semihalf-nowicki-tomasz/linux.git (pci-acpi-v9)

This has been tested on Cavium ThunderX server. Any help in reviewing and
testing is very appreciated.

v8 -> v9
- additional cleanups around generic assignment
- added back MCFG entries cache
- simplified config start address lookup
- fixed leak in pci_acpi_scan_root()
- isolated patch with ACPI RAW accessors implementation
- rebase against 4.7-rc2

v7 -> v8
- move code from drivers/acpi/pci_root_generic.c to arch/arm64/kernel/pci.c
- minor changes around domain assignment
- pci_mcfg.c improvements for parsing MCFG tables and lookup its entries
- rebase against 4.7-rc1

v6 -> v7
- drop quirks handling
- changes for ACPI companion and domain number assignment approach
- implement arch pcibios_{add|remove}_bus and call acpi_pci_{add|remove}_bus from there
- cleanups around nomenclature
- use resources oriented API for ECAM
- fix for based address calculation before mapping ECAM region
- remove useless lock for MCFG lookup
- move MCFG stuff to separated file pci_mcfg.c
- drop MCFG entries caching
- rebase against 4.6-rc7

v5 -> v6
- drop idea of x86 MMCONFIG code refactoring
- integrate JC's patches which introduce new ECAM API:
  https://lkml.org/lkml/2016/4/11/907
  git: https://github.com/jchandra-brcm/linux/ (arm64-acpi-pci-v3)
- integrate Sinan's fix for releasing IO resources, see patch [06/13]
- added ACPI support for ThunderX ECAM and PEM drivers
- rebase against 4.6-rc2

v4 -> v5
- drop MCFG refactoring group patches 1-6 from series v4 and integrate Jayachandran's patch
  https://patchwork.ozlabs.org/patch/575525/
- rewrite PCI legacy IRQs allocation
- squash two patches 11 and 12 from series v4, fixed bisection issue
- changelog improvements
- rebase against 4.5-rc3

v3 -> v4
- drop Jiang's fix http://lkml.iu.edu/hypermail/linux/kernel/1601.1/04318.html
- add Lorenzo's fix patch 19/24
- ACPI PCI bus domain number assigning cleanup
- change resource management, we now claim and reassign resources
- improvements for applying quirks
- drop Matthew's http://www.spinics.net/lists/linux-pci/msg45950.html dependency
- rebase against 4.5-rc1

v2 -> v3
- fix legacy IRQ assigning and IO ports registration
- remove reference to arch specific companion device for ia64
- move ACPI PCI host controller driver to pci_root.c
- drop generic domain assignment for x86 and ia64 as I am not
  able to run all necessary test variants
- drop patch which cleaned legacy IRQ assignment since it belongs to
  Mathew's series:
  https://patchwork.ozlabs.org/patch/557504/
- extend MCFG quirk code
- rebase against 4.4

v1 -> v2
- move non-arch specific piece of code to dirver/acpi/ directory
- fix IO resource handling
- introduce PCI config accessors quirks matching
- moved ACPI_COMPANION_SET to generic code

v1 - https://lkml.org/lkml/2015/10/27/504
v2 - https://lkml.org/lkml/2015/12/16/246
v3 - http://lkml.iu.edu/hypermail/linux/kernel/1601.1/04308.html
v4 - https://lkml.org/lkml/2016/2/4/646
v5 - https://lkml.org/lkml/2016/2/16/426
v6 - https://lkml.org/lkml/2016/4/15/594
v7 - https://lkml.org/lkml/2016/5/10/568
v8 - https://lkml.org/lkml/2016/5/30/468

Jayachandran C (3):
  PCI/ECAM: Move ecam.h to linux/include/pci-ecam.h
  PCI/ECAM: Add parent device field to pci_config_window
  ACPI/PCI: Support IO resources when parsing PCI host bridge resources

Sinan Kaya (1):
  PCI: Add new function to unmap IO resources

Tomasz Nowicki (7):
  ACPI/PCI: Add generic MCFG table handling
  PCI: Refactor generic bus domain assignment
  PCI: Factor DT specific pci_bus_find_domain_nr() code out
  ARM64/PCI: Add ACPI hook to assign domain number
  ARM64/PCI: ACPI support for legacy IRQs parsing and consolidation with
    DT code
  ARM64/PCI: Implement ACPI low-level calls to access PCI_Config region
    from AML
  ARM64/PCI: Support for ACPI based PCI host controller

 arch/arm64/Kconfig                  |   2 +
 arch/arm64/kernel/pci.c             | 146 ++++++++++++++++++++++++++++++++++--
 drivers/acpi/Kconfig                |   3 +
 drivers/acpi/Makefile               |   1 +
 drivers/acpi/pci_mcfg.c             |  92 +++++++++++++++++++++++
 drivers/acpi/pci_root.c             |  39 ++++++++++
 drivers/pci/ecam.c                  |   6 +-
 drivers/pci/ecam.h                  |  67 -----------------
 drivers/pci/host/pci-host-common.c  |   3 +-
 drivers/pci/host/pci-host-generic.c |   3 +-
 drivers/pci/host/pci-thunder-ecam.c |   3 +-
 drivers/pci/host/pci-thunder-pem.c  |   6 +-
 drivers/pci/pci.c                   |  29 ++++++-
 drivers/pci/probe.c                 |   4 +-
 include/linux/pci-acpi.h            |   2 +
 include/linux/pci-ecam.h            |  67 +++++++++++++++++
 include/linux/pci.h                 |  15 ++--
 17 files changed, 392 insertions(+), 96 deletions(-)
 create mode 100644 drivers/acpi/pci_mcfg.c
 delete mode 100644 drivers/pci/ecam.h
 create mode 100644 include/linux/pci-ecam.h

-- 
1.9.1

[toc] | [next] | [standalone]


#1419839

FromBjorn Helgaas <helgaas@kernel.org>
Date2016-06-11 01:50 +0200
Message-ID<rIElz-3NL-5@gated-at.bofh.it>
In reply to#1419698
On Fri, Jun 10, 2016 at 09:55:08PM +0200, Tomasz Nowicki wrote:
> From the functionality point of view this series may be split into the
> following logic parts:
> 1. Export ECAM API and add parent device to pci_config_window
> 2. Add IO resources handling to PCI core code
> 3. New MCFG driver
> 4. Cleanups and support for generic domain assignment based on ACPI
> 5. Implement ARM64 ACPI based PCI host controller driver under arch/arm64/

This is beautiful!  It really turned out well.

I applied all these to pci/arm64-acpi for v4.8.

Bjorn

[toc] | [prev] | [next] | [standalone]


#1419842 — Re: [Linaro-acpi] [PATCH V9 00/11] Support for ARM64 ACPI based PCI host controller

FromJon Masters <jcm@jonmasters.org>
Date2016-06-11 02:00 +0200
SubjectRe: [Linaro-acpi] [PATCH V9 00/11] Support for ARM64 ACPI based PCI host controller
Message-ID<rIEvf-3Sp-11@gated-at.bofh.it>
In reply to#1419839
On 06/10/2016 07:41 PM, Bjorn Helgaas wrote:
> On Fri, Jun 10, 2016 at 09:55:08PM +0200, Tomasz Nowicki wrote:
>> From the functionality point of view this series may be split into the
>> following logic parts:
>> 1. Export ECAM API and add parent device to pci_config_window
>> 2. Add IO resources handling to PCI core code
>> 3. New MCFG driver
>> 4. Cleanups and support for generic domain assignment based on ACPI
>> 5. Implement ARM64 ACPI based PCI host controller driver under arch/arm64/
> 
> This is beautiful!  It really turned out well.
> 
> I applied all these to pci/arm64-acpi for v4.8.

Quick followup - I've forwarded your mail to the Linaro Enterprise Group
members and started nudging the vendors to prep any remaining pieces for
post-merge. That includes quirks, and then any drivers that anyone has
been sitting on until this was upstream.

Looking forward to F25 Server booting out of the box, and finally
getting to a point where Fedora is once again upstream of RHEL(SA).

Jon.

[toc] | [prev] | [next] | [standalone]


#1419843

FromJon Masters <jcm@redhat.com>
Date2016-06-11 02:00 +0200
Message-ID<rIEvf-3Sp-13@gated-at.bofh.it>
In reply to#1419839
Thank you Bjorn :)

Next time we are in the same place (anyone involved in this series), beer is on me.

-- 
Computer Architect | Sent from my 64-bit #ARM Powered phone

> On Jun 10, 2016, at 18:41, Bjorn Helgaas <helgaas@kernel.org> wrote:
> 
>> On Fri, Jun 10, 2016 at 09:55:08PM +0200, Tomasz Nowicki wrote:
>> From the functionality point of view this series may be split into the
>> following logic parts:
>> 1. Export ECAM API and add parent device to pci_config_window
>> 2. Add IO resources handling to PCI core code
>> 3. New MCFG driver
>> 4. Cleanups and support for generic domain assignment based on ACPI
>> 5. Implement ARM64 ACPI based PCI host controller driver under arch/arm64/
> 
> This is beautiful!  It really turned out well.
> 
> I applied all these to pci/arm64-acpi for v4.8.
> 
> Bjorn

[toc] | [prev] | [next] | [standalone]


#1419957

FromTomasz Nowicki <tn@semihalf.com>
Date2016-06-11 12:00 +0200
Message-ID<rINRT-1qU-5@gated-at.bofh.it>
In reply to#1419839
On 11.06.2016 01:41, Bjorn Helgaas wrote:
> On Fri, Jun 10, 2016 at 09:55:08PM +0200, Tomasz Nowicki wrote:
>>  From the functionality point of view this series may be split into the
>> following logic parts:
>> 1. Export ECAM API and add parent device to pci_config_window
>> 2. Add IO resources handling to PCI core code
>> 3. New MCFG driver
>> 4. Cleanups and support for generic domain assignment based on ACPI
>> 5. Implement ARM64 ACPI based PCI host controller driver under arch/arm64/
>
> This is beautiful!  It really turned out well.
>
> I applied all these to pci/arm64-acpi for v4.8.
>

Thanks Bjorn! This is great news.

Tomasz

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web