On 7/23/2024 7:13 PM, Dmitry Baryshkov wrote:
On Mon, Jul 15, 2024 at 11:13:28AM GMT, Mayank Rana wrote:
Based on previously received feedback, this patch series adds functionalities
with existing PCIe host generic ECAM driver (pci-host-generic.c) to get PCIe
host root complex functionality on Qualcomm SA8775P auto platform.
Previously sent RFC patchset to have separate Qualcomm PCIe ECAM platform driver:
https://lore.kernel.org/all/d10199df-5fb3-407b-b404-a0a4d067341f@xxxxxxxxxxx/T/
1. Interface to allow requesting firmware to manage system resources and performing
PCIe Link up (devicetree binding in terms of power domain and runtime PM APIs is used in driver)
2. Performing D3 cold with system suspend and D0 with system resume (usage of GenPD
framework based power domain controls these operations)
3. SA8775P is using Synopsys Designware PCIe controller which supports MSI controller.
This MSI functionality is used with PCIe host generic driver after splitting existing MSI
functionality from pcie-designware-host.c file into pcie-designware-msi.c file.
Please excuse me my ignorance if this is described somewhere. Why are
you using DWC-specific MSI handling instead of using GIC ITS?
Due to usage of GIC v3 on SA8775p with Gunyah hypervisor, we have
limitation of not supporting GIC ITS
functionality. We considered other approach as usage of free SPIs (not
available, limitation in terms of mismatch between number of SPIs
available with physical GIC vs hypervisor) and extended SPIs (not
supported with GIC hardware). Hence we just left with DWC-specific MSI
controller here for MSI functionality.
Below architecture is used on Qualcomm SA8775P auto platform to get ECAM compliant PCIe
controller based functionality. Here firmware VM based PCIe driver takes care of resource
management and performing PCIe link related handling (D0 and D3cold). Linux VM based PCIe
host generic driver uses power domain to request firmware VM to perform these operations
using SCMI interface.
Regards,
Mayank