xref: /rk3399_ARM-atf/plat/xilinx/zynqmp/include/plat_ipi.h (revision e80770449a75b04fc41e743ae3a9da9a2c353ff9)
11611ef2bSJolly Shah /*
2619bc13eSMichal Simek  * Copyright (c) 2017-2018, Arm Limited and Contributors. All rights reserved.
3bfd06265SMichal Simek  * Copyright (c) 2019-2022, Xilinx, Inc. All rights reserved.
4bfd06265SMichal Simek  * Copyright (c) 2022-2023, Advanced Micro Devices, Inc. All rights reserved.
51611ef2bSJolly Shah  *
61611ef2bSJolly Shah  * SPDX-License-Identifier: BSD-3-Clause
71611ef2bSJolly Shah  */
81611ef2bSJolly Shah 
91611ef2bSJolly Shah /* ZynqMP IPI management enums and defines */
101611ef2bSJolly Shah 
111611ef2bSJolly Shah #ifndef PLAT_IPI_H
121611ef2bSJolly Shah #define PLAT_IPI_H
131611ef2bSJolly Shah 
141611ef2bSJolly Shah #include <stdint.h>
15b8e39f49SJolly Shah #include <ipi.h>
161611ef2bSJolly Shah 
171611ef2bSJolly Shah /*********************************************************************
181611ef2bSJolly Shah  * IPI agent IDs macros
191611ef2bSJolly Shah  ********************************************************************/
201611ef2bSJolly Shah #define IPI_ID_APU	0U
211611ef2bSJolly Shah #define IPI_ID_RPU0	1U
221611ef2bSJolly Shah #define IPI_ID_RPU1	2U
231611ef2bSJolly Shah #define IPI_ID_PMU0	3U
241611ef2bSJolly Shah #define IPI_ID_PMU1	4U
251611ef2bSJolly Shah #define IPI_ID_PMU2	5U
261611ef2bSJolly Shah #define IPI_ID_PMU3	6U
271611ef2bSJolly Shah #define IPI_ID_PL0	7U
281611ef2bSJolly Shah #define IPI_ID_PL1	8U
291611ef2bSJolly Shah #define IPI_ID_PL2	9U
301611ef2bSJolly Shah #define IPI_ID_PL3	10U
311611ef2bSJolly Shah 
321611ef2bSJolly Shah /*********************************************************************
3365c80d60SJolly Shah  * IPI message buffers
3465c80d60SJolly Shah  ********************************************************************/
3565c80d60SJolly Shah #define IPI_BUFFER_BASEADDR	0xFF990000U
3665c80d60SJolly Shah 
37*068b0bc6SMichal Simek #define IPI_LOCAL_ID		IPI_ID_APU
38*068b0bc6SMichal Simek #define IPI_REMOTE_ID		IPI_ID_PMU0
39*068b0bc6SMichal Simek 
40bfd06265SMichal Simek #define IPI_BUFFER_LOCAL_BASE	(IPI_BUFFER_BASEADDR + 0x400U)
41bfd06265SMichal Simek #define IPI_BUFFER_REMOTE_BASE	(IPI_BUFFER_BASEADDR + 0xE00U)
4265c80d60SJolly Shah 
4365c80d60SJolly Shah #define IPI_BUFFER_TARGET_LOCAL_OFFSET	0x80U
4465c80d60SJolly Shah #define IPI_BUFFER_TARGET_REMOTE_OFFSET	0x1C0U
4565c80d60SJolly Shah 
46590519a8SHariBabu Gattem #define IPI_BUFFER_MAX_WORDS	8U
4765c80d60SJolly Shah 
4865c80d60SJolly Shah #define IPI_BUFFER_REQ_OFFSET	0x0U
4965c80d60SJolly Shah #define IPI_BUFFER_RESP_OFFSET	0x20U
5065c80d60SJolly Shah 
5165c80d60SJolly Shah /*********************************************************************
5263436bdeSJolly Shah  * Platform specific IPI API declarations
531611ef2bSJolly Shah  ********************************************************************/
541611ef2bSJolly Shah 
55b8e39f49SJolly Shah /* Configure IPI table for zynqmp */
56b8e39f49SJolly Shah void zynqmp_ipi_config_table_init(void);
57b8e39f49SJolly Shah 
581611ef2bSJolly Shah #endif /* PLAT_IPI_H */
59