
Hi Simon,
Thank you for the patch.
On mar., juil. 16, 2024 at 08:04, Simon Glass sjg@chromium.org wrote:
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
Changes in v2:
- Adjustments from Heinrich's comments
doc/develop/bootstd/cros.rst | 33 ++++++++++++++++++++++++++++++++ doc/develop/bootstd/index.rst | 1 + doc/develop/bootstd/overview.rst | 1 + 3 files changed, 35 insertions(+) create mode 100644 doc/develop/bootstd/cros.rst
diff --git a/doc/develop/bootstd/cros.rst b/doc/develop/bootstd/cros.rst new file mode 100644 index 00000000000..92b83729150 --- /dev/null +++ b/doc/develop/bootstd/cros.rst @@ -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. diff --git a/doc/develop/bootstd/index.rst b/doc/develop/bootstd/index.rst index f8fce7207ce..69fd3c2d2eb 100644 --- a/doc/develop/bootstd/index.rst +++ b/doc/develop/bootstd/index.rst @@ -10,3 +10,4 @@ Standard Boot extlinux pxelinux qfw
- cros
diff --git a/doc/develop/bootstd/overview.rst b/doc/develop/bootstd/overview.rst index f23e344546d..9b50b5593c4 100644 --- a/doc/develop/bootstd/overview.rst +++ b/doc/develop/bootstd/overview.rst @@ -417,6 +417,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
- :doc:`QFW <qfw>`: QEMU firmware interface
-- 2.34.1