"Das U-Boot" Source Tree
at master 33 lines 1.6 kB view raw
1.. SPDX-License-Identifier: GPL-2.0+: 2 3ChromiumOS Bootmeth 4=================== 5 6ChromiumOS provides a mechanism for booting its Operating System from a block 7device, described 8`here <https://www.chromium.org/chromium-os/chromiumos-design-docs/verified-boot/>`_. 9 10U-Boot includes support for reading the associated data structures from the 11device and identifying a bootable ChromiumOS image. This structure includes the 12kernel itself, boot arguments (kernel command line), as well as the x86 setup 13block (for x86 only). 14 15When invoked on a bootdev, this bootmeth searches for kernel partitions with 16the appropriate GUID (Globally Unique Identifier). When found, the information 17is loaded and a bootflow is created. 18 19When the bootflow is booted, the bootmeth reads the kernel and boot arguments. 20It then boots the kernel using zboot (on x86) or bootm (on ARM). The boot 21arguments are adjusted to replace `%U` with the UUID of the selected kernel 22partition. This results in the correct root disk being used, which is the next 23partition after the kernel partition. 24 25For ARM, a :doc:`/usage/fit/index` is used. The `CONFIG_FIT_BEST_MATCH` option 26must be enabled for U-Boot to select the correct devicetree to boot with. 27 28Note that a ChromiumOS image typically has two copies of the Operating System, 29each with its own kernel and root disk. There is no initial ramdisk (initrd). 30This means that this bootmeth typically locates two separate images. 31 32The compatible string "u-boot,cros" is used for the driver. It is present 33if `CONFIG_BOOTMETH_CROS` is enabled.