Watch this: $ gdb --args bld/sparc64-softmmu/qemu-system-* -nodefaults -M niagara [...] (gdb) r Starting program: /work/armbru/qemu/bld/sparc64-softmmu/qemu-system-sparc64 -nodefaults -M niagara [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1". [New Thread 0x7fffce25d700 (LWP 17401)] [New Thread 0x7fffcb0c1700 (LWP 17402)] Could not open option rom 'nvram1': No such file or directory Could not open option rom '1up-md.bin': No such file or directory Could not open option rom '1up-hv.bin': No such file or directory Could not open option rom 'reset.bin': No such file or directory Could not open option rom 'q.bin': No such file or directory Could not open option rom 'openboot.bin': No such file or directory
Thread 1 "qemu-system-spa" received signal SIGSEGV, Segmentation fault. qemu_chr_fe_init (b=b@entry=0x5555566bea60, s=0x0, errp=0x555556497e68 <error_abort>) at /work/armbru/qemu/qemu-char.c:897 897 if (s->is_mux) { (gdb) bt #0 0x0000555555833500 in qemu_chr_fe_init (b=b@entry=0x5555566bea60, s=0x0, errp=0x555556497e68 <error_abort>) at /work/armbru/qemu/qemu-char.c:897 #1 0x0000555555890a0a in serial_mm_init (address_space=address_space@entry=0x55555653dbd0, base=base@entry=133412421632, it_shift=it_shift@entry=0, irq=irq@entry=0x0, baudbase=baudbase@entry=115200, chr=<optimized out>, end= DEVICE_BIG_ENDIAN) at /work/armbru/qemu/hw/char/serial.c:995 #2 0x00005555558107e2 in niagara_init (machine=0x55555653bf80) at /work/armbru/qemu/hw/sparc64/niagara.c:149 #3 0x00005555557726ea in main (argc=<optimized out>, argv=<optimized out>, envp=<optimized out>) at /work/armbru/qemu/vl.c:4544 In other code that's similarly stuck in the pre-qdev world, the call to serial_mm_init() is conditional on serial_hds[0]. Please also consider qdevification.