Re: [PATCH V3 19/21] pci, acpi: Support for ACPI based generic PCI host controller init

From: Tomasz Nowicki
Date: Mon Jan 18 2016 - 04:59:51 EST


On 15.01.2016 10:57, Hanjun Guo wrote:
Hi Tomasz,

On 2016/1/13 21:21, Tomasz Nowicki wrote:
Because of two patch series:
1. Jiang Liu's common interface to support PCI host controller init
2. MMCONFIG refactoring (part of this patch set)
now we can think about generic ACPI based PCI host controller init
implementation out of arch/ directory.

These calls use information from MCFG table (PCI config space regions)
and _CRS method (IO/irq resources) to initialize PCI hostbridge.

TBD: We are still not sure whether we should reassign resources
after PCI bus enumeration or trust firmware to do all that work for
us properly.

Signed-off-by: Tomasz Nowicki <tn@xxxxxxxxxxxx>
Signed-off-by: Hanjun Guo <hanjun.guo@xxxxxxxxxx>
Signed-off-by: Suravee Suthikulpanit <Suravee.Suthikulpanit@xxxxxxx>
CC: Arnd Bergmann <arnd@xxxxxxxx>
CC: Catalin Marinas <catalin.marinas@xxxxxxx>
CC: Liviu Dudau <Liviu.Dudau@xxxxxxx>
CC: Lorenzo Pieralisi <Lorenzo.Pieralisi@xxxxxxx>
CC: Will Deacon <will.deacon@xxxxxxx>
Tested-by: Suravee Suthikulpanit <Suravee.Suthikulpanit@xxxxxxx>
Tested-by: Jeremy Linton <jeremy.linton@xxxxxxx>
---
drivers/acpi/Kconfig | 5 ++
drivers/acpi/pci_root.c | 131
++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 136 insertions(+)

diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig
index c3664be..e315061 100644
--- a/drivers/acpi/Kconfig
+++ b/drivers/acpi/Kconfig
@@ -335,6 +335,11 @@ config ACPI_PCI_SLOT
i.e., segment/bus/device/function tuples, with physical slots in
the system. If you are unsure, say N.

+config ACPI_PCI_HOST_GENERIC
+ bool "Generic ACPI PCI host controller"
+ help
+ Say Y here if you want to support generic ACPI PCI host
controller.

Since x86 and IA64 will not use ACPI_PCI_HOST_GENERIC in this
patch, it should be defined as

config ACPI_PCI_HOST_GENERIC
bool

and select for ARCHs, or will default y on x86 and IA64 too.

Right, I will fix that in v4.


Compiling the kernel on a IA64 machine, will send out the
result when it's ready.


Thanks,
Tomasz