blob: bab28966046f096380129ac17c8b07664f085be5 [file] [log] [blame]
/*
* Copyright (c) 2024, Arm Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*
*/
#ifndef REALM_PSI_H
#define REALM_PSI_H
#include <stdint.h>
#include <realm_rsi.h>
/*
* Plane Service Interface
* ABIs are designed to be used by auxillary planes to interact with primary plane.
* PSI calls uses HVC conduit which causes Plane exit to P0
* PSI commands and Planes shared buffer can be used for communication.
*/
#define PSI_RETURN_TO_P0 1U
#define PSI_RETURN_TO_PN 2U
/* PSI Commands to return back to P0 */
#define PSI_P0_CALL RSI_HOST_CALL
#define PSI_REALM_CONFIG RSI_REALM_CONFIG
#define PSI_CALL_EXIT_PRINT_CMD HOST_CALL_EXIT_PRINT_CMD
#define PSI_CALL_EXIT_SUCCESS_CMD HOST_CALL_EXIT_SUCCESS_CMD
#define PSI_CALL_EXIT_FAILED_CMD HOST_CALL_EXIT_FAILED_CMD
#define PSI_CALL_GET_PLANE_ID_CMD HOST_CALL_GET_PLANE_ID_CMD
#define PSI_CALL_GET_SHARED_BUFF_CMD HOST_CALL_GET_SHARED_BUFF_CMD
/* Exit back to Plane 0 */
void psi_exit_to_plane0(u_register_t psi_cmd,
u_register_t arg1,
u_register_t arg2,
u_register_t arg3,
u_register_t arg4,
u_register_t arg5,
u_register_t arg6,
u_register_t arg7);
/* Request plane_id from P0 */
u_register_t psi_get_plane_id(void);
#endif /* REALM_PSI_H */