aboutsummaryrefslogtreecommitdiff
path: root/ta/arch/arm/user_ta_header.c
diff options
context:
space:
mode:
Diffstat (limited to 'ta/arch/arm/user_ta_header.c')
-rw-r--r--ta/arch/arm/user_ta_header.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/ta/arch/arm/user_ta_header.c b/ta/arch/arm/user_ta_header.c
index 77515159..b256fa90 100644
--- a/ta/arch/arm/user_ta_header.c
+++ b/ta/arch/arm/user_ta_header.c
@@ -54,10 +54,27 @@ void __utee_entry(unsigned long func, unsigned long session_id,
struct utee_params *up, unsigned long cmd_id)
__noreturn;
+/*
+ * According to GP Internal API, TA_STACK_SIZE corresponds to the stack
+ * size used by the TA code itself and does not include stack space
+ * possibly used by the Trusted Core Framework.
+ * Hence, stack_size which is the size of the stack to use,
+ * must be enlarged
+ * It has been set to 2048 to include trace framework and invoke commands
+ */
+#define TA_FRAMEWORK_STACK_SIZE 2048
+
const struct ta_head ta_head __section(".ta_head") = {
/* UUID, unique to each TA */
.uuid = TA_UUID,
- .stack_size = TA_STACK_SIZE,
+ /*
+ * According to GP Internal API, TA_FRAMEWORK_STACK_SIZE corresponds to
+ * the stack size used by the TA code itself and does not include stack
+ * space possibly used by the Trusted Core Framework.
+ * Hence, stack_size which is the size of the stack to use,
+ * must be enlarged
+ */
+ .stack_size = TA_STACK_SIZE + TA_FRAMEWORK_STACK_SIZE,
.flags = TA_FLAG_USER_MODE | TA_FLAGS,
#ifdef __ILP32__
/*