[U-Boot] [PATCH 3/3] apalis_t30: fix optional pcie port reset for reliable pcie operation

Stephen Warren
2017-08-09T15:59:39Z

On 08/09/2017 08:53 AM, Marcel Ziswiler wrote:
> Hi Stephen
>
> On Tue, 2017-08-08 at 10:14 -0600, Stephen Warren wrote:
>> On 08/08/2017 06:43 AM, Marcel Ziswiler wrote:
>>> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>>>
>>> Allow optionally bringing up the Apalis type specific 4 lane PCIe port
>>> as well as the PCIe switch as found on the Apalis Evaluation board. In
>>> order to avoid violating the PCIe reset timing do this by overriding the
>>> tegra_pcie_board_port_reset() function. Note however that both the
>>> Apalis type specific 4 lane PCIe port as well as the regular Apalis PCIe
>>> port are also left disabled in the device tree by default.
...
>> Also, how do
>> you know that the user isn't going to initialize PCIe multiple times and
>> expect the HW to get reset when they do?
>
> Good question. However after having it implemented as requested below
> keeping status and such it turns out there is no easy way to ever re-
> initialise at least not with nowadays driver model in place (e.g. see
> DM_FLAG_ACTIVATED in device_probe() of drivers/core/device.c). Or did I
> miss anything?

I was naively assuming that "pci enum" would reset everything prior to
re-enumeration. Perhaps it doesn't though; I didn't check the code.