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/
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