[U-Boot] [PATCH 1/2] fastboot: more support for reboot-bootloader command

Paul Kocialkowski contact at paulk.fr
Wed Aug 24 12:07:11 CEST 2016


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.rae at raedomain.com>
> cc: Alexey Firago <alexey_firago at mentor.com>
> cc: Paul Kocialkowski <contact at paulk.fr>
> cc: Tom Rini <trini at konsulko.com>
> cc: Angela Stegmaier <angelabaker at ti.com>
> cc: Dileep Katta <dileep.katta at 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/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20160824/127e256d/attachment.sig>


More information about the U-Boot mailing list