** Changed in: edk2 (Ubuntu)
Status: New => Fix Released
** Changed in: edk2 (Ubuntu Oracular)
Status: New => Fix Released
** Changed in: edk2 (Ubuntu Oracular)
Assignee: (unassigned) => dann frazier (dannf)
** Changed in: edk2 (Ubuntu)
Assignee: (unassigned) => dann frazier (dannf)
** Changed in: edk2 (Ubuntu Noble)
Assignee: (unassigned) => dann frazier (dannf)
** Changed in: edk2 (Ubuntu Noble)
Status: New => In Progress
--
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:
New
Status in edk2 source package in Noble:
In Progress
Status in linux-meta-riscv source package in Noble:
Invalid
Status in qemu source package in Noble:
New
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:
New
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 : [email protected]
Unsubscribe : https://launchpad.net/~kernel-packages
More help : https://help.launchpad.net/ListHelp