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

Stefan Roese sr at denx.de
Sat Dec 18 09:41:36 CET 2021


On 12/9/21 11:19, Stefan Eichenberger wrote:
> 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 at gmail.com>
> Signed-off-by: René Straub <rene.straub at netmodule.com>

Reviewed-by: Stefan Roese <sr at 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 at denx.de


More information about the U-Boot mailing list