Build: Apply global array as partition stacks [tf-m-test]
Using a global array as partition stack would wrap stack into
partition private data, which skips allocating dedicated stack space
during the linking stage.
This patch could work with the tf-m code still using linking stage
stack allocation, as the redundant compiled objects would be stripped
if symbols in them are not referenced.
Change-Id: I47dc16d7b8da7034009bf190172865e0b1a3d518
Signed-off-by: Ken Liu <ken.liu@arm.com>
diff --git a/test/test_services/CMakeLists.inc b/test/test_services/CMakeLists.inc
index f4f0482..afece9f 100644
--- a/test/test_services/CMakeLists.inc
+++ b/test/test_services/CMakeLists.inc
@@ -29,28 +29,34 @@
if (NOT DEFINED ENABLE_CORE_TESTS)
message(FATAL_ERROR "Incomplete build configuration: ENABLE_CORE_TESTS is undefined. ")
elseif(ENABLE_CORE_TESTS)
- list(APPEND ALL_SRC_C_S "${CORE_TEST_DIR}/tfm_core_test/tfm_ss_core_test.c")
+ list(APPEND ALL_SRC_C_S "${CORE_TEST_DIR}/tfm_core_test/tfm_ss_core_test.c"
+ "${CORE_TEST_DIR}/tfm_core_test/auto_generated/intermedia_tfm_ss_core_test.c")
endif()
if (NOT DEFINED ENABLE_CORE_TESTS_2)
message(FATAL_ERROR "Incomplete build configuration: ENABLE_CORE_TESTS_2 is undefined. ")
elseif(ENABLE_CORE_TESTS_2)
- list(APPEND ALL_SRC_C_S "${CORE_TEST_DIR}/tfm_core_test_2/tfm_ss_core_test_2.c")
+ list(APPEND ALL_SRC_C_S "${CORE_TEST_DIR}/tfm_core_test_2/tfm_ss_core_test_2.c"
+ "${CORE_TEST_DIR}/tfm_core_test_2/auto_generated/intermedia_tfm_ss_core_test_2.c")
endif()
if (NOT DEFINED ENABLE_IRQ_TEST_SERVICES)
message(FATAL_ERROR "Incomplete build configuration: ENABLE_IRQ_TEST_SERVICES is undefined. ")
elseif(ENABLE_IRQ_TEST_SERVICES)
list(APPEND ALL_SRC_C_S
- "${CORE_TEST_DIR}/tfm_irq_test_service_1/tfm_irq_test_service_1.c")
+ "${CORE_TEST_DIR}/tfm_irq_test_service_1/tfm_irq_test_service_1.c"
+ "${CORE_TEST_DIR}/tfm_irq_test_service_1/auto_generated/intermedia_tfm_irq_test_service_1.c")
endif()
if (NOT DEFINED TFM_PARTITION_TEST_SECURE_SERVICES)
message(FATAL_ERROR "Incomplete build configuration: TFM_PARTITION_TEST_SECURE_SERVICES is undefined. ")
elseif (TFM_PARTITION_TEST_SECURE_SERVICES)
- list(APPEND ALL_SRC_C_S "${CORE_TEST_DIR}/tfm_secure_client_service/tfm_secure_client_service.c"
+ list(APPEND ALL_SRC_C_S
+ "${CORE_TEST_DIR}/tfm_secure_client_service/tfm_secure_client_service.c"
+ "${CORE_TEST_DIR}/tfm_secure_client_service/auto_generated/intermedia_tfm_secure_client_service.c"
"${CORE_TEST_DIR}/tfm_secure_client_2/tfm_secure_client_2.c"
- "${CORE_TEST_DIR}/tfm_secure_client_2/tfm_secure_client_2_api.c")
+ "${CORE_TEST_DIR}/tfm_secure_client_2/tfm_secure_client_2_api.c"
+ "${CORE_TEST_DIR}/tfm_secure_client_2/auto_generated/intermedia_tfm_secure_client_2.c")
list(APPEND ALL_SRC_C_NS "${CORE_TEST_DIR}/tfm_secure_client_service/tfm_secure_client_service_api.c")
endif()
@@ -59,7 +65,9 @@
message(FATAL_ERROR "Incomplete build configuration: TFM_PARTITION_TEST_CORE_IPC is undefined. ")
elseif (TFM_PARTITION_TEST_CORE_IPC)
list(APPEND ALL_SRC_C_S "${CORE_TEST_DIR}/tfm_ipc_service/tfm_ipc_service_test.c"
+ "${CORE_TEST_DIR}/tfm_ipc_service/auto_generated/intermedia_tfm_ipc_service_test.c"
"${CORE_TEST_DIR}/tfm_ipc_client/tfm_ipc_client_test.c"
+ "${CORE_TEST_DIR}/tfm_ipc_client/auto_generated/intermedia_tfm_ipc_client_test.c"
)
endif()
@@ -67,7 +75,8 @@
message(FATAL_ERROR "Incomplete build configuration: TFM_PARTITION_TEST_PS is undefined.")
elseif (TFM_PARTITION_TEST_PS)
list(APPEND ALL_SRC_C_S "${CORE_TEST_DIR}/tfm_ps_test_service/tfm_ps_test_service.c"
- "${CORE_TEST_DIR}/tfm_ps_test_service/tfm_ps_test_service_api.c")
+ "${CORE_TEST_DIR}/tfm_ps_test_service/tfm_ps_test_service_api.c"
+ "${CORE_TEST_DIR}/tfm_ps_test_service/auto_generated/intermedia_tfm_ps_test_service.c")
endif()
embedded_include_directories(PATH ${TFM_ROOT_DIR} ABSOLUTE)
diff --git a/test/test_services/tfm_core_test/auto_generated/intermedia_tfm_ss_core_test.c b/test/test_services/tfm_core_test/auto_generated/intermedia_tfm_ss_core_test.c
new file mode 100644
index 0000000..88763e0
--- /dev/null
+++ b/test/test_services/tfm_core_test/auto_generated/intermedia_tfm_ss_core_test.c
@@ -0,0 +1,13 @@
+/*
+ * Copyright (c) 2020, Arm Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+/*********** WARNING: This is an auto-generated file. Do not edit! ***********/
+
+#include <stdint.h>
+
+uint8_t tfm_sp_core_test_stack[0x0380] __attribute__((aligned(8)));
+
diff --git a/test/test_services/tfm_core_test_2/auto_generated/intermedia_tfm_ss_core_test_2.c b/test/test_services/tfm_core_test_2/auto_generated/intermedia_tfm_ss_core_test_2.c
new file mode 100644
index 0000000..fd2b59c
--- /dev/null
+++ b/test/test_services/tfm_core_test_2/auto_generated/intermedia_tfm_ss_core_test_2.c
@@ -0,0 +1,13 @@
+/*
+ * Copyright (c) 2020, Arm Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+/*********** WARNING: This is an auto-generated file. Do not edit! ***********/
+
+#include <stdint.h>
+
+uint8_t tfm_sp_core_test_2_stack[0x0280] __attribute__((aligned(8)));
+
diff --git a/test/test_services/tfm_ipc_client/auto_generated/intermedia_tfm_ipc_client_test.c b/test/test_services/tfm_ipc_client/auto_generated/intermedia_tfm_ipc_client_test.c
new file mode 100644
index 0000000..8c2fc2f
--- /dev/null
+++ b/test/test_services/tfm_ipc_client/auto_generated/intermedia_tfm_ipc_client_test.c
@@ -0,0 +1,13 @@
+/*
+ * Copyright (c) 2020, Arm Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+/*********** WARNING: This is an auto-generated file. Do not edit! ***********/
+
+#include <stdint.h>
+
+uint8_t tfm_sp_ipc_client_test_stack[0x0300] __attribute__((aligned(8)));
+
diff --git a/test/test_services/tfm_ipc_service/auto_generated/intermedia_tfm_ipc_service_test.c b/test/test_services/tfm_ipc_service/auto_generated/intermedia_tfm_ipc_service_test.c
new file mode 100644
index 0000000..457ef4f
--- /dev/null
+++ b/test/test_services/tfm_ipc_service/auto_generated/intermedia_tfm_ipc_service_test.c
@@ -0,0 +1,13 @@
+/*
+ * Copyright (c) 2020, Arm Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+/*********** WARNING: This is an auto-generated file. Do not edit! ***********/
+
+#include <stdint.h>
+
+uint8_t tfm_sp_ipc_service_test_stack[0x0220] __attribute__((aligned(8)));
+
diff --git a/test/test_services/tfm_irq_test_service_1/auto_generated/intermedia_tfm_irq_test_service_1.c b/test/test_services/tfm_irq_test_service_1/auto_generated/intermedia_tfm_irq_test_service_1.c
new file mode 100644
index 0000000..a124f6f
--- /dev/null
+++ b/test/test_services/tfm_irq_test_service_1/auto_generated/intermedia_tfm_irq_test_service_1.c
@@ -0,0 +1,13 @@
+/*
+ * Copyright (c) 2020, Arm Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+/*********** WARNING: This is an auto-generated file. Do not edit! ***********/
+
+#include <stdint.h>
+
+uint8_t tfm_irq_test_1_stack[0x0400] __attribute__((aligned(8)));
+
diff --git a/test/test_services/tfm_ps_test_service/auto_generated/intermedia_tfm_ps_test_service.c b/test/test_services/tfm_ps_test_service/auto_generated/intermedia_tfm_ps_test_service.c
new file mode 100644
index 0000000..bd04fe9
--- /dev/null
+++ b/test/test_services/tfm_ps_test_service/auto_generated/intermedia_tfm_ps_test_service.c
@@ -0,0 +1,13 @@
+/*
+ * Copyright (c) 2020, Arm Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+/*********** WARNING: This is an auto-generated file. Do not edit! ***********/
+
+#include <stdint.h>
+
+uint8_t tfm_sp_ps_test_stack[0x500] __attribute__((aligned(8)));
+
diff --git a/test/test_services/tfm_secure_client_2/auto_generated/intermedia_tfm_secure_client_2.c b/test/test_services/tfm_secure_client_2/auto_generated/intermedia_tfm_secure_client_2.c
new file mode 100644
index 0000000..eeb26d6
--- /dev/null
+++ b/test/test_services/tfm_secure_client_2/auto_generated/intermedia_tfm_secure_client_2.c
@@ -0,0 +1,13 @@
+/*
+ * Copyright (c) 2020, Arm Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+/*********** WARNING: This is an auto-generated file. Do not edit! ***********/
+
+#include <stdint.h>
+
+uint8_t tfm_sp_secure_client_2_stack[0x300] __attribute__((aligned(8)));
+
diff --git a/test/test_services/tfm_secure_client_service/auto_generated/intermedia_tfm_secure_client_service.c b/test/test_services/tfm_secure_client_service/auto_generated/intermedia_tfm_secure_client_service.c
new file mode 100644
index 0000000..6d60d5f
--- /dev/null
+++ b/test/test_services/tfm_secure_client_service/auto_generated/intermedia_tfm_secure_client_service.c
@@ -0,0 +1,13 @@
+/*
+ * Copyright (c) 2020, Arm Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+/*********** WARNING: This is an auto-generated file. Do not edit! ***********/
+
+#include <stdint.h>
+
+uint8_t tfm_sp_secure_test_partition_stack[0x0D00] __attribute__((aligned(8)));
+