On Mon, May 28, 2018 at 8:41 AM Lukasz Majewski <lu...@denx.de> wrote:
> Hi Alex, Sam, > Sam have you tested Alex patches on your HW (as you asked earlier for > the repo to fetch the code)? > Could you add Tested-by: tag? > Are there any more comments on this series? I've nothing more outstanding - the only changes I've got in my local tree are the latest Reviewed-by tags. > Best regards, > Ćukasz > > 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've pushed both USB and UDP into a single consolidated protocol layer > > now I've tested it on a BeagleBone Green. > > > > Green Travis build: > > https://travis-ci.org/akiernan/u-boot/builds/383077278 > > > > Changes in v7: > > - set FASTBOOT_CMD_OEM_FORMAT for all existing users of > > FASTBOOT_FLASH_MMC_DEV that also have CMD_GPT > > > > Changes in v6: > > - accomodate master change and switch dependency on imx6dl_mamoj from > > FASTBOOT to USB_FUNCTION_FASTBOOT > > - delete redundant FASTBOOT_FLASH_NAND_DEV symbol > > - add docbook comments > > - add docbook comments > > - rename fastboot_download_data() to fastboot_data_download(), rename > > fastboot_get_bytes_remaining() to fastboot_data_remaining() > > - split fastboot_data_complete() out from fastboot_data_download() so > > we can call it at the end of the transfer phase for USB > > - merged from RFC USB fastboot series > > - when entering the DATA phase ensure we actually install the correct > > handler > > - on completion of DATA call new fastboot_data_complete() > > - previous changes: > > - remove redundant version.h > > - use new fastboot_get_bytes_remaining() function > > - new > > > > Changes in v5: > > - don't depend on UDP_FUNCTION_FASTBOOT until it exists > > - squash in subsequent patch which updates defconfigs so we don't > > leave users of CONFIG_FASTBOOT without it enabled > > - fix build in drivers/fastboot when we have CONFIG_FASTBOOT without > > flash or erase and we've not yet added fb_common.c to the build > > - fix docbook formatting > > - new > > - new > > - rename CONFIG_FASTBOOT_FLASH_FILLBUF_SIZE to > > CONFIG_IMAGE_SPARSE_FILLBUF_SIZE and migrate it to Kconfig. > > - make fastboot_bytes_received/expected static and add function > > fastboot_get_bytes_remaining() > > - move fastboot_buf_addr/fastboot_buf_size/fastboot_progress_callback > > into fastboot-internal.h > > - delete redundant fb_ prefixes from statics > > - new > > > > 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) > > - split oem format into new patch > > > > 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 > > - 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 > > - new > > - new > > - new > > - new > > - new > > - new > > - 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) > > - 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 (18): > > fastboot: Move fastboot to drivers/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 > > fastboot: Rename public fb_ functions to fastboot_ > > ti: fastboot: Move weak overrides to board files > > fs: Add fs_get_type_name to return current filesystem name > > fastboot: Migrate FASTBOOT_FLASH_NAND_TRIMFFS to Kconfig > > mmc: Separate "mmc swrite" from fastboot > > net: fastboot: Merge AOSP UDP fastboot > > fastboot: Add support for 'oem format' command > > usb: fastboot: Convert USB f_fastboot to shared fastboot > > fastboot: Update fastboot documentation > > > > 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/A13-OLinuXino_defconfig | 1 + > > configs/A20-OLinuXino-Lime2-eMMC_defconfig | 1 + > > configs/A20-OLinuXino-Lime2_defconfig | 1 + > > configs/A20-Olimex-SOM204-EVB-eMMC_defconfig | 1 + > > configs/A20-Olimex-SOM204-EVB_defconfig | 1 + > > configs/Bananapi_m2m_defconfig | 1 + > > configs/Cubietruck_defconfig | 1 + > > configs/Sinlinx_SinA33_defconfig | 1 + > > configs/am335x_boneblack_defconfig | 7 +- > > 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 | 13 +- > > configs/am57xx_hs_evm_defconfig | 13 +- > > 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/chromebit_mickey_defconfig | 5 +- > > configs/chromebook_jerry_defconfig | 5 +- > > configs/chromebook_minnie_defconfig | 5 +- > > configs/dra7xx_evm_defconfig | 11 +- > > configs/dra7xx_hs_evm_defconfig | 11 +- > > configs/evb-rk3036_defconfig | 5 +- > > configs/evb-rk3128_defconfig | 9 +- > > configs/evb-rk3229_defconfig | 5 +- > > configs/evb-rk3288_defconfig | 5 +- > > configs/evb-rk3328_defconfig | 7 +- > > configs/fennec-rk3288_defconfig | 5 +- > > configs/firefly-rk3288_defconfig | 5 +- > > configs/imx6dl_mamoj_defconfig | 2 +- > > configs/kc1_defconfig | 2 +- > > configs/kylin-rk3036_defconfig | 5 +- > > configs/miqi-rk3288_defconfig | 5 +- > > 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/parrot_r16_defconfig | 1 + > > configs/phycore-rk3288_defconfig | 5 +- > > configs/popmetal-rk3288_defconfig | 5 +- > > configs/rock2_defconfig | 5 +- > > configs/sniper_defconfig | 2 +- > > configs/stih410-b2260_defconfig | 11 +- > > configs/tbs_a711_defconfig | 1 + > > configs/tinker-rk3288_defconfig | 5 +- > > .../xilinx_zynqmp_zc1751_xm015_dc1_defconfig | 7 +- > > .../xilinx_zynqmp_zc1751_xm016_dc2_defconfig | 2 +- > > configs/xilinx_zynqmp_zcu102_rev1_0_defconfig | 7 +- > > configs/xilinx_zynqmp_zcu102_revA_defconfig | 7 +- > > configs/xilinx_zynqmp_zcu102_revB_defconfig | 7 +- > > configs/xilinx_zynqmp_zcu106_revA_defconfig | 7 +- > > doc/README.android-fastboot | 240 +++++++----- > > drivers/Kconfig | 2 + > > drivers/Makefile | 1 + > > {cmd => drivers}/fastboot/Kconfig | 63 ++-- > > drivers/fastboot/Makefile | 7 + > > drivers/fastboot/fb_command.c | 335 +++++++++++++++++ > > drivers/fastboot/fb_common.c | 169 +++++++++ > > drivers/fastboot/fb_getvar.c | 230 ++++++++++++ > > {common => drivers/fastboot}/fb_mmc.c | 216 +++++++---- > > {common => drivers/fastboot}/fb_nand.c | 69 +++- > > drivers/usb/gadget/f_fastboot.c | 347 > > ++---------------- fs/fs.c | > > 13 + include/fastboot-internal.h | 36 ++ > > include/fastboot.h | 137 ++++++- > > include/fb_mmc.h | 35 +- > > include/fb_nand.h | 37 +- > > include/fs.h | 10 + > > include/image-sparse.h | 4 +- > > include/net.h | 2 +- > > include/net/fastboot.h | 21 ++ > > lib/Kconfig | 11 + > > lib/Makefile | 1 + > > {common => lib}/image-sparse.c | 38 +- > > net/Makefile | 1 + > > net/fastboot.c | 317 ++++++++++++++++ > > net/net.c | 7 + > > scripts/config_whitelist.txt | 2 - > > 104 files changed, 2094 insertions(+), 696 deletions(-) > > rename {cmd => drivers}/fastboot/Kconfig (78%) > > 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 (62%) > > rename {common => drivers/fastboot}/fb_nand.c (71%) > > create mode 100644 include/fastboot-internal.h > > create mode 100644 include/net/fastboot.h > > rename {common => lib}/image-sparse.c (88%) > > create mode 100644 net/fastboot.c > > > Best regards, > Lukasz Majewski > -- > DENX Software Engineering GmbH, Managing Director: Wolfgang Denk > HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany > Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de -- Alex Kiernan _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot