The boot CPU can have a CPU ID non-equal to zero. Xen needs to check the logical CPU ID (in r12) to know if the CPU is the boot one. Signed-off-by: Julien Grall <julien.grall@linaro.org> --- xen/arch/arm/arm32/head.S | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/xen/arch/arm/arm32/head.S b/xen/arch/arm/arm32/head.S index 92b3c48..ce1d21a 100644 --- a/xen/arch/arm/arm32/head.S +++ b/xen/arch/arm/arm32/head.S @@ -403,7 +403,8 @@ launch: sub sp, #CPUINFO_sizeof /* Make room for CPU save record */ mov r0, r10 /* Marshal args: - phys_offset */ mov r1, r8 /* - DTB address */ - movs r2, r7 /* - CPU ID */ + mov r2, r7 /* - CPU ID */ + teq r12, #0 beq start_xen /* and disappear into the land of C */ b start_secondary /* (to the appropriate entry point) */ -- 1.7.10.4
Ian Campbell
2013-Oct-10 10:41 UTC
Re: [PATCH] xen/arm32: Call start_xen only on the boot CPU
On Mon, 2013-10-07 at 15:44 +0100, Julien Grall wrote:> The boot CPU can have a CPU ID non-equal to zero. Xen needs to check the > logical CPU ID (in r12) to know if the CPU is the boot one. > > Signed-off-by: Julien Grall <julien.grall@linaro.org>acked + applied, thanks. 64-bit looks correct already to me.