summaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorArve Hjønnevåg <arve@android.com>2015-06-11 22:34:28 -0400
committerStephen Wolfe <swolfe@nvidia.com>2018-07-27 17:12:44 -0400
commit4de081ad8ef79596293b299c05c2c0c67e8f2bf4 (patch)
treec232fd42c9aa735e6dfaa776725181b284fffffa /include/linux
parent782b48e793bbac025b1a79a11c67d38855cb75c6 (diff)
trusty: Select api version
Select api version in probe, and store it in trusty_state. This enables new return codes from trusty, and will later be used to enable a nop stdcall that does not take smc_lock. Change-Id: Ib0c41b8b14e0638851d5236f83677c25507a2db6 Signed-off-by: Michael Ryleev <gmar@google.com>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/trusty/smcall.h19
-rw-r--r--include/linux/trusty/trusty.h1
2 files changed, 20 insertions, 0 deletions
diff --git a/include/linux/trusty/smcall.h b/include/linux/trusty/smcall.h
index a2be2e357..cdb4eccd7 100644
--- a/include/linux/trusty/smcall.h
+++ b/include/linux/trusty/smcall.h
@@ -78,6 +78,25 @@
78#define SMC_FC_AARCH_SWITCH SMC_FASTCALL_NR (SMC_ENTITY_SECURE_MONITOR, 9) 78#define SMC_FC_AARCH_SWITCH SMC_FASTCALL_NR (SMC_ENTITY_SECURE_MONITOR, 9)
79#define SMC_FC_GET_VERSION_STR SMC_FASTCALL_NR (SMC_ENTITY_SECURE_MONITOR, 10) 79#define SMC_FC_GET_VERSION_STR SMC_FASTCALL_NR (SMC_ENTITY_SECURE_MONITOR, 10)
80 80
81/**
82 * SMC_FC_API_VERSION - Find and select supported API version.
83 *
84 * @r1: Version supported by client.
85 *
86 * Returns version supported by trusty.
87 *
88 * If multiple versions are supported, the client should start by calling
89 * SMC_FC_API_VERSION with the largest version it supports. Trusty will then
90 * return a version it supports. If the client does not support the version
91 * returned by trusty and the version returned is less than the version
92 * requested, repeat the call with the largest supported version less than the
93 * last returned version.
94 *
95 * This call must be made before any calls that are affected by the api version.
96 */
97#define TRUSTY_API_VERSION_CURRENT (0)
98#define SMC_FC_API_VERSION SMC_FASTCALL_NR (SMC_ENTITY_SECURE_MONITOR, 11)
99
81/* TRUSTED_OS entity calls */ 100/* TRUSTED_OS entity calls */
82#define SMC_SC_VIRTIO_GET_DESCR SMC_STDCALL_NR(SMC_ENTITY_TRUSTED_OS, 20) 101#define SMC_SC_VIRTIO_GET_DESCR SMC_STDCALL_NR(SMC_ENTITY_TRUSTED_OS, 20)
83#define SMC_SC_VIRTIO_START SMC_STDCALL_NR(SMC_ENTITY_TRUSTED_OS, 21) 102#define SMC_SC_VIRTIO_START SMC_STDCALL_NR(SMC_ENTITY_TRUSTED_OS, 21)
diff --git a/include/linux/trusty/trusty.h b/include/linux/trusty/trusty.h
index d084d9d68..24fe2101a 100644
--- a/include/linux/trusty/trusty.h
+++ b/include/linux/trusty/trusty.h
@@ -56,6 +56,7 @@ int trusty_call_notifier_register(struct device *dev,
56int trusty_call_notifier_unregister(struct device *dev, 56int trusty_call_notifier_unregister(struct device *dev,
57 struct notifier_block *n); 57 struct notifier_block *n);
58const char *trusty_version_str_get(struct device *dev); 58const char *trusty_version_str_get(struct device *dev);
59u32 trusty_get_api_version(struct device *dev);
59 60
60struct ns_mem_page_info { 61struct ns_mem_page_info {
61 uint64_t attr; 62 uint64_t attr;