Hello Andreas, The fix in EDK II is enough to solve the reported problem.
It might still make sense to change QEMU upstream but that is beyond the scope of this bug report. Best regards Heinrich ** Changed in: qemu (Ubuntu) Status: New => Invalid ** Changed in: qemu (Ubuntu Noble) Status: New => Invalid ** Changed in: qemu (Ubuntu Oracular) Status: New => Invalid -- You received this bug notification because you are a member of Kernel Packages, which is subscribed to linux-meta-riscv in Ubuntu. https://bugs.launchpad.net/bugs/2077731 Title: [SRU] riscv64 EDK 2 crashes in KVM based emulation Status in edk2 package in Ubuntu: Fix Released Status in linux-meta-riscv package in Ubuntu: Invalid Status in qemu package in Ubuntu: Invalid Status in edk2 source package in Noble: Fix Released Status in linux-meta-riscv source package in Noble: Invalid Status in qemu source package in Noble: Invalid Status in edk2 source package in Oracular: Fix Released Status in linux-meta-riscv source package in Oracular: Invalid Status in qemu source package in Oracular: Invalid Bug description: [ Impact ] When running EDK2 as payload for QEMU using KVM a crash occurs in the VM: $ qemu-system-riscv64 -M virt,acpi=off -accel kvm -m 4096 -nographic -drive if=pflash,format=raw,unit=0,file=RISCV_VIRT_CODE.fd,readonly=on -drive if=pflash,format=raw,unit=1,file=RISCV_VIRT_VARS.fd !!!! RISCV64 Exception Type - 0000000000000002(EXCEPT_RISCV_ILLEGAL_INST) !!!! t0 = 0x00000000083FFFB28 t1 = 0x00000000083238BC8 t2 = 0x00000000000000000 t3 = 0x00000000000000000 t4 = 0x00000000000000000 t5 = 0x00000000000000000 t6 = 0x00000000000000000 s0 = 0x00000000083FFFBC0 s1 = 0x00000000000000000 s2 = 0x00000000000000000 s3 = 0x00000000000000000 s4 = 0x00000000000000000 s5 = 0x00000000000000000 s6 = 0x00000000000000000 s7 = 0x00000000000000000 s8 = 0x00000000000000000 s9 = 0x00000000000000000 s10 = 0x00000000000000000 s11 = 0x00000000000000000 a0 = 0x0000000017E1DDD10 a1 = 0x00000000000000021 a2 = 0x0000000017E1B1A80 a3 = 0x00000000000000032 a4 = 0x00000000000000021 a5 = 0x00000000000000021 a6 = 0x000000000832391E0 a7 = 0x00000000083FFFA64 zero = 0x00000000000000000 ra = 0x0000000017E0AFA08 sp = 0x00000000000000004 gp = 0x00000000000000000 tp = 0x00000000000000000 sepc = 0x0000000017E0B0824 sstatus = 0x00000000200000120 stval = 0x000000000D20787D3 QEMU: Terminated [ Test Plan ] To reproduce the issue: Run RISC-V virtual machine as described in https://wiki.ubuntu.com/RISC-V/QEMU. sudo apt-get update sudo apt-get install qemu-efi-riscv64 qemu-system-misc cp /usr/share/qemu-efi-riscv64/RISCV_VIRT_*.fd . qemu-system-riscv64 \ -M virt,acpi=off -accel tcg -m 1024 \ -nographic \ -drive if=pflash,format=raw,unit=0,file=RISCV_VIRT_CODE.fd,readonly=on \ -drive if=pflash,format=raw,unit=1,file=RISCV_VIRT_VARS.fd # In the EFI shell reset -s sudo modprobe kvm sudo qemu-system-riscv64 \ -M virt,acpi=off -accel kvm -m 1024 \ -nographic \ -drive if=pflash,format=raw,unit=0,file=RISCV_VIRT_CODE.fd,readonly=on \ -drive if=pflash,format=raw,unit=1,file=RISCV_VIRT_VARS.fd # A crash occurs # RISCV64 Exception Type - 0000000000000002(EXCEPT_RISCV_ILLEGAL_INST) # Terminate emulation with <CTRL+A><x> [ Where problems could occur ] The change that has been merged into upstream EDK II with merge request https://github.com/tianocore/edk2/pull/6210 only influences the state of the floating point unit. If the patch were incorrect, it could result in a failure to boot. [ Other Info ] n/a To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/edk2/+bug/2077731/+subscriptions -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp