[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 18:51:25 UTC 2017


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?


More information about the U-Boot mailing list