summaryrefslogtreecommitdiff
path: root/doc/develop
diff options
context:
space:
mode:
authorMattijs Korpershoek <mkorpershoek@baylibre.com>2024-07-24 14:41:25 +0200
committerHeinrich Schuchardt <heinrich.schuchardt@canonical.com>2024-07-31 08:29:20 +0200
commit93767c5a8f7b1a6d22eb551e3b98f22eebe54d64 (patch)
treed086c3e6e229dc2135eb10cd0989b4ce2ef0f506 /doc/develop
parent8c919fcd20ce0a832c6e4fc4413ebac0d2a8f125 (diff)
downloadu-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/develop')
-rw-r--r--doc/develop/bootstd/android.rst39
-rw-r--r--doc/develop/bootstd/index.rst1
-rw-r--r--doc/develop/bootstd/overview.rst2
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