doc: Add a description for bootmeth_cros

Add documentation for the cros bootmeth.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
This commit is contained in:
Simon Glass
2024-07-17 09:30:57 +01:00
committed by Heinrich Schuchardt
parent 70a4982d4f
commit 56418511e9
3 changed files with 35 additions and 0 deletions

View File

@@ -0,0 +1,33 @@
.. SPDX-License-Identifier: GPL-2.0+:
ChromiumOS Bootmeth
===================
ChromiumOS provides a mechanism for booting its Operating System from a block
device, described
`here <https://www.chromium.org/chromium-os/chromiumos-design-docs/verified-boot/>`_.
U-Boot includes support for reading the associated data structures from the
device and identifying a bootable ChromiumOS image. This structure includes the
kernel itself, boot arguments (kernel command line), as well as the x86 setup
block (for x86 only).
When invoked on a bootdev, this bootmeth searches for kernel partitions with
the appropriate GUID (Globally Unique Identifier). When found, the information
is loaded and a bootflow is created.
When the bootflow is booted, the bootmeth reads the kernel and boot arguments.
It then boots the kernel using zboot (on x86) or bootm (on ARM). The boot
arguments are adjusted to replace `%U` with the UUID of the selected kernel
partition. This results in the correct root disk being used, which is the next
partition after the kernel partition.
For ARM, a :doc:`/usage/fit/index` is used. The `CONFIG_FIT_BEST_MATCH` option
must be enabled for U-Boot to select the correct devicetree to boot with.
Note that a ChromiumOS image typically has two copies of the Operating System,
each with its own kernel and root disk. There is no initial ramdisk (initrd).
This means that this bootmeth typically locates two separate images.
The compatible string "u-boot,cros" is used for the driver. It is present
if `CONFIG_BOOTMETH_CROS` is enabled.

View File

@@ -10,3 +10,4 @@ Standard Boot
extlinux
pxelinux
qfw
cros

View File

@@ -421,6 +421,7 @@ Bootmeth drivers are provided for booting from various media:
- U-Boot scripts from disk, network or SPI flash
- EFI boot using bootefi from disk
- VBE
- :doc:`ChromiumOS <cros>` ChromiumOS boot from a disk
- EFI boot using boot manager
- Android bootflow (boot image v4)
- :doc:`QFW <qfw>`: QEMU firmware interface