public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Alex Deymo <deymo@google.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 0/6] Android A/B Bootloader support
Date: Sun,  2 Apr 2017 01:49:46 -0700	[thread overview]
Message-ID: <20170402084952.5102-1-deymo@google.com> (raw)
In-Reply-To: <a74b3d5e65b4bf5c2edca98bba9e678be762ebe7>

An "Android Bootloader" has a lot of requirements about how it should
behave which Android partners must implement. In particular, the new
A/B updates [1] added more requirements and flows to the bootloader
which are not common, on top of the existing flows.

For example, a few uncommon requirements include:
* Lookup in the BCB (boot control block) whether a "recovery" message
  is stored. This is used by the recovery environment when applying a
  multi-stage update in the legacy update model (recovery reboots to
  recovery again) and for interrumpted factory-reset (a reboot during
  the factory reset should continue to reboot into factory reset until
  it is done).
* A new "repair" mode. In the A/B model, when none of the slots is
  bootable, the device would boot into repair mode, which is often the
  same as "bootloader" mode (fastboot).
* Recovery as root: In newer version of AOSP, it is possible to mount
  the system image as / without an initramfs, which then frees up the
  initramfs in the "boot" partition to hold the "recovery" initramfs.
  This is the default for new devices and required for the A/B setup.

This patchset updates the Android-related headers and introduces new
commands to boot a recent Android build. This work is based on the
bootloader used in the Raspberry Pi in Android Things and extensively
tested there.

[1] https://source.android.com/devices/tech/ota/ab_updates.html


Alex Deymo (6):
  image: Update include/android_image.h
  image: Implement a function to load Android Images.
  cmd: Add 'load_android' command to load Android images.
  disk: Return the partition number in part_get_info_by_name()
  Initial support for the Android Bootloader flow
  cmd: Add "boot_android" command.

 README                               |  25 ++-
 cmd/Kconfig                          |  19 ++
 cmd/Makefile                         |   2 +
 cmd/boot_android.c                   | 126 +++++++++++++
 cmd/load_android.c                   |  56 ++++++
 common/Kconfig                       |  19 ++
 common/Makefile                      |   1 +
 common/android_bootloader.c          | 350 +++++++++++++++++++++++++++++++++++
 common/fb_mmc.c                      |   6 +-
 common/image-android.c               |  60 ++++++
 disk/part.c                          |   2 +-
 include/android_bootloader.h         |  48 +++++
 include/android_bootloader_message.h | 174 +++++++++++++++++
 include/android_image.h              |  24 ++-
 include/image.h                      |  19 ++
 include/part.h                       |   3 +-
 16 files changed, 920 insertions(+), 14 deletions(-)
 create mode 100644 cmd/boot_android.c
 create mode 100644 cmd/load_android.c
 create mode 100644 common/android_bootloader.c
 create mode 100644 include/android_bootloader.h
 create mode 100644 include/android_bootloader_message.h

-- 
2.12.2.564.g063fe858b8-goog

       reply	other threads:[~2017-04-02  8:49 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <a74b3d5e65b4bf5c2edca98bba9e678be762ebe7>
2017-04-02  8:49 ` Alex Deymo [this message]
2017-04-02  8:49   ` [U-Boot] [PATCH 1/6] image: Update include/android_image.h Alex Deymo
2017-04-02  8:49     ` [U-Boot] [PATCH 2/6] image: Implement a function to load Android Images Alex Deymo
2017-04-02  8:49       ` [U-Boot] [PATCH 3/6] cmd: Add 'load_android' command to load Android images Alex Deymo
2017-04-02  8:49         ` [U-Boot] [PATCH 4/6] disk: Return the partition number in part_get_info_by_name() Alex Deymo
2017-04-02  8:49           ` [U-Boot] [PATCH 5/6] Initial support for the Android Bootloader flow Alex Deymo
2017-04-02  8:49             ` [U-Boot] [PATCH 6/6] cmd: Add "boot_android" command Alex Deymo
2017-04-04 14:46               ` Lukasz Majewski
2017-04-09 19:27             ` [U-Boot] [PATCH 5/6] Initial support for the Android Bootloader flow Simon Glass
2017-04-06 22:42           ` [U-Boot] [PATCH 4/6] disk: Return the partition number in part_get_info_by_name() Simon Glass
2017-05-12 17:18           ` [U-Boot] [U-Boot, " Tom Rini
2017-04-06 22:42         ` [U-Boot] [PATCH 3/6] cmd: Add 'load_android' command to load Android images Simon Glass
2017-04-06 22:42       ` [U-Boot] [PATCH 2/6] image: Implement a function to load Android Images Simon Glass
2017-04-06 22:42     ` [U-Boot] [PATCH 1/6] image: Update include/android_image.h Simon Glass
2017-05-12 17:18     ` [U-Boot] [U-Boot,1/6] " Tom Rini
2017-04-19  8:42   ` [U-Boot] [PATCH 0/6] Android A/B Bootloader support Kever Yang
2018-04-13  0:57 Stanislas BERTRAND
2018-04-16 12:45 ` Alex Deymo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170402084952.5102-1-deymo@google.com \
    --to=deymo@google.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox