1c97857dbSAmit Nagal /* 2c97857dbSAmit Nagal * Copyright (c) 2022, Xilinx, Inc. All rights reserved. 3af22b19dSBen Levinsky * Copyright (c) 2022-2025, Advanced Micro Devices, Inc. All rights reserved. 4c97857dbSAmit Nagal * 5c97857dbSAmit Nagal * SPDX-License-Identifier: BSD-3-Clause 6c97857dbSAmit Nagal */ 7c97857dbSAmit Nagal 8c97857dbSAmit Nagal /* 9c97857dbSAmit Nagal * SoC IPI agent registers access management 10c97857dbSAmit Nagal */ 11c97857dbSAmit Nagal 12c97857dbSAmit Nagal #include <plat_ipi.h> 13c97857dbSAmit Nagal 14*f91fbc6bSPrasad Kummari /* Versal Gen 2 ipi configuration table */ 15c97857dbSAmit Nagal static const struct ipi_config ipi_table[IPI_ID_MAX] = { 16c97857dbSAmit Nagal /* A78 IPI */ 17c97857dbSAmit Nagal [IPI_ID_APU] = { 18c97857dbSAmit Nagal .ipi_bit_mask = IPI0_TRIG_BIT, 19c97857dbSAmit Nagal .ipi_reg_base = IPI0_REG_BASE, 20c97857dbSAmit Nagal .secure_only = 0, 21c97857dbSAmit Nagal }, 22c97857dbSAmit Nagal 23c97857dbSAmit Nagal /* PMC IPI */ 24c97857dbSAmit Nagal [IPI_ID_PMC] = { 25c97857dbSAmit Nagal .ipi_bit_mask = PMC_IPI_TRIG_BIT, 26c97857dbSAmit Nagal .ipi_reg_base = IPI0_REG_BASE, 27c97857dbSAmit Nagal .secure_only = IPI_SECURE_MASK, 28c97857dbSAmit Nagal }, 29c97857dbSAmit Nagal 30c97857dbSAmit Nagal /* RPU0 IPI */ 31c97857dbSAmit Nagal [IPI_ID_RPU0] = { 32c97857dbSAmit Nagal .ipi_bit_mask = IPI1_TRIG_BIT, 33c97857dbSAmit Nagal .ipi_reg_base = IPI1_REG_BASE, 34c97857dbSAmit Nagal .secure_only = 0, 35c97857dbSAmit Nagal }, 36c97857dbSAmit Nagal 37c97857dbSAmit Nagal /* RPU1 IPI */ 38c97857dbSAmit Nagal [IPI_ID_RPU1] = { 39c97857dbSAmit Nagal .ipi_bit_mask = IPI2_TRIG_BIT, 40c97857dbSAmit Nagal .ipi_reg_base = IPI2_REG_BASE, 41c97857dbSAmit Nagal .secure_only = 0, 42c97857dbSAmit Nagal }, 43c97857dbSAmit Nagal 44c97857dbSAmit Nagal /* IPI3 IPI */ 45c97857dbSAmit Nagal [IPI_ID_3] = { 46c97857dbSAmit Nagal .ipi_bit_mask = IPI3_TRIG_BIT, 47c97857dbSAmit Nagal .ipi_reg_base = IPI3_REG_BASE, 48c97857dbSAmit Nagal .secure_only = 0, 49c97857dbSAmit Nagal }, 50c97857dbSAmit Nagal 51c97857dbSAmit Nagal /* IPI4 IPI */ 52c97857dbSAmit Nagal [IPI_ID_4] = { 53c97857dbSAmit Nagal .ipi_bit_mask = IPI4_TRIG_BIT, 54c97857dbSAmit Nagal .ipi_reg_base = IPI4_REG_BASE, 55c97857dbSAmit Nagal .secure_only = 0, 56c97857dbSAmit Nagal }, 57c97857dbSAmit Nagal 58c97857dbSAmit Nagal /* IPI5 IPI */ 59c97857dbSAmit Nagal [IPI_ID_5] = { 60c97857dbSAmit Nagal .ipi_bit_mask = IPI5_TRIG_BIT, 61c97857dbSAmit Nagal .ipi_reg_base = IPI5_REG_BASE, 62c97857dbSAmit Nagal .secure_only = 0, 63c97857dbSAmit Nagal }, 64af22b19dSBen Levinsky 65af22b19dSBen Levinsky /* PMC_NOBUF IPI */ 66af22b19dSBen Levinsky [IPI_ID_PMC_NOBUF] = { 67af22b19dSBen Levinsky .ipi_bit_mask = PMC_NOBUF_TRIG_BIT, 68af22b19dSBen Levinsky .ipi_reg_base = PMC_NOBUF_REG_BASE, 69af22b19dSBen Levinsky .secure_only = IPI_SECURE_MASK, 70af22b19dSBen Levinsky }, 71af22b19dSBen Levinsky 72af22b19dSBen Levinsky /* IPI6 IPI */ 73af22b19dSBen Levinsky [IPI_ID_6_NOBUF_95] = { 74af22b19dSBen Levinsky .ipi_bit_mask = IPI6_NOBUF_95_TRIG_BIT, 75af22b19dSBen Levinsky .ipi_reg_base = IPI6_NOBUF_95_REG_BASE, 76af22b19dSBen Levinsky .secure_only = 0, 77af22b19dSBen Levinsky }, 78af22b19dSBen Levinsky 79af22b19dSBen Levinsky /* IPI1 NO BUF IPI */ 80af22b19dSBen Levinsky [IPI_ID_1_NOBUF] = { 81af22b19dSBen Levinsky .ipi_bit_mask = IPI1_NOBUF_TRIG_BIT, 82af22b19dSBen Levinsky .ipi_reg_base = IPI1_NOBUF_REG_BASE, 83af22b19dSBen Levinsky .secure_only = 0, 84af22b19dSBen Levinsky }, 85af22b19dSBen Levinsky 86af22b19dSBen Levinsky /* IPI2 NO BUF IPI */ 87af22b19dSBen Levinsky [IPI_ID_2_NOBUF] = { 88af22b19dSBen Levinsky .ipi_bit_mask = IPI2_NOBUF_TRIG_BIT, 89af22b19dSBen Levinsky .ipi_reg_base = IPI2_NOBUF_REG_BASE, 90af22b19dSBen Levinsky .secure_only = 0, 91af22b19dSBen Levinsky }, 92af22b19dSBen Levinsky 93af22b19dSBen Levinsky /* IPI3 NO BUF IPI */ 94af22b19dSBen Levinsky [IPI_ID_3_NOBUF] = { 95af22b19dSBen Levinsky .ipi_bit_mask = IPI3_NOBUF_TRIG_BIT, 96af22b19dSBen Levinsky .ipi_reg_base = IPI3_NOBUF_REG_BASE, 97af22b19dSBen Levinsky .secure_only = 0, 98af22b19dSBen Levinsky }, 99af22b19dSBen Levinsky 100af22b19dSBen Levinsky /* IPI4 NO BUF IPI */ 101af22b19dSBen Levinsky [IPI_ID_4_NOBUF] = { 102af22b19dSBen Levinsky .ipi_bit_mask = IPI4_NOBUF_TRIG_BIT, 103af22b19dSBen Levinsky .ipi_reg_base = IPI4_NOBUF_REG_BASE, 104af22b19dSBen Levinsky .secure_only = 0, 105af22b19dSBen Levinsky }, 106af22b19dSBen Levinsky 107af22b19dSBen Levinsky /* IPI5 NO BUF IPI */ 108af22b19dSBen Levinsky [IPI_ID_5_NOBUF] = { 109af22b19dSBen Levinsky .ipi_bit_mask = IPI5_NOBUF_TRIG_BIT, 110af22b19dSBen Levinsky .ipi_reg_base = IPI5_NOBUF_REG_BASE, 111af22b19dSBen Levinsky .secure_only = 0, 112af22b19dSBen Levinsky }, 113af22b19dSBen Levinsky 114af22b19dSBen Levinsky /* IPI6 NO BUF IPI */ 115af22b19dSBen Levinsky [IPI_ID_6_NOBUF_101] = { 116af22b19dSBen Levinsky .ipi_bit_mask = IPI6_NOBUF_101_TRIG_BIT, 117af22b19dSBen Levinsky .ipi_reg_base = IPI6_NOBUF_101_REG_BASE, 118af22b19dSBen Levinsky .secure_only = 0, 119af22b19dSBen Levinsky }, 120c97857dbSAmit Nagal }; 121c97857dbSAmit Nagal 122c97857dbSAmit Nagal /** 123*f91fbc6bSPrasad Kummari * soc_ipi_config_table_init() - Initialize Versal Gen 2 IPI configuration data. 124c97857dbSAmit Nagal */ 125c97857dbSAmit Nagal void soc_ipi_config_table_init(void) 126c97857dbSAmit Nagal { 127c97857dbSAmit Nagal ipi_config_table_init(ipi_table, ARRAY_SIZE(ipi_table)); 128c97857dbSAmit Nagal } 129