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