blob: 04f79c14f7c3cd58195ed0d8c221433247d3562c [file] [log] [blame]
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +02001/*
2 * Copyright (c) 2018, Arm Limited. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7#ifndef __PMF_H__
8#define __PMF_H__
9
10#ifndef __ASSEMBLY__
11#include <assert.h>
12#include <platform_def.h>
13#include <stdbool.h>
14#include <stdint.h>
15#endif
16
17/*
18 * Constants used for/by PMF services.
19 */
20#define PMF_ARM_TIF_IMPL_ID 0x41
21#define PMF_TID_SHIFT 0
22#define PMF_TID_MASK (0xFF << PMF_TID_SHIFT)
23#define PMF_SVC_ID_SHIFT 10
24#define PMF_SVC_ID_MASK (0x3F << PMF_SVC_ID_SHIFT)
25#define PMF_IMPL_ID_SHIFT 24
26#define PMF_IMPL_ID_MASK (0xFFU << PMF_IMPL_ID_SHIFT)
27
28/*
29 * Flags passed to PMF_GET_TIMESTAMP_XXX and PMF_CAPTURE_TIMESTAMP
30 */
31#define PMF_CACHE_MAINT (1 << 0)
32#define PMF_NO_CACHE_MAINT 0
33
34/*
35 * Defines for PMF SMC function ids.
36 */
37#ifdef AARCH32
38#define PMF_SMC_GET_TIMESTAMP 0x82000010
39#else
40#define PMF_SMC_GET_TIMESTAMP 0xC2000010
41#endif
42
43#define PMF_NUM_SMC_CALLS 2
44
45/* Following are the supported PMF service IDs */
46#define PMF_PSCI_STAT_SVC_ID 0
47#define PMF_RT_INSTR_SVC_ID 1
48
49#endif /* __PMF_H__ */