Varun Wadekar | 3d4e6a5 | 2015-03-13 14:01:03 +0530 | [diff] [blame] | 1 | /* |
Varun Wadekar | b5664d3 | 2018-01-08 11:35:40 -0800 | [diff] [blame] | 2 | * Copyright (c) 2015-2018, 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 | |
Antonio Nino Diaz | 5eb8837 | 2018-11-08 10:20:19 +0000 | [diff] [blame] | 7 | #ifndef TLK_H |
| 8 | #define TLK_H |
Varun Wadekar | 3d4e6a5 | 2015-03-13 14:01:03 +0530 | [diff] [blame] | 9 | |
Antonio Nino Diaz | e0f9063 | 2018-12-14 00:18:21 +0000 | [diff] [blame] | 10 | #include <lib/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) |
Mihir Joshi | 518230c | 2018-01-22 14:02:16 -0800 | [diff] [blame] | 23 | #define TLK_SS_REGISTER_HANDLER TLK_TOS_YIELD_FID(0x3) |
| 24 | #define TLK_REGISTER_NS_DRAM_RANGES TLK_TOS_YIELD_FID(0x4) |
| 25 | #define TLK_SET_ROOT_OF_TRUST TLK_TOS_YIELD_FID(0x5) |
David Cunado | c8833ea | 2017-04-16 17:15:08 +0100 | [diff] [blame] | 26 | #define TLK_RESUME_FID TLK_TOS_YIELD_FID(0x100) |
| 27 | #define TLK_SYSTEM_SUSPEND TLK_TOS_YIELD_FID(0xE001) |
| 28 | #define TLK_SYSTEM_RESUME TLK_TOS_YIELD_FID(0xE002) |
| 29 | #define TLK_SYSTEM_OFF TLK_TOS_YIELD_FID(0xE003) |
Varun Wadekar | a97535f | 2015-03-13 14:19:11 +0530 | [diff] [blame] | 30 | |
| 31 | /* |
Varun Wadekar | 3d4e6a5 | 2015-03-13 14:01:03 +0530 | [diff] [blame] | 32 | * SMC function IDs that TLK uses to signal various forms of completions |
| 33 | * to the secure payload dispatcher. |
| 34 | */ |
David Cunado | 2e36de8 | 2017-01-19 10:26:16 +0000 | [diff] [blame] | 35 | #define TLK_REQUEST_DONE (0x32000001 | (ULL(1) << 31)) |
| 36 | #define TLK_PREEMPTED (0x32000002 | (ULL(1) << 31)) |
| 37 | #define TLK_ENTRY_DONE (0x32000003 | (ULL(1) << 31)) |
| 38 | #define TLK_VA_TRANSLATE (0x32000004 | (ULL(1) << 31)) |
| 39 | #define TLK_SUSPEND_DONE (0x32000005 | (ULL(1) << 31)) |
| 40 | #define TLK_RESUME_DONE (0x32000006 | (ULL(1) << 31)) |
| 41 | #define TLK_SYSTEM_OFF_DONE (0x32000007 | (ULL(1) << 31)) |
Varun Wadekar | 3d4e6a5 | 2015-03-13 14:01:03 +0530 | [diff] [blame] | 42 | |
| 43 | /* |
Varun Wadekar | b539b6c | 2015-03-13 15:18:20 +0530 | [diff] [blame] | 44 | * Trusted Application specific function IDs |
| 45 | */ |
David Cunado | c8833ea | 2017-04-16 17:15:08 +0100 | [diff] [blame] | 46 | #define TLK_OPEN_TA_SESSION TLK_TA_YIELD_FID(0x1) |
| 47 | #define TLK_CLOSE_TA_SESSION TLK_TA_YIELD_FID(0x2) |
| 48 | #define TLK_TA_LAUNCH_OP TLK_TA_YIELD_FID(0x3) |
| 49 | #define TLK_TA_SEND_EVENT TLK_TA_YIELD_FID(0x4) |
Varun Wadekar | b539b6c | 2015-03-13 15:18:20 +0530 | [diff] [blame] | 50 | |
| 51 | /* |
Varun Wadekar | 3d4e6a5 | 2015-03-13 14:01:03 +0530 | [diff] [blame] | 52 | * Total number of function IDs implemented for services offered to NS clients. |
| 53 | */ |
Varun Wadekar | b539b6c | 2015-03-13 15:18:20 +0530 | [diff] [blame] | 54 | #define TLK_NUM_FID 7 |
Varun Wadekar | 3d4e6a5 | 2015-03-13 14:01:03 +0530 | [diff] [blame] | 55 | |
| 56 | /* TLK implementation version numbers */ |
| 57 | #define TLK_VERSION_MAJOR 0x0 /* Major version */ |
| 58 | #define TLK_VERSION_MINOR 0x1 /* Minor version */ |
| 59 | |
| 60 | /* |
| 61 | * Standard Trusted OS Function IDs that fall under Trusted OS call range |
| 62 | * according to SMC calling convention |
| 63 | */ |
| 64 | #define TOS_CALL_COUNT 0xbf00ff00 /* Number of calls implemented */ |
| 65 | #define TOS_UID 0xbf00ff01 /* Implementation UID */ |
| 66 | #define TOS_CALL_VERSION 0xbf00ff03 /* Trusted OS Call Version */ |
| 67 | |
Antonio Nino Diaz | 5eb8837 | 2018-11-08 10:20:19 +0000 | [diff] [blame] | 68 | #endif /* TLK_H */ |