1*0654ab7fSJay Buddhabhatti /* 2*0654ab7fSJay Buddhabhatti * Copyright (C) 2022, Xilinx, Inc. All rights reserved. 3*0654ab7fSJay Buddhabhatti * Copyright (C) 2022, Advanced Micro Devices, Inc. All rights reserved. 4*0654ab7fSJay Buddhabhatti * 5*0654ab7fSJay Buddhabhatti * SPDX-License-Identifier: BSD-3-Clause 6*0654ab7fSJay Buddhabhatti */ 7*0654ab7fSJay Buddhabhatti 8*0654ab7fSJay Buddhabhatti /* 9*0654ab7fSJay Buddhabhatti * Versal NET IPI agent registers access management 10*0654ab7fSJay Buddhabhatti */ 11*0654ab7fSJay Buddhabhatti 12*0654ab7fSJay Buddhabhatti #include <errno.h> 13*0654ab7fSJay Buddhabhatti #include <string.h> 14*0654ab7fSJay Buddhabhatti 15*0654ab7fSJay Buddhabhatti #include <common/debug.h> 16*0654ab7fSJay Buddhabhatti #include <common/runtime_svc.h> 17*0654ab7fSJay Buddhabhatti #include <lib/bakery_lock.h> 18*0654ab7fSJay Buddhabhatti #include <lib/mmio.h> 19*0654ab7fSJay Buddhabhatti 20*0654ab7fSJay Buddhabhatti #include <ipi.h> 21*0654ab7fSJay Buddhabhatti #include <plat_ipi.h> 22*0654ab7fSJay Buddhabhatti #include <plat_private.h> 23*0654ab7fSJay Buddhabhatti 24*0654ab7fSJay Buddhabhatti /* versal_net ipi configuration table */ 25*0654ab7fSJay Buddhabhatti static const struct ipi_config versal_net_ipi_table[IPI_ID_MAX] = { 26*0654ab7fSJay Buddhabhatti /* A72 IPI */ 27*0654ab7fSJay Buddhabhatti [IPI_ID_APU] = { 28*0654ab7fSJay Buddhabhatti .ipi_bit_mask = IPI0_TRIG_BIT, 29*0654ab7fSJay Buddhabhatti .ipi_reg_base = IPI0_REG_BASE, 30*0654ab7fSJay Buddhabhatti .secure_only = 0, 31*0654ab7fSJay Buddhabhatti }, 32*0654ab7fSJay Buddhabhatti 33*0654ab7fSJay Buddhabhatti /* PMC IPI */ 34*0654ab7fSJay Buddhabhatti [IPI_ID_PMC] = { 35*0654ab7fSJay Buddhabhatti .ipi_bit_mask = PMC_IPI_TRIG_BIT, 36*0654ab7fSJay Buddhabhatti .ipi_reg_base = IPI0_REG_BASE, 37*0654ab7fSJay Buddhabhatti .secure_only = 0, 38*0654ab7fSJay Buddhabhatti }, 39*0654ab7fSJay Buddhabhatti 40*0654ab7fSJay Buddhabhatti /* RPU0 IPI */ 41*0654ab7fSJay Buddhabhatti [IPI_ID_RPU0] = { 42*0654ab7fSJay Buddhabhatti .ipi_bit_mask = IPI1_TRIG_BIT, 43*0654ab7fSJay Buddhabhatti .ipi_reg_base = IPI1_REG_BASE, 44*0654ab7fSJay Buddhabhatti .secure_only = 0, 45*0654ab7fSJay Buddhabhatti }, 46*0654ab7fSJay Buddhabhatti 47*0654ab7fSJay Buddhabhatti /* RPU1 IPI */ 48*0654ab7fSJay Buddhabhatti [IPI_ID_RPU1] = { 49*0654ab7fSJay Buddhabhatti .ipi_bit_mask = IPI2_TRIG_BIT, 50*0654ab7fSJay Buddhabhatti .ipi_reg_base = IPI2_REG_BASE, 51*0654ab7fSJay Buddhabhatti .secure_only = 0, 52*0654ab7fSJay Buddhabhatti }, 53*0654ab7fSJay Buddhabhatti 54*0654ab7fSJay Buddhabhatti /* IPI3 IPI */ 55*0654ab7fSJay Buddhabhatti [IPI_ID_3] = { 56*0654ab7fSJay Buddhabhatti .ipi_bit_mask = IPI3_TRIG_BIT, 57*0654ab7fSJay Buddhabhatti .ipi_reg_base = IPI3_REG_BASE, 58*0654ab7fSJay Buddhabhatti .secure_only = 0, 59*0654ab7fSJay Buddhabhatti }, 60*0654ab7fSJay Buddhabhatti 61*0654ab7fSJay Buddhabhatti /* IPI4 IPI */ 62*0654ab7fSJay Buddhabhatti [IPI_ID_4] = { 63*0654ab7fSJay Buddhabhatti .ipi_bit_mask = IPI4_TRIG_BIT, 64*0654ab7fSJay Buddhabhatti .ipi_reg_base = IPI4_REG_BASE, 65*0654ab7fSJay Buddhabhatti .secure_only = 0, 66*0654ab7fSJay Buddhabhatti }, 67*0654ab7fSJay Buddhabhatti 68*0654ab7fSJay Buddhabhatti /* IPI5 IPI */ 69*0654ab7fSJay Buddhabhatti [IPI_ID_5] = { 70*0654ab7fSJay Buddhabhatti .ipi_bit_mask = IPI5_TRIG_BIT, 71*0654ab7fSJay Buddhabhatti .ipi_reg_base = IPI5_REG_BASE, 72*0654ab7fSJay Buddhabhatti .secure_only = 0, 73*0654ab7fSJay Buddhabhatti }, 74*0654ab7fSJay Buddhabhatti }; 75*0654ab7fSJay Buddhabhatti 76*0654ab7fSJay Buddhabhatti /* versal_net_ipi_config_table_init() - Initialize versal_net IPI configuration data 77*0654ab7fSJay Buddhabhatti * 78*0654ab7fSJay Buddhabhatti * @ipi_config_table - IPI configuration table 79*0654ab7fSJay Buddhabhatti * @ipi_total - Total number of IPI available 80*0654ab7fSJay Buddhabhatti * 81*0654ab7fSJay Buddhabhatti */ 82*0654ab7fSJay Buddhabhatti void versal_net_ipi_config_table_init(void) 83*0654ab7fSJay Buddhabhatti { 84*0654ab7fSJay Buddhabhatti ipi_config_table_init(versal_net_ipi_table, ARRAY_SIZE(versal_net_ipi_table)); 85*0654ab7fSJay Buddhabhatti } 86