]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
doc: Add a description for bootmeth_android
authorMattijs Korpershoek <mkorpershoek@baylibre.com>
Wed, 24 Jul 2024 12:41:25 +0000 (14:41 +0200)
committerHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Wed, 31 Jul 2024 06:29:20 +0000 (08:29 +0200)
Add initial documentation for the Android bootmeth.

Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
MAINTAINERS
doc/develop/bootstd/android.rst [new file with mode: 0644]
doc/develop/bootstd/index.rst
doc/develop/bootstd/overview.rst

index a6e47e8a2179088da843e435719f4396ff59e41a..c2832345ab18a1d8fe329230e11221a56e56bfd1 100644 (file)
@@ -945,6 +945,7 @@ S:  Maintained
 T:     git https://source.denx.de/u-boot/custodians/u-boot-dfu.git
 F:     boot/bootmeth_android.c
 F:     boot/bootmeth_android.h
+F:     doc/develop/bootstd/android.rst
 
 BTRFS
 M:     Marek BehĂșn <kabel@kernel.org>
diff --git a/doc/develop/bootstd/android.rst b/doc/develop/bootstd/android.rst
new file mode 100644 (file)
index 0000000..41701d5
--- /dev/null
@@ -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.
index 9d35b567d55de8d53df7e726570a274150fbd2bc..4c4e26ccdb707e55f88660395f23d7e7cda6b78d 100644 (file)
@@ -10,6 +10,7 @@ Standard Boot
    extlinux
    pxelinux
    qfw
+   android
    cros
    script
    sandbox
index ff3cc48eb64f6cdbd7024ba0416c317320b6cdd8..c6f003851b2aba92474122f2c121697c37f62b81 100644 (file)
@@ -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