Re: Query regarding the use of pcie-designware-plat.c file

From: Vidya Sagar
Date: Wed Jun 09 2021 - 01:26:59 EST




On 6/9/2021 2:47 AM, Gustavo Pimentel wrote:
External email: Use caution opening links or attachments


Hi Vidya,

The pcie-designware-plat.c is the driver for the Synopsys PCIe RC IP
prototype.
Thanks for the info Gustavo.
But, I don't see any DT file having only "snps,dw-pcie" compatibility string. All the DT files that have "snps,dw-pci" compatibility string also have their platform specific compatibility string and their respective host controller drivers. Also, it is the platform specific compatibility string that is used for binding purpose with their respective drivers and not the "snps,dw-pcie". So, wondering when will pcie-designware-plat.c be used as there is not DT file which has only "snps,dw-pcie" as the compatibility string.

- Vidya Sagar

-Gustavo

On Tue, Jun 8, 2021 at 20:22:37, Vidya Sagar <vidyas@xxxxxxxxxx> wrote:

Hi,
I would like to know what is the use of pcie-designware-plat.c file.
This looks like a skeleton file and can't really work with any specific
hardware as such.
Some context for this mail thread is, if the config CONFIG_PCIE_DW_PLAT
is enabled in a system where a Synopsys DesignWare IP based PCIe
controller is present and its configuration is enabled (Ex:- Tegra194
system with CONFIG_PCIE_TEGRA194_HOST enabled), then, it can so happen
that the probe of pcie-designware-plat.c called first (because all DWC
based PCIe controller nodes have "snps,dw-pcie" compatibility string)
and can crash the system.
One solution to this issue is to remove the "snps,dw-pcie" from the
compatibility string (as was done through the commit f9f711efd441
("arm64: tegra: Fix Tegra194 PCIe compatible string") but it seems like
a localized fix for Tegra194 where the issue potentially is global, as
in, the crash can happen on any platform.
So, wondering if the config option CONFIG_PCIE_DW_PLAT can be removed
altogether for pcie-designware-plat.c?

Thanks,
Vidya Sagar