net: share fastboot boot handle logic between transports

Introduce reboot, boot and continue commands support to
TCP fastboot by moving existing UDP logic into the common module.

Signed-off-by: Dmitrii Merkurev <dimorinny@google.com>
Cc: Ying-Chun Liu (PaulLiu) <paul.liu@linaro.org>
Cc: Simon Glass <sjg@chromium.org>
Сс: Joe Hershberger <joe.hershberger@ni.com>
Сс: Ramon Fried <rfried.dev@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Dmitrii Merkurev
2023-04-12 19:49:31 +01:00
committed by Tom Rini
parent 443d319180
commit c8acbbbf08
4 changed files with 46 additions and 31 deletions

View File

@@ -15,6 +15,7 @@
#include <command.h>
#include <env.h>
#include <fastboot.h>
#include <net.h>
/**
* fastboot_buf_addr - base address of the fastboot download buffer
@@ -155,6 +156,37 @@ void fastboot_boot(void)
}
}
/**
* fastboot_handle_boot() - Shared implementation of system reaction to
* fastboot commands
*
* Making desceisions about device boot state (stay in fastboot, reboot
* to bootloader, reboot to OS, etc).
*/
void fastboot_handle_boot(int command, bool success)
{
if (!success)
return;
switch (command) {
case FASTBOOT_COMMAND_BOOT:
fastboot_boot();
net_set_state(NETLOOP_SUCCESS);
break;
case FASTBOOT_COMMAND_CONTINUE:
net_set_state(NETLOOP_SUCCESS);
break;
case FASTBOOT_COMMAND_REBOOT:
case FASTBOOT_COMMAND_REBOOT_BOOTLOADER:
case FASTBOOT_COMMAND_REBOOT_FASTBOOTD:
case FASTBOOT_COMMAND_REBOOT_RECOVERY:
do_reset(NULL, 0, 0, NULL);
break;
}
}
/**
* fastboot_set_progress_callback() - set progress callback
*