Hello Mahno,
Which image are you starting in the VM?
There were versions of GRUB that crashed because of using the cycle
register instead of the rdtime register, cf. c5ae124e11f2
("kern/riscv/efi/init: Use time register in grub_efi_get_time_ms()").
Best regards
Heinrich
--
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 : [email protected]
Unsubscribe : https://launchpad.net/~kernel-packages
More help : https://help.launchpad.net/ListHelp