xref: /arm-trusted-firmware/plat/socionext/uniphier/uniphier_smp.S (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
1*91f16700Schasinglulu/*
2*91f16700Schasinglulu * Copyright (c) 2017, ARM Limited and Contributors. All rights reserved.
3*91f16700Schasinglulu *
4*91f16700Schasinglulu * SPDX-License-Identifier: BSD-3-Clause
5*91f16700Schasinglulu */
6*91f16700Schasinglulu
7*91f16700Schasinglulu#include <arch.h>
8*91f16700Schasinglulu#include <asm_macros.S>
9*91f16700Schasinglulu
10*91f16700Schasinglulu	.globl	uniphier_warmboot_entrypoint
11*91f16700Schasinglulu	.globl	uniphier_fake_pwr_down
12*91f16700Schasinglulu
13*91f16700Schasinglulufunc uniphier_warmboot_entrypoint
14*91f16700Schasinglulu	mrs	x0, mpidr_el1
15*91f16700Schasinglulu	mov_imm	x1, MPIDR_AFFINITY_MASK
16*91f16700Schasinglulu	and	x0, x0, x1
17*91f16700Schasinglulu	b	1f
18*91f16700Schasinglulu0:	wfe
19*91f16700Schasinglulu1:	ldr	x1, uniphier_holding_pen_release
20*91f16700Schasinglulu	cmp	x1, x0
21*91f16700Schasinglulu	b.ne	0b
22*91f16700Schasinglulu	ldr	x0, uniphier_sec_entrypoint
23*91f16700Schasinglulu	br	x0
24*91f16700Schasingluluendfunc uniphier_warmboot_entrypoint
25*91f16700Schasinglulu
26*91f16700Schasinglulufunc uniphier_fake_pwr_down
27*91f16700Schasinglulu	bl	disable_mmu_icache_el3
28*91f16700Schasinglulu	b	uniphier_warmboot_entrypoint
29*91f16700Schasingluluendfunc uniphier_fake_pwr_down
30