net: add fastboot TCP support

Known limitations are
1. fastboot reboot doesn't work (answering OK but not rebooting)
2. flashing isn't supported (TCP transport only limitation)

The command syntax is
fastboot tcp

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>
This commit is contained in:
Dmitrii Merkurev
2023-04-12 19:49:30 +01:00
committed by Tom Rini
parent 08fb8da371
commit 443d319180
12 changed files with 230 additions and 35 deletions

View File

@@ -4,6 +4,13 @@ config FASTBOOT
bool
imply ANDROID_BOOT_IMAGE
imply CMD_FASTBOOT
help
Fastboot is a protocol used in Android devices for
communicating between the device and a computer during
the bootloader stage. It allows the user to flash the
device firmware and unlock the bootloader.
More information about the protocol and usecases:
https://android.googlesource.com/platform/system/core/+/refs/heads/master/fastboot/
config USB_FUNCTION_FASTBOOT
bool "Enable USB fastboot gadget"
@@ -28,6 +35,13 @@ config UDP_FUNCTION_FASTBOOT_PORT
help
The fastboot protocol requires a UDP port number.
config TCP_FUNCTION_FASTBOOT
depends on NET
select FASTBOOT
bool "Enable fastboot protocol over TCP"
help
This enables the fastboot protocol over TCP.
if FASTBOOT
config FASTBOOT_BUF_ADDR

View File

@@ -15,7 +15,6 @@
#include <command.h>
#include <env.h>
#include <fastboot.h>
#include <net/fastboot.h>
/**
* fastboot_buf_addr - base address of the fastboot download buffer