1pub mod constraint;
2pub mod error;
3pub mod features;
4pub mod gpt;
5pub mod metadata;
6pub mod realm;
7pub mod rec;
8pub mod rtt;
9pub mod version;
10
11use crate::define_interface;
12
13define_interface! {
14 command {
15 VERSION = 0xc400_0150,
16 GRANULE_DELEGATE = 0xc400_0151,
17 GRANULE_UNDELEGATE = 0xc400_0152,
18 DATA_CREATE = 0xc400_0153,
19 DATA_CREATE_UNKNOWN = 0xc400_0154,
20 DATA_DESTROY = 0xc400_0155,
21 REALM_ACTIVATE = 0xc400_0157,
22 REALM_CREATE = 0xc400_0158,
23 REALM_DESTROY = 0xc400_0159,
24 REC_CREATE = 0xc400_015a,
25 REC_DESTROY = 0xc400_015b,
26 REC_ENTER = 0xc400_015c,
27 RTT_CREATE = 0xc400_015d,
28 RTT_DESTROY = 0xc400_015e,
29 RTT_MAP_UNPROTECTED = 0xc400_015f,
30 RTT_UNMAP_UNPROTECTED = 0xc400_0162,
31 RTT_READ_ENTRY = 0xc400_0161,
32 PSCI_COMPLETE = 0xc400_0164,
33 FEATURES = 0xc400_0165,
34 RTT_FOLD = 0xc400_0166,
35 REC_AUX_COUNT = 0xc400_0167,
36 RTT_INIT_RIPAS = 0xc400_0168,
37 RTT_SET_RIPAS = 0xc400_0169,
38 ISLET_REALM_SET_METADATA = 0xc700_0150,
40 }
41}
42
43pub const REQ_COMPLETE: usize = 0xc400_018f;
44
45pub const RMM_GET_REALM_ATTEST_KEY: usize = 0xC400_01B2;
46pub const RMM_GET_PLAT_TOKEN: usize = 0xC400_01B3;
47pub const RMM_ISLET_GET_VHUK: usize = 0xC700_01B0;
48
49pub const BOOT_COMPLETE: usize = 0xC400_01CF;
50pub const BOOT_SUCCESS: usize = 0x0;
51
52pub const NOT_SUPPORTED_YET: usize = 0xFFFF_EEEE;
53
54pub const ABI_MAJOR_VERSION: usize = 1;
55pub const ABI_MINOR_VERSION: usize = 0;
56
57pub const HASH_ALGO_SHA256: u8 = 0;
58pub const HASH_ALGO_SHA512: u8 = 1;
59
60pub const RET_FAIL: usize = 0x100;
61pub const RET_EXCEPTION_IRQ: usize = 0x0;
62pub const RET_EXCEPTION_SERROR: usize = 0x1;
63pub const RET_EXCEPTION_TRAP: usize = 0x2;
64pub const RET_EXCEPTION_IL: usize = 0x3;
65
66pub const SUCCESS: usize = 0;
67pub const ERROR_INPUT: usize = 1;
68pub const ERROR_REC: usize = 3;
69pub const SUCCESS_REC_ENTER: usize = 4;
70
71pub const PMU_OVERFLOW_NOT_ACTIVE: u8 = 0;
72pub const PMU_OVERFLOW_ACTIVE: u8 = 1;
73
74pub mod rtt_entry_state {
76 pub const RMI_UNASSIGNED: usize = 0;
77 pub const RMI_ASSIGNED: usize = 1;
78 pub const RMI_TABLE: usize = 2;
79}
80
81pub const MAX_REC_AUX_GRANULES: usize = 16;
82
83pub const EXIT_SYNC: u8 = 0;
84pub const EXIT_IRQ: u8 = 1;
85pub const EXIT_FIQ: u8 = 2;
86pub const EXIT_PSCI: u8 = 3;
87pub const EXIT_RIPAS_CHANGE: u8 = 4;
88pub const EXIT_HOST_CALL: u8 = 5;
89pub const EXIT_SERROR: u8 = 6;