NS Agent: Update veneer codes
Adds a new C version veneers for Armv8.1-M as it has hardware
re-entry detection so that the assembly one can be removed.
And then all the rests can be C codes.
The old assembly one are for Armv8-M only now.
Change-Id: I5ac0328dcf55acaef10dbb12c449418e8982b73c
Signed-off-by: Kevin Peng <kevin.peng@arm.com>
diff --git a/secure_fw/spm/cmsis_func/tfm_veneers.c.template b/secure_fw/spm/cmsis_func/tfm_veneers.c.template
index 8edac73..d32495d 100644
--- a/secure_fw/spm/cmsis_func/tfm_veneers.c.template
+++ b/secure_fw/spm/cmsis_func/tfm_veneers.c.template
@@ -9,6 +9,7 @@
#include "tfm_secure_api.h"
#include "spm_partition_defs.h"
+#include "security_defs.h"
{% for partition in partitions %}
/******** {{partition.manifest.name}} ********/
@@ -19,7 +20,7 @@
{% endfor %}
#define TFM_VENEER_FUNCTION(partition_name, func_name, sfn_name) \
- __tfm_secure_gateway_attributes__ \
+ __tz_c_veneer \
psa_status_t func_name##_veneer(psa_invec *in_vec, \
size_t in_len, \
psa_outvec *out_vec, \
diff --git a/secure_fw/spm/include/tfm_secure_api.h b/secure_fw/spm/include/tfm_secure_api.h
index e299fc3..36d1be0 100644
--- a/secure_fw/spm/include/tfm_secure_api.h
+++ b/secure_fw/spm/include/tfm_secure_api.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017-2021, Arm Limited. All rights reserved.
+ * Copyright (c) 2017-2022, Arm Limited. All rights reserved.
* Copyright (c) 2022 Cypress Semiconductor Corporation (an Infineon company)
* or an affiliate of Cypress Semiconductor Corporation. All rights reserved.
*
@@ -24,44 +24,6 @@
#include "tfm_core_svc.h"
#endif /* TFM_PSA_API */
-#ifdef TFM_PSA_API
-#ifndef TFM_MULTI_CORE_TOPOLOGY
-/*!
- * \def __tfm_psa_secure_gateway_attributes__
- *
- * \brief Attributes for psa api secure gateway functions
- */
-#if defined(__GNUC__) && !defined(__ARMCC_VERSION)
-/*
- * GNUARM requires noclone attribute to protect gateway function symbol from
- * being renamed and cloned
- */
-#define __tfm_psa_secure_gateway_attributes__ \
- __attribute__((cmse_nonsecure_entry, noclone, naked, section("SFN")))
-#else
-#define __tfm_psa_secure_gateway_attributes__ \
- __attribute__((cmse_nonsecure_entry, naked, section("SFN")))
-#endif /* __GNUC__ && !__ARMCC_VERSION */
-#endif /* TFM_MULTI_CORE_TOPOLOGY */
-#else /* TFM_PSA_API */
-/*!
- * \def __tfm_secure_gateway_attributes__
- *
- * \brief Attributes for secure gateway functions
- */
-#if defined(__GNUC__) && !defined(__ARMCC_VERSION)
-/*
- * GNUARM requires noclone attribute to protect gateway function symbol from
- * being renamed and cloned
- */
-#define __tfm_secure_gateway_attributes__ \
- __attribute__((cmse_nonsecure_entry, noclone, section("SFN")))
-#else
-#define __tfm_secure_gateway_attributes__ \
- __attribute__((cmse_nonsecure_entry, section("SFN")))
-#endif /* __GNUC__ && !__ARMCC_VERSION */
-#endif /* TFM_PSA_API */
-
/* Hide specific errors if not debugging */
#ifdef TFM_CORE_DEBUG
#define TFM_ERROR_STATUS(status) (status)