Varun Wadekar | 3d4e6a5 | 2015-03-13 14:01:03 +0530 | [diff] [blame] | 1 | /* |
David Cunado | 2e36de8 | 2017-01-19 10:26:16 +0000 | [diff] [blame] | 2 | * Copyright (c) 2015-2017, ARM Limited and Contributors. All rights reserved. |
Varun Wadekar | 3d4e6a5 | 2015-03-13 14:01:03 +0530 | [diff] [blame] | 3 | * |
dp-arm | fa3cf0b | 2017-05-03 09:38:09 +0100 | [diff] [blame] | 4 | * SPDX-License-Identifier: BSD-3-Clause |
Varun Wadekar | 3d4e6a5 | 2015-03-13 14:01:03 +0530 | [diff] [blame] | 5 | */ |
| 6 | |
| 7 | #ifndef __TLK_H__ |
| 8 | #define __TLK_H__ |
| 9 | |
Scott Branden | bf404c0 | 2017-04-10 11:45:52 -0700 | [diff] [blame] | 10 | #include <utils_def.h> |
David Cunado | 2e36de8 | 2017-01-19 10:26:16 +0000 | [diff] [blame] | 11 | |
Varun Wadekar | 3d4e6a5 | 2015-03-13 14:01:03 +0530 | [diff] [blame] | 12 | /* |
Varun Wadekar | a97535f | 2015-03-13 14:19:11 +0530 | [diff] [blame] | 13 | * Generate function IDs for the Trusted OS/Apps |
| 14 | */ |
David Cunado | c8833ea | 2017-04-16 17:15:08 +0100 | [diff] [blame] | 15 | #define TLK_TOS_YIELD_FID(fid) ((fid) | 0x72000000 | (0 << 31)) |
| 16 | #define TLK_TA_YIELD_FID(fid) ((fid) | 0x70000000 | (0 << 31)) |
Varun Wadekar | a97535f | 2015-03-13 14:19:11 +0530 | [diff] [blame] | 17 | |
| 18 | /* |
| 19 | * Trusted OS specific function IDs |
| 20 | */ |
David Cunado | c8833ea | 2017-04-16 17:15:08 +0100 | [diff] [blame] | 21 | #define TLK_REGISTER_LOGBUF TLK_TOS_YIELD_FID(0x1) |
| 22 | #define TLK_REGISTER_REQBUF TLK_TOS_YIELD_FID(0x2) |
| 23 | #define TLK_RESUME_FID TLK_TOS_YIELD_FID(0x100) |
| 24 | #define TLK_SYSTEM_SUSPEND TLK_TOS_YIELD_FID(0xE001) |
| 25 | #define TLK_SYSTEM_RESUME TLK_TOS_YIELD_FID(0xE002) |
| 26 | #define TLK_SYSTEM_OFF TLK_TOS_YIELD_FID(0xE003) |
Varun Wadekar | a97535f | 2015-03-13 14:19:11 +0530 | [diff] [blame] | 27 | |
| 28 | /* |
Varun Wadekar | 3d4e6a5 | 2015-03-13 14:01:03 +0530 | [diff] [blame] | 29 | * SMC function IDs that TLK uses to signal various forms of completions |
| 30 | * to the secure payload dispatcher. |
| 31 | */ |
David Cunado | 2e36de8 | 2017-01-19 10:26:16 +0000 | [diff] [blame] | 32 | #define TLK_REQUEST_DONE (0x32000001 | (ULL(1) << 31)) |
| 33 | #define TLK_PREEMPTED (0x32000002 | (ULL(1) << 31)) |
| 34 | #define TLK_ENTRY_DONE (0x32000003 | (ULL(1) << 31)) |
| 35 | #define TLK_VA_TRANSLATE (0x32000004 | (ULL(1) << 31)) |
| 36 | #define TLK_SUSPEND_DONE (0x32000005 | (ULL(1) << 31)) |
| 37 | #define TLK_RESUME_DONE (0x32000006 | (ULL(1) << 31)) |
| 38 | #define TLK_SYSTEM_OFF_DONE (0x32000007 | (ULL(1) << 31)) |
Varun Wadekar | 3d4e6a5 | 2015-03-13 14:01:03 +0530 | [diff] [blame] | 39 | |
| 40 | /* |
Varun Wadekar | b539b6c | 2015-03-13 15:18:20 +0530 | [diff] [blame] | 41 | * Trusted Application specific function IDs |
| 42 | */ |
David Cunado | c8833ea | 2017-04-16 17:15:08 +0100 | [diff] [blame] | 43 | #define TLK_OPEN_TA_SESSION TLK_TA_YIELD_FID(0x1) |
| 44 | #define TLK_CLOSE_TA_SESSION TLK_TA_YIELD_FID(0x2) |
| 45 | #define TLK_TA_LAUNCH_OP TLK_TA_YIELD_FID(0x3) |
| 46 | #define TLK_TA_SEND_EVENT TLK_TA_YIELD_FID(0x4) |
Varun Wadekar | b539b6c | 2015-03-13 15:18:20 +0530 | [diff] [blame] | 47 | |
| 48 | /* |
Varun Wadekar | 3d4e6a5 | 2015-03-13 14:01:03 +0530 | [diff] [blame] | 49 | * Total number of function IDs implemented for services offered to NS clients. |
| 50 | */ |
Varun Wadekar | b539b6c | 2015-03-13 15:18:20 +0530 | [diff] [blame] | 51 | #define TLK_NUM_FID 7 |
Varun Wadekar | 3d4e6a5 | 2015-03-13 14:01:03 +0530 | [diff] [blame] | 52 | |
| 53 | /* TLK implementation version numbers */ |
| 54 | #define TLK_VERSION_MAJOR 0x0 /* Major version */ |
| 55 | #define TLK_VERSION_MINOR 0x1 /* Minor version */ |
| 56 | |
| 57 | /* |
| 58 | * Standard Trusted OS Function IDs that fall under Trusted OS call range |
| 59 | * according to SMC calling convention |
| 60 | */ |
| 61 | #define TOS_CALL_COUNT 0xbf00ff00 /* Number of calls implemented */ |
| 62 | #define TOS_UID 0xbf00ff01 /* Implementation UID */ |
| 63 | #define TOS_CALL_VERSION 0xbf00ff03 /* Trusted OS Call Version */ |
| 64 | |
| 65 | #endif /* __TLK_H__ */ |