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

Lukasz Majewski l.majewski at samsung.com
Thu Mar 5 11:04:47 CET 2015


Hi Alexey,

> Hi Lukasz,
> 
> Hmm, I don't see it applied to u-boot-dfu now. Do I need to add
> something ?

If possible, please look into the current status of fastboot support in
u-boot mainline (since we are at -rc3).

Since I'm not (yet) a fastboot user, please support me with testing.

Best regards,
Lukasz

> 
> Thanks,
> Alexey
> 
> On 26.02.2015 13:22, Lukasz Majewski wrote:
> > Hi Alexey,
> >
> >> 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");
> >>   }
> > Applied to u-boot-dfu.
> >
> > Thanks for patch!
> >
> 



-- 
Best regards,

Lukasz Majewski

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


More information about the U-Boot mailing list