Re: [PATCH 1/2] arm: mvebu: a38x: serdes: fix serdes config for USB3

Stefan Roese
2021-12-18T08:41:49Z

> The electrical serdes configuration for USB3 expects an array as data
> argument. For USB3 the second value is used (see data_arr_idx = USB3 =
> 1). However, because only one value is inside the array mv_seq_exec is
> accessing an invalid element and the serdes is configured wrongly.
>
> This wrong initialization is leading to an unreliable detection
> mechanism for some USB3 devices. We were able to reproduce the issue
> regularly with an LTE modem from Sierra Wireless (SM7455) where it was
> not detected as USB3 device in 1/3 of all tests.
>
> This commit fixes the issue by setting data_arr_idx to 0. This is the
> same value as the original U-Boot from Marvell is using. There it is
> called FIRST_CELL which is a define for 0.
> See: https://github.com/MarvellEmbeddedProcessors/u-boot-marvell
> commit 56f963ce4c ("fix: serdes: a38x, a39x: Fix USB3 serdes DB
> initialization")
>
> Signed-off-by: Stefan Eichenberger <eichest@gmail.com>
> Signed-off-by: René Straub <rene.straub@netmodule.com>

Reviewed-by: Stefan Roese <sr@denx.de>

Thanks,
Stefan

> ---
> arch/arm/mach-mvebu/serdes/a38x/high_speed_env_spec.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/arm/mach-mvebu/serdes/a38x/high_speed_env_spec.c b/arch/arm/mach-mvebu/serdes/a38x/high_speed_env_spec.c
> index d2bc3ab25c..11b5824232 100644
> --- a/arch/arm/mach-mvebu/serdes/a38x/high_speed_env_spec.c
> +++ b/arch/arm/mach-mvebu/serdes/a38x/high_speed_env_spec.c
> @@ -1204,7 +1204,7 @@ int hws_serdes_seq_db_init(void)
> sizeof(usb3_electrical_config_serdes_rev2_params) /
> sizeof(struct op_params);
> }
> - serdes_seq_db[USB3_ELECTRICAL_CONFIG_SEQ].data_arr_idx = USB3;
> + serdes_seq_db[USB3_ELECTRICAL_CONFIG_SEQ].data_arr_idx = 0;
>
> /* USB3_TX_CONFIG_SEQ sequence init */
> serdes_seq_db[USB3_TX_CONFIG_SEQ1].op_params_ptr =
>

Viele Grüße,
Stefan Roese

--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr@denx.de