Commit b38b82c9 authored by Amit Kachhap's avatar Amit Kachhap

arm64: create macro to park cpu in an infinite loop

A macro early_park_cpu is added to park the faulted cpu in an infinite
loop. Currently, this macro is substituted in two instances and may be
reused in future.
Acked-by: Catalin Marinas's avatarCatalin Marinas <catalin.marinas@arm.com>
Reviewed-by: Suzuki Poulose's avatarSuzuki K Poulose <suzuki.poulose@arm.com>
Signed-off-by: Amit Kachhap's avatarAmit Daniel Kachhap <amit.kachhap@arm.com>
parent 7513acaa
......@@ -760,6 +760,17 @@ ENDPROC(__secondary_too_slow)
dc ivac, \tmp1 // Invalidate potentially stale cache line
.endm
/*
* Macro to park the cpu in an infinite loop.
*/
.macro early_park_cpu status
update_early_cpu_boot_status \status | CPU_STUCK_IN_KERNEL, x1, x2
.Lepc_\@:
wfe
wfi
b .Lepc_\@
.endm
/*
* Enable the MMU.
*
......@@ -808,24 +819,14 @@ ENTRY(__cpu_secondary_check52bitva)
and x0, x0, #(0xf << ID_AA64MMFR2_LVA_SHIFT)
cbnz x0, 2f
update_early_cpu_boot_status \
CPU_STUCK_IN_KERNEL | CPU_STUCK_REASON_52_BIT_VA, x0, x1
1: wfe
wfi
b 1b
early_park_cpu CPU_STUCK_REASON_52_BIT_VA
#endif
2: ret
ENDPROC(__cpu_secondary_check52bitva)
__no_granule_support:
/* Indicate that this CPU can't boot and is stuck in the kernel */
update_early_cpu_boot_status \
CPU_STUCK_IN_KERNEL | CPU_STUCK_REASON_NO_GRAN, x1, x2
1:
wfe
wfi
b 1b
early_park_cpu CPU_STUCK_REASON_NO_GRAN
ENDPROC(__no_granule_support)
#ifdef CONFIG_RELOCATABLE
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment