Skip to content

RISC-V Regression: QEMU_CPU=f=false,zfinx=true gives misleading error message

Host environment

  • Operating system: Ubuntu 22.04.4 LTS (Jammy)
  • OS/kernel version: Linux patrick-ThinkPad-X1-Carbon-Gen-8 6.5.0-44-generic #44 (closed)~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue Jun 18 14:36:16 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
  • Architecture: x86
  • QEMU flavor: qemu-riscv64
  • QEMU version: v9.1.0-rc0
  • QEMU command line:
    > QEMU_CPU=rv64,zfinx=true,f=false ./qemu-riscv64 test.out
    qemu-riscv64: Zfinx cannot be supported together with F extension

Emulated/Virtualized environment

  • Operating system: QEMU user mode
  • OS/kernel version: QEMU user mode
  • Architecture: RISC-V

Description of problem

The f extension looks like it should be toggle-able using qemu_cpu since it doesn't throw error messages when specified. Disabling the extension using f=false does not actually disable it as shown by the zfinx error message. Eg. Unsupported extension is explicitly rejected

> QEMU_CPU=rv64,j=false ./qemu-riscv64 test.out
qemu-riscv64: can't apply global rv64-riscv-cpu.j=false: Property 'rv64-riscv-cpu.j' not found

Steps to reproduce

  1. Compile any riscv binary like: int main() {}
  2. Execute using QEMU_CPU=rv64,zfinx=true,f=false ./qemu-riscv64 test.out
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information