From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41442) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZGOd7-0008QX-R1 for qemu-devel@nongnu.org; Sat, 18 Jul 2015 05:42:02 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZGOd7-0004mX-2t for qemu-devel@nongnu.org; Sat, 18 Jul 2015 05:42:01 -0400 Received: from mail-pd0-x234.google.com ([2607:f8b0:400e:c02::234]:33637) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZGOd6-0004mM-Sc for qemu-devel@nongnu.org; Sat, 18 Jul 2015 05:42:01 -0400 Received: by pdbnt7 with SMTP id nt7so3301897pdb.0 for ; Sat, 18 Jul 2015 02:42:00 -0700 (PDT) From: Peter Crosthwaite Date: Sat, 18 Jul 2015 02:40:42 -0700 Message-Id: In-Reply-To: References: In-Reply-To: References: Subject: [Qemu-devel] [PATCH v3 32/35] arm: boot: Don't assume all CPUs are ARM List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: peter.maydell@linaro.org, Peter Crosthwaite , Peter Crosthwaite , edgar.iglesias@gmail.com, pbonzini@redhat.com, afaerber@suse.de, rth@twiddle.net From: Peter Crosthwaite 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 --- 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