[U-Boot] [PATCH 19/19] imx: ventana: config: enable Falcon mode
Tim Harvey
tharvey at gateworks.com
Thu May 21 19:07:09 CEST 2015
On Thu, May 21, 2015 at 9:46 AM, Stefan Roese <sr at denx.de> wrote:
> Hi Stefano,
>
> On 21.05.2015 18:17, Stefano Babic wrote:
>>
>> 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.
>
>
> Some boards just don't have such a means as a push button or jumper to
> select the Falcon mode. That's why I introduced this environment variable
> dependent way to select Falcon mode quite some time ago for a PPC based
> board.
>
> You are correct. If something goes completely wrong, and the board tries to
> boot into the OS with a non-working OS installed, then you are doomed. JTAG
> comes in handy then as I have experienced myself. ;)
>
> But this is usually only while developing this feature and kernel. Once its
> tested and mature, this really works.
>
> Again, its a trade-off since another, better method to switch between
> U-Boot- and OS- booting is not available.
>
> Thanks,
> Stefan
>
Agreed - this is exactly why I decided (at cost) to use an env
variable - not all of our boards have a gpio that makes sense and I am
am focusing on flexibility.
Tim
More information about the U-Boot
mailing list