fastboot: add support for continue command
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@kernel.org> Tested-by: Lukasz Majewski <l.majewski@samsung.com> [TestHW: Exynos4412-Trats2]
This commit is contained in:
parent
fe1b28c9f0
commit
267abc626d
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user