OvmfPkg/RiscVVirt/README: document direct kernel boot

Direct (fw_cfg) kernel boot works on the RiscVVirt firmware platform too;
I've tested it after extracting the kernel, initrd, and kernel command
line from "openSUSE-Tumbleweed-RISC-V-E20-efi.riscv64.raw". Document this
type of boot, because at least historically, fw_cfg kernel boot was
implemented differently between OVMF and ArmVirtQemu. Thanks: Drew, Sunil.

Cc: Andrei Warkentin <andrei.warkentin@intel.com>
Cc: Andrew Jones <ajones@ventanamicro.com>
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Sunil V L <sunilvl@ventanamicro.com>
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Reviewed-by: Sunil V L <sunilvl@ventanamicro.com>
This commit is contained in:
Laszlo Ersek 2023-09-13 11:08:14 +02:00 committed by mergify[bot]
parent 1bfd63ac39
commit 29cce3356a
1 changed files with 32 additions and 1 deletions

View File

@ -75,8 +75,39 @@ Below example shows how to boot openSUSE Tumbleweed E20.
Currently, `acpi=off` is recommended unless you are developing ACPI support
yourself.
3) Running QEMU with direct kernel boot
The following example boots the same guest, but loads the kernel image and
the initial RAM disk (which were extracted from
`openSUSE-Tumbleweed-RISC-V-E20-efi.riscv64.raw`) from the host filesystem.
It also sets the guest kernel command line on the QEMU command line.
CMDLINE=(root=UUID=76d9b92d-09e9-4df0-8262-c1a7a466f2bc
systemd.show_status=1
ignore_loglevel
console=ttyS0
earlycon=uart8250,mmio,0x10000000)
qemu-system-riscv64 \
-M virt,pflash0=pflash0,pflash1=pflash1,acpi=off \
-m 4096 -smp 2 \
-serial mon:stdio \
-device virtio-gpu-pci -full-screen \
-device qemu-xhci \
-device usb-kbd \
-device virtio-rng-pci \
-blockdev node-name=pflash0,driver=file,read-only=on,filename=RISCV_VIRT_CODE.fd \
-blockdev node-name=pflash1,driver=file,filename=RISCV_VIRT_VARS.fd \
-netdev user,id=net0 \
-device virtio-net-pci,netdev=net0 \
-device virtio-blk-device,drive=hd0 \
-drive file=openSUSE-Tumbleweed-RISC-V-E20-efi.riscv64.raw,format=raw,id=hd0 \
-kernel Image-6.5.2-1-default \
-initrd initrd-6.5.2-1-default \
-append "${CMDLINE[*]}"
## Test with your own OpenSBI binary
Using the above QEMU command line, **RISCV_VIRT_CODE.fd** is launched by the
Using the above QEMU command lines, **RISCV_VIRT_CODE.fd** is launched by the
OpenSBI binary that is bundled with QEMU. You can build your own OpenSBI binary
as well: