Use programmatic boot so that it is possible to boot without CONFIG_CMDLINE enabled. Series-to: u-boot Cover-letter: emulation: Improve support for booting from QFW U-Boot supports booting Linux from QFW which means that the kernel and any initrd are provided on the QEMU command line instead of being found in boot media. This series improves this support in several ways: - Enhances bootstd to implement 'bootflow read', thus allowing the files to be loaded and inspected (with potential cmdline changes) before booting - Updates bootstd to use programmatic boot, so that it works even when CONFIG_CMDLINE is disabled - Expands build-qemu script to allow providing cmdline and root disk It also includes a rough script to time U-Boot when running QEMU with kvm, making use of the qemu-boot-time repo: https://github.com/stefano-garzarella/qemu-boot-time.git END Signed-off-by: Simon Glass <sjg@chromium.org>
25 lines
1.0 KiB
ReStructuredText
25 lines
1.0 KiB
ReStructuredText
.. SPDX-License-Identifier: GPL-2.0+:
|
|
|
|
QFW Bootmeth
|
|
============
|
|
|
|
`QEMU <hhttps://www.qemu.org/>`_ is a system emulator which is able to boot
|
|
Operating Systems. QEMU provides specific support for booting an OS image
|
|
provided on the QEMU command line.
|
|
|
|
When invoked on a bootdev for UCLASS_QFW, this bootmeth reads the kernel
|
|
provided by the QEMU `-kernel` argument, the initial ramdisk provided by
|
|
`-initrd` and the boot arguments (command line) provided by `-append` into
|
|
memory ready for booting.
|
|
|
|
When the bootflow is booted, the bootmeth tries the `booti` option first, then
|
|
falls back to the `bootz` option, then `zboot`. U-Boot's 'control' devicetree
|
|
is passed through to the kernel on non-x86 devices. This works without needing
|
|
`CONFIG_CMDLINE` enabled.
|
|
|
|
The `bootflow read` command is supported, so it is possible to read the files
|
|
and then check the kernel command-line before using `bootflow boot` to boot.
|
|
|
|
The compatible string "u-boot,qfw-bootmeth" is used for the driver. It is
|
|
present if `CONFIG_QFW` is enabled.
|