[PATCH next RFC 5/5] ram: rk3399: fail DRAM init when pctl channel init fails instead of hanging
Kever Yang
kever.yang at rock-chips.com
Fri Nov 8 04:19:09 CET 2024
Hi Quentin,
On 2024/11/6 01:21, Quentin Schulz wrote:
> From: Quentin Schulz <quentin.schulz at cherry.de>
>
> Instead of hanging via an infinite while loop, propagate the fail to the
> caller and let it handle the fail. For RK3399, this means that panic()
> will be called, (by default) resetting the CPU and giving another chance
> at doing a DRAM init.
>
> Signed-off-by: Quentin Schulz <quentin.schulz at cherry.de>
> ---
> drivers/ram/rockchip/sdram_rk3399.c | 6 ++----
> 1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/ram/rockchip/sdram_rk3399.c b/drivers/ram/rockchip/sdram_rk3399.c
> index d953dda13cd3daa689fa362dc511c372db454064..591e1469afb25ba606d8f7e44f63e50905b4ab31 100644
> --- a/drivers/ram/rockchip/sdram_rk3399.c
> +++ b/drivers/ram/rockchip/sdram_rk3399.c
> @@ -817,8 +817,7 @@ static int pctl_start(struct dram_info *dram,
> if (count > 1000) {
Could you try with increase the timeout count from 1000 to 1000000?
Thanks,
- Kever
> printf("%s: Failed to init pctl channel 0\n",
> __func__);
> - while (1)
> - ;
> + return -1;
> }
> udelay(1);
> count++;
> @@ -853,8 +852,7 @@ static int pctl_start(struct dram_info *dram,
> if (count > 1000) {
> printf("%s: Failed to init pctl channel 1\n",
> __func__);
> - while (1)
> - ;
> + return -2;
> }
> udelay(1);
> count++;
>
More information about the U-Boot
mailing list