[U-Boot] [PATCH v4 00/14] Add fastboot UDP support
Alex Kiernan
alex.kiernan at gmail.com
Tue May 15 14:48:39 UTC 2018
This series merges the fastboot UDP support from AOSP into mainline
U-Boot.
Changes in UDP behaviour from the AOSP code, so it follows the existing USB
behaviour:
- 'boot' now follows the USB code and does 'bootm CONFIG_FASTBOOT_BUF_ADDR'.
I've added 'fastboot_bootcmd' 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
fastboot_set_reboot_flag
- 'getvar' in the UDP path now supports fetching 'fastboot.' prefixed
variables (inherited from the USB path), these override the defaults
I'll post the USB migration as a separate patch.
Changes in v4:
- add docbook comments
- leave strcmp_l1() in USB fastboot as we don't need it in UDP path
- add docbook comments
- new
- guard fb_getvar/fb_command with UDP_FUNCTION_FASTBOOT in Makefile
- add docbook comments
- remove parameter from fastboot_boot() since we always want
fastboot_buf_addr (and if we're using fastboot_bootcmd then it's
ignored)
Changes in v3:
- move imply ANDROID_BOOT_IMAGE, CMD_FASTBOOT to FASTBOOT from
USB_FUNCTION_FASTBOOT
- add depend on USB_FUNCTION_FASTBOOT to FASTBOOT_USB_DEV
- leave images-sparse.c in common to acommodate 2f83f21
- move Kconfig changes to previous patch
- refactor for changes in master
- Merge subsequent patch for formatting response strings into this one
- allow NULL to fastboot_okay() when there's no message to send
- guard FASTBOOT_GPT_NAME/FASTBOOT_MBR_NAME with EFI/DOS_PARTITION
- use FASTBOOT as our guard in Kconfig not a list of USB || UDP
- correct mis-translation from AOSP introduced when cleaning up for
checkpatch - we should write when buffer is not NULL, rather than
erasing, and erase when buffer is NULL
- use CMD_RET_USAGE from do_fastboot
- remove do_fastboot_udp from cmd/net.c and rewrite using net_loop()
- rename timed_send_info to fastboot_send_info, rename fastboot_send_info to
fastboot_udp_send_info
- replace FASTBOOT_HEADER_SIZE with sizeof(struct fastboot_header)
- move start time into timed_send_info() rather than passing it in
- make calls to fastboot_udp_send_info a runtime dependency, not a compile
time one
- set ${filesize} to size of downloaded image
- add progress meter from USB path during download
- add support for 'oem format' command from the USB path
- rename 'fastbootcmd' to 'fastboot_bootcmd' to make clear that this is the
fastboot boot command
- make getvar implementation table driven
- add fastboot_buf_addr, fastboot_buf_size to override buffer address and
size
- return correct filesystem type in getvar partition-type on MMC
- process "fastboot." prefixed env variables in getvar first so you
can override the normal values (this also lets you set a fs type for
NAND devices)
- make global variables static and add accessors for the things which
the transport layers need
- squash subsequent patches which change this code into this one:
- If the fastboot flash/erase commands are disabled, remove that support
so we still build correctly.
- Add NAND support to fastboot UDP flash/erase commands
- If we don't have a partition name passed, report it as not found.
- Change the behaviour of the fastboot net code such that
"reboot-bootloader" is no longer written to CONFIG_FASTBOOT_BUF_ADDR for
use as a marker on reboot (the AOSP code in common/android-bootloader.c
uses this marker - this code could be reinstated there if that gets
merged).
- Merge USB and UDP boot code. The USB implementation stays the same, but
UDP no longer passes an fdt. We introduce a new environment variable
'fastboot_bootcmd' which if set overrides the hardcoded boot command,
setting this then allows the UDP implementation to remain the same. If
after running 'fastboot_bootcmd' the board has not booted, control is
returned to U-Boot and the fastboot process ends.
- Separate the fastboot protocol handling from the fastboot UDP code in
preparation for reusing it in the USB code.
Changes in v2:
- ensure fastboot syntax is backward compatible - 'fastboot 0' means
'fastboot usb 0'
Alex Kiernan (14):
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: Correct dependencies in FASTBOOT_FLASH
fastboot: Add missing newlines
fastboot: Remove FIXME for CONFIG_FASTBOOT_...NAME
fastboot: Fix parameter types in _fb_nand_write
fastboot: Rename fb_set_reboot_flag to fastboot_set_reboot_flag
fastboot: Extract common definitions from USB fastboot
ti: fastboot: Move weak overrides to board files
fs: Add fs_get_type_name to return current filesystem name
mmc: Separate "mmc swrite" from fastboot
net: fastboot: Merge AOSP UDP fastboot
arch/arm/Kconfig | 2 -
arch/arm/mach-omap2/boot-common.c | 10 -
arch/arm/mach-omap2/utils.c | 4 +-
arch/arm/mach-rockchip/rk3128-board.c | 4 +-
arch/arm/mach-rockchip/rk322x-board.c | 4 +-
board/amazon/kc1/kc1.c | 2 +-
board/lg/sniper/sniper.c | 2 +-
board/ti/am57xx/board.c | 10 +
board/ti/common/Kconfig | 1 -
board/ti/dra7xx/evm.c | 10 +
cmd/Kconfig | 22 +-
cmd/fastboot.c | 91 ++++++-
cmd/mmc.c | 14 +-
common/Makefile | 14 -
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 | 53 ++--
drivers/fastboot/Makefile | 7 +
drivers/fastboot/fb_command.c | 327 +++++++++++++++++++++++
drivers/fastboot/fb_common.c | 190 +++++++++++++
drivers/fastboot/fb_getvar.c | 229 ++++++++++++++++
{common => drivers/fastboot}/fb_mmc.c | 192 ++++++++-----
{common => drivers/fastboot}/fb_nand.c | 46 ++--
drivers/usb/gadget/f_fastboot.c | 59 ++--
fs/fs.c | 13 +
include/fastboot.h | 167 +++++++++++-
include/fb_mmc.h | 10 +-
include/fb_nand.h | 12 +-
include/fs.h | 10 +
include/image-sparse.h | 4 +-
include/net.h | 2 +-
include/net/fastboot.h | 21 ++
lib/Kconfig | 3 +
lib/Makefile | 1 +
{common => lib}/image-sparse.c | 32 ++-
net/Makefile | 1 +
net/fastboot.c | 312 +++++++++++++++++++++
net/net.c | 7 +
74 files changed, 1704 insertions(+), 259 deletions(-)
rename {cmd => drivers}/fastboot/Kconfig (83%)
create mode 100644 drivers/fastboot/Makefile
create mode 100644 drivers/fastboot/fb_command.c
create mode 100644 drivers/fastboot/fb_common.c
create mode 100644 drivers/fastboot/fb_getvar.c
rename {common => drivers/fastboot}/fb_mmc.c (66%)
rename {common => drivers/fastboot}/fb_nand.c (81%)
create mode 100644 include/net/fastboot.h
rename {common => lib}/image-sparse.c (89%)
create mode 100644 net/fastboot.c
--
2.7.4
More information about the U-Boot
mailing list