mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-15 17:14:21 +00:00

Added SiP calls to FVP platform to protect/unprotect a memory range. These leverage rme features to change the PAS of a given memory range from non-secure to secure. The mentioned call is leveraged by the SPMC in the memory sharing flow, when memory is shared from the normal world onto the secure world. More details in the SPM related patches. Signed-off-by: Olivier Deprez <olivier.deprez@arm.com> Signed-off-by: J-Alves <joao.alves@arm.com> Change-Id: Iaf15d8603a549d247ffb1fc14c16bfb94d0e178a
65 lines
1.6 KiB
C
65 lines
1.6 KiB
C
/*
|
|
* Copyright (c) 2016-2019,2021-2024, Arm Limited and Contributors. All rights reserved.
|
|
*
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
*/
|
|
|
|
#ifndef ARM_SIP_SVC_H
|
|
#define ARM_SIP_SVC_H
|
|
|
|
#include <lib/utils_def.h>
|
|
|
|
/* SMC function IDs for SiP Service queries */
|
|
|
|
#define ARM_SIP_SVC_CALL_COUNT U(0x8200ff00)
|
|
#define ARM_SIP_SVC_UID U(0x8200ff01)
|
|
/* U(0x8200ff02) is reserved */
|
|
#define ARM_SIP_SVC_VERSION U(0x8200ff03)
|
|
|
|
/* PMF_SMC_GET_TIMESTAMP_32 0x82000010 */
|
|
/* PMF_SMC_GET_TIMESTAMP_64 0xC2000010 */
|
|
|
|
/* Function ID for requesting state switch of lower EL */
|
|
#define ARM_SIP_SVC_EXE_STATE_SWITCH U(0x82000020)
|
|
|
|
/* DEBUGFS_SMC_32 0x82000030U */
|
|
/* DEBUGFS_SMC_64 0xC2000030U */
|
|
|
|
/*
|
|
* Arm(R) Ethos(TM)-N NPU SiP SMC function IDs
|
|
* 0xC2000050-0xC200005F
|
|
* 0x82000050-0x8200005F
|
|
*/
|
|
|
|
/* ARM SiP Service Calls version numbers */
|
|
#define ARM_SIP_SVC_VERSION_MAJOR U(0x0)
|
|
#define ARM_SIP_SVC_VERSION_MINOR U(0x2)
|
|
|
|
/*
|
|
* Arm SiP SMC calls that are primarily used for testing purposes.
|
|
*/
|
|
#if PLAT_TEST_SPM
|
|
#define ARM_SIP_SET_INTERRUPT_PENDING U(0x82000100)
|
|
#endif
|
|
|
|
/**
|
|
* Arm SiP Service Call for the SPM to leverage RME to protect a give memory range.
|
|
* Protected memory range is one whose PAS was made secure.
|
|
* Unprotect relates to reverting a protect operation.
|
|
*/
|
|
#if SPMD_SPM_AT_SEL2 && ENABLE_RME
|
|
#define PLAT_PROTECT_MEM_SMC64 0xC2000101
|
|
#define PLAT_UNPROTECT_MEM_SMC64 0xC2000102
|
|
#endif
|
|
|
|
/* SiP handler specific to each Arm platform. */
|
|
uintptr_t plat_arm_sip_handler(uint32_t smc_fid,
|
|
u_register_t x1,
|
|
u_register_t x2,
|
|
u_register_t x3,
|
|
u_register_t x4,
|
|
void *cookie,
|
|
void *handle,
|
|
u_register_t flags);
|
|
|
|
#endif /* ARM_SIP_SVC_H */
|