blob: c11132696ca3d8eee027011a81d81091c1f7f3c7 [file] [log] [blame]
Antonio Nino Diaz35b37f02018-01-08 17:33:34 +00001/*
Antonio Nino Diazcbccdbf2019-01-21 11:53:29 +00002 * Copyright (c) 2018-2019, ARM Limited and Contributors. All rights reserved.
Antonio Nino Diaz35b37f02018-01-08 17:33:34 +00003 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
Antonio Nino Diaz5eb88372018-11-08 10:20:19 +00007#ifndef MM_SVC_H
8#define MM_SVC_H
Antonio Nino Diaz35b37f02018-01-08 17:33:34 +00009
Antonio Nino Diazcbccdbf2019-01-21 11:53:29 +000010#if SPM_MM
Antonio Nino Diaz5c673e82018-10-30 12:50:41 +000011
Antonio Nino Diaze0f90632018-12-14 00:18:21 +000012#include <lib/utils_def.h>
Antonio Nino Diaz35b37f02018-01-08 17:33:34 +000013
14#define MM_VERSION_MAJOR U(1)
15#define MM_VERSION_MAJOR_SHIFT 16
16#define MM_VERSION_MAJOR_MASK U(0x7FFF)
17#define MM_VERSION_MINOR U(0)
18#define MM_VERSION_MINOR_SHIFT 0
19#define MM_VERSION_MINOR_MASK U(0xFFFF)
20#define MM_VERSION_FORM(major, minor) ((major << MM_VERSION_MAJOR_SHIFT) | (minor))
21#define MM_VERSION_COMPILED MM_VERSION_FORM(MM_VERSION_MAJOR, MM_VERSION_MINOR)
22
23/*
24 * SMC IDs defined in [1] for accessing MM services from the Non-secure world.
25 * These FIDs occupy the range 0x40 - 0x5f.
26 * [1] DEN0060A_ARM_MM_Interface_Specification.pdf
27 */
28#define MM_VERSION_AARCH32 U(0x84000040)
29
30#define MM_COMMUNICATE_AARCH64 U(0xC4000041)
31#define MM_COMMUNICATE_AARCH32 U(0x84000041)
32
Antonio Nino Diazcbccdbf2019-01-21 11:53:29 +000033#endif /* SPM_MM */
Antonio Nino Diaz5c673e82018-10-30 12:50:41 +000034
Antonio Nino Diaz5eb88372018-11-08 10:20:19 +000035#endif /* MM_SVC_H */