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