xref: /rk3399_ARM-atf/plat/xilinx/versal_net/versal_net_sdei.c (revision 13304d30cd77ade18ffe868009c5ac872de1e026)
1*10510c98SAmit Nagal /*
2*10510c98SAmit Nagal  * Copyright (c) 2025, Advanced Micro Devices, Inc. All rights reserved.
3*10510c98SAmit Nagal  *
4*10510c98SAmit Nagal  * SPDX-License-Identifier: BSD-3-Clause
5*10510c98SAmit Nagal  */
6*10510c98SAmit Nagal #include <bl31/ehf.h>
7*10510c98SAmit Nagal #include <common/debug.h>
8*10510c98SAmit Nagal #include <plat/common/platform.h>
9*10510c98SAmit Nagal #include <services/sdei.h>
10*10510c98SAmit Nagal 
11*10510c98SAmit Nagal #include <platform_def.h>
12*10510c98SAmit Nagal 
arm_validate_ns_entrypoint(uintptr_t entrypoint)13*10510c98SAmit Nagal int arm_validate_ns_entrypoint(uintptr_t entrypoint)
14*10510c98SAmit Nagal {
15*10510c98SAmit Nagal 	int ret;
16*10510c98SAmit Nagal 	uintptr_t base = BL31_BASE;
17*10510c98SAmit Nagal 	uintptr_t limit = BL31_LIMIT;
18*10510c98SAmit Nagal 
19*10510c98SAmit Nagal 	ret = ((entrypoint < base) || (entrypoint > limit)) ? 0 : -1;
20*10510c98SAmit Nagal 	return ret;
21*10510c98SAmit Nagal }
22*10510c98SAmit Nagal 
23*10510c98SAmit Nagal /* Private event mappings */
24*10510c98SAmit Nagal static sdei_ev_map_t versal_net_sdei_private[] = {
25*10510c98SAmit Nagal 	SDEI_DEFINE_EVENT_0(VERSAL_NET_SDEI_SGI_PRIVATE),
26*10510c98SAmit Nagal 	SDEI_PRIVATE_EVENT(VERSAL_NET_SDEI_PRV_EV, SDEI_DYN_IRQ, SDEI_MAPF_DYNAMIC),
27*10510c98SAmit Nagal };
28*10510c98SAmit Nagal 
29*10510c98SAmit Nagal /* Shared event mappings */
30*10510c98SAmit Nagal static sdei_ev_map_t versal_net_sdei_shared[] = {
31*10510c98SAmit Nagal 	SDEI_SHARED_EVENT(VERSAL_NET_SDEI_SH_EVENT_0, SDEI_DYN_IRQ, SDEI_MAPF_DYNAMIC),
32*10510c98SAmit Nagal };
33*10510c98SAmit Nagal 
plat_sdei_setup(void)34*10510c98SAmit Nagal void plat_sdei_setup(void)
35*10510c98SAmit Nagal {
36*10510c98SAmit Nagal 	INFO("SDEI platform setup\n");
37*10510c98SAmit Nagal }
38*10510c98SAmit Nagal 
39*10510c98SAmit Nagal /* Export ARM SDEI events */
40*10510c98SAmit Nagal REGISTER_SDEI_MAP(versal_net_sdei_private, versal_net_sdei_shared);
41