[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