1*010d6ae3SXiaoDong Huang/* 2*010d6ae3SXiaoDong Huang * Copyright (c) 2019, ARM Limited and Contributors. All rights reserved. 3*010d6ae3SXiaoDong Huang * 4*010d6ae3SXiaoDong Huang * SPDX-License-Identifier: BSD-3-Clause 5*010d6ae3SXiaoDong Huang */ 6*010d6ae3SXiaoDong Huang 7*010d6ae3SXiaoDong Huang#include <arch.h> 8*010d6ae3SXiaoDong Huang#include <asm_macros.S> 9*010d6ae3SXiaoDong Huang#include <platform_def.h> 10*010d6ae3SXiaoDong Huang#include <cpus_on_fixed_addr.h> 11*010d6ae3SXiaoDong Huang 12*010d6ae3SXiaoDong Huang .globl sys_sleep_flag_sram 13*010d6ae3SXiaoDong Huang .globl pmu_cpuson_entrypoint 14*010d6ae3SXiaoDong Huang 15*010d6ae3SXiaoDong Huang .macro pmusram_entry_func _name 16*010d6ae3SXiaoDong Huang .section .pmusram.entry, "ax" 17*010d6ae3SXiaoDong Huang .type \_name, %function 18*010d6ae3SXiaoDong Huang .cfi_startproc 19*010d6ae3SXiaoDong Huang \_name: 20*010d6ae3SXiaoDong Huang .endm 21*010d6ae3SXiaoDong Huang 22*010d6ae3SXiaoDong Huangpmusram_entry_func pmu_cpuson_entrypoint 23*010d6ae3SXiaoDong Huang adr x5, sys_sleep_flag_sram 24*010d6ae3SXiaoDong Huang ldr w2, [x5, #PSRAM_DT_PM_FLAG] 25*010d6ae3SXiaoDong Huang 26*010d6ae3SXiaoDong Huang tbz w2, #PM_WARM_BOOT_SHT, sys_resume_sp 27*010d6ae3SXiaoDong Huang ldr x1, =platform_cpu_warmboot 28*010d6ae3SXiaoDong Huang br x1 29*010d6ae3SXiaoDong Huangsys_resume_sp: 30*010d6ae3SXiaoDong Huang adr x5, sys_sleep_flag_sram 31*010d6ae3SXiaoDong Huang ldr x1, [x5, #PSRAM_DT_SP] 32*010d6ae3SXiaoDong Huang mov sp, x1 33*010d6ae3SXiaoDong Huangddr_resume: 34*010d6ae3SXiaoDong Huang ldr x1, [x5, #PSRAM_DT_DDR_FUNC] 35*010d6ae3SXiaoDong Huang cmp x1, #0 36*010d6ae3SXiaoDong Huang b.eq sys_resume 37*010d6ae3SXiaoDong Huang blr x1 38*010d6ae3SXiaoDong Huangsys_resume: 39*010d6ae3SXiaoDong Huang ldr x1, =bl31_warm_entrypoint 40*010d6ae3SXiaoDong Huang br x1 41*010d6ae3SXiaoDong Huangendfunc pmu_cpuson_entrypoint 42*010d6ae3SXiaoDong Huang 43*010d6ae3SXiaoDong Huang .section .pmusram.data, "a" 44*010d6ae3SXiaoDong Huang .align 3 45*010d6ae3SXiaoDong Huangsys_sleep_flag_sram: 46*010d6ae3SXiaoDong Huang .rept PSRAM_DT_SIZE_WORDS 47*010d6ae3SXiaoDong Huang .word 0 48*010d6ae3SXiaoDong Huang .endr 49