mirror of
https://github.com/acidanthera/audk.git
synced 2025-08-20 17:18:11 +02:00
Change naming convention in ArmMmSvc.h with MM to SPM_MM This would make it clear to discern ABI protocol used to communicate with secure partition. Continuous-integration-options: PatchCheck.ignore-multi-package Signed-off-by: Levi Yun <yeoreum.yun@arm.com>
74 lines
3.1 KiB
C
74 lines
3.1 KiB
C
/** @file
|
|
*
|
|
* Copyright (c) 2012-2024, Arm Limited. All rights reserved.
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
*
|
|
**/
|
|
|
|
#ifndef ARM_MM_SVC_H_
|
|
#define ARM_MM_SVC_H_
|
|
|
|
/*
|
|
* SPM_MM FIDs to allow the secure partition to initialise itself, handle
|
|
* delegated events and request the Secure partition manager to perform
|
|
* privileged operations on its behalf.
|
|
*/
|
|
#define ARM_FID_SPM_MM_VERSION_AARCH32 0x84000060
|
|
#define ARM_FID_SPM_MM_SP_EVENT_COMPLETE_AARCH32 0x84000061
|
|
#define ARM_FID_SPM_MM_SP_GET_MEM_ATTRIBUTES_AARCH32 0x84000064
|
|
#define ARM_FID_SPM_MM_SP_SET_MEM_ATTRIBUTES_AARCH32 0x84000065
|
|
#define ARM_FID_SPM_MM_SP_EVENT_COMPLETE_AARCH64 0xC4000061
|
|
#define ARM_FID_SPM_MM_SP_GET_MEM_ATTRIBUTES_AARCH64 0xC4000064
|
|
#define ARM_FID_SPM_MM_SP_SET_MEM_ATTRIBUTES_AARCH64 0xC4000065
|
|
|
|
/* Generic IDs when using AArch32 or AArch64 execution state */
|
|
#ifdef MDE_CPU_AARCH64
|
|
#define ARM_FID_SPM_MM_SP_EVENT_COMPLETE ARM_FID_SPM_MM_SP_EVENT_COMPLETE_AARCH64
|
|
#define ARM_FID_SPM_MM_SP_GET_MEM_ATTRIBUTES ARM_FID_SPM_MM_SP_GET_MEM_ATTRIBUTES_AARCH64
|
|
#define ARM_FID_SPM_MM_SP_SET_MEM_ATTRIBUTES ARM_FID_SPM_MM_SP_SET_MEM_ATTRIBUTES_AARCH64
|
|
#endif
|
|
#ifdef MDE_CPU_ARM
|
|
#define ARM_FID_SPM_MM_SP_EVENT_COMPLETE ARM_FID_SPM_MM_SP_EVENT_COMPLETE_AARCH32
|
|
#define ARM_FID_SPM_MM_SP_GET_MEM_ATTRIBUTES ARM_FID_SPM_MM_SP_GET_MEM_ATTRIBUTES_AARCH32
|
|
#define ARM_FID_SPM_MM_SP_SET_MEM_ATTRIBUTES ARM_FID_SPM_MM_SP_SET_MEM_ATTRIBUTES_AARCH32
|
|
#endif
|
|
|
|
#define ARM_SPM_MM_SET_MEM_ATTR_DATA_PERM_MASK 0x3
|
|
#define ARM_SPM_MM_SET_MEM_ATTR_DATA_PERM_SHIFT 0
|
|
#define ARM_SPM_MM_SET_MEM_ATTR_DATA_PERM_NO_ACCESS 0
|
|
#define ARM_SPM_MM_SET_MEM_ATTR_DATA_PERM_RW 1
|
|
#define ARM_SPM_MM_SET_MEM_ATTR_DATA_PERM_RO 3
|
|
|
|
#define ARM_SPM_MM_SET_MEM_ATTR_CODE_PERM_MASK 0x1
|
|
#define ARM_SPM_MM_SET_MEM_ATTR_CODE_PERM_SHIFT 2
|
|
#define ARM_SPM_MM_SET_MEM_ATTR_CODE_PERM_X 0
|
|
#define ARM_SPM_MM_SET_MEM_ATTR_CODE_PERM_XN 1
|
|
|
|
#define ARM_SPM_MM_SET_MEM_ATTR_MAKE_PERM_REQUEST(dataperm, codeperm) \
|
|
((((codeperm) & ARM_SPM_MM_SET_MEM_ATTR_CODE_PERM_MASK) << \
|
|
ARM_SPM_MM_SET_MEM_ATTR_CODE_PERM_SHIFT) | \
|
|
(( (dataperm) & ARM_SPM_MM_SET_MEM_ATTR_DATA_PERM_MASK) << \
|
|
ARM_SPM_MM_SET_MEM_ATTR_DATA_PERM_SHIFT))
|
|
|
|
/* SPM_MM SVC Return error codes */
|
|
#define ARM_SPM_MM_RET_SUCCESS 0
|
|
#define ARM_SPM_MM_RET_NOT_SUPPORTED -1
|
|
#define ARM_SPM_MM_RET_INVALID_PARAMS -2
|
|
#define ARM_SPM_MM_RET_DENIED -3
|
|
#define ARM_SPM_MM_RET_NO_MEMORY -5
|
|
|
|
#define ARM_SPM_MM_SUPPORT_MAJOR_VERSION 0
|
|
#define ARM_SPM_MM_SUPPORT_MINOR_VERSION 1
|
|
#define ARM_SPM_MM_VERSION_MASK 0xFFFF
|
|
#define ARM_SPM_MM_MAJOR_VERSION_SHIFT 16
|
|
#define ARM_SPM_MM_MINOR_VERSION_SHIFT 0
|
|
|
|
#define ARM_SPM_MM_MAJOR_VERSION_GET(version) \
|
|
(((version) >> ARM_SPM_MM_MAJOR_VERSION_SHIFT) & ARM_SPM_MM_VERSION_MASK)
|
|
|
|
#define ARM_SPM_MM_MINOR_VERSION_GET(version) \
|
|
(((version) >> ARM_SPM_MM_MINOR_VERSION_SHIFT) & ARM_SPM_MM_VERSION_MASK)
|
|
|
|
#endif // ARM_MM_SVC_H_
|