[U-Boot] [PATCH v3] fastboot: add support for reboot-bootloader command

Lukasz Majewski l.majewski at samsung.com
Mon Mar 23 10:17:29 CET 2015


Hi Steve,

> 
> 
> On 15-02-25 06:10 AM, Alexey Firago wrote:
> > The "fastboot reboot-bootloader" command is defined to
> > re-enter into fastboot mode after rebooting into
> > bootloader. This command is usually used after updating
> > bootloader via fastboot.
> >
> > This commit implements only a generic side of the
> > command - setting of the reset flag and then resetting.
> > Setting of the reset flag is implemented using __weak
> > fb_set_reboot_flag() function. The actual setting and
> > checking of the reset flag should be implemented by
> > a boot script and/or board/SoC specific code.
> >
> > Signed-off-by: Alexey Firago <alexey_firago at mentor.com>
> > ---
> >
> > Changes in v3:
> > - return -ENOSYS from default fb_set_reboot_flag()
> >
> > Changes in v2:
> > - return error in default fb_set_reboot_flag()
> >
> >   drivers/usb/gadget/f_fastboot.c | 13 +++++++++++++
> >   1 file changed, 13 insertions(+)
> >
> > diff --git a/drivers/usb/gadget/f_fastboot.c
> > b/drivers/usb/gadget/f_fastboot.c index 310175a..a000c25 100644
> > --- a/drivers/usb/gadget/f_fastboot.c
> > +++ b/drivers/usb/gadget/f_fastboot.c
> > @@ -122,6 +122,7 @@ static struct usb_gadget_strings
> > *fastboot_strings[] = { };
> >
> >   static void rx_handler_command(struct usb_ep *ep, struct
> > usb_request *req); +static int strcmp_l1(const char *s1, const char
> > *s2);
> >
> >   static void fastboot_complete(struct usb_ep *ep, struct
> > usb_request *req) {
> > @@ -317,8 +318,20 @@ static void compl_do_reset(struct usb_ep *ep,
> > struct usb_request *req) do_reset(NULL, 0, 0, NULL);
> >   }
> >
> > +int __weak fb_set_reboot_flag(void)
> > +{
> > +	return -ENOSYS;
> > +}
> > +
> >   static void cb_reboot(struct usb_ep *ep, struct usb_request *req)
> >   {
> > +	char *cmd = req->buf;
> > +	if (!strcmp_l1("reboot-bootloader", cmd)) {
> > +		if (fb_set_reboot_flag()) {
> > +			fastboot_tx_write_str("FAILCannot set
> > reboot flag");
> > +			return;
> > +		}
> > +	}
> >   	fastboot_func->in_req->complete = compl_do_reset;
> >   	fastboot_tx_write_str("OKAY");
> >   }
> >
> 
> Tested-by: Steve Rae <srae at broadcom.com>
> 
> (on bcm28155_ap board)
> Thanks!

Applied to u-boot-dfu tree. Thanks!

-- 
Best regards,

Lukasz Majewski

Samsung R&D Institute Poland (SRPOL) | Linux Platform Group


More information about the U-Boot mailing list