The problem seems to be that the FS field which controls availability of
floating point operations in the vsstatus register is not set by KVM
while OpenSBI enables the field in the mstatus register.

-- 
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:
  riscv64 EDK 2 crashes in KVM based emulation

Status in edk2 package in Ubuntu:
  New
Status in linux-meta-riscv package in Ubuntu:
  New
Status in qemu package in Ubuntu:
  New
Status in edk2 source package in Noble:
  New
Status in linux-meta-riscv source package in Noble:
  New
Status in qemu source package in Noble:
  New
Status in edk2 source package in Oracular:
  New
Status in linux-meta-riscv source package in Oracular:
  New
Status in qemu source package in Oracular:
  New

Bug description:
  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

  To reproduce the issue:

  Run a Noble 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>

  ProblemType: Bug
  DistroRelease: Ubuntu 24.04
  Package: qemu-efi-riscv64 2024.02-2
  ProcVersionSignature: Ubuntu 6.8.0-31.31.1-generic 6.8.1
  Uname: Linux 6.8.0-31-generic riscv64
  ApportVersion: 2.28.1-0ubuntu2
  Architecture: riscv64
  CasperMD5CheckResult: unknown
  CloudArchitecture: riscv64
  CloudBuildName: server
  CloudID: nocloud
  CloudName: unknown
  CloudPlatform: nocloud
  CloudSerial: 20240423
  CloudSubPlatform: seed-dir (/var/lib/cloud/seed/nocloud-net)
  Date: Fri Aug 23 13:10:55 2024
  Dependencies:
   
  PackageArchitecture: all
  ProcEnviron:
   LANG=C.UTF-8
   PATH=(custom, no user)
   SHELL=/bin/bash
   TERM=vt220
  SourcePackage: edk2
  UpgradeStatus: No upgrade log present (probably fresh install)

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

Reply via email to