1.. SPDX-License-Identifier: GPL-2.0+
2
3qfw command
4===========
5
6Synopsis
7--------
8
9::
10
11    qfw list
12    qfw cpus
13    qfw load [kernel_addr [initrd_addr]]
14
15Description
16-----------
17
18The *qfw* command is used to retrieve information form the QEMU firmware.
19
20The *qfw list* sub-command displays the QEMU firmware files.
21
22The *qfw cpus* sub-command displays the available CPUs.
23
24The *qfw load* command is used to load a kernel and an initial RAM disk.
25
26kernel_addr
27    address to which the file specified by the -kernel parameter of QEMU shall
28    be loaded. Defaults to environment variable *loadaddr* and further to
29    the value of *CONFIG_LOADADDR*.
30
31initrd_addr
32    address to which the file specified by the -initrd parameter of QEMU shall
33    be loaded. Defaults to environment variable *ramdiskaddr* and further to
34    the value of *CONFIG_RAMDISK_ADDR*.
35
36Examples
37--------
38
39QEMU firmware files are listed via the *qfw list* command:
40
41::
42
43    => qfw list
44    etc/boot-fail-wait
45    etc/smbios/smbios-tables
46    etc/smbios/smbios-anchor
47    etc/e820
48    genroms/kvmvapic.bin
49    genroms/linuxboot.bin
50    etc/system-states
51    etc/acpi/tables
52    etc/table-loader
53    etc/tpm/log
54    etc/acpi/rsdp
55    bootorder
56
57The available CPUs can be shown via the *qfw cpus* command:
58
59::
60
61    => qfw cpu
62    2 cpu(s) online
63
64The *-kernel* and *-initrd* parameters allow to specify a kernel and an
65initial RAM disk for QEMU:
66
67.. code-block:: bash
68
69   $ qemu-system-x86_64 -machine pc-i440fx-2.5 -bios u-boot.rom -m 1G \
70       -nographic -kernel vmlinuz -initrd initrd
71
72Now the kernel and the initial RAM disk can be loaded to the U-Boot memory via
73the *qfw load* command and booted thereafter.
74
75::
76
77    => qfw load ${kernel_addr_r} ${ramdisk_addr_r}
78    loading kernel to address 0000000001000000 size 5048f0 initrd 0000000004000000 size 3c94891
79    => zboot 1000000 5048f0 4000000 3c94891
80    Valid Boot Flag
81    Magic signature found
82    Linux kernel version 4.19.0-14-amd64 (debian-kernel@lists.debian.org) #1 SMP Debian 4.19.171-2 (2021-01-30)
83    Building boot_params at 0x00090000
84    Loading bzImage at address 100000 (5260160 bytes)
85
86Configuration
87-------------
88
89The qfw command is only available if CONFIG_CMD_QFW=y.
90