Skip to content

Crash when using the ast2600-a3 device with the "virt" aarch64 machine

Host environment

  • Operating system: Linux
  • Architecture: x86
  • QEMU flavor: qemu-system-aarch64
  • QEMU version: commit ba49d760
  • QEMU command line:
    ./qemu-system-aarch64 -display none -machine virt -device ast2600-a3

Emulated/Virtualized environment

  • Operating system: n/a
  • Architecture: ARM

Description of problem

QEMU crashes with a segmentation fault when trying to use the "ast2600-a3" device with the "virt" machine.

Steps to reproduce

  1. Run ./qemu-system-aarch64 -display none -machine virt -device ast2600-a3

Additional information

Backtrace indicates that it is crashing in the aspeed_soc_ast2600_realize() function:

#0  memory_region_update_container_subregions (subregion=0x555558c4b630) at ../../devel/qemu/system/memory.c:2637
#1  memory_region_add_subregion_common (mr=<optimized out>, offset=<optimized out>, subregion=0x555558c4b630) at ../../devel/qemu/system/memory.c:2661
#2  0x0000555555d1bd40 in aspeed_soc_ast2600_realize (dev=<optimized out>, errp=0x7fffffffd870) at ../../devel/qemu/hw/arm/aspeed_ast2600.c:301
#3  0x0000555555ff26ab in device_set_realized (obj=<optimized out>, value=<optimized out>, errp=0x7fffffffda00) at ../../devel/qemu/hw/core/qdev.c:510
#4  0x0000555555ff6edd in property_set_bool (obj=0x555558c4b360, v=<optimized out>, name=<optimized out>, opaque=0x555557cd5b50, errp=0x7fffffffda00)
    at ../../devel/qemu/qom/object.c:2358
#5  0x0000555555ffa25b in object_property_set (obj=obj@entry=0x555558c4b360, name=name@entry=0x5555563794ed "realized", v=v@entry=0x555558ce0650, errp=errp@entry=0x7fffffffda00)
    at ../../devel/qemu/qom/object.c:1472
#6  0x0000555555ffdb9f in object_property_set_qobject
    (obj=obj@entry=0x555558c4b360, name=name@entry=0x5555563794ed "realized", value=value@entry=0x555558cdf270, errp=errp@entry=0x7fffffffda00)
    at ../../devel/qemu/qom/qom-qobject.c:28
#7  0x0000555555ffa8c4 in object_property_set_bool (obj=obj@entry=0x555558c4b360, name=name@entry=0x5555563794ed "realized", value=value@entry=true, errp=errp@entry=0x7fffffffda00)
    at ../../devel/qemu/qom/object.c:1541
#8  0x0000555555ff319c in qdev_realize (dev=dev@entry=0x555558c4b360, bus=bus@entry=0x0, errp=errp@entry=0x7fffffffda00) at ../../devel/qemu/hw/core/qdev.c:292
#9  0x0000555555c11be3 in qdev_device_add_from_qdict (opts=opts@entry=0x555558c4a2d0, from_json=from_json@entry=false, errp=0x7fffffffda00, errp@entry=0x55555725b478 <error_fatal>)
    at ../../devel/qemu/system/qdev-monitor.c:718
#10 0x0000555555c12051 in qdev_device_add (opts=0x555557cd2a10, errp=errp@entry=0x55555725b478 <error_fatal>) at ../../devel/qemu/system/qdev-monitor.c:737
#11 0x0000555555c1720f in device_init_func (opaque=<optimized out>, opts=<optimized out>, errp=0x55555725b478 <error_fatal>) at ../../devel/qemu/system/vl.c:1200
#12 0x00005555561a29c1 in qemu_opts_foreach
    (list=<optimized out>, func=func@entry=0x555555c17200 <device_init_func>, opaque=opaque@entry=0x0, errp=errp@entry=0x55555725b478 <error_fatal>)
    at ../../devel/qemu/util/qemu-option.c:1135
#13 0x0000555555c19aea in qemu_create_cli_devices () at ../../devel/qemu/system/vl.c:2637
#14 qmp_x_exit_preconfig (errp=<optimized out>) at ../../devel/qemu/system/vl.c:2705
#15 0x0000555555c1d67f in qmp_x_exit_preconfig (errp=<optimized out>) at ../../devel/qemu/system/vl.c:2699
#16 qemu_init (argc=<optimized out>, argv=<optimized out>) at ../../devel/qemu/system/vl.c:3736
#17 0x00005555558f6f59 in main (argc=<optimized out>, argv=<optimized out>) at ../../devel/qemu/system/main.c:47
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information