123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- /*
- * Copyright (c) 2017-2020, ARM Limited and Contributors. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
- /* SDEI configuration for ARM platforms */
- #include <bl31/ehf.h>
- #include <common/debug.h>
- #include <services/sdei.h>
- #if SDEI_IN_FCONF
- #include <plat/arm/common/fconf_sdei_getter.h>
- #endif
- #include <plat/common/platform.h>
- #include <platform_def.h>
- #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);
|