1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
/** @file
Definitions for Arm CCA Realm Service Interface.
Copyright (c) 2022 - 2023, ARM Ltd. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
@par Glossary:
- Rsi or RSI - Realm Service Interface
- IPA - Intermediate Physical Address
@par Reference(s):
- Realm Management Monitor (RMM) Specification, version 1.0-rel0
(https://developer.arm.com/documentation/den0137/)
**/
#pragma once
/** RSI Command Return codes
See Section B5.4.1, RMM Specification, version 1.0-rel0.
The width of the RsiCommandReturnCode enumeration is 64 bits.
*/
#define RSI_SUCCESS 0ULL
#define RSI_ERROR_INPUT 1ULL
#define RSI_ERROR_STATE 2ULL
#define RSI_INCOMPLETE 3ULL
#define RSI_ERROR_UNKNOWN 4ULL
/** RSI interface Version
See Section B5.4.4, RMM Specification, version 1.0-rel0.
The width of the RsiInterfaceVersion fieldset is 64 bits.
*/
#define RSI_VER_MINOR_MASK 0x0000FFFFULL
#define RSI_VER_MAJOR_MASK 0x7FFF0000ULL
#define RSI_VER_MAJOR_SHIFT 16
#define RSI_VERSION_MASK (RSI_VER_MAJOR_MASK | RSI_VER_MINOR_MASK)
#define RMM_VERSION(Major, Minor) ((Minor & RSI_VER_MINOR_MASK) | \
((Major << RSI_VER_MAJOR_SHIFT) & RSI_VER_MAJOR_MASK))
#define RSI_GET_MAJOR_REVISION(Rev) \
((Rev & RSI_VER_MAJOR_MASK) >> RSI_VER_MAJOR_SHIFT)
#define RSI_GET_MINOR_REVISION(Rev) \
((Rev & RSI_VER_MINOR_MASK))
//
// Static assert checks.
//
STATIC_ASSERT (
sizeof (ARM_CCA_REALM_CONFIG) == SIZE_4KB,
"sizeof (ARM_CCA_REALM_CONFIG) == SIZE_4KB"
);
STATIC_ASSERT (
OFFSET_OF (ARM_CCA_REALM_CONFIG, IpaWidth) == ARM_CCA_REALM_CFG_OFFSET_IPA_WIDTH,
"OFFSET_OF (ARM_CCA_REALM_CONFIG, IpaWidth) == ARM_CCA_REALM_CFG_OFFSET_IPA_WIDTH"
);
STATIC_ASSERT (
OFFSET_OF (ARM_CCA_REALM_CONFIG, HashAlgorithm) == ARM_CCA_REALM_CFG_OFFSET_HASH_ALGO,
"OFFSET_OF (ARM_CCA_REALM_CONFIG, HashAlgorithm) == ARM_CCA_REALM_CFG_OFFSET_HASH_ALGO"
);
STATIC_ASSERT (
OFFSET_OF (ARM_CCA_REALM_CONFIG, Reserved) == ARM_CCA_REALM_CFG_OFFSET_RESERVED,
"OFFSET_OF (ARM_CCA_REALM_CONFIG, Reserved) == ARM_CCA_REALM_CFG_OFFSET_RESERVED"
);
STATIC_ASSERT (
OFFSET_OF (ARM_CCA_REALM_CONFIG, Rpv) == ARM_CCA_REALM_CFG_OFFSET_RPV,
"OFFSET_OF (ARM_CCA_REALM_CONFIG, Rpv) == ARM_CCA_REALM_CFG_OFFSET_RPV"
);
STATIC_ASSERT (
OFFSET_OF (ARM_CCA_REALM_CONFIG, Reserved1) == ARM_CCA_REALM_CFG_OFFSET_RESERVED1,
"OFFSET_OF (ARM_CCA_REALM_CONFIG, Reserved1) == ARM_CCA_REALM_CFG_OFFSET_RESERVED1"
);
STATIC_ASSERT (
sizeof (ARM_CCA_RSI_HOST_CALL_ARGS) == ARM_CCA_RSI_HOST_CALL_ARGS_SIZE,
"sizeof (ARM_CCA_RSI_HOST_CALL_ARGS) == ARM_CCA_RSI_HOST_CALL_ARGS_SIZE"
);
|