On Saturday, August 29, 2015 at 01:21:31 AM, Simon Glass wrote: > Hi, > > On 28 August 2015 at 02:41, Jian Luo <jian.l...@boschrexroth.de> wrote: > > gd->dm_root is not cleared in SPL after warm reset. > > This might cause DM initilazation failure. > > > > Signed-off-by: Jian Luo <jian.l...@boschrexroth.de> > > --- > > > > 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; > > + > > > > board_init_r(NULL, 0); > > > > } > > > > -- > > 1.9.1 > > This does not look like the root cause to me. global_data is zeroed by > crt0.S if CONFIG_SPL_FRAMEWORK is set, which it seems to be for > socfpga. > > What boot path does 'warm reset' take?
Warm reset resets the CPU core(s) and jumps to 0x0 in SRAM (without re-reading anything from the boot media). > Also BTW it would be better if board_init_f() returned rather than > calling board_init_r() directly. I'm all for it, it'd trim down the stack utilisation slightly too. Best regards, Marek Vasut _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot