1*91f16700Schasinglulu /* 2*91f16700Schasinglulu * Copyright (c) 2020, NVIDIA Corporation. All rights reserved. 3*91f16700Schasinglulu * 4*91f16700Schasinglulu * SPDX-License-Identifier: BSD-3-Clause 5*91f16700Schasinglulu */ 6*91f16700Schasinglulu 7*91f16700Schasinglulu /* SDEI configuration for Tegra platforms */ 8*91f16700Schasinglulu 9*91f16700Schasinglulu #include <platform_def.h> 10*91f16700Schasinglulu 11*91f16700Schasinglulu #include <bl31/ehf.h> 12*91f16700Schasinglulu #include <common/bl_common.h> 13*91f16700Schasinglulu #include <common/debug.h> 14*91f16700Schasinglulu #include <lib/utils_def.h> 15*91f16700Schasinglulu #include <services/sdei.h> 16*91f16700Schasinglulu 17*91f16700Schasinglulu /* Private event mappings */ 18*91f16700Schasinglulu static sdei_ev_map_t tegra_sdei_private[] = { 19*91f16700Schasinglulu /* Event 0 definition */ 20*91f16700Schasinglulu SDEI_DEFINE_EVENT_0(TEGRA_SDEI_SGI_PRIVATE), 21*91f16700Schasinglulu 22*91f16700Schasinglulu /* Dynamic private events */ 23*91f16700Schasinglulu SDEI_PRIVATE_EVENT(TEGRA_SDEI_DP_EVENT_0, SDEI_DYN_IRQ, SDEI_MAPF_DYNAMIC), 24*91f16700Schasinglulu SDEI_PRIVATE_EVENT(TEGRA_SDEI_DP_EVENT_1, SDEI_DYN_IRQ, SDEI_MAPF_DYNAMIC), 25*91f16700Schasinglulu SDEI_PRIVATE_EVENT(TEGRA_SDEI_DP_EVENT_2, SDEI_DYN_IRQ, SDEI_MAPF_DYNAMIC), 26*91f16700Schasinglulu 27*91f16700Schasinglulu /* General purpose explicit events */ 28*91f16700Schasinglulu SDEI_EXPLICIT_EVENT(TEGRA_SDEI_EP_EVENT_0, SDEI_MAPF_CRITICAL), 29*91f16700Schasinglulu SDEI_EXPLICIT_EVENT(TEGRA_SDEI_EP_EVENT_1, SDEI_MAPF_CRITICAL), 30*91f16700Schasinglulu SDEI_EXPLICIT_EVENT(TEGRA_SDEI_EP_EVENT_2, SDEI_MAPF_CRITICAL), 31*91f16700Schasinglulu SDEI_EXPLICIT_EVENT(TEGRA_SDEI_EP_EVENT_3, SDEI_MAPF_CRITICAL), 32*91f16700Schasinglulu SDEI_EXPLICIT_EVENT(TEGRA_SDEI_EP_EVENT_4, SDEI_MAPF_CRITICAL), 33*91f16700Schasinglulu SDEI_EXPLICIT_EVENT(TEGRA_SDEI_EP_EVENT_5, SDEI_MAPF_CRITICAL), 34*91f16700Schasinglulu SDEI_EXPLICIT_EVENT(TEGRA_SDEI_EP_EVENT_6, SDEI_MAPF_CRITICAL), 35*91f16700Schasinglulu SDEI_EXPLICIT_EVENT(TEGRA_SDEI_EP_EVENT_7, SDEI_MAPF_CRITICAL), 36*91f16700Schasinglulu SDEI_EXPLICIT_EVENT(TEGRA_SDEI_EP_EVENT_8, SDEI_MAPF_CRITICAL), 37*91f16700Schasinglulu SDEI_EXPLICIT_EVENT(TEGRA_SDEI_EP_EVENT_9, SDEI_MAPF_CRITICAL), 38*91f16700Schasinglulu SDEI_EXPLICIT_EVENT(TEGRA_SDEI_EP_EVENT_10, SDEI_MAPF_CRITICAL), 39*91f16700Schasinglulu SDEI_EXPLICIT_EVENT(TEGRA_SDEI_EP_EVENT_11, SDEI_MAPF_CRITICAL) 40*91f16700Schasinglulu }; 41*91f16700Schasinglulu 42*91f16700Schasinglulu /* Shared event mappings */ 43*91f16700Schasinglulu static sdei_ev_map_t tegra_sdei_shared[] = { 44*91f16700Schasinglulu /* Dynamic shared events */ 45*91f16700Schasinglulu SDEI_SHARED_EVENT(TEGRA_SDEI_DS_EVENT_0, SDEI_DYN_IRQ, SDEI_MAPF_DYNAMIC), 46*91f16700Schasinglulu SDEI_SHARED_EVENT(TEGRA_SDEI_DS_EVENT_1, SDEI_DYN_IRQ, SDEI_MAPF_DYNAMIC), 47*91f16700Schasinglulu SDEI_SHARED_EVENT(TEGRA_SDEI_DS_EVENT_2, SDEI_DYN_IRQ, SDEI_MAPF_DYNAMIC) 48*91f16700Schasinglulu }; 49*91f16700Schasinglulu 50*91f16700Schasinglulu void plat_sdei_setup(void) 51*91f16700Schasinglulu { 52*91f16700Schasinglulu INFO("SDEI platform setup\n"); 53*91f16700Schasinglulu } 54*91f16700Schasinglulu 55*91f16700Schasinglulu /* Export Tegra SDEI events */ 56*91f16700Schasinglulu REGISTER_SDEI_MAP(tegra_sdei_private, tegra_sdei_shared); 57