xref: /rk3399_rockchip-uboot/arch/arm/mach-imx/mx7/psci.S (revision 6aee2ab68c362ace5a59f89a63abed82e0bf19e5)
1*fa85b021SPeng Fan/*
2*fa85b021SPeng Fan * Copyright (C) 2015-2016 Freescale Semiconductor, Inc.
3*fa85b021SPeng Fan * Copyright 2017 NXP
4*fa85b021SPeng Fan *
5*fa85b021SPeng Fan * SPDX-License-Identifier:	GPL-2.0+
6*fa85b021SPeng Fan */
7*fa85b021SPeng Fan
8552a848eSStefano Babic#include <config.h>
9552a848eSStefano Babic#include <linux/linkage.h>
10552a848eSStefano Babic
11552a848eSStefano Babic#include <asm/armv7.h>
12552a848eSStefano Babic#include <asm/arch-armv7/generictimer.h>
13552a848eSStefano Babic#include <asm/psci.h>
14552a848eSStefano Babic
15552a848eSStefano Babic	.pushsection ._secure.text, "ax"
16552a848eSStefano Babic
17552a848eSStefano Babic	.arch_extension sec
18552a848eSStefano Babic
19552a848eSStefano Babic.globl psci_cpu_on
20552a848eSStefano Babicpsci_cpu_on:
21552a848eSStefano Babic	push	{r4, r5, lr}
22552a848eSStefano Babic
23552a848eSStefano Babic	mov	r4, r0
24552a848eSStefano Babic	mov	r5, r1
25552a848eSStefano Babic	mov	r0, r1
26552a848eSStefano Babic	mov	r1, r2
27552a848eSStefano Babic	bl	psci_save_target_pc
28552a848eSStefano Babic
29552a848eSStefano Babic	mov	r0, r4
30552a848eSStefano Babic	mov	r1, r5
31552a848eSStefano Babic	ldr	r2, =psci_cpu_entry
32552a848eSStefano Babic	bl	imx_cpu_on
33552a848eSStefano Babic
34552a848eSStefano Babic	pop	{r4, r5, pc}
35552a848eSStefano Babic
36552a848eSStefano Babic.globl psci_cpu_off
37552a848eSStefano Babicpsci_cpu_off:
38552a848eSStefano Babic
39552a848eSStefano Babic	bl	psci_cpu_off_common
40552a848eSStefano Babic	bl	psci_get_cpu_id
41552a848eSStefano Babic	bl	imx_cpu_off
42552a848eSStefano Babic
43552a848eSStefano Babic1: 	wfi
44552a848eSStefano Babic	b 1b
45552a848eSStefano Babic
46552a848eSStefano Babic	.popsection
47