/* * Copyright (c) 2017-2020, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ /* SDEI configuration for ARM platforms */ #include #include #include #if SDEI_IN_FCONF #include #endif #include #include #if SDEI_IN_FCONF /* Private event mappings */ static sdei_ev_map_t arm_sdei_private[PLAT_SDEI_DP_EVENT_MAX_CNT + 1] = { 0 }; /* Shared event mappings */ static sdei_ev_map_t arm_sdei_shared[PLAT_SDEI_DS_EVENT_MAX_CNT] = { 0 }; void plat_sdei_setup(void) { uint32_t i; arm_sdei_private[0] = (sdei_ev_map_t)SDEI_DEFINE_EVENT_0(ARM_SDEI_SGI); for (i = 0; i < FCONF_GET_PROPERTY(sdei, dyn_config, private_ev_cnt); i++) { arm_sdei_private[i + 1] = (sdei_ev_map_t)SDEI_PRIVATE_EVENT( FCONF_GET_PROPERTY(sdei, dyn_config, private_ev_nums[i]), FCONF_GET_PROPERTY(sdei, dyn_config, private_ev_intrs[i]), FCONF_GET_PROPERTY(sdei, dyn_config, private_ev_flags[i])); } for (i = 0; i < FCONF_GET_PROPERTY(sdei, dyn_config, shared_ev_cnt); i++) { arm_sdei_shared[i] = (sdei_ev_map_t)SDEI_SHARED_EVENT( FCONF_GET_PROPERTY(sdei, dyn_config, shared_ev_nums[i]), FCONF_GET_PROPERTY(sdei, dyn_config, shared_ev_intrs[i]), FCONF_GET_PROPERTY(sdei, dyn_config, shared_ev_flags[i])); } INFO("FCONF: SDEI platform setup\n"); } #else /* Private event mappings */ static sdei_ev_map_t arm_sdei_private[] = { PLAT_ARM_PRIVATE_SDEI_EVENTS }; /* Shared event mappings */ static sdei_ev_map_t arm_sdei_shared[] = { PLAT_ARM_SHARED_SDEI_EVENTS }; void plat_sdei_setup(void) { INFO("SDEI platform setup\n"); } #endif /* SDEI_IN_FCONF */ /* Export ARM SDEI events */ REGISTER_SDEI_MAP(arm_sdei_private, arm_sdei_shared);