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