Multi-arch platforms may wish to use the ARM bootloader. Dont 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 fa69503..4e4034d 100644 --- a/hw/arm/boot.c +++ b/hw/arm/boot.c @@ -575,7 +575,9 @@ 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)); + } } /* Load the kernel. */ @@ -772,6 +774,8 @@ void arm_load_kernel(ARMCPU *cpu, struct arm_boot_info *info) 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; + } } } -- 1.9.1