mbox series

[v2,0/2] Add support for booting into userspace fastboot

Message ID cover.1591254465.git.roman.kovalivskyi@globallogic.com
Headers show
Series Add support for booting into userspace fastboot | expand

Message

Roman Kovalivskyi June 4, 2020, 7:55 a.m. UTC
Android 10 adds support for dynamic partitions and in order to support
them userspace fastboot must be used[1]. New tool called fastbootd is included
into recovery image.

Userspace fastboot works from recovery and is launched if:
1) - Dynamic partitioning is enabled
2) - Boot control block has 'boot-fastboot' value into command field

The bootloader is expected[2] to load and boot into the recovery image upon
seeing boot-fastboot in the BCB command. Recovery then parses the BCB 
message and switches to fastbootd mode.

Please note that boot script is expected to handle 'boot-fastboot' command
in BCB and load into recovery mode.

Bootloader must support[3] 'reboot fastboot' command which should reboot
device into userspace fastboot to accomodate those changes.

Another command that bootloader must support[3] is 'reboot recovery'. This 
command should simply reboot device into recovery mode.

Changes since v1[4]:
* Added missing handling of reboot commands for network protocol
* Extended fastboot_set_reboot_flag command to accept reboot reason
* Made former fastboot_set_flag function as an optional implementation of
  fastboot_set_reboot_flag which could be turned on by Kconfig

[1] - https://source.android.com/devices/bootloader/fastbootd
[2] - https://source.android.com/devices/bootloader/fastbootd#unified_fastboot_and_recovery
[3] - https://source.android.com/devices/bootloader/fastbootd#modifications_to_the_bootloader
[4] - http://patchwork.ozlabs.org/project/uboot/cover/cover.1590539734.git.roman.kovalivskyi@globallogic.com/

Roman Kovalivskyi (1):
  fastboot: add default fastboot_set_reboot_flag implementation

Roman Stratiienko (1):
  fastboot: add support for 'reboot fastboot' command

 arch/arm/mach-meson/board-common.c |  7 ++++-
 arch/arm/mach-rockchip/board.c     |  7 ++++-
 board/amazon/kc1/kc1.c             |  7 ++++-
 board/lg/sniper/sniper.c           |  7 ++++-
 board/ti/am57xx/board.c            |  7 ++++-
 board/ti/dra7xx/evm.c              |  7 ++++-
 drivers/fastboot/Kconfig           |  9 +++++++
 drivers/fastboot/fb_command.c      | 40 +++++++++++++++++++++++++++-
 drivers/fastboot/fb_common.c       | 42 +++++++++++++++++++++++++++++-
 drivers/usb/gadget/f_fastboot.c    |  2 ++
 include/fastboot.h                 | 13 ++++++++-
 net/fastboot.c                     |  2 ++
 12 files changed, 141 insertions(+), 9 deletions(-)