xref: /rk3399_ARM-atf/plat/xilinx/zynqmp/include/plat_ipi.h (revision 65c80d60a2c4f22765cee0988c3b4a7af3fc02ba)
11611ef2bSJolly Shah /*
21611ef2bSJolly Shah  * Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved.
31611ef2bSJolly Shah  *
41611ef2bSJolly Shah  * SPDX-License-Identifier: BSD-3-Clause
51611ef2bSJolly Shah  */
61611ef2bSJolly Shah 
71611ef2bSJolly Shah /* ZynqMP IPI management enums and defines */
81611ef2bSJolly Shah 
91611ef2bSJolly Shah #ifndef PLAT_IPI_H
101611ef2bSJolly Shah #define PLAT_IPI_H
111611ef2bSJolly Shah 
121611ef2bSJolly Shah #include <stdint.h>
13b8e39f49SJolly Shah #include <ipi.h>
141611ef2bSJolly Shah 
151611ef2bSJolly Shah /*********************************************************************
161611ef2bSJolly Shah  * IPI agent IDs macros
171611ef2bSJolly Shah  ********************************************************************/
181611ef2bSJolly Shah #define IPI_ID_APU	0U
191611ef2bSJolly Shah #define IPI_ID_RPU0	1U
201611ef2bSJolly Shah #define IPI_ID_RPU1	2U
211611ef2bSJolly Shah #define IPI_ID_PMU0	3U
221611ef2bSJolly Shah #define IPI_ID_PMU1	4U
231611ef2bSJolly Shah #define IPI_ID_PMU2	5U
241611ef2bSJolly Shah #define IPI_ID_PMU3	6U
251611ef2bSJolly Shah #define IPI_ID_PL0	7U
261611ef2bSJolly Shah #define IPI_ID_PL1	8U
271611ef2bSJolly Shah #define IPI_ID_PL2	9U
281611ef2bSJolly Shah #define IPI_ID_PL3	10U
291611ef2bSJolly Shah 
301611ef2bSJolly Shah /*********************************************************************
31*65c80d60SJolly Shah  * IPI message buffers
32*65c80d60SJolly Shah  ********************************************************************/
33*65c80d60SJolly Shah #define IPI_BUFFER_BASEADDR	0xFF990000U
34*65c80d60SJolly Shah 
35*65c80d60SJolly Shah #define IPI_BUFFER_APU_BASE	(IPI_BUFFER_BASEADDR + 0x400U)
36*65c80d60SJolly Shah #define IPI_BUFFER_PMU_BASE	(IPI_BUFFER_BASEADDR + 0xE00U)
37*65c80d60SJolly Shah 
38*65c80d60SJolly Shah #define IPI_BUFFER_LOCAL_BASE	IPI_BUFFER_APU_BASE
39*65c80d60SJolly Shah #define IPI_BUFFER_REMOTE_BASE	IPI_BUFFER_PMU_BASE
40*65c80d60SJolly Shah 
41*65c80d60SJolly Shah #define IPI_BUFFER_TARGET_LOCAL_OFFSET	0x80U
42*65c80d60SJolly Shah #define IPI_BUFFER_TARGET_REMOTE_OFFSET	0x1C0U
43*65c80d60SJolly Shah 
44*65c80d60SJolly Shah #define IPI_BUFFER_MAX_WORDS	8
45*65c80d60SJolly Shah 
46*65c80d60SJolly Shah #define IPI_BUFFER_REQ_OFFSET	0x0U
47*65c80d60SJolly Shah #define IPI_BUFFER_RESP_OFFSET	0x20U
48*65c80d60SJolly Shah 
49*65c80d60SJolly Shah /*********************************************************************
5063436bdeSJolly Shah  * Platform specific IPI API declarations
511611ef2bSJolly Shah  ********************************************************************/
521611ef2bSJolly Shah 
53b8e39f49SJolly Shah /* Configure IPI table for zynqmp */
54b8e39f49SJolly Shah void zynqmp_ipi_config_table_init(void);
55b8e39f49SJolly Shah 
561611ef2bSJolly Shah #endif /* PLAT_IPI_H */
57