aboutsummaryrefslogtreecommitdiff
path: root/applications/trustzone_inference/nonsecure/CMakeLists.txt
diff options
context:
space:
mode:
authorPer Åstrand <per.astrand@arm.com>2021-01-26 14:42:43 +0100
committerPer Åstrand <per.astrand@arm.com>2021-02-22 09:56:25 +0100
commit79929ff29ffe5d39b19f415fe584ee3eb3e2df97 (patch)
tree6b720eb530b36a2fab6bcdb81a2d00e049e5fdeb /applications/trustzone_inference/nonsecure/CMakeLists.txt
parent1a679c4116484c1e2912d948b0784ac5b55d1c52 (diff)
downloadethos-u-core-platform-79929ff29ffe5d39b19f415fe584ee3eb3e2df97.tar.gz
Add trustzone application example
Add example project that builds both secure and nonsecure world sides and the inference is done on the secure side. This commit includes the mpc driver as found in the upstream trustedfirmware git repository https://git.trustedfirmware.org/TF-M/trusted-firmware-m.git (8c0a234e453b51e6606d11599d0cb15097c3da48) The model,input and output used are described in the README.md in this directory. Change-Id: Ie54904a38d54df4de2d6936f066c388ea58e396b
Diffstat (limited to 'applications/trustzone_inference/nonsecure/CMakeLists.txt')
-rw-r--r--applications/trustzone_inference/nonsecure/CMakeLists.txt61
1 files changed, 61 insertions, 0 deletions
diff --git a/applications/trustzone_inference/nonsecure/CMakeLists.txt b/applications/trustzone_inference/nonsecure/CMakeLists.txt
new file mode 100644
index 0000000..a4d95ad
--- /dev/null
+++ b/applications/trustzone_inference/nonsecure/CMakeLists.txt
@@ -0,0 +1,61 @@
+#
+# Copyright (c) 2021 Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: Apache-2.0
+#
+# Licensed under the Apache License, Version 2.0 (the License); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an AS IS BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+#############################################################################
+# Configuration
+#############################################################################
+
+set(TRUSTZONE_BUILD TRUE)
+set(TRUSTZONE_SIDE nonsecure)
+
+#############################################################################
+# TrustZone Nonsecure world
+#############################################################################
+
+add_library(nonsecure_target_startup INTERFACE)
+target_link_libraries(nonsecure_target_startup INTERFACE ethosu_target_link)
+target_link_libraries(nonsecure_target_startup INTERFACE cmsis_startup)
+
+ethosu_add_executable(trustzone_nonsecure PRIVATE
+ TARGET_LIBRARY nonsecure_target_startup
+ SOURCES main_nonsecure.cpp)
+
+target_compile_definitions(trustzone_nonsecure PUBLIC TRUSTZONE_BUILD)
+target_compile_definitions(trustzone_nonsecure PUBLIC TRUSTZONE_NONSECURE)
+
+# Silence warning on cmse attributes
+target_compile_options(trustzone_nonsecure PRIVATE -Wno-ignored-attributes)
+
+#############################################################################
+# linker configuration
+#############################################################################
+
+# Pick up the gateway object file from secure build
+target_link_options(trustzone_nonsecure PRIVATE ${SECURE_GATEWAY_LIB})
+
+target_link_options(trustzone_nonsecure
+ PRIVATE "--predefine=\"-I${CMAKE_CURRENT_SOURCE_DIR}/../${ETHOSU_TARGET}\"")
+
+#############################################################################
+# Helper target to extract non-secure binary
+#############################################################################
+
+add_custom_target(nonsecure_binary ALL COMMAND fromelf --bin
+ ${CMAKE_CURRENT_BINARY_DIR}/trustzone_nonsecure.elf
+ -o ${CMAKE_CURRENT_BINARY_DIR}/ns_bin
+ DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/trustzone_nonsecure)