xref: /rk3399_ARM-atf/bl32/tsp/aarch64/tsp_request.S (revision c948f77136c42a92d0bb660543a3600c36dcf7f1)
1/*
2 * Copyright (c) 2013-2014, ARM Limited and Contributors. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7#include <asm_macros.S>
8#include <bl32/tsp/tsp.h>
9
10	.globl tsp_get_magic
11
12
13/*
14 * This function raises an SMC to retrieve arguments from secure
15 * monitor/dispatcher, saves the returned arguments the array received in x0,
16 * and then returns to the caller
17 */
18func tsp_get_magic
19	/* Save address to stack */
20	stp	x0, xzr, [sp, #-16]!
21
22	/* Load arguments */
23	ldr	w0, _tsp_fid_get_magic
24
25	/* Raise SMC */
26	smc	#0
27
28	/* Restore address from stack */
29	ldp	x4, xzr, [sp], #16
30
31	/* Store returned arguments to the array */
32	stp	x0, x1, [x4, #0]
33
34	ret
35endfunc tsp_get_magic
36
37	.align 2
38_tsp_fid_get_magic:
39	.word	TSP_GET_ARGS
40