[U-Boot] [PATCH 2/2] fastboot: add support for continue command

Lukasz Majewski l.majewski at samsung.com
Thu Dec 11 10:43:49 CET 2014


Hi Rob,

> From: Rob Herring <robh at kernel.org>
> 
> The fastboot continue command is defined to exit fastboot and continue
> autoboot. This commit implements the continue command and the exiting
> of fastboot only. Subsequent u-boot commands can be processed after
> exiting fastboot. Autoboot should implement a boot script such as
> "fastboot; mmc read <...>; bootm" to fully implement the fastboot
> continue function.
> 
> Signed-off-by: Rob Herring <robh at kernel.org>
> ---
>  common/cmd_fastboot.c           |  4 ++++
>  drivers/usb/gadget/f_fastboot.c | 14 ++++++++++++++
>  2 files changed, 18 insertions(+)
> 
> diff --git a/common/cmd_fastboot.c b/common/cmd_fastboot.c
> index 909616d..b72f4f3 100644
> --- a/common/cmd_fastboot.c
> +++ b/common/cmd_fastboot.c
> @@ -15,17 +15,21 @@ static int do_fastboot(cmd_tbl_t *cmdtp, int
> flag, int argc, char *const argv[]) {
>  	int ret;
>  
> +	g_dnl_clear_detach();
>  	ret = g_dnl_register("usb_dnl_fastboot");
>  	if (ret)
>  		return ret;
>  
>  	while (1) {
> +		if (g_dnl_detach())
> +			break;
>  		if (ctrlc())
>  			break;
>  		usb_gadget_handle_interrupts();
>  	}
>  
>  	g_dnl_unregister();
> +	g_dnl_clear_detach();
>  	return CMD_RET_SUCCESS;
>  }
>  
> diff --git a/drivers/usb/gadget/f_fastboot.c
> b/drivers/usb/gadget/f_fastboot.c index 71b62e5..310175a 100644
> --- a/drivers/usb/gadget/f_fastboot.c
> +++ b/drivers/usb/gadget/f_fastboot.c
> @@ -480,6 +480,17 @@ static void cb_boot(struct usb_ep *ep, struct
> usb_request *req) fastboot_tx_write_str("OKAY");
>  }
>  
> +static void do_exit_on_complete(struct usb_ep *ep, struct
> usb_request *req) +{
> +	g_dnl_trigger_detach();
> +}
> +
> +static void cb_continue(struct usb_ep *ep, struct usb_request *req)
> +{
> +	fastboot_func->in_req->complete = do_exit_on_complete;
> +	fastboot_tx_write_str("OKAY");
> +}
> +
>  #ifdef CONFIG_FASTBOOT_FLASH
>  static void cb_flash(struct usb_ep *ep, struct usb_request *req)
>  {
> @@ -520,6 +531,9 @@ static const struct cmd_dispatch_info
> cmd_dispatch_info[] = { }, {
>  		.cmd = "boot",
>  		.cb = cb_boot,
> +	}, {
> +		.cmd = "continue",
> +		.cb = cb_continue,
>  	},
>  #ifdef CONFIG_FASTBOOT_FLASH
>  	{

Acked-by: Lukasz Majewski <l.majewski at samsung.com>
Tested-by: Lukasz Majewski <l.majewski at samsung.com>
(Test HW: Trats2 board)

I will add this patch to u-boot-dfu tree.

-- 
Best regards,

Lukasz Majewski

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


More information about the U-Boot mailing list