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

Stephen Warren swarren at wwwdotorg.org
Wed Aug 9 21:18:08 UTC 2017


On 08/09/2017 02:18 PM, Marcel Ziswiler wrote:
> On Wed, 2017-08-09 at 12:51 -0600, Stephen Warren wrote:
>> On 08/09/2017 09:44 AM, Marcel Ziswiler wrote:
>>> From: Marcel Ziswiler <marcel.ziswiler at 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.
>>> diff --git a/board/toradex/apalis_t30/apalis_t30.c
>>> b/board/toradex/apalis_t30/apalis_t30.c
>>> +void tegra_pcie_board_port_reset(struct tegra_pcie_port *port)
>>> +			/*
>>> +			 * Reset PLX PEX 8605 PCIe Switch plus
>>> PCIe devices on
>>> +			 * Apalis Evaluation Board
>>> +			 */
>>> +			gpio_direction_output(PEX_PERST_N, 0);
>>> +			gpio_direction_output(RESET_MOCI_CTRL, 0);
>>> +
>>> +			/*
>>> +			 * Must be asserted for 100 ms after power
>>> and clocks
>>> +			 * are stable
>>> +			 */
>>> +			mdelay(100);
>>> +
>>> +			gpio_set_value(PEX_PERST_N, 1);
>>> +			/*
>>> +			 * Err_5: PEX_REFCLK_OUTpx/nx Clock
>>> Outputs is not
>>> +			 * Guaranteed Until 900 us After
>>> PEX_PERST# De-assertion
>>> +			 */
>>> +			mdelay(1);
>>> +			gpio_set_value(RESET_MOCI_CTRL, 1);
>>
>> Don't we need to also call the core tegra_pcie_port_reset() function
>> here, so that the driver gets to do any reset of the PCIe controller
>> HW
>> that's required? I think that part should happen irrespective of
>> whether
>> CONFIG_APALIS_T30_PCIE_EVALBOARD_INIT is enabled?
> 
> I really don't think so. All it really would do is just resetting by the means of the regular PEX_CTL signals which our design is not using like that anyway.

OK, I guess whatever the outcome, we could always fix it later since 
it's purely board-specific code. So, this patch,

Acked-by: Stephen Warren <swarren at nvidia.com>


More information about the U-Boot mailing list