Re: [RFC] ARM64, PCIe, annd ACPI

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 8/7/2018 7:10 PM, Bjorn Helgaas wrote:
On Tue, Aug 07, 2018 at 05:10:15PM -0700, Ray Jui wrote:
Hi Lorenzo/Bjorn,

I have a question on PCIe controller APCI support on ARM64 based systems.

If my understanding of the implementation of "pci_acpi_scan_root" under
"arch/arm64/kernel/pci.c" is correct, it appears
"pci_acpi_setup_ecam_mapping" is called within "pci_acpi_scan_root".

Does that mean for a PCIe host controller on ARM64 to support ACPI, it needs
to support ECAM and MMIO based access to the configuration space registers?
Yes. In my opinion, a PCIe host controller is generally required to
support ECAM even if the platform doesn't support ACPI.  I base this
on PCIe r4.0, sec 7.2.2:

   For systems that are PC-compatible, or that do not implement a
   processor-architecture-specific firmware interface standard that
   allows access to the Configuration Space, the ECAM is required as
   defined in this section.

If the above statement is true, does it imply that any PCIe controller on
ARM64 that does not support MMIO based access to the config space register
cannot have ACPI support?

We would treat that as a non-compliant platform that requires special
quirks to work around the problem.  That does mean we have to add
platform-specific quirks, which of course means we can't run an old
kernel on a new platform that lacks standard ECAM.  There are several
existing systems like this.

The notes and examples here should be a place to start:

   drivers/pci/controller/Makefile
   drivers/pci/controller/dwc/Makefile
   drivers/acpi/pci_mcfg.c

Bjorn


Thanks for the pointers, Bjorn! Very helpful!

Ray



[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux