xref: /rk3399_ARM-atf/services/std_svc/sdei/sdei_dispatch.S (revision 873e394b3bf93214a441f9f98237b58fbbea55aa)
1cdb6ac94SJeenu Viswambharan/*
2*e0566305SAntonio Nino Diaz * Copyright (c) 2018-2019, ARM Limited and Contributors. All rights reserved.
3cdb6ac94SJeenu Viswambharan *
4cdb6ac94SJeenu Viswambharan * SPDX-License-Identifier: BSD-3-Clause
5cdb6ac94SJeenu Viswambharan */
6cdb6ac94SJeenu Viswambharan
7cdb6ac94SJeenu Viswambharan#include <asm_macros.S>
8cdb6ac94SJeenu Viswambharan
9cdb6ac94SJeenu Viswambharan	.globl	begin_sdei_synchronous_dispatch
10cdb6ac94SJeenu Viswambharan
11cdb6ac94SJeenu Viswambharan/*
12*e0566305SAntonio Nino Diaz * void begin_sdei_synchronous_dispatch(jmp_buf *buffer);
13cdb6ac94SJeenu Viswambharan *
14cdb6ac94SJeenu Viswambharan * Begin SDEI dispatch synchronously by setting up a jump point, and exiting
15cdb6ac94SJeenu Viswambharan * EL3. This jump point is jumped to by the dispatcher after the event is
16cdb6ac94SJeenu Viswambharan * completed by the client.
17cdb6ac94SJeenu Viswambharan */
18cdb6ac94SJeenu Viswambharanfunc begin_sdei_synchronous_dispatch
19cdb6ac94SJeenu Viswambharan	stp	x30, xzr, [sp, #-16]!
20cdb6ac94SJeenu Viswambharan	bl	setjmp
21cdb6ac94SJeenu Viswambharan	cbz	x0, 1f
22cdb6ac94SJeenu Viswambharan	ldp	x30, xzr, [sp], #16
23cdb6ac94SJeenu Viswambharan	ret
24cdb6ac94SJeenu Viswambharan1:
25cdb6ac94SJeenu Viswambharan	b	el3_exit
26cdb6ac94SJeenu Viswambharanendfunc begin_sdei_synchronous_dispatch
27