diff options
author | Mattijs Korpershoek <mkorpershoek@baylibre.com> | 2024-07-24 14:41:25 +0200 |
---|---|---|
committer | Heinrich Schuchardt <heinrich.schuchardt@canonical.com> | 2024-07-31 08:29:20 +0200 |
commit | 93767c5a8f7b1a6d22eb551e3b98f22eebe54d64 (patch) | |
tree | d086c3e6e229dc2135eb10cd0989b4ce2ef0f506 /doc | |
parent | 8c919fcd20ce0a832c6e4fc4413ebac0d2a8f125 (diff) | |
download | u-boot-93767c5a8f7b1a6d22eb551e3b98f22eebe54d64.tar.gz u-boot-93767c5a8f7b1a6d22eb551e3b98f22eebe54d64.tar.bz2 u-boot-93767c5a8f7b1a6d22eb551e3b98f22eebe54d64.zip |
doc: Add a description for bootmeth_android
Add initial documentation for the Android bootmeth.
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'doc')
-rw-r--r-- | doc/develop/bootstd/android.rst | 39 | ||||
-rw-r--r-- | doc/develop/bootstd/index.rst | 1 | ||||
-rw-r--r-- | doc/develop/bootstd/overview.rst | 2 |
3 files changed, 41 insertions, 1 deletions
diff --git a/doc/develop/bootstd/android.rst b/doc/develop/bootstd/android.rst new file mode 100644 index 0000000000..41701d5bdf --- /dev/null +++ b/doc/develop/bootstd/android.rst @@ -0,0 +1,39 @@ +.. SPDX-License-Identifier: GPL-2.0+: + +Android Bootmeth +================ + +Android provides a mechanism for booting its Operating System from eMMC storage, +described on `source.android.com <https://source.android.com/docs/core/architecture/bootloader>`_. + +Android has strong requirements about partitioning layout which are described +`here <https://source.android.com/docs/core/architecture/partitions>`_. +Because multiple partitions are required, this bootmeth only operates on whole mmc +devices which have a valid partition table. + +When invoked on a bootdev, this bootmeth searches for the ``misc`` partition in order +to read the *boot mode*, which can be one of following: + +Normal + Boot the regular Android Operating System. + +Recovery + Boot a slimmed down Recovery Operating System. Can be used + to factory reset the device or to apply system updates. + +Bootloader + Stay in U-Boot and wait for fastboot commands from the host. + +After the *boot mode* has been determined, this bootmeth will read the *slot suffix* +from the ``misc`` partition. For details about slots, see +`the AOSP documentation <https://source.android.com/docs/core/ota/ab#slots>`_. + +When both the *boot mode* and the *slot suffix* are known, the bootflow is created. + +When the bootflow is booted, the bootmeth reads the kernel, the boot arguments and +the vendor ramdisk. +It then boots the kernel using bootm. The relevant devicetree blob is extracted +from the ``boot`` partition based on the ``adtb_idx`` environment variable. + +The compatible string "u-boot,android" is used for the driver. It is present +if `CONFIG_BOOTMETH_ANDROID` is enabled. diff --git a/doc/develop/bootstd/index.rst b/doc/develop/bootstd/index.rst index 9d35b567d5..4c4e26ccdb 100644 --- a/doc/develop/bootstd/index.rst +++ b/doc/develop/bootstd/index.rst @@ -10,6 +10,7 @@ Standard Boot extlinux pxelinux qfw + android cros script sandbox diff --git a/doc/develop/bootstd/overview.rst b/doc/develop/bootstd/overview.rst index ff3cc48eb6..c6f003851b 100644 --- a/doc/develop/bootstd/overview.rst +++ b/doc/develop/bootstd/overview.rst @@ -429,7 +429,7 @@ Available bootmeth drivers Bootmeth drivers are provided for booting from various media: - - Android bootflow (boot image v4) + - :doc:`Android <android>` bootflow (boot image v4) - :doc:`ChromiumOS <cros>` ChromiumOS boot from a disk - EFI boot using bootefi from disk - EFI boot using boot manager |