1dc1dfe83SWendy Liang /* 2619bc13eSMichal Simek * Copyright (c) 2017-2018, Arm Limited and Contributors. All rights reserved. 362886363SMichal Simek * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved. 462886363SMichal Simek * Copyright (c) 2022-2023, Advanced Micro Devices, Inc. All rights reserved. 5dc1dfe83SWendy Liang * 6dc1dfe83SWendy Liang * SPDX-License-Identifier: BSD-3-Clause 7dc1dfe83SWendy Liang */ 8dc1dfe83SWendy Liang 9dc1dfe83SWendy Liang /* 10dc1dfe83SWendy Liang * Zynq UltraScale+ MPSoC IPI agent registers access management 11dc1dfe83SWendy Liang */ 12dc1dfe83SWendy Liang 1362886363SMichal Simek #include <lib/utils_def.h> 14703a5aacSJolly Shah #include <ipi.h> 151611ef2bSJolly Shah #include <plat_ipi.h> 1609d40e0eSAntonio Nino Diaz 17dc1dfe83SWendy Liang /* Zynqmp ipi configuration table */ 18f4b8470fSBoyan Karatotev static const struct ipi_config zynqmp_ipi_table[] = { 19dc1dfe83SWendy Liang /* APU IPI */ 20dc1dfe83SWendy Liang { 21dc1dfe83SWendy Liang .ipi_bit_mask = 0x1, 225bcbd2deSVenkatesh Yadav Abbarapu .ipi_reg_base = 0xFF300000U, 23dc1dfe83SWendy Liang .secure_only = 0, 24dc1dfe83SWendy Liang }, 25dc1dfe83SWendy Liang /* RPU0 IPI */ 26dc1dfe83SWendy Liang { 27dc1dfe83SWendy Liang .ipi_bit_mask = 0x100, 285bcbd2deSVenkatesh Yadav Abbarapu .ipi_reg_base = 0xFF310000U, 29dc1dfe83SWendy Liang .secure_only = 0, 30dc1dfe83SWendy Liang }, 31dc1dfe83SWendy Liang /* RPU1 IPI */ 32dc1dfe83SWendy Liang { 33dc1dfe83SWendy Liang .ipi_bit_mask = 0x200, 345bcbd2deSVenkatesh Yadav Abbarapu .ipi_reg_base = 0xFF320000U, 35dc1dfe83SWendy Liang .secure_only = 0, 36dc1dfe83SWendy Liang }, 37dc1dfe83SWendy Liang /* PMU0 IPI */ 38dc1dfe83SWendy Liang { 39dc1dfe83SWendy Liang .ipi_bit_mask = 0x10000, 405bcbd2deSVenkatesh Yadav Abbarapu .ipi_reg_base = 0xFF330000U, 41dc1dfe83SWendy Liang .secure_only = IPI_SECURE_MASK, 42dc1dfe83SWendy Liang }, 43dc1dfe83SWendy Liang /* PMU1 IPI */ 44dc1dfe83SWendy Liang { 45dc1dfe83SWendy Liang .ipi_bit_mask = 0x20000, 465bcbd2deSVenkatesh Yadav Abbarapu .ipi_reg_base = 0xFF331000U, 4785dc2d4dSRajan Vaja .secure_only = 0, 48dc1dfe83SWendy Liang }, 49dc1dfe83SWendy Liang /* PMU2 IPI */ 50dc1dfe83SWendy Liang { 51dc1dfe83SWendy Liang .ipi_bit_mask = 0x40000, 525bcbd2deSVenkatesh Yadav Abbarapu .ipi_reg_base = 0xFF332000U, 53dc1dfe83SWendy Liang .secure_only = IPI_SECURE_MASK, 54dc1dfe83SWendy Liang }, 55dc1dfe83SWendy Liang /* PMU3 IPI */ 56dc1dfe83SWendy Liang { 57dc1dfe83SWendy Liang .ipi_bit_mask = 0x80000, 585bcbd2deSVenkatesh Yadav Abbarapu .ipi_reg_base = 0xFF333000U, 59dc1dfe83SWendy Liang .secure_only = IPI_SECURE_MASK, 60dc1dfe83SWendy Liang }, 61dc1dfe83SWendy Liang /* PL0 IPI */ 62dc1dfe83SWendy Liang { 63dc1dfe83SWendy Liang .ipi_bit_mask = 0x1000000, 645bcbd2deSVenkatesh Yadav Abbarapu .ipi_reg_base = 0xFF340000U, 65dc1dfe83SWendy Liang .secure_only = 0, 66dc1dfe83SWendy Liang }, 67dc1dfe83SWendy Liang /* PL1 IPI */ 68dc1dfe83SWendy Liang { 69dc1dfe83SWendy Liang .ipi_bit_mask = 0x2000000, 705bcbd2deSVenkatesh Yadav Abbarapu .ipi_reg_base = 0xFF350000U, 71dc1dfe83SWendy Liang .secure_only = 0, 72dc1dfe83SWendy Liang }, 73dc1dfe83SWendy Liang /* PL2 IPI */ 74dc1dfe83SWendy Liang { 75dc1dfe83SWendy Liang .ipi_bit_mask = 0x4000000, 765bcbd2deSVenkatesh Yadav Abbarapu .ipi_reg_base = 0xFF360000U, 77dc1dfe83SWendy Liang .secure_only = 0, 78dc1dfe83SWendy Liang }, 79dc1dfe83SWendy Liang /* PL3 IPI */ 80dc1dfe83SWendy Liang { 81dc1dfe83SWendy Liang .ipi_bit_mask = 0x8000000, 825bcbd2deSVenkatesh Yadav Abbarapu .ipi_reg_base = 0xFF370000U, 83dc1dfe83SWendy Liang .secure_only = 0, 84dc1dfe83SWendy Liang }, 85dc1dfe83SWendy Liang }; 86dc1dfe83SWendy Liang 87b8e39f49SJolly Shah /** 88*de7ed953SPrasad Kummari * zynqmp_ipi_config_table_init() - Initialize ZynqMP IPI configuration data. 89b8e39f49SJolly Shah * 90b8e39f49SJolly Shah */ 91b8e39f49SJolly Shah void zynqmp_ipi_config_table_init(void) 92b8e39f49SJolly Shah { 93b8e39f49SJolly Shah ipi_config_table_init(zynqmp_ipi_table, ARRAY_SIZE(zynqmp_ipi_table)); 94b8e39f49SJolly Shah } 95