Re: [RFC] ARM64, PCIe, annd ACPI

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

 



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



[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