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.warken...@intel.com> Cc: Andrew Jones <ajo...@ventanamicro.com> Cc: Ard Biesheuvel <ardb+tianoc...@kernel.org> Cc: Gerd Hoffmann <kra...@redhat.com> Cc: Jiewen Yao <jiewen....@intel.com> Cc: Jordan Justen <jordan.l.jus...@intel.com> Cc: Sunil V L <suni...@ventanamicro.com> Signed-off-by: Laszlo Ersek <ler...@redhat.com> --- OvmfPkg/RiscVVirt/README.md | 33 +++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/OvmfPkg/RiscVVirt/README.md b/OvmfPkg/RiscVVirt/README.md index 1dba1a26af2d..47b97dd64a2f 100644 --- a/OvmfPkg/RiscVVirt/README.md +++ b/OvmfPkg/RiscVVirt/README.md @@ -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: -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#108578): https://edk2.groups.io/g/devel/message/108578 Mute This Topic: https://groups.io/mt/101334266/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/leave/9847357/21656/1706620634/xyzzy [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-