1 /* 2 * Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 /* ZynqMP IPI management enums and defines */ 8 9 #ifndef PLAT_IPI_H 10 #define PLAT_IPI_H 11 12 #include <stdint.h> 13 #include <ipi.h> 14 15 /********************************************************************* 16 * IPI agent IDs macros 17 ********************************************************************/ 18 #define IPI_ID_APU 0U 19 #define IPI_ID_RPU0 1U 20 #define IPI_ID_RPU1 2U 21 #define IPI_ID_PMU0 3U 22 #define IPI_ID_PMU1 4U 23 #define IPI_ID_PMU2 5U 24 #define IPI_ID_PMU3 6U 25 #define IPI_ID_PL0 7U 26 #define IPI_ID_PL1 8U 27 #define IPI_ID_PL2 9U 28 #define IPI_ID_PL3 10U 29 30 /********************************************************************* 31 * IPI message buffers 32 ********************************************************************/ 33 #define IPI_BUFFER_BASEADDR 0xFF990000U 34 35 #define IPI_BUFFER_APU_BASE (IPI_BUFFER_BASEADDR + 0x400U) 36 #define IPI_BUFFER_PMU_BASE (IPI_BUFFER_BASEADDR + 0xE00U) 37 38 #define IPI_BUFFER_LOCAL_BASE IPI_BUFFER_APU_BASE 39 #define IPI_BUFFER_REMOTE_BASE IPI_BUFFER_PMU_BASE 40 41 #define IPI_BUFFER_TARGET_LOCAL_OFFSET 0x80U 42 #define IPI_BUFFER_TARGET_REMOTE_OFFSET 0x1C0U 43 44 #define IPI_BUFFER_MAX_WORDS 8 45 46 #define IPI_BUFFER_REQ_OFFSET 0x0U 47 #define IPI_BUFFER_RESP_OFFSET 0x20U 48 49 /********************************************************************* 50 * Platform specific IPI API declarations 51 ********************************************************************/ 52 53 /* Configure IPI table for zynqmp */ 54 void zynqmp_ipi_config_table_init(void); 55 56 #endif /* PLAT_IPI_H */ 57