On 15 May 2018 at 17:48, Alex Kiernan <alex.kier...@gmail.com> wrote: > > This series merges the fastboot UDP support from AOSP into mainline > U-Boot. >
Hi Alex, Can you tell me which platforms you verified these patches on? From what I see, it shouldn't affect regular fastboot operation, but just in case: do you have some public Git tree with these patches, so that I can verify them on TI boards? I can also verify UDP functionality as well, if you want me to. In that case, please provide instructions (or link to documentation) which I can use for testing. Thanks. > 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 > _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot