Hi,

Le mardi 23 août 2016 à 16:38 -0700, Steve Rae a écrit :
> The "fastboot reboot-bootloader" command is defined to
> re-enter into fastboot mode after rebooting into the
> bootloader.
> 
> There is current support for setting the reset flag
> via the __weak fb_set_reboot_flag() function.
> 
> This commit adds a generic handler to implement code
> which could launch fastboot during the boot sequence
> via this __weak fb_handle_reboot_flag() function.
> The actual handling this reset flag should be implemented
> by board/SoC specific code.

So far, we've been calling the fastboot command from CONFIG_BOOTCOMMAND (more or
less directly) by setting an env variable (reboot-mode, dofastboot, etc), which
I think is a good fit. Since fastboot is a standalone command, I think it makes
sense to call it from the bootcommand instead of calling it from the function
you introduce.

IMO the fb_handle_reboot_flag function you're introducing should only detect
that fastboot mode is requested and set an env variable (like it's done
in misc_init_r in sniper and kc1) so that the bootcommand can pick it up and act
accordingly. This clearly separates the logic and puts each side of it where it
belongs.

> Signed-off-by: Steve Rae <steve....@raedomain.com>
> cc: Alexey Firago <alexey_fir...@mentor.com>
> cc: Paul Kocialkowski <cont...@paulk.fr>
> cc: Tom Rini <tr...@konsulko.com>
> cc: Angela Stegmaier <angelaba...@ti.com>
> cc: Dileep Katta <dileep.ka...@linaro.org>
> ---
> 
>  common/main.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/common/main.c b/common/main.c
> index 2116a9e..ea3fe42 100644
> --- a/common/main.c
> +++ b/common/main.c
> @@ -20,6 +20,12 @@ DECLARE_GLOBAL_DATA_PTR;
>   */
>  __weak void show_boot_progress(int val) {}
>  
> +/*
> + * Board-specific Platform code must implement fb_handle_reboot_flag(), if
> + * this feature is desired
> + */
> +__weak void fb_handle_reboot_flag(void) {}
> +
>  static void run_preboot_environment_command(void)
>  {
>  #ifdef CONFIG_PREBOOT
> @@ -63,6 +69,8 @@ void main_loop(void)
>       if (cli_process_fdt(&s))
>               cli_secure_boot_cmd(s);
>  
> +     fb_handle_reboot_flag();
> +
>       autoboot_command(s);
>  
>       cli_loop();
-- 
Paul Kocialkowski, developer of low-level free software for embedded devices

Website: https://www.paulk.fr/
Coding blog: https://code.paulk.fr/
Git repositories: https://git.paulk.fr/ https://git.code.paulk.fr/

Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to