[U-Boot] [PATCH] arm: socfpga: dm: Fix DM initialization failure after warm reset
Marek Vasut
marex at denx.de
Fri Aug 28 11:24:12 CEST 2015
On Friday, August 28, 2015 at 10:41:50 AM, Jian Luo wrote:
> gd->dm_root is not cleared in SPL after warm reset.
> This might cause DM initilazation failure.
>
> Signed-off-by: Jian Luo <jian.luo4 at boschrexroth.de>
Hi!
> ---
> arch/arm/mach-socfpga/spl.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/arch/arm/mach-socfpga/spl.c b/arch/arm/mach-socfpga/spl.c
> index 13ec24b..59fe1f2 100644
> --- a/arch/arm/mach-socfpga/spl.c
> +++ b/arch/arm/mach-socfpga/spl.c
> @@ -181,5 +181,11 @@ void board_init_f(ulong dummy)
> /* Configure simple malloc base pointer into RAM. */
> gd->malloc_base = CONFIG_SYS_TEXT_BASE + (1024 * 1024);
>
> + /*
> + * gd->dm_root might contain non-zero value after warm reset.
> + * Clear it to avoid dm_init error
> + */
> + gd->dm_root = NULL;
Nit: The indent should be done with tabs, not spaces. I think the email
got messed up somewhere along the way.
The bigger concern I have is that if you look into arch/arm/lib/crt0.S ,
you will see that the entire global data are cleared there (_main, label
clr_gd: ) and this code is executed before the board_init_f() .
Can you try tracking it down a bit more? I suspect that you might see
dm_init_and_scan() returned error -22 , is that what you observe please?
> board_init_r(NULL, 0);
> }
Best regards,
Marek Vasut
More information about the U-Boot
mailing list