1/* SPDX-License-Identifier: BSD-2-Clause */ 2/* 3 * Copyright 2017 NXP 4 */ 5 6#include <arm.h> 7#include <arm32_macros.S> 8#include <asm.S> 9#include <kernel/cache_helpers.h> 10#include <kernel/unwind.h> 11 12FUNC psci_disable_smp, : 13UNWIND( .fnstart) 14 read_actlr r0 15 bic r0, r0, #ACTLR_SMP 16 write_actlr r0 17 isb 18 bx lr 19UNWIND( .fnend) 20END_FUNC psci_disable_smp 21 22FUNC psci_enable_smp, : 23UNWIND( .fnstart) 24 read_actlr r0 25 orr r0, r0, #ACTLR_SMP 26 write_actlr r0 27 isb 28 bx lr 29UNWIND( .fnend) 30END_FUNC psci_enable_smp 31 32FUNC psci_armv7_cpu_off, : 33UNWIND( .fnstart) 34 push {r12, lr} 35UNWIND( .save {r12, lr}) 36 37 mov r0, #DCACHE_OP_CLEAN_INV 38 bl dcache_op_all 39 40 /* Disable Cache */ 41 read_sctlr r0 42 bic r0, r0, #SCTLR_C 43 write_sctlr r0 44 isb 45 dsb 46 47 mov r0, #DCACHE_OP_CLEAN_INV 48 bl dcache_op_all 49 50 clrex 51 52 bl psci_disable_smp 53 54 pop {r12, pc} 55UNWIND( .fnend) 56END_FUNC psci_armv7_cpu_off 57