Vishal Bhoj | 82c8071 | 2015-12-15 21:13:33 +0530 | [diff] [blame^] | 1 | /** @file
|
| 2 | *
|
| 3 | * Copyright (c) 2012-2013, ARM Limited. All rights reserved.
|
| 4 | *
|
| 5 | * This program and the accompanying materials
|
| 6 | * are licensed and made available under the terms and conditions of the BSD License
|
| 7 | * which accompanies this distribution. The full text of the license may be found at
|
| 8 | * http://opensource.org/licenses/bsd-license.php
|
| 9 | *
|
| 10 | * THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
| 11 | * WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
| 12 | *
|
| 13 | **/
|
| 14 |
|
| 15 | #ifndef __ARM_TRUSTZONE_SMC_H__
|
| 16 | #define __ARM_TRUSTZONE_SMC_H__
|
| 17 |
|
| 18 | #define ARM_TRUSTZONE_UID_4LETTERID 0x1
|
| 19 | #define ARM_TRUSTZONE_UID_MD5 0x2
|
| 20 |
|
| 21 | #define ARM_TRUSTZONE_ARM_UID 0x40524d48 // "ARMH"
|
| 22 |
|
| 23 | #define IS_ARM_TRUSTZONE_SUPPORTED_SMC(Rx,Region) (((UINTN)(Rx) >= (UINTN)ARM_TRUSTZONE_##Region##_SMC_ID_START) && ((UINTN)(Rx) <= (UINTN)ARM_TRUSTZONE_##Region##_SMC_ID_END))
|
| 24 |
|
| 25 | #define IS_ARM_TRUSTZONE_DEPRECIATED_SMC(Rx) ((UINTN)(Rx) <= (UINTN)ARM_TRUSTZONE_DEPRECIATED_SMC_ID_END)
|
| 26 | #define IS_ARM_TRUSTZONE_TRUSTED_OS_SMC(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC(Rx,TRUSTED_OS)
|
| 27 | #define IS_ARM_TRUSTZONE_ARM_FAST_SMC(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC(Rx,ARM_FAST)
|
| 28 | #define IS_ARM_TRUSTZONE_SIP_FAST_SMC(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC(Rx,SIP_FAST)
|
| 29 | #define IS_ARM_TRUSTZONE_ODM_FAST_SMC(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC(Rx,ODM_FAST)
|
| 30 | #define IS_ARM_TRUSTZONE_OEM_FAST_SMC(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC(Rx,OEM_FAST)
|
| 31 | #define IS_ARM_TRUSTZONE_TRUSTED_USER_FAST_SMC(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC(Rx,TRUSTED_USER_FAST)
|
| 32 | #define IS_ARM_TRUSTZONE_TRUSTED_OS_FAST_SMC(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC(Rx,TRUSTED_OS_FAST)
|
| 33 |
|
| 34 | #define IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_PRESENCE(Rx,Region) ((Rx) == ARM_TRUSTZONE_##Region##_SMC_ID_PRESENCE)
|
| 35 | #define IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_UID(Rx,Region) (((Rx) == ARM_TRUSTZONE_##Region##_SMC_ID_UID) || \
|
| 36 | ((Rx) == ARM_TRUSTZONE_##Region##_SMC_ID_UID+1) || \
|
| 37 | ((Rx) == ARM_TRUSTZONE_##Region##_SMC_ID_UID+2) || \
|
| 38 | ((Rx) == ARM_TRUSTZONE_##Region##_SMC_ID_UID+3) || \
|
| 39 | ((Rx) == ARM_TRUSTZONE_##Region##_SMC_ID_UID+4))
|
| 40 | #define IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_REVISION(Rx,Region) (((Rx) == ARM_TRUSTZONE_##Region##_SMC_ID_REVISION) || \
|
| 41 | ((Rx) == ARM_TRUSTZONE_##Region##_SMC_ID_REVISION+1))
|
| 42 | #define IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_RPC(Rx,Region) (((Rx) >= ARM_TRUSTZONE_##Region##_SMC_ID_RPC_START) && \
|
| 43 | ((Rx) <= ARM_TRUSTZONE_##Region##_SMC_ID_RPC_END))
|
| 44 |
|
| 45 | #define ARM_TRUSTZONE_SUPPORTED_SMC_ID_UID_INDEX(Rx,Region) ((Rx) - ARM_TRUSTZONE_##Region##_SMC_ID_UID)
|
| 46 | #define ARM_TRUSTZONE_SUPPORTED_SMC_ID_REVISION_INDEX(Rx,Region) ((Rx) - ARM_TRUSTZONE_##Region##_SMC_ID_REVISION)
|
| 47 | #define ARM_TRUSTZONE_SUPPORTED_SMC_ID_RPC_INDEX(Rx,Region) ((Rx) - ARM_TRUSTZONE_##Region##_SMC_ID_RPC_START)
|
| 48 |
|
| 49 | #define ARM_TRUSTZONE_TRUSTED_OS_SMC_ID_RPC_INDEX(Rx) ARM_TRUSTZONE_SUPPORTED_SMC_ID_RPC_INDEX(Rx,TRUSTED_OS)
|
| 50 |
|
| 51 | #define IS_ARM_TRUSTZONE_ARM_FAST_SMC_ID_PRESENCE(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_PRESENCE(Rx,ARM_FAST)
|
| 52 | #define IS_ARM_TRUSTZONE_ARM_FAST_SMC_ID_UID(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_UID(Rx,ARM_FAST)
|
| 53 | #define IS_ARM_TRUSTZONE_ARM_FAST_SMC_ID_REVISION(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_REVISION(Rx,ARM_FAST)
|
| 54 | #define IS_ARM_TRUSTZONE_ARM_FAST_SMC_ID_RPC(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_RPC(Rx,ARM_FAST)
|
| 55 | #define ARM_TRUSTZONE_ARM_FAST_SMC_ID_UID_INDEX(Rx) ARM_TRUSTZONE_SUPPORTED_SMC_ID_UID_INDEX(Rx,ARM_FAST)
|
| 56 | #define ARM_TRUSTZONE_ARM_FAST_SMC_ID_REVISION_INDEX(Rx) ARM_TRUSTZONE_SUPPORTED_SMC_ID_REVISION_INDEX(Rx,ARM_FAST)
|
| 57 | #define ARM_TRUSTZONE_ARM_FAST_SMC_ID_RPC_INDEX(Rx) ARM_TRUSTZONE_SUPPORTED_SMC_ID_RPC_INDEX(Rx,ARM_FAST)
|
| 58 |
|
| 59 | #define IS_ARM_TRUSTZONE_ODM_FAST_SMC_ID_PRESENCE(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_PRESENCE(Rx,ODM_FAST)
|
| 60 | #define IS_ARM_TRUSTZONE_ODM_FAST_SMC_ID_UID(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_UID(Rx,ODM_FAST)
|
| 61 | #define IS_ARM_TRUSTZONE_ODM_FAST_SMC_ID_REVISION(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_REVISION(Rx,ODM_FAST)
|
| 62 | #define IS_ARM_TRUSTZONE_ODM_FAST_SMC_ID_RPC(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_RPC(Rx,ODM_FAST)
|
| 63 | #define ARM_TRUSTZONE_ODM_FAST_SMC_ID_UID_INDEX(Rx) ARM_TRUSTZONE_SUPPORTED_SMC_ID_UID_INDEX(Rx,ODM_FAST)
|
| 64 | #define ARM_TRUSTZONE_ODM_FAST_SMC_ID_REVISION_INDEX(Rx) ARM_TRUSTZONE_SUPPORTED_SMC_ID_REVISION_INDEX(Rx,ODM_FAST)
|
| 65 | #define ARM_TRUSTZONE_ODM_FAST_SMC_ID_RPC_INDEX(Rx) ARM_TRUSTZONE_SUPPORTED_SMC_ID_RPC_INDEX(Rx,ODM_FAST)
|
| 66 |
|
| 67 | #define IS_ARM_TRUSTZONE_OEM_FAST_SMC_ID_PRESENCE(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_PRESENCE(Rx,OEM_FAST)
|
| 68 | #define IS_ARM_TRUSTZONE_OEM_FAST_SMC_ID_UID(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_UID(Rx,OEM_FAST)
|
| 69 | #define IS_ARM_TRUSTZONE_OEM_FAST_SMC_ID_REVISION(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_REVISION(Rx,OEM_FAST)
|
| 70 | #define IS_ARM_TRUSTZONE_OEM_FAST_SMC_ID_RPC(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_RPC(Rx,OEM_FAST)
|
| 71 | #define ARM_TRUSTZONE_OEM_FAST_SMC_ID_UID_INDEX(Rx) ARM_TRUSTZONE_SUPPORTED_SMC_ID_UID_INDEX(Rx,OEM_FAST)
|
| 72 | #define ARM_TRUSTZONE_OEM_FAST_SMC_ID_REVISION_INDEX(Rx) ARM_TRUSTZONE_SUPPORTED_SMC_ID_REVISION_INDEX(Rx,OEM_FAST)
|
| 73 | #define ARM_TRUSTZONE_OEM_FAST_SMC_ID_RPC_INDEX(Rx) ARM_TRUSTZONE_SUPPORTED_SMC_ID_RPC_INDEX(Rx,OEM_FAST)
|
| 74 |
|
| 75 | #define IS_ARM_TRUSTZONE_SIP_FAST_SMC_ID_PRESENCE(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_PRESENCE(Rx,SIP_FAST)
|
| 76 | #define IS_ARM_TRUSTZONE_SIP_FAST_SMC_ID_UID(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_UID(Rx,SIP_FAST)
|
| 77 | #define IS_ARM_TRUSTZONE_SIP_FAST_SMC_ID_REVISION(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_REVISION(Rx,SIP_FAST)
|
| 78 | #define IS_ARM_TRUSTZONE_SIP_FAST_SMC_ID_RPC(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_RPC(Rx,SIP_FAST)
|
| 79 | #define ARM_TRUSTZONE_SIP_FAST_SMC_ID_UID_INDEX(Rx) ARM_TRUSTZONE_SUPPORTED_SMC_ID_UID_INDEX(Rx,SIP_FAST)
|
| 80 | #define ARM_TRUSTZONE_SIP_FAST_SMC_ID_REVISION_INDEX(Rx) ARM_TRUSTZONE_SUPPORTED_SMC_ID_REVISION_INDEX(Rx,SIP_FAST)
|
| 81 | #define ARM_TRUSTZONE_SIP_FAST_SMC_ID_RPC_INDEX(Rx) ARM_TRUSTZONE_SUPPORTED_SMC_ID_RPC_INDEX(Rx,SIP_FAST)
|
| 82 |
|
| 83 | #define ARM_TRUSTZONE_TRUSTED_USER_FAST_SMC_ID_RPC_INDEX(Rx) ARM_TRUSTZONE_SUPPORTED_SMC_ID_RPC_INDEX(Rx,TRUSTED_USER_FAST)
|
| 84 |
|
| 85 | #define IS_ARM_TRUSTZONE_TRUSTED_OS_FAST_SMC_ID_PRESENCE(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_PRESENCE(Rx,TRUSTED_OS_FAST)
|
| 86 | #define IS_ARM_TRUSTZONE_TRUSTED_OS_FAST_SMC_ID_UID(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_UID(Rx,TRUSTED_OS_FAST)
|
| 87 | #define IS_ARM_TRUSTZONE_TRUSTED_OS_FAST_SMC_ID_REVISION(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_REVISION(Rx,TRUSTED_OS_FAST)
|
| 88 | #define IS_ARM_TRUSTZONE_TRUSTED_OS_FAST_SMC_ID_RPC(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_RPC(Rx,TRUSTED_OS_FAST)
|
| 89 | #define ARM_TRUSTZONE_TRUSTED_OS_FAST_SMC_ID_UID_INDEX(Rx) ARM_TRUSTZONE_SUPPORTED_SMC_ID_UID_INDEX(Rx,TRUSTED_OS_FAST)
|
| 90 | #define ARM_TRUSTZONE_TRUSTED_OS_FAST_SMC_ID_REVISION_INDEX(Rx) ARM_TRUSTZONE_SUPPORTED_SMC_ID_REVISION_INDEX(Rx,TRUSTED_OS_FAST)
|
| 91 | #define ARM_TRUSTZONE_TRUSTED_OS_FAST_SMC_ID_RPC_INDEX(Rx) ARM_TRUSTZONE_SUPPORTED_SMC_ID_RPC_INDEX(Rx,TRUSTED_OS_FAST)
|
| 92 |
|
| 93 |
|
| 94 | #define ARM_TRUSTZONE_DEPRECIATED_SMC_ID_START 0x00000000
|
| 95 | #define ARM_TRUSTZONE_DEPRECIATED_SMC_ID_END 0x01FFFFFF
|
| 96 |
|
| 97 |
|
| 98 | #define ARM_TRUSTZONE_TRUSTED_OS_SMC_ID_START 0x02000000
|
| 99 | #define ARM_TRUSTZONE_TRUSTED_OS_SMC_ID_END 0x1FFFFFFF
|
| 100 |
|
| 101 | #define ARM_TRUSTZONE_TRUSTED_OS_SMC_ID_RPC_START 0x02000000
|
| 102 | #define ARM_TRUSTZONE_TRUSTED_OS_SMC_ID_RPC_END 0x1FFFFFFF
|
| 103 |
|
| 104 |
|
| 105 | #define ARM_TRUSTZONE_ARM_FAST_SMC_ID_START 0x80000000
|
| 106 | #define ARM_TRUSTZONE_ARM_FAST_SMC_ID_END 0x80FFFFFF
|
| 107 |
|
| 108 | #define ARM_TRUSTZONE_ARM_FAST_SMC_ID_RPC_START 0x80000000
|
| 109 | #define ARM_TRUSTZONE_ARM_FAST_SMC_ID_RPC_END 0x80FFFEFF
|
| 110 | #define ARM_TRUSTZONE_ARM_FAST_SMC_ID_PRESENCE 0x80FFFF00
|
| 111 | #define ARM_TRUSTZONE_ARM_FAST_SMC_ID_UID 0x80FFFF10
|
| 112 | #define ARM_TRUSTZONE_ARM_FAST_SMC_ID_REVISION 0x80FFFF20
|
| 113 |
|
| 114 |
|
| 115 | #define ARM_TRUSTZONE_SIP_FAST_SMC_ID_START 0x81000000
|
| 116 | #define ARM_TRUSTZONE_SIP_FAST_SMC_ID_END 0x81FFFFFF
|
| 117 |
|
| 118 | #define ARM_TRUSTZONE_SIP_FAST_SMC_ID_RPC_START 0x81000000
|
| 119 | #define ARM_TRUSTZONE_SIP_FAST_SMC_ID_RPC_END 0x81FFFEFF
|
| 120 | #define ARM_TRUSTZONE_SIP_FAST_SMC_ID_PRESENCE 0x81FFFF00
|
| 121 | #define ARM_TRUSTZONE_SIP_FAST_SMC_ID_UID 0x81FFFF10
|
| 122 | #define ARM_TRUSTZONE_SIP_FAST_SMC_ID_REVISION 0x81FFFF20
|
| 123 |
|
| 124 |
|
| 125 | #define ARM_TRUSTZONE_ODM_FAST_SMC_ID_START 0x82000000
|
| 126 | #define ARM_TRUSTZONE_ODM_FAST_SMC_ID_END 0x82FFFFFF
|
| 127 |
|
| 128 | #define ARM_TRUSTZONE_ODM_FAST_SMC_ID_RPC_START 0x82000000
|
| 129 | #define ARM_TRUSTZONE_ODM_FAST_SMC_ID_RPC_END 0x82FFFEFF
|
| 130 | #define ARM_TRUSTZONE_ODM_FAST_SMC_ID_PRESENCE 0x82FFFF00
|
| 131 | #define ARM_TRUSTZONE_ODM_FAST_SMC_ID_UID 0x82FFFF10
|
| 132 | #define ARM_TRUSTZONE_ODM_FAST_SMC_ID_REVISION 0x82FFFF20
|
| 133 |
|
| 134 |
|
| 135 | #define ARM_TRUSTZONE_OEM_FAST_SMC_ID_START 0x83000000
|
| 136 | #define ARM_TRUSTZONE_OEM_FAST_SMC_ID_END 0x83FFFFFF
|
| 137 |
|
| 138 | #define ARM_TRUSTZONE_OEM_FAST_SMC_ID_RPC_START 0x83000000
|
| 139 | #define ARM_TRUSTZONE_OEM_FAST_SMC_ID_RPC_END 0x83FFFEFF
|
| 140 | #define ARM_TRUSTZONE_OEM_FAST_SMC_ID_PRESENCE 0x83FFFF00
|
| 141 | #define ARM_TRUSTZONE_OEM_FAST_SMC_ID_UID 0x83FFFF10
|
| 142 | #define ARM_TRUSTZONE_OEM_FAST_SMC_ID_REVISION 0x83FFFF20
|
| 143 |
|
| 144 |
|
| 145 | #define ARM_TRUSTZONE_TRUSTED_USER_FAST_SMC_ID_START 0xF0000000
|
| 146 | #define ARM_TRUSTZONE_TRUSTED_USER_FAST_SMC_ID_END 0xF1FFFFFF
|
| 147 |
|
| 148 | #define ARM_TRUSTZONE_TRUSTED_USER_FAST_SMC_ID_RPC_START 0xF0000000
|
| 149 | #define ARM_TRUSTZONE_TRUSTED_USER_FAST_SMC_ID_RPC_END 0xF1FFFEFF
|
| 150 |
|
| 151 |
|
| 152 | #define ARM_TRUSTZONE_TRUSTED_OS_FAST_SMC_ID_START 0xF2000000
|
| 153 | #define ARM_TRUSTZONE_TRUSTED_OS_FAST_SMC_ID_END 0xFFFFFFFF
|
| 154 |
|
| 155 | #define ARM_TRUSTZONE_TRUSTED_OS_FAST_SMC_ID_RPC_START 0xF2000000
|
| 156 | #define ARM_TRUSTZONE_TRUSTED_OS_FAST_SMC_ID_RPC_END 0xFFFFFEFF
|
| 157 | #define ARM_TRUSTZONE_TRUSTED_OS_FAST_SMC_ID_PRESENCE 0xF2FFFF00
|
| 158 | #define ARM_TRUSTZONE_TRUSTED_OS_FAST_SMC_ID_UID 0xF2FFFF10
|
| 159 | #define ARM_TRUSTZONE_TRUSTED_OS_FAST_SMC_ID_REVISION 0xF2FFFF20
|
| 160 |
|
| 161 | #endif
|