summaryrefslogtreecommitdiffstats
path: root/plat/socionext/uniphier/uniphier_smp.S
blob: d6cb9ffa23d4c062630071a7423ab96f55fc209f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/*
 * Copyright (c) 2017, ARM Limited and Contributors. All rights reserved.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */

#include <arch.h>
#include <asm_macros.S>

	.globl	uniphier_warmboot_entrypoint
	.globl	uniphier_fake_pwr_down

func uniphier_warmboot_entrypoint
	mrs	x0, mpidr_el1
	mov_imm	x1, MPIDR_AFFINITY_MASK
	and	x0, x0, x1
	b	1f
0:	wfe
1:	ldr	x1, uniphier_holding_pen_release
	cmp	x1, x0
	b.ne	0b
	ldr	x0, uniphier_sec_entrypoint
	br	x0
endfunc uniphier_warmboot_entrypoint

func uniphier_fake_pwr_down
	bl	disable_mmu_icache_el3
	b	uniphier_warmboot_entrypoint
endfunc uniphier_fake_pwr_down