diff options
author | Ken Liu <ken.liu@arm.com> | 2020-08-18 21:11:47 +0800 |
---|---|---|
committer | Ken Liu <ken.liu@arm.com> | 2020-08-28 15:09:40 +0800 |
commit | 5b5e29621dfc8add941f42ac9340227b4e387d5c (patch) | |
tree | 06d6142417bf08e791a18dd6c06313632bcef7b2 | |
parent | 2ff05d5227aa23a30fc6e44664e3a567f19c90b5 (diff) | |
download | tf-m-tests-5b5e29621dfc8add941f42ac9340227b4e387d5c.tar.gz |
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>
9 files changed, 119 insertions, 6 deletions
diff --git a/test/test_services/CMakeLists.inc b/test/test_services/CMakeLists.inc index f4f04826..afece9f9 100644 --- a/test/test_services/CMakeLists.inc +++ b/test/test_services/CMakeLists.inc @@ -29,28 +29,34 @@ endif() 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 @@ if (NOT DEFINED TFM_PARTITION_TEST_CORE_IPC) 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 @@ if (NOT DEFINED TFM_PARTITION_TEST_PS) 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 00000000..88763e08 --- /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 00000000..fd2b59cf --- /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 00000000..8c2fc2fd --- /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 00000000..457ef4fc --- /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 00000000..a124f6f2 --- /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 00000000..bd04fe9c --- /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 00000000..eeb26d6d --- /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 00000000..6d60d5fc --- /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))); + |