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