[U-Boot] [RFC PATCH v2 00/20] Add fastboot UDP support
Alex Kiernan
alex.kiernan at gmail.com
Mon Apr 30 08:32:34 UTC 2018
This series merges the fastboot UDP support from AOSP into mainline
U-Boot.
The underlying implementations of most commands are now merged between
both code paths ('oem format' from the USB side is the only one remaining).
Other changes to command handling so that UDP follows the existing USB
behaviour:
- 'boot' now follows the USB code and does 'fastboot CONFIG_FASTBOOT_BUF_ADDR'.
I've added 'fastbootcmd' which if set overrides the boot command and
allows the existing UDP behaviour to be preserved.
- 'continue' in UDP now exits the fastboot server rather than executing
'run bootcmd'
- 'reboot-bootloader' no longer writes 'reboot-bootloader' to
CONFIG_FASTBOOT_BUF_ADDR as its marker for the subsequent boot. The code
which is in AOSP common/android_bootloader.c expects this marker, but
we have prior art in the USB code using the weak function
fb_set_reboot_flag
- 'getvar' in the UDP path now supports fetching 'fastboot.' prefixed
variables (inherited from the USB path)
- 'getvar' in the USB path inherits all the variables from the UDP path
Remaining issues:
- whilst I've merged NAND support into the UDP code path, I've no way
of testing it. My expectation is it'll work, but will need timed_send_info
working into the NAND path to avoid timeouts on the network side.
- I still need to fix timed_send_info handling when going through the USB
path.
- the protocol part of the fastboot UDP implementation is separated out
and would I expect form the basis of a consolidated implementation, but
I'm inclined to address that as a clearly separate patch so it can be
tested in isolation (I have no USB hardware I can try this on).
Changes in v2:
- ensure fastboot syntax is backward compatible - 'fastboot 0' means
'fastboot usb 0'
Alex Kiernan (20):
fastboot: Move fastboot to drivers/fastboot
fastboot: Switch dependencies on FASTBOOT to USB_FUNCTION_FASTBOOT
fastboot: Refactor fastboot_okay/fail to take response
fastboot: Extract fastboot_okay/fail to fb_common.c
fastboot: Introduce fastboot_response and refactor fastboot_okay/fail
fastboot: Correct dependencies in FASTBOOT_FLASH
net: fastboot: Merge AOSP UDP fastboot
net: fastboot: Support building without MMC
fastboot: Refactor write_fb_response into fastboot_okay/fail/response
fastboot: Merge USB and UDP getvar implementation
fastboot: net: Change 'continue' so it matches USB fastboot
fastboot: net: Convert command lookup to a table
fastboot: Merge reboot-bootloader handling
fastboot: Avoid re-parsing cmd_string for boot/reboot
fastboot: Merge boot common across USB and UDP
fastboot: net: Add NAND support
fastboot: Guard getvar:partition-type/size with MMC
fastboot: Check if part_name is NULL before using it
fastboot: Add missing newlines
fastboot: net: Split fastboot protocol out from net
arch/arm/Kconfig | 2 -
arch/arm/mach-omap2/boot-common.c | 2 +-
arch/arm/mach-omap2/utils.c | 4 +-
arch/arm/mach-rockchip/rk3128-board.c | 2 +-
arch/arm/mach-rockchip/rk322x-board.c | 2 +-
board/ti/common/Kconfig | 1 -
cmd/Kconfig | 14 +-
cmd/fastboot.c | 35 ++-
cmd/net.c | 6 +
common/Makefile | 13 --
configs/am335x_boneblack_defconfig | 2 +-
configs/am335x_boneblack_vboot_defconfig | 2 +-
configs/am335x_evm_defconfig | 2 +-
configs/am335x_evm_nor_defconfig | 2 +-
configs/am335x_evm_norboot_defconfig | 2 +-
configs/am335x_evm_spiboot_defconfig | 2 +-
configs/am335x_evm_usbspl_defconfig | 2 +-
configs/am57xx_evm_defconfig | 2 +-
configs/am57xx_hs_evm_defconfig | 2 +-
configs/bcm23550_w1d_defconfig | 2 +-
configs/bcm28155_ap_defconfig | 2 +-
configs/birdland_bav335a_defconfig | 2 +-
configs/birdland_bav335b_defconfig | 2 +-
configs/cgtqmx6eval_defconfig | 2 +-
configs/dra7xx_evm_defconfig | 2 +-
configs/dra7xx_hs_evm_defconfig | 2 +-
configs/kc1_defconfig | 2 +-
configs/mx6qsabrelite_defconfig | 2 +-
configs/mx6sabresd_defconfig | 2 +-
configs/nitrogen6dl2g_defconfig | 2 +-
configs/nitrogen6dl_defconfig | 2 +-
configs/nitrogen6q2g_defconfig | 2 +-
configs/nitrogen6q_defconfig | 2 +-
configs/nitrogen6s1g_defconfig | 2 +-
configs/nitrogen6s_defconfig | 2 +-
configs/omap3_beagle_defconfig | 2 +-
configs/omap3_evm_defconfig | 2 +-
configs/omap3_logic_defconfig | 2 +-
configs/sniper_defconfig | 2 +-
configs/stih410-b2260_defconfig | 2 +-
configs/xilinx_zynqmp_zc1751_xm015_dc1_defconfig | 2 +-
configs/xilinx_zynqmp_zc1751_xm016_dc2_defconfig | 2 +-
configs/xilinx_zynqmp_zcu102_rev1_0_defconfig | 2 +-
configs/xilinx_zynqmp_zcu102_revA_defconfig | 2 +-
configs/xilinx_zynqmp_zcu102_revB_defconfig | 2 +-
configs/xilinx_zynqmp_zcu106_revA_defconfig | 2 +-
drivers/Kconfig | 2 +
drivers/Makefile | 1 +
{cmd => drivers}/fastboot/Kconfig | 46 ++--
drivers/fastboot/Makefile | 9 +
drivers/fastboot/fb_common.c | 136 ++++++++++++
drivers/fastboot/fb_getvar.c | 96 +++++++++
{common => drivers/fastboot}/fb_mmc.c | 142 +++++++-----
{common => drivers/fastboot}/fb_nand.c | 31 +--
drivers/fastboot/fb_packet.c | 249 +++++++++++++++++++++
{common => drivers/fastboot}/image-sparse.c | 41 ++--
drivers/usb/gadget/f_fastboot.c | 133 ++----------
include/fastboot.h | 65 +++++-
include/fb_mmc.h | 4 +-
include/fb_nand.h | 4 +-
include/image-sparse.h | 2 +-
include/net.h | 6 +-
include/net/fastboot.h | 27 +++
net/Makefile | 1 +
net/fastboot.c | 262 +++++++++++++++++++++++
net/net.c | 9 +
66 files changed, 1123 insertions(+), 296 deletions(-)
rename {cmd => drivers}/fastboot/Kconfig (86%)
create mode 100644 drivers/fastboot/Makefile
create mode 100644 drivers/fastboot/fb_common.c
create mode 100644 drivers/fastboot/fb_getvar.c
rename {common => drivers/fastboot}/fb_mmc.c (71%)
rename {common => drivers/fastboot}/fb_nand.c (86%)
create mode 100644 drivers/fastboot/fb_packet.c
rename {common => drivers/fastboot}/image-sparse.c (89%)
create mode 100644 include/net/fastboot.h
create mode 100644 net/fastboot.c
--
2.7.4
More information about the U-Boot
mailing list