From: Peter Crosthwaite <crosthwaitepe...@gmail.com> Multi-arch platforms may wish to use the ARM bootloader. Don't assert that all CPUs in the CPU list are ARM.
Signed-off-by: Peter Crosthwaite <crosthwaite.pe...@gmail.com> --- hw/arm/boot.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/hw/arm/boot.c b/hw/arm/boot.c index 5b969cd..854333d 100644 --- a/hw/arm/boot.c +++ b/hw/arm/boot.c @@ -782,7 +782,9 @@ static void arm_load_kernel_notify(Notifier *notifier, void *data) info->is_linux = is_linux; for (cs = CPU(cpu); cs; cs = CPU_NEXT(cs)) { - ARM_CPU(cs)->env.boot_info = info; + if (object_dynamic_cast(OBJECT(cs), TYPE_ARM_CPU)) { + ARM_CPU(cs)->env.boot_info = info; + } } } @@ -800,6 +802,8 @@ void arm_load_kernel(ARMCPU *cpu, struct arm_boot_info *info) * arranging that we start it correctly. */ for (cs = CPU(cpu); cs; cs = CPU_NEXT(cs)) { - qemu_register_reset(do_cpu_reset, ARM_CPU(cs)); + if (object_dynamic_cast(OBJECT(cs), TYPE_ARM_CPU)) { + qemu_register_reset(do_cpu_reset, ARM_CPU(cs)); + } } } -- 1.9.1