2018-05-07 06:58:06 +09:00
|
|
|
/* SPDX-License-Identifier: GPL-2.0+ */
|
2017-08-17 18:48:50 +09:00
|
|
|
/*
|
|
|
|
* Copyright (C) 2015-2016 Freescale Semiconductor, Inc.
|
|
|
|
* Copyright 2017 NXP
|
|
|
|
*/
|
|
|
|
|
2015-10-23 11:13:04 +09:00
|
|
|
#include <config.h>
|
|
|
|
#include <linux/linkage.h>
|
|
|
|
|
|
|
|
#include <asm/armv7.h>
|
|
|
|
#include <asm/arch-armv7/generictimer.h>
|
|
|
|
#include <asm/psci.h>
|
|
|
|
|
|
|
|
.pushsection ._secure.text, "ax"
|
|
|
|
|
|
|
|
.arch_extension sec
|
|
|
|
|
|
|
|
.globl psci_cpu_on
|
|
|
|
psci_cpu_on:
|
2016-06-19 13:38:44 +09:00
|
|
|
push {r4, r5, lr}
|
2015-10-23 11:13:04 +09:00
|
|
|
|
2016-06-19 13:38:44 +09:00
|
|
|
mov r4, r0
|
|
|
|
mov r5, r1
|
2015-10-23 11:13:04 +09:00
|
|
|
mov r0, r1
|
2016-06-19 13:38:44 +09:00
|
|
|
mov r1, r2
|
2018-04-16 17:15:08 +09:00
|
|
|
mov r2, r3
|
|
|
|
bl psci_save
|
2015-10-23 11:13:04 +09:00
|
|
|
|
2016-06-19 13:38:44 +09:00
|
|
|
mov r0, r4
|
|
|
|
mov r1, r5
|
2015-10-23 11:13:04 +09:00
|
|
|
ldr r2, =psci_cpu_entry
|
|
|
|
bl imx_cpu_on
|
|
|
|
|
2016-06-19 13:38:44 +09:00
|
|
|
pop {r4, r5, pc}
|
2015-10-23 11:13:04 +09:00
|
|
|
|
|
|
|
.globl psci_cpu_off
|
|
|
|
psci_cpu_off:
|
|
|
|
|
|
|
|
bl psci_cpu_off_common
|
|
|
|
bl psci_get_cpu_id
|
|
|
|
bl imx_cpu_off
|
|
|
|
|
|
|
|
1: wfi
|
|
|
|
b 1b
|
|
|
|
|
2018-01-07 15:34:31 +09:00
|
|
|
.globl psci_system_reset
|
|
|
|
psci_system_reset:
|
|
|
|
bl imx_system_reset
|
|
|
|
|
|
|
|
2: wfi
|
|
|
|
b 2b
|
|
|
|
|
2018-01-07 15:34:32 +09:00
|
|
|
.globl psci_system_off
|
|
|
|
psci_system_off:
|
|
|
|
bl imx_system_off
|
|
|
|
|
|
|
|
3: wfi
|
|
|
|
b 3b
|
|
|
|
|
2015-10-23 11:13:04 +09:00
|
|
|
.popsection
|