
Hi Tim,
On 19/05/2015 15:26, Tim Harvey wrote:
Note that Falcon mode also requires you have a function in the SPL that decides to boot U-Boot or to skip it and boot the OS directly. In the Gateworks Ventana case I didn't want to make this completely dependent on a GPIO/Button because this bootloader supports about 8 different PCB designs in the Ventana family - some of which do not have buttons or may not have buttons loaded on the board. Instead, I pulled env support into the SPL and use 'boot_os' env var to decide as other boards do (see spl_start_uboot()).
Anyway, this can be dangerous. The reason having a GPIO (or any trigger from external, for example a received char from the console) is to switch to U-Boot if the kernel does not work (but the kernel image is not corrupted), mainly go to panic, and the board can be restored into U-Boot.
If you use an environment variable and the environment is put into the NAND (with MMC you can change the card), there is nothing you can do anymore. Board tries to boot until next panic, and then again and again.
Best regards, Stefano Babic