I have recently purchased two Wandboard QuadPLUS boards.
I have managed to compile a working u-boot loader, a kernel and put on a Debian 9 system.
However, while the image was working well on one of the boards, the other board usually could not pass through "Trying to boot from MMC1" message.
When I pressed reset button on the board, it was usually booted up well, but sometimes it was also unable to boot up after pressing reset button several times in a row.
I have found it has problems when SPL tries to allocate memory the first time (in fsl_esdhc_initialize function) - it is unsuccessful when it stucks at the message above.
My solution was adding an extra delay after calling DRAM initialization.
A delay of 1 us was enough for me to get both my boards to boot every time I have tried, so by adding a delay of 10 us, the chance of reappearing the problem is minimal.
So, the interesting part of my board/wandboard/spl.c is the following:
- Code: Select all
void board_init_f(ulong dummy)
{
ccgr_init();
/* setup AIPS and disable watchdog */
arch_cpu_init();
gpr_init();
/* iomux */
board_early_init_f();
/* setup GP timer */
timer_init();
/* UART clocks enabled and gd valid - init serial console */
preloader_console_init();
/* DDR initialization */
spl_dram_init();
/* wait for memory stabilization as some WB-IMX6QP-BW boards had memory allocation problems */
udelay(10);
}
I hope it may also help others in case of a similar problem.
Anyway, this delay should be put in the official u-boot I think.