From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42176) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YywUs-0003gb-5E for qemu-devel@nongnu.org; Sun, 31 May 2015 02:13:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YywUq-0000n6-I9 for qemu-devel@nongnu.org; Sun, 31 May 2015 02:13:22 -0400 Received: from mail-pd0-x22a.google.com ([2607:f8b0:400e:c02::22a]:35218) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YywUq-0000mu-Ae for qemu-devel@nongnu.org; Sun, 31 May 2015 02:13:20 -0400 Received: by pdbnf5 with SMTP id nf5so22950660pdb.2 for ; Sat, 30 May 2015 23:13:19 -0700 (PDT) From: Peter Crosthwaite Date: Sat, 30 May 2015 23:12:04 -0700 Message-Id: In-Reply-To: References: In-Reply-To: References: Subject: [Qemu-devel] [RFC v2 31/34] 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 , pbonzini@redhat.com, edgar.iglesias@gmail.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 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