All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v6 00/18] Add fastboot UDP support
@ 2018-05-22  9:23 Alex Kiernan
  2018-05-22  9:23 ` [U-Boot] [PATCH v6 01/18] fastboot: Move fastboot to drivers/fastboot Alex Kiernan
                   ` (17 more replies)
  0 siblings, 18 replies; 26+ messages in thread
From: Alex Kiernan @ 2018-05-22  9:23 UTC (permalink / raw)
  To: u-boot


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/381854592

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/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/imx6dl_mamoj_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 +-
 .../xilinx_zynqmp_zc1751_xm015_dc1_defconfig  |   2 +-
 .../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 +-
 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 -
 78 files changed, 1988 insertions(+), 627 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

-- 
2.17.0

^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2018-05-24 13:43 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-22  9:23 [U-Boot] [PATCH v6 00/18] Add fastboot UDP support Alex Kiernan
2018-05-22  9:23 ` [U-Boot] [PATCH v6 01/18] fastboot: Move fastboot to drivers/fastboot Alex Kiernan
2018-05-22  9:23 ` [U-Boot] [PATCH v6 02/18] fastboot: Refactor fastboot_okay/fail to take response Alex Kiernan
2018-05-22  9:23 ` [U-Boot] [PATCH v6 03/18] fastboot: Extract fastboot_okay/fail to fb_common.c Alex Kiernan
2018-05-22  9:23 ` [U-Boot] [PATCH v6 04/18] fastboot: Correct dependencies in FASTBOOT_FLASH Alex Kiernan
2018-05-22  9:23 ` [U-Boot] [PATCH v6 05/18] fastboot: Add missing newlines Alex Kiernan
2018-05-22  9:23 ` [U-Boot] [PATCH v6 06/18] fastboot: Remove FIXME for CONFIG_FASTBOOT_...NAME Alex Kiernan
2018-05-22  9:23 ` [U-Boot] [PATCH v6 07/18] fastboot: Fix parameter types in _fb_nand_write Alex Kiernan
2018-05-22  9:23 ` [U-Boot] [PATCH v6 08/18] fastboot: Rename fb_set_reboot_flag to fastboot_set_reboot_flag Alex Kiernan
2018-05-22  9:23 ` [U-Boot] [PATCH v6 09/18] fastboot: Extract common definitions from USB fastboot Alex Kiernan
2018-05-22  9:23 ` [U-Boot] [PATCH v6 10/18] fastboot: Rename public fb_ functions to fastboot_ Alex Kiernan
2018-05-22  9:23 ` [U-Boot] [PATCH v6 11/18] ti: fastboot: Move weak overrides to board files Alex Kiernan
2018-05-22  9:23 ` [U-Boot] [PATCH v6 12/18] fs: Add fs_get_type_name to return current filesystem name Alex Kiernan
2018-05-22  9:23 ` [U-Boot] [PATCH v6 13/18] fastboot: Migrate FASTBOOT_FLASH_NAND_TRIMFFS to Kconfig Alex Kiernan
2018-05-22  9:23 ` [U-Boot] [PATCH v6 14/18] mmc: Separate "mmc swrite" from fastboot Alex Kiernan
2018-05-22  9:23 ` [U-Boot] [PATCH v6 15/18] net: fastboot: Merge AOSP UDP fastboot Alex Kiernan
2018-05-22  9:23 ` [U-Boot] [PATCH v6 16/18] fastboot: Add support for 'oem format' command Alex Kiernan
2018-05-22 18:10   ` Simon Glass
2018-05-22  9:23 ` [U-Boot] [PATCH v6 17/18] usb: fastboot: Convert USB f_fastboot to shared fastboot Alex Kiernan
2018-05-22 15:21   ` Sam Protsenko
2018-05-22 15:29     ` Sam Protsenko
2018-05-22 15:53       ` Alex Kiernan
2018-05-22 18:41         ` Sam Protsenko
2018-05-22 19:16           ` Alex Kiernan
2018-05-24 13:43             ` Alex Kiernan
2018-05-22  9:23 ` [U-Boot] [PATCH v6 18/18] fastboot: Update fastboot documentation Alex Kiernan

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.