diff --git a/plat/xilinx/zynqmp/include/plat_ipi.h b/plat/xilinx/zynqmp/include/plat_ipi.h new file mode 100644 index 0000000..6d036af --- /dev/null +++ b/plat/xilinx/zynqmp/include/plat_ipi.h @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +/* ZynqMP IPI management enums and defines */ + +#ifndef PLAT_IPI_H +#define PLAT_IPI_H + +#include + +/********************************************************************* + * IPI agent IDs macros + ********************************************************************/ +#define IPI_ID_APU 0U +#define IPI_ID_RPU0 1U +#define IPI_ID_RPU1 2U +#define IPI_ID_PMU0 3U +#define IPI_ID_PMU1 4U +#define IPI_ID_PMU2 5U +#define IPI_ID_PMU3 6U +#define IPI_ID_PL0 7U +#define IPI_ID_PL1 8U +#define IPI_ID_PL2 9U +#define IPI_ID_PL3 10U + +/********************************************************************* + * IPI mailbox status macros + ********************************************************************/ +#define IPI_MB_STATUS_IDLE 0 +#define IPI_MB_STATUS_SEND_PENDING 1 +#define IPI_MB_STATUS_RECV_PENDING 2 + +/********************************************************************* + * IPI mailbox call is secure or not macros + ********************************************************************/ +#define IPI_MB_CALL_NOTSECURE 0 +#define IPI_MB_CALL_SECURE 1 + +/********************************************************************* + * IPI APIs declarations + ********************************************************************/ + +/* Validate IPI mailbox access */ +int ipi_mb_validate(uint32_t local, uint32_t remote, unsigned int is_secure); + +/* Open the IPI mailbox */ +void ipi_mb_open(uint32_t local, uint32_t remote); + +/* Release the IPI mailbox */ +void ipi_mb_release(uint32_t local, uint32_t remote); + +/* Enquire IPI mailbox status */ +int ipi_mb_enquire_status(uint32_t local, uint32_t remote); + +/* Trigger notification on the IPI mailbox */ +void ipi_mb_notify(uint32_t local, uint32_t remote, uint32_t is_blocking); + +/* Ack IPI mailbox notification */ +void ipi_mb_ack(uint32_t local, uint32_t remote); + +/* Disable IPI mailbox notification interrupt */ +void ipi_mb_disable_irq(uint32_t local, uint32_t remote); + +/* Enable IPI mailbox notification interrupt */ +void ipi_mb_enable_irq(uint32_t local, uint32_t remote); + +#endif /* PLAT_IPI_H */ diff --git a/plat/xilinx/zynqmp/ipi_mailbox_service/ipi_mailbox_svc.c b/plat/xilinx/zynqmp/ipi_mailbox_service/ipi_mailbox_svc.c index 3aa0b75..932d1e7 100644 --- a/plat/xilinx/zynqmp/ipi_mailbox_service/ipi_mailbox_svc.c +++ b/plat/xilinx/zynqmp/ipi_mailbox_service/ipi_mailbox_svc.c @@ -15,10 +15,10 @@ #include #include #include +#include #include #include "ipi_mailbox_svc.h" -#include "../zynqmp_ipi.h" #include "../../../services/spd/trusty/smcall.h" /********************************************************************* diff --git a/plat/xilinx/zynqmp/pm_service/pm_ipi.c b/plat/xilinx/zynqmp/pm_service/pm_ipi.c index 66393ef..88e23f0 100644 --- a/plat/xilinx/zynqmp/pm_service/pm_ipi.c +++ b/plat/xilinx/zynqmp/pm_service/pm_ipi.c @@ -7,10 +7,10 @@ #include #include #include +#include #include #include -#include "../zynqmp_ipi.h" #include "pm_ipi.h" /* IPI message buffers */ diff --git a/plat/xilinx/zynqmp/sip_svc_setup.c b/plat/xilinx/zynqmp/sip_svc_setup.c index 8d23a01..5b87679 100644 --- a/plat/xilinx/zynqmp/sip_svc_setup.c +++ b/plat/xilinx/zynqmp/sip_svc_setup.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2017, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -9,9 +9,9 @@ #include #include +#include #include "ipi_mailbox_svc.h" #include "pm_svc_main.h" -#include "zynqmp_ipi.h" /* SMC function IDs for SiP Service queries */ #define ZYNQMP_SIP_SVC_CALL_COUNT 0x8200ff00 diff --git a/plat/xilinx/zynqmp/zynqmp_ipi.c b/plat/xilinx/zynqmp/zynqmp_ipi.c index 2830ea3..96f2b9c 100644 --- a/plat/xilinx/zynqmp/zynqmp_ipi.c +++ b/plat/xilinx/zynqmp/zynqmp_ipi.c @@ -15,10 +15,9 @@ #include #include #include +#include #include -#include "zynqmp_ipi.h" - /********************************************************************* * Macros definitions ********************************************************************/ diff --git a/plat/xilinx/zynqmp/zynqmp_ipi.h b/plat/xilinx/zynqmp/zynqmp_ipi.h deleted file mode 100644 index b9b40dd..0000000 --- a/plat/xilinx/zynqmp/zynqmp_ipi.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (c) 2017, ARM Limited and Contributors. All rights reserved. - * - * SPDX-License-Identifier: BSD-3-Clause - */ - -/* ZynqMP IPI management enums and defines */ - -#ifndef ZYNQMP_IPI_H -#define ZYNQMP_IPI_H - -#include - -/********************************************************************* - * IPI agent IDs macros - ********************************************************************/ -#define IPI_ID_APU 0U -#define IPI_ID_RPU0 1U -#define IPI_ID_RPU1 2U -#define IPI_ID_PMU0 3U -#define IPI_ID_PMU1 4U -#define IPI_ID_PMU2 5U -#define IPI_ID_PMU3 6U -#define IPI_ID_PL0 7U -#define IPI_ID_PL1 8U -#define IPI_ID_PL2 9U -#define IPI_ID_PL3 10U - -/********************************************************************* - * IPI mailbox status macros - ********************************************************************/ -#define IPI_MB_STATUS_IDLE 0 -#define IPI_MB_STATUS_SEND_PENDING 1 -#define IPI_MB_STATUS_RECV_PENDING 2 - -/********************************************************************* - * IPI mailbox call is secure or not macros - ********************************************************************/ -#define IPI_MB_CALL_NOTSECURE 0 -#define IPI_MB_CALL_SECURE 1 - -/********************************************************************* - * IPI APIs declarations - ********************************************************************/ - -/* Validate IPI mailbox access */ -int ipi_mb_validate(uint32_t local, uint32_t remote, unsigned int is_secure); - -/* Open the IPI mailbox */ -void ipi_mb_open(uint32_t local, uint32_t remote); - -/* Release the IPI mailbox */ -void ipi_mb_release(uint32_t local, uint32_t remote); - -/* Enquire IPI mailbox status */ -int ipi_mb_enquire_status(uint32_t local, uint32_t remote); - -/* Trigger notification on the IPI mailbox */ -void ipi_mb_notify(uint32_t local, uint32_t remote, uint32_t is_blocking); - -/* Ack IPI mailbox notification */ -void ipi_mb_ack(uint32_t local, uint32_t remote); - -/* Disable IPI mailbox notification interrupt */ -void ipi_mb_disable_irq(uint32_t local, uint32_t remote); - -/* Enable IPI mailbox notification interrupt */ -void ipi_mb_enable_irq(uint32_t local, uint32_t remote); - -#endif /* ZYNQMP_IPI_H */