xref: /aosp_15_r20/external/arm-trusted-firmware/bl32/tsp/aarch64/tsp_request.S (revision 54fd6939e177f8ff529b10183254802c76df6d08)
1*54fd6939SJiyong Park/*
2*54fd6939SJiyong Park * Copyright (c) 2013-2020, ARM Limited and Contributors. All rights reserved.
3*54fd6939SJiyong Park *
4*54fd6939SJiyong Park * SPDX-License-Identifier: BSD-3-Clause
5*54fd6939SJiyong Park */
6*54fd6939SJiyong Park
7*54fd6939SJiyong Park#include <asm_macros.S>
8*54fd6939SJiyong Park#include <bl32/tsp/tsp.h>
9*54fd6939SJiyong Park
10*54fd6939SJiyong Park	.globl tsp_get_magic
11*54fd6939SJiyong Park
12*54fd6939SJiyong Park/*
13*54fd6939SJiyong Park * This function raises an SMC to retrieve arguments from secure
14*54fd6939SJiyong Park * monitor/dispatcher, saves the returned arguments the array received in x0,
15*54fd6939SJiyong Park * and then returns to the caller
16*54fd6939SJiyong Park */
17*54fd6939SJiyong Parkfunc tsp_get_magic
18*54fd6939SJiyong Park	/* Load arguments */
19*54fd6939SJiyong Park	ldr	w0, _tsp_fid_get_magic
20*54fd6939SJiyong Park
21*54fd6939SJiyong Park	/* Raise SMC */
22*54fd6939SJiyong Park	smc	#0
23*54fd6939SJiyong Park
24*54fd6939SJiyong Park	/* Return arguments in x1:x0 */
25*54fd6939SJiyong Park	ret
26*54fd6939SJiyong Parkendfunc tsp_get_magic
27*54fd6939SJiyong Park
28*54fd6939SJiyong Park	.align 2
29*54fd6939SJiyong Park_tsp_fid_get_magic:
30*54fd6939SJiyong Park	.word	TSP_GET_ARGS
31