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 | f09264a | 2018-11-05 15:12:55 -0800 | [diff] [blame] | 3 | * Copyright (c) 2020, NVIDIA Corporation. All rights reserved. |
Varun Wadekar | 3d4e6a5 | 2015-03-13 14:01:03 +0530 | [diff] [blame] | 4 | * |
dp-arm | fa3cf0b | 2017-05-03 09:38:09 +0100 | [diff] [blame] | 5 | * SPDX-License-Identifier: BSD-3-Clause |
Varun Wadekar | 3d4e6a5 | 2015-03-13 14:01:03 +0530 | [diff] [blame] | 6 | */ |
| 7 | |
Antonio Nino Diaz | 5eb8837 | 2018-11-08 10:20:19 +0000 | [diff] [blame] | 8 | #ifndef TLK_H |
| 9 | #define TLK_H |
Varun Wadekar | 3d4e6a5 | 2015-03-13 14:01:03 +0530 | [diff] [blame] | 10 | |
Antonio Nino Diaz | e0f9063 | 2018-12-14 00:18:21 +0000 | [diff] [blame] | 11 | #include <lib/utils_def.h> |
David Cunado | 2e36de8 | 2017-01-19 10:26:16 +0000 | [diff] [blame] | 12 | |
Varun Wadekar | 3d4e6a5 | 2015-03-13 14:01:03 +0530 | [diff] [blame] | 13 | /* |
Varun Wadekar | a97535f | 2015-03-13 14:19:11 +0530 | [diff] [blame] | 14 | * Generate function IDs for the Trusted OS/Apps |
| 15 | */ |
David Cunado | c8833ea | 2017-04-16 17:15:08 +0100 | [diff] [blame] | 16 | #define TLK_TOS_YIELD_FID(fid) ((fid) | 0x72000000 | (0 << 31)) |
| 17 | #define TLK_TA_YIELD_FID(fid) ((fid) | 0x70000000 | (0 << 31)) |
Varun Wadekar | a97535f | 2015-03-13 14:19:11 +0530 | [diff] [blame] | 18 | |
| 19 | /* |
| 20 | * Trusted OS specific function IDs |
| 21 | */ |
David Cunado | c8833ea | 2017-04-16 17:15:08 +0100 | [diff] [blame] | 22 | #define TLK_REGISTER_LOGBUF TLK_TOS_YIELD_FID(0x1) |
| 23 | #define TLK_REGISTER_REQBUF TLK_TOS_YIELD_FID(0x2) |
Mihir Joshi | 518230c | 2018-01-22 14:02:16 -0800 | [diff] [blame] | 24 | #define TLK_SS_REGISTER_HANDLER TLK_TOS_YIELD_FID(0x3) |
| 25 | #define TLK_REGISTER_NS_DRAM_RANGES TLK_TOS_YIELD_FID(0x4) |
| 26 | #define TLK_SET_ROOT_OF_TRUST TLK_TOS_YIELD_FID(0x5) |
Mustafa Yigit Bilgen | 95867b1 | 2018-12-03 15:53:38 -0800 | [diff] [blame] | 27 | #define TLK_SET_BL_VERSION TLK_TOS_YIELD_FID(0x6) |
| 28 | #define TLK_LOCK_BL_INTERFACE TLK_TOS_YIELD_FID(0x7) |
| 29 | #define TLK_BL_RPMB_SERVICE TLK_TOS_YIELD_FID(0x8) |
David Cunado | c8833ea | 2017-04-16 17:15:08 +0100 | [diff] [blame] | 30 | #define TLK_RESUME_FID TLK_TOS_YIELD_FID(0x100) |
| 31 | #define TLK_SYSTEM_SUSPEND TLK_TOS_YIELD_FID(0xE001) |
| 32 | #define TLK_SYSTEM_RESUME TLK_TOS_YIELD_FID(0xE002) |
Varun Wadekar | 079e20e | 2018-08-10 09:55:25 -0700 | [diff] [blame] | 33 | #define TLK_IRQ_FIRED TLK_TOS_YIELD_FID(0xE004) |
Varun Wadekar | a97535f | 2015-03-13 14:19:11 +0530 | [diff] [blame] | 34 | |
| 35 | /* |
Varun Wadekar | 3d4e6a5 | 2015-03-13 14:01:03 +0530 | [diff] [blame] | 36 | * SMC function IDs that TLK uses to signal various forms of completions |
| 37 | * to the secure payload dispatcher. |
| 38 | */ |
David Cunado | 2e36de8 | 2017-01-19 10:26:16 +0000 | [diff] [blame] | 39 | #define TLK_REQUEST_DONE (0x32000001 | (ULL(1) << 31)) |
| 40 | #define TLK_PREEMPTED (0x32000002 | (ULL(1) << 31)) |
| 41 | #define TLK_ENTRY_DONE (0x32000003 | (ULL(1) << 31)) |
| 42 | #define TLK_VA_TRANSLATE (0x32000004 | (ULL(1) << 31)) |
| 43 | #define TLK_SUSPEND_DONE (0x32000005 | (ULL(1) << 31)) |
| 44 | #define TLK_RESUME_DONE (0x32000006 | (ULL(1) << 31)) |
Varun Wadekar | 079e20e | 2018-08-10 09:55:25 -0700 | [diff] [blame] | 45 | #define TLK_IRQ_DONE (0x32000008 | (ULL(1) << 31)) |
Varun Wadekar | 3d4e6a5 | 2015-03-13 14:01:03 +0530 | [diff] [blame] | 46 | |
| 47 | /* |
Varun Wadekar | b539b6c | 2015-03-13 15:18:20 +0530 | [diff] [blame] | 48 | * Trusted Application specific function IDs |
| 49 | */ |
David Cunado | c8833ea | 2017-04-16 17:15:08 +0100 | [diff] [blame] | 50 | #define TLK_OPEN_TA_SESSION TLK_TA_YIELD_FID(0x1) |
| 51 | #define TLK_CLOSE_TA_SESSION TLK_TA_YIELD_FID(0x2) |
| 52 | #define TLK_TA_LAUNCH_OP TLK_TA_YIELD_FID(0x3) |
| 53 | #define TLK_TA_SEND_EVENT TLK_TA_YIELD_FID(0x4) |
Varun Wadekar | b539b6c | 2015-03-13 15:18:20 +0530 | [diff] [blame] | 54 | |
| 55 | /* |
Varun Wadekar | 3d4e6a5 | 2015-03-13 14:01:03 +0530 | [diff] [blame] | 56 | * Total number of function IDs implemented for services offered to NS clients. |
| 57 | */ |
Varun Wadekar | b539b6c | 2015-03-13 15:18:20 +0530 | [diff] [blame] | 58 | #define TLK_NUM_FID 7 |
Varun Wadekar | 3d4e6a5 | 2015-03-13 14:01:03 +0530 | [diff] [blame] | 59 | |
| 60 | /* TLK implementation version numbers */ |
| 61 | #define TLK_VERSION_MAJOR 0x0 /* Major version */ |
| 62 | #define TLK_VERSION_MINOR 0x1 /* Minor version */ |
| 63 | |
| 64 | /* |
| 65 | * Standard Trusted OS Function IDs that fall under Trusted OS call range |
| 66 | * according to SMC calling convention |
| 67 | */ |
| 68 | #define TOS_CALL_COUNT 0xbf00ff00 /* Number of calls implemented */ |
| 69 | #define TOS_UID 0xbf00ff01 /* Implementation UID */ |
| 70 | #define TOS_CALL_VERSION 0xbf00ff03 /* Trusted OS Call Version */ |
| 71 | |
Antonio Nino Diaz | 5eb8837 | 2018-11-08 10:20:19 +0000 | [diff] [blame] | 72 | #endif /* TLK_H */ |