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 */
zynqmp_ipi_config_table_init(void)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