summaryrefslogtreecommitdiff
path: root/nrfdemo/builddk/tfm/api_ns/platform/common/assert.c
diff options
context:
space:
mode:
authorMichal Hanus <mikehanus@protonmail.com>2025-04-14 22:04:32 +0200
committerMichal Hanus <mikehanus@protonmail.com>2025-04-14 22:04:32 +0200
commit2e13c372f1419f08dab7797b244681f889dd9bcf (patch)
tree995a31c40f13068c4135c213e938e0a2a9ed05a3 /nrfdemo/builddk/tfm/api_ns/platform/common/assert.c
parent620dfd94019f3c7e3022fa5a5fb9c9b51491062d (diff)
nrfdemo
Diffstat (limited to 'nrfdemo/builddk/tfm/api_ns/platform/common/assert.c')
-rw-r--r--nrfdemo/builddk/tfm/api_ns/platform/common/assert.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/nrfdemo/builddk/tfm/api_ns/platform/common/assert.c b/nrfdemo/builddk/tfm/api_ns/platform/common/assert.c
new file mode 100644
index 0000000..2a2dacf
--- /dev/null
+++ b/nrfdemo/builddk/tfm/api_ns/platform/common/assert.c
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2023 Nordic Semiconductor ASA
+ *
+ * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
+ */
+
+#include <pm_config.h>
+#include "autoconf.h"
+#include "region_defs.h"
+#include "utilities.h"
+
+#define IS_ALIGNED_POW2(value, align) (((value) & ((align)-1)) == 0)
+
+/* Making sure the borders between secure and non-secure regions are
+ * aligned with the SPU regions
+ */
+#if !(IS_ALIGNED_POW2(PM_TFM_NONSECURE_ADDRESS, CONFIG_NRF_SPU_FLASH_REGION_ALIGNMENT))
+#pragma message \
+ "\n\n!!!Partition alignment error!!!" \
+ "\nThe non-secure start address in pm_static.yml" \
+ " or generated partition.yml is: " \
+ M2S(PM_TFM_NONSECURE_ADDRESS) \
+ "\nwhich is not aligned with the SPU HW requirements." \
+ "\nRefer to the documentation section 'TF-M partition alignment requirements'" \
+ "\nfor more information.\n\n"
+
+#error "TF-M non-secure start address is not aligned to SPU HW requirements"
+#endif
+
+#if !(IS_ALIGNED_POW2(PM_SRAM_NONSECURE_ADDRESS, CONFIG_NRF_SPU_RAM_REGION_ALIGNMENT))
+#error "SRAM non-secure address is not aligned to SPU HW requirements"
+#endif