Watch this: $ ../qemu/bld/qemu-system-riscv64 -M sifive_u -S -monitor stdio -display none -drive if=pflash QEMU 6.1.93 monitor - type 'help' for more information (qemu) Unexpected error in sifive_u_otp_realize() at ../hw/misc/sifive_u_otp.c:229: qemu-system-riscv64: OTP drive size < 16K Aborted (core dumped)
sifive_u_machine_init() calls qdev_realize(DEVICE(&s->soc), NULL, &error_abort); My reproducer demonstrates that passing &error_abort is wrong: this realize can fail. &error_fatal should do here. Please check the other uses of &error_abort in this machine for similar misuse.