Platform: Remove 'TFM_UNPRIV_DATA' section

This section is not used. Remove this section and related platform
sources, and remove some unprivileged code objects out of the
unprivileged code section because they are not used by unprivileged
logic.

Change-Id: I9915cdd2d90a80cb52c357e0d759de2854e971de
Signed-off-by: Ken Liu <Ken.Liu@arm.com>
diff --git a/platform/ext/common/armclang/tfm_common_s.sct.template b/platform/ext/common/armclang/tfm_common_s.sct.template
index 41466f8..ecaf6be 100644
--- a/platform/ext/common/armclang/tfm_common_s.sct.template
+++ b/platform/ext/common/armclang/tfm_common_s.sct.template
@@ -28,8 +28,6 @@
 
     /**** Unprivileged Secure code start here */
     TFM_UNPRIV_CODE +0 ALIGN 32 {
-        platform_retarget_dev.o (+RO)
-        device_definition.o (+RO)
         *(SFN)
         *armlib*
         *libtfm_sprt.a (+RO)
@@ -176,9 +174,6 @@
     }
 #endif /* !defined(TFM_PSA_API) */
 
-    TFM_UNPRIV_DATA +0 ALIGN 32 {
-    }
-
     /**** APP RoT DATA start here */
     /*
      * This empty, zero long execution region is here to mark the start address
diff --git a/platform/ext/common/armclang/tfm_isolation_l3.sct.template b/platform/ext/common/armclang/tfm_isolation_l3.sct.template
index 2126134..8891166 100644
--- a/platform/ext/common/armclang/tfm_isolation_l3.sct.template
+++ b/platform/ext/common/armclang/tfm_isolation_l3.sct.template
@@ -96,8 +96,6 @@
 
     /**** Unprivileged Secure code + RO-data starts here */
     TFM_UNPRIV_CODE +0 ALIGN 32 {
-        platform_retarget_dev.o (+RO)
-        device_definition.o (+RO)
         *(SFN)
         *armlib* (+RO)
         *libtfm_sprt.a (+RO)
diff --git a/platform/ext/common/gcc/tfm_common_s.ld.template b/platform/ext/common/gcc/tfm_common_s.ld.template
index fcc818f..b05653e 100644
--- a/platform/ext/common/gcc/tfm_common_s.ld.template
+++ b/platform/ext/common/gcc/tfm_common_s.ld.template
@@ -73,11 +73,6 @@
         LONG (LOADADDR(.TFM_DATA))
         LONG (ADDR(.TFM_DATA))
         LONG (SIZEOF(.TFM_DATA))
-#if defined(TFM_PSA_API)
-        LONG (LOADADDR(.TFM_UNPRIV_DATA))
-        LONG (ADDR(.TFM_UNPRIV_DATA))
-        LONG (SIZEOF(.TFM_UNPRIV_DATA))
-#endif /* defined(TFM_PSA_API) */
 {% for manifest in manifests %}
     {% if manifest.attr.conditional %}
 #ifdef {{manifest.attr.conditional}}
@@ -132,10 +127,6 @@
     {
         *libc_nano*:*(.text*)
         *libc_nano*:*(.rodata*)
-        *platform_retarget_dev.*(.text*)
-        *platform_retarget_dev.*(.rodata*)
-        *device_definition.*(.text*)
-        *device_definition.*(.rodata*)
         *(SFN)
         *libgcc*:*(.text*)
         *libgcc*:*(.rodata*)
@@ -376,20 +367,6 @@
     } > RAM
 #endif /* TFM_LVL == 1 */
 
-#if defined(TFM_PSA_API)
-    .TFM_UNPRIV_DATA : ALIGN(32)
-    {
-    } > RAM AT> FLASH
-    Image$$TFM_UNPRIV_DATA$$RW$$Base = ADDR(.TFM_UNPRIV_DATA);
-    Image$$TFM_UNPRIV_DATA$$RW$$Limit = ADDR(.TFM_UNPRIV_DATA) + SIZEOF(.TFM_UNPRIV_DATA);
-
-    .TFM_UNPRIV_BSS : ALIGN(32)
-    {
-    } > RAM AT> RAM
-    Image$$TFM_UNPRIV_DATA$$ZI$$Base = ADDR(.TFM_UNPRIV_BSS);
-    Image$$TFM_UNPRIV_DATA$$ZI$$Limit = ADDR(.TFM_UNPRIV_BSS) + SIZEOF(.TFM_UNPRIV_BSS);
-#endif /* defined(TFM_PSA_API) */
-
     /**** APPLICATION RoT DATA start here */
     Image$$TFM_APP_RW_STACK_START$$Base = .;
 
diff --git a/platform/ext/common/gcc/tfm_isolation_l3.ld.template b/platform/ext/common/gcc/tfm_isolation_l3.ld.template
index a223459..3cbaf66 100644
--- a/platform/ext/common/gcc/tfm_isolation_l3.ld.template
+++ b/platform/ext/common/gcc/tfm_isolation_l3.ld.template
@@ -170,10 +170,6 @@
     /**** Unprivileged Secure code starts here */
     .ER_UNPRIV_CODE : ALIGN(32)
     {
-        *platform_retarget_dev.*(.text*)
-        *platform_retarget_dev.*(.rodata*)
-        *device_definition.*(.text*)
-        *device_definition.*(.rodata*)
         *(SFN)
         *armlib*:*(.text*)
         *armlib*:*(.rodata*)
diff --git a/platform/ext/common/iar/tfm_common_s.icf.template b/platform/ext/common/iar/tfm_common_s.icf.template
index 7c6742a..b23cec0 100644
--- a/platform/ext/common/iar/tfm_common_s.icf.template
+++ b/platform/ext/common/iar/tfm_common_s.icf.template
@@ -29,8 +29,6 @@
 };
 
 define block TFM_UNPRIV_CODE with alignment = 32 {
-       ro object platform_retarget_dev.o,
-       ro object device_definition.o,
        section SFN,
        ro section .rodata object tfm_*_secure_api.o,
        ro object *6M_tl*.a,
@@ -139,11 +137,6 @@
 keep {block TFM_SECURE_STACK};
 #endif /* !defined(TFM_PSA_API) */
 
-define block TFM_UNPRIV_DATA with alignment = 32 {
-       rw object platform_retarget_dev.o,
-       rw object device_definition.o,
-       };
-
 define block TFM_APP_RW_STACK_START with alignment = 32, size = 0 { };
 
 {% for manifest in manifests %}
@@ -347,8 +340,6 @@
     block TFM_SECURE_STACK,
 #endif /* !defined(TFM_PSA_API) */
 
-    block TFM_UNPRIV_DATA,
-
     /**** APP RoT DATA start here */
     /*
      * This empty, zero long execution region is here to mark the start address
diff --git a/platform/ext/target/mps2/an519/tfm_hal_isolation.c b/platform/ext/target/mps2/an519/tfm_hal_isolation.c
index 08bdc64..1218f80 100644
--- a/platform/ext/target/mps2/an519/tfm_hal_isolation.c
+++ b/platform/ext/target/mps2/an519/tfm_hal_isolation.c
@@ -17,18 +17,15 @@
 
 #define MPU_REGION_VENEERS           0
 #define MPU_REGION_TFM_UNPRIV_CODE   1
-#define MPU_REGION_TFM_UNPRIV_DATA   2
-#define MPU_REGION_NS_STACK          3
-#define PARTITION_REGION_RO          4
-#define PARTITION_REGION_RW_STACK    5
-#define PARTITION_REGION_PERIPH      6
+#define MPU_REGION_NS_STACK          2
+#define PARTITION_REGION_RO          3
+#define PARTITION_REGION_RW_STACK    4
+#define PARTITION_REGION_PERIPH      5
 
 REGION_DECLARE(Load$$LR$$, LR_VENEER, $$Base);
 REGION_DECLARE(Load$$LR$$, LR_VENEER, $$Limit);
 REGION_DECLARE(Image$$, TFM_UNPRIV_CODE, $$RO$$Base);
 REGION_DECLARE(Image$$, TFM_UNPRIV_CODE, $$RO$$Limit);
-REGION_DECLARE(Image$$, TFM_UNPRIV_DATA, $$RW$$Base);
-REGION_DECLARE(Image$$, TFM_UNPRIV_DATA, $$ZI$$Limit);
 REGION_DECLARE(Image$$, TFM_APP_CODE_START, $$Base);
 REGION_DECLARE(Image$$, TFM_APP_CODE_END, $$Base);
 REGION_DECLARE(Image$$, TFM_APP_RW_STACK_START, $$Base);
@@ -57,16 +54,6 @@
         MPU_ARMV8M_AP_RO_PRIV_UNPRIV,
         MPU_ARMV8M_SH_NONE
     },
-    /* TFM Core unprivileged data region */
-    {
-        MPU_REGION_TFM_UNPRIV_DATA,
-        (uint32_t)&REGION_NAME(Image$$, TFM_UNPRIV_DATA, $$RW$$Base),
-        (uint32_t)&REGION_NAME(Image$$, TFM_UNPRIV_DATA, $$ZI$$Limit),
-        MPU_ARMV8M_MAIR_ATTR_DATA_IDX,
-        MPU_ARMV8M_XN_EXEC_NEVER,
-        MPU_ARMV8M_AP_RW_PRIV_UNPRIV,
-        MPU_ARMV8M_SH_NONE
-    },
     /* NSPM PSP */
     {
         MPU_REGION_NS_STACK,
diff --git a/platform/ext/target/mps2/an521/spm_hal.c b/platform/ext/target/mps2/an521/spm_hal.c
index 88f72e8..0447cff 100644
--- a/platform/ext/target/mps2/an521/spm_hal.c
+++ b/platform/ext/target/mps2/an521/spm_hal.c
@@ -24,8 +24,8 @@
 struct mpu_armv8m_dev_t dev_mpu_s = { MPU_BASE };
 
 #ifdef CONFIG_TFM_ENABLE_MEMORY_PROTECT
-#define PARTITION_REGION_PERIPH_START   6
-#define PARTITION_REGION_PERIPH_MAX_NUM 2
+#define PARTITION_REGION_PERIPH_START   5
+#define PARTITION_REGION_PERIPH_MAX_NUM 3
 
 uint32_t periph_num_count = 0;
 #endif /* CONFIG_TFM_ENABLE_MEMORY_PROTECT */
diff --git a/platform/ext/target/mps2/an521/tfm_hal_isolation.c b/platform/ext/target/mps2/an521/tfm_hal_isolation.c
index ec8cf10..bb7b760 100644
--- a/platform/ext/target/mps2/an521/tfm_hal_isolation.c
+++ b/platform/ext/target/mps2/an521/tfm_hal_isolation.c
@@ -60,17 +60,14 @@
 
 #define MPU_REGION_VENEERS              0
 #define MPU_REGION_TFM_UNPRIV_CODE      1
-#define MPU_REGION_TFM_UNPRIV_DATA      2
-#define MPU_REGION_NS_STACK             3
-#define PARTITION_REGION_RO             4
-#define PARTITION_REGION_RW_STACK       5
+#define MPU_REGION_NS_STACK             2
+#define PARTITION_REGION_RO             3
+#define PARTITION_REGION_RW_STACK       4
 
 REGION_DECLARE(Load$$LR$$, LR_VENEER, $$Base);
 REGION_DECLARE(Load$$LR$$, LR_VENEER, $$Limit);
 REGION_DECLARE(Image$$, TFM_UNPRIV_CODE, $$RO$$Base);
 REGION_DECLARE(Image$$, TFM_UNPRIV_CODE, $$RO$$Limit);
-REGION_DECLARE(Image$$, TFM_UNPRIV_DATA, $$RW$$Base);
-REGION_DECLARE(Image$$, TFM_UNPRIV_DATA, $$ZI$$Limit);
 REGION_DECLARE(Image$$, TFM_APP_CODE_START, $$Base);
 REGION_DECLARE(Image$$, TFM_APP_CODE_END, $$Base);
 REGION_DECLARE(Image$$, TFM_APP_RW_STACK_START, $$Base);
@@ -99,16 +96,6 @@
         MPU_ARMV8M_AP_RO_PRIV_UNPRIV,
         MPU_ARMV8M_SH_NONE
     },
-    /* TFM Core unprivileged data region */
-    {
-        MPU_REGION_TFM_UNPRIV_DATA,
-        (uint32_t)&REGION_NAME(Image$$, TFM_UNPRIV_DATA, $$RW$$Base),
-        (uint32_t)&REGION_NAME(Image$$, TFM_UNPRIV_DATA, $$ZI$$Limit),
-        MPU_ARMV8M_MAIR_ATTR_DATA_IDX,
-        MPU_ARMV8M_XN_EXEC_NEVER,
-        MPU_ARMV8M_AP_RW_PRIV_UNPRIV,
-        MPU_ARMV8M_SH_NONE
-    },
     /* NSPM PSP */
     {
         MPU_REGION_NS_STACK,
diff --git a/platform/ext/target/mps2/an539/tfm_hal_isolation.c b/platform/ext/target/mps2/an539/tfm_hal_isolation.c
index a3a8576..b8f7d71 100644
--- a/platform/ext/target/mps2/an539/tfm_hal_isolation.c
+++ b/platform/ext/target/mps2/an539/tfm_hal_isolation.c
@@ -16,16 +16,13 @@
 #ifdef CONFIG_TFM_ENABLE_MEMORY_PROTECT
 #define MPU_REGION_VENEERS           0
 #define MPU_REGION_TFM_UNPRIV_CODE   1
-#define MPU_REGION_TFM_UNPRIV_DATA   2
-#define MPU_REGION_NS_STACK          3
-#define PARTITION_REGION_RO          4
-#define PARTITION_REGION_RW_STACK    5
-#define PARTITION_REGION_PERIPH      6
+#define MPU_REGION_NS_STACK          2
+#define PARTITION_REGION_RO          3
+#define PARTITION_REGION_RW_STACK    4
+#define PARTITION_REGION_PERIPH      5
 
 REGION_DECLARE(Image$$, TFM_UNPRIV_CODE, $$RO$$Base);
 REGION_DECLARE(Image$$, TFM_UNPRIV_CODE, $$RO$$Limit);
-REGION_DECLARE(Image$$, TFM_UNPRIV_DATA, $$RW$$Base);
-REGION_DECLARE(Image$$, TFM_UNPRIV_DATA, $$ZI$$Limit);
 REGION_DECLARE(Image$$, TFM_APP_CODE_START, $$Base);
 REGION_DECLARE(Image$$, TFM_APP_CODE_END, $$Base);
 REGION_DECLARE(Image$$, TFM_APP_RW_STACK_START, $$Base);
@@ -81,20 +78,6 @@
         return TFM_HAL_ERROR_GENERIC;
     }
 
-    /* TFM Core unprivileged data region */
-    region_cfg.region_nr = MPU_REGION_TFM_UNPRIV_DATA;
-    region_cfg.region_base =
-        (uint32_t)&REGION_NAME(Image$$, TFM_UNPRIV_DATA, $$RW$$Base);
-    region_cfg.region_limit =
-        (uint32_t)&REGION_NAME(Image$$, TFM_UNPRIV_DATA, $$ZI$$Limit);
-    region_cfg.region_attridx = MPU_ARMV8M_MAIR_ATTR_DATA_IDX;
-    region_cfg.attr_access = MPU_ARMV8M_AP_RW_PRIV_UNPRIV;
-    region_cfg.attr_sh = MPU_ARMV8M_SH_NONE;
-    region_cfg.attr_exec = MPU_ARMV8M_XN_EXEC_NEVER;
-    if (mpu_region_enable(&region_cfg) != MPU_ARMV8M_OK) {
-        return TFM_HAL_ERROR_GENERIC;
-    }
-
     /* NSPM PSP */
     region_cfg.region_nr = MPU_REGION_NS_STACK;
     region_cfg.region_base =
diff --git a/platform/ext/target/mps2/fvp_sse300/spm_hal.c b/platform/ext/target/mps2/fvp_sse300/spm_hal.c
index dbc22bc..6ddd5ce 100644
--- a/platform/ext/target/mps2/fvp_sse300/spm_hal.c
+++ b/platform/ext/target/mps2/fvp_sse300/spm_hal.c
@@ -20,8 +20,8 @@
 struct mpu_armv8m_dev_t dev_mpu_s = { MPU_BASE };
 
 #ifdef CONFIG_TFM_ENABLE_MEMORY_PROTECT
-#define PARTITION_REGION_PERIPH_START   6
-#define PARTITION_REGION_PERIPH_MAX_NUM 2
+#define PARTITION_REGION_PERIPH_START   5
+#define PARTITION_REGION_PERIPH_MAX_NUM 3
 
 uint32_t periph_num_count = 0;
 #endif /* CONFIG_TFM_ENABLE_MEMORY_PROTECT */
diff --git a/platform/ext/target/mps2/fvp_sse300/tfm_hal_isolation.c b/platform/ext/target/mps2/fvp_sse300/tfm_hal_isolation.c
index 253c2bf..b0322bf 100644
--- a/platform/ext/target/mps2/fvp_sse300/tfm_hal_isolation.c
+++ b/platform/ext/target/mps2/fvp_sse300/tfm_hal_isolation.c
@@ -18,17 +18,14 @@
 
 #define MPU_REGION_VENEERS              0
 #define MPU_REGION_TFM_UNPRIV_CODE      1
-#define MPU_REGION_TFM_UNPRIV_DATA      2
-#define MPU_REGION_NS_STACK             3
-#define PARTITION_REGION_RO             4
-#define PARTITION_REGION_RW_STACK       5
+#define MPU_REGION_NS_STACK             2
+#define PARTITION_REGION_RO             3
+#define PARTITION_REGION_RW_STACK       4
 
 REGION_DECLARE(Load$$LR$$, LR_VENEER, $$Base);
 REGION_DECLARE(Load$$LR$$, LR_VENEER, $$Limit);
 REGION_DECLARE(Image$$, TFM_UNPRIV_CODE, $$RO$$Base);
 REGION_DECLARE(Image$$, TFM_UNPRIV_CODE, $$RO$$Limit);
-REGION_DECLARE(Image$$, TFM_UNPRIV_DATA, $$RW$$Base);
-REGION_DECLARE(Image$$, TFM_UNPRIV_DATA, $$ZI$$Limit);
 REGION_DECLARE(Image$$, TFM_APP_CODE_START, $$Base);
 REGION_DECLARE(Image$$, TFM_APP_CODE_END, $$Base);
 REGION_DECLARE(Image$$, TFM_APP_RW_STACK_START, $$Base);
@@ -57,16 +54,6 @@
         MPU_ARMV8M_AP_RO_PRIV_UNPRIV,
         MPU_ARMV8M_SH_NONE
     },
-    /* TFM Core unprivileged data region */
-    {
-        MPU_REGION_TFM_UNPRIV_DATA,
-        (uint32_t)&REGION_NAME(Image$$, TFM_UNPRIV_DATA, $$RW$$Base),
-        (uint32_t)&REGION_NAME(Image$$, TFM_UNPRIV_DATA, $$ZI$$Limit),
-        MPU_ARMV8M_MAIR_ATTR_DATA_IDX,
-        MPU_ARMV8M_XN_EXEC_NEVER,
-        MPU_ARMV8M_AP_RW_PRIV_UNPRIV,
-        MPU_ARMV8M_SH_NONE
-    },
     /* NSPM PSP */
     {
         MPU_REGION_NS_STACK,
diff --git a/platform/ext/target/mps2/sse-200_aws/tfm_hal_isolation.c b/platform/ext/target/mps2/sse-200_aws/tfm_hal_isolation.c
index a852e59..0e167e4 100644
--- a/platform/ext/target/mps2/sse-200_aws/tfm_hal_isolation.c
+++ b/platform/ext/target/mps2/sse-200_aws/tfm_hal_isolation.c
@@ -17,18 +17,15 @@
 
 #define MPU_REGION_VENEERS           0
 #define MPU_REGION_TFM_UNPRIV_CODE   1
-#define MPU_REGION_TFM_UNPRIV_DATA   2
-#define MPU_REGION_NS_STACK          3
-#define PARTITION_REGION_RO          4
-#define PARTITION_REGION_RW_STACK    5
-#define PARTITION_REGION_PERIPH      6
+#define MPU_REGION_NS_STACK          2
+#define PARTITION_REGION_RO          3
+#define PARTITION_REGION_RW_STACK    4
+#define PARTITION_REGION_PERIPH      5
 
 REGION_DECLARE(Load$$LR$$, LR_VENEER, $$Base);
 REGION_DECLARE(Load$$LR$$, LR_VENEER, $$Limit);
 REGION_DECLARE(Image$$, TFM_UNPRIV_CODE, $$RO$$Base);
 REGION_DECLARE(Image$$, TFM_UNPRIV_CODE, $$RO$$Limit);
-REGION_DECLARE(Image$$, TFM_UNPRIV_DATA, $$RW$$Base);
-REGION_DECLARE(Image$$, TFM_UNPRIV_DATA, $$ZI$$Limit);
 REGION_DECLARE(Image$$, TFM_APP_CODE_START, $$Base);
 REGION_DECLARE(Image$$, TFM_APP_CODE_END, $$Base);
 REGION_DECLARE(Image$$, TFM_APP_RW_STACK_START, $$Base);
@@ -57,16 +54,6 @@
         MPU_ARMV8M_AP_RO_PRIV_UNPRIV,
         MPU_ARMV8M_SH_NONE
     },
-    /* TFM Core unprivileged data region */
-    {
-        MPU_REGION_TFM_UNPRIV_DATA,
-        (uint32_t)&REGION_NAME(Image$$, TFM_UNPRIV_DATA, $$RW$$Base),
-        (uint32_t)&REGION_NAME(Image$$, TFM_UNPRIV_DATA, $$ZI$$Limit),
-        MPU_ARMV8M_MAIR_ATTR_DATA_IDX,
-        MPU_ARMV8M_XN_EXEC_NEVER,
-        MPU_ARMV8M_AP_RW_PRIV_UNPRIV,
-        MPU_ARMV8M_SH_NONE
-    },
     /* NSPM PSP */
     {
         MPU_REGION_NS_STACK,
diff --git a/platform/ext/target/mps3/an524/tfm_hal_isolation.c b/platform/ext/target/mps3/an524/tfm_hal_isolation.c
index 7f4a8dc..182587d 100644
--- a/platform/ext/target/mps3/an524/tfm_hal_isolation.c
+++ b/platform/ext/target/mps3/an524/tfm_hal_isolation.c
@@ -16,16 +16,13 @@
 
 #define MPU_REGION_VENEERS           0
 #define MPU_REGION_TFM_UNPRIV_CODE   1
-#define MPU_REGION_TFM_UNPRIV_DATA   2
-#define MPU_REGION_NS_STACK          3
-#define PARTITION_REGION_RO          4
-#define PARTITION_REGION_RW_STACK    5
-#define PARTITION_REGION_PERIPH      6
+#define MPU_REGION_NS_STACK          2
+#define PARTITION_REGION_RO          3
+#define PARTITION_REGION_RW_STACK    4
+#define PARTITION_REGION_PERIPH      5
 
 REGION_DECLARE(Image$$, TFM_UNPRIV_CODE, $$RO$$Base);
 REGION_DECLARE(Image$$, TFM_UNPRIV_CODE, $$RO$$Limit);
-REGION_DECLARE(Image$$, TFM_UNPRIV_DATA, $$RW$$Base);
-REGION_DECLARE(Image$$, TFM_UNPRIV_DATA, $$ZI$$Limit);
 REGION_DECLARE(Image$$, TFM_APP_CODE_START, $$Base);
 REGION_DECLARE(Image$$, TFM_APP_CODE_END, $$Base);
 REGION_DECLARE(Image$$, TFM_APP_RW_STACK_START, $$Base);
@@ -81,20 +78,6 @@
         return TFM_HAL_ERROR_GENERIC;
     }
 
-    /* TFM Core unprivileged data region */
-    region_cfg.region_nr = MPU_REGION_TFM_UNPRIV_DATA;
-    region_cfg.region_base =
-        (uint32_t)&REGION_NAME(Image$$, TFM_UNPRIV_DATA, $$RW$$Base);
-    region_cfg.region_limit =
-        (uint32_t)&REGION_NAME(Image$$, TFM_UNPRIV_DATA, $$ZI$$Limit);
-    region_cfg.region_attridx = MPU_ARMV8M_MAIR_ATTR_DATA_IDX;
-    region_cfg.attr_access = MPU_ARMV8M_AP_RW_PRIV_UNPRIV;
-    region_cfg.attr_sh = MPU_ARMV8M_SH_NONE;
-    region_cfg.attr_exec = MPU_ARMV8M_XN_EXEC_NEVER;
-    if (mpu_region_enable(&region_cfg) != MPU_ARMV8M_OK) {
-        return TFM_HAL_ERROR_GENERIC;
-    }
-
     /* NSPM PSP */
     region_cfg.region_nr = MPU_REGION_NS_STACK;
     region_cfg.region_base =
diff --git a/platform/ext/target/mps3/fvp_sse300/spm_hal.c b/platform/ext/target/mps3/fvp_sse300/spm_hal.c
index 45205aa..204482f 100644
--- a/platform/ext/target/mps3/fvp_sse300/spm_hal.c
+++ b/platform/ext/target/mps3/fvp_sse300/spm_hal.c
@@ -22,8 +22,8 @@
 struct mpu_armv8m_dev_t dev_mpu_s = { MPU_BASE };
 
 #ifdef CONFIG_TFM_ENABLE_MEMORY_PROTECT
-#define PARTITION_REGION_PERIPH_START   6
-#define PARTITION_REGION_PERIPH_MAX_NUM 2
+#define PARTITION_REGION_PERIPH_START   5
+#define PARTITION_REGION_PERIPH_MAX_NUM 3
 
 uint32_t periph_num_count = 0;
 #endif /* CONFIG_TFM_ENABLE_MEMORY_PROTECT */
diff --git a/platform/ext/target/mps3/fvp_sse300/tfm_hal_isolation.c b/platform/ext/target/mps3/fvp_sse300/tfm_hal_isolation.c
index b5d27ed..dc0dfbc 100644
--- a/platform/ext/target/mps3/fvp_sse300/tfm_hal_isolation.c
+++ b/platform/ext/target/mps3/fvp_sse300/tfm_hal_isolation.c
@@ -18,17 +18,14 @@
 
 #define MPU_REGION_VENEERS              0
 #define MPU_REGION_TFM_UNPRIV_CODE      1
-#define MPU_REGION_TFM_UNPRIV_DATA      2
-#define MPU_REGION_NS_STACK             3
-#define PARTITION_REGION_RO             4
-#define PARTITION_REGION_RW_STACK       5
+#define MPU_REGION_NS_STACK             2
+#define PARTITION_REGION_RO             3
+#define PARTITION_REGION_RW_STACK       4
 
 REGION_DECLARE(Load$$LR$$, LR_VENEER, $$Base);
 REGION_DECLARE(Load$$LR$$, LR_VENEER, $$Limit);
 REGION_DECLARE(Image$$, TFM_UNPRIV_CODE, $$RO$$Base);
 REGION_DECLARE(Image$$, TFM_UNPRIV_CODE, $$RO$$Limit);
-REGION_DECLARE(Image$$, TFM_UNPRIV_DATA, $$RW$$Base);
-REGION_DECLARE(Image$$, TFM_UNPRIV_DATA, $$ZI$$Limit);
 REGION_DECLARE(Image$$, TFM_APP_CODE_START, $$Base);
 REGION_DECLARE(Image$$, TFM_APP_CODE_END, $$Base);
 REGION_DECLARE(Image$$, TFM_APP_RW_STACK_START, $$Base);
@@ -57,16 +54,6 @@
         MPU_ARMV8M_AP_RO_PRIV_UNPRIV,
         MPU_ARMV8M_SH_NONE
     },
-    /* TFM Core unprivileged data region */
-    {
-        MPU_REGION_TFM_UNPRIV_DATA,
-        (uint32_t)&REGION_NAME(Image$$, TFM_UNPRIV_DATA, $$RW$$Base),
-        (uint32_t)&REGION_NAME(Image$$, TFM_UNPRIV_DATA, $$ZI$$Limit),
-        MPU_ARMV8M_MAIR_ATTR_DATA_IDX,
-        MPU_ARMV8M_XN_EXEC_NEVER,
-        MPU_ARMV8M_AP_RW_PRIV_UNPRIV,
-        MPU_ARMV8M_SH_NONE
-    },
     /* NSPM PSP */
     {
         MPU_REGION_NS_STACK,
diff --git a/platform/ext/target/musca_a/spm_hal.c b/platform/ext/target/musca_a/spm_hal.c
index ec7fd3c..a96cd1c 100644
--- a/platform/ext/target/musca_a/spm_hal.c
+++ b/platform/ext/target/musca_a/spm_hal.c
@@ -24,8 +24,8 @@
 struct mpu_armv8m_dev_t dev_mpu_s = { MPU_BASE };
 
 #ifdef CONFIG_TFM_ENABLE_MEMORY_PROTECT
-#define PARTITION_REGION_PERIPH_START   6
-#define PARTITION_REGION_PERIPH_MAX_NUM 2
+#define PARTITION_REGION_PERIPH_START   5
+#define PARTITION_REGION_PERIPH_MAX_NUM 3
 
 uint32_t periph_num_count = 0;
 #endif /* CONFIG_TFM_ENABLE_MEMORY_PROTECT */
diff --git a/platform/ext/target/musca_a/tfm_hal_isolation.c b/platform/ext/target/musca_a/tfm_hal_isolation.c
index 1d9a4d4..b2d83af 100644
--- a/platform/ext/target/musca_a/tfm_hal_isolation.c
+++ b/platform/ext/target/musca_a/tfm_hal_isolation.c
@@ -15,15 +15,12 @@
 #ifdef CONFIG_TFM_ENABLE_MEMORY_PROTECT
 #define MPU_REGION_VENEERS              0
 #define MPU_REGION_TFM_UNPRIV_CODE      1
-#define MPU_REGION_TFM_UNPRIV_DATA      2
-#define MPU_REGION_NS_STACK             3
-#define PARTITION_REGION_RO             4
-#define PARTITION_REGION_RW_STACK       5
+#define MPU_REGION_NS_STACK             2
+#define PARTITION_REGION_RO             3
+#define PARTITION_REGION_RW_STACK       4
 
 REGION_DECLARE(Image$$, TFM_UNPRIV_CODE, $$RO$$Base);
 REGION_DECLARE(Image$$, TFM_UNPRIV_CODE, $$RO$$Limit);
-REGION_DECLARE(Image$$, TFM_UNPRIV_DATA, $$RW$$Base);
-REGION_DECLARE(Image$$, TFM_UNPRIV_DATA, $$ZI$$Limit);
 REGION_DECLARE(Image$$, TFM_APP_CODE_START, $$Base);
 REGION_DECLARE(Image$$, TFM_APP_CODE_END, $$Base);
 REGION_DECLARE(Image$$, TFM_APP_RW_STACK_START, $$Base);
@@ -76,20 +73,6 @@
         return TFM_HAL_ERROR_GENERIC;
     }
 
-    /* TFM Core unprivileged data region */
-    region_cfg.region_nr = MPU_REGION_TFM_UNPRIV_DATA;
-    region_cfg.region_base =
-        (uint32_t)&REGION_NAME(Image$$, TFM_UNPRIV_DATA, $$RW$$Base);
-    region_cfg.region_limit =
-        (uint32_t)&REGION_NAME(Image$$, TFM_UNPRIV_DATA, $$ZI$$Limit);
-    region_cfg.region_attridx = MPU_ARMV8M_MAIR_ATTR_DATA_IDX;
-    region_cfg.attr_access = MPU_ARMV8M_AP_RW_PRIV_UNPRIV;
-    region_cfg.attr_sh = MPU_ARMV8M_SH_NONE;
-    region_cfg.attr_exec = MPU_ARMV8M_XN_EXEC_NEVER;
-    if (mpu_armv8m_region_enable(&dev_mpu_s, &region_cfg) != MPU_ARMV8M_OK) {
-        return TFM_HAL_ERROR_GENERIC;
-    }
-
     /* NSPM PSP */
     region_cfg.region_nr = MPU_REGION_NS_STACK;
     region_cfg.region_base =
diff --git a/platform/ext/target/musca_b1/sse_200/spm_hal.c b/platform/ext/target/musca_b1/sse_200/spm_hal.c
index 7d7edec..a2e8b06 100644
--- a/platform/ext/target/musca_b1/sse_200/spm_hal.c
+++ b/platform/ext/target/musca_b1/sse_200/spm_hal.c
@@ -26,8 +26,8 @@
 struct mpu_armv8m_dev_t dev_mpu_s = { MPU_BASE };
 
 #ifdef CONFIG_TFM_ENABLE_MEMORY_PROTECT
-#define PARTITION_REGION_PERIPH_START   6
-#define PARTITION_REGION_PERIPH_MAX_NUM 2
+#define PARTITION_REGION_PERIPH_START   5
+#define PARTITION_REGION_PERIPH_MAX_NUM 3
 
 uint32_t periph_num_count = 0;
 #endif /* CONFIG_TFM_ENABLE_MEMORY_PROTECT */
diff --git a/platform/ext/target/musca_b1/sse_200/tfm_hal_isolation.c b/platform/ext/target/musca_b1/sse_200/tfm_hal_isolation.c
index d4bc4e1..6c61583 100644
--- a/platform/ext/target/musca_b1/sse_200/tfm_hal_isolation.c
+++ b/platform/ext/target/musca_b1/sse_200/tfm_hal_isolation.c
@@ -58,15 +58,12 @@
 #else /* TFM_LVL == 3 */
 #define MPU_REGION_VENEERS              0
 #define MPU_REGION_TFM_UNPRIV_CODE      1
-#define MPU_REGION_TFM_UNPRIV_DATA      2
-#define MPU_REGION_NS_STACK             3
-#define PARTITION_REGION_RO             4
-#define PARTITION_REGION_RW_STACK       5
+#define MPU_REGION_NS_STACK             2
+#define PARTITION_REGION_RO             3
+#define PARTITION_REGION_RW_STACK       4
 
 REGION_DECLARE(Image$$, TFM_UNPRIV_CODE, $$RO$$Base);
 REGION_DECLARE(Image$$, TFM_UNPRIV_CODE, $$RO$$Limit);
-REGION_DECLARE(Image$$, TFM_UNPRIV_DATA, $$RW$$Base);
-REGION_DECLARE(Image$$, TFM_UNPRIV_DATA, $$ZI$$Limit);
 REGION_DECLARE(Image$$, TFM_APP_CODE_START, $$Base);
 REGION_DECLARE(Image$$, TFM_APP_CODE_END, $$Base);
 REGION_DECLARE(Image$$, TFM_APP_RW_STACK_START, $$Base);
@@ -142,20 +139,6 @@
         return TFM_HAL_ERROR_GENERIC;
     }
 
-    /* TFM Core unprivileged data region */
-    region_cfg.region_nr = MPU_REGION_TFM_UNPRIV_DATA;
-    region_cfg.region_base =
-        (uint32_t)&REGION_NAME(Image$$, TFM_UNPRIV_DATA, $$RW$$Base);
-    region_cfg.region_limit =
-        (uint32_t)&REGION_NAME(Image$$, TFM_UNPRIV_DATA, $$ZI$$Limit);
-    region_cfg.region_attridx = MPU_ARMV8M_MAIR_ATTR_DATA_IDX;
-    region_cfg.attr_access = MPU_ARMV8M_AP_RW_PRIV_UNPRIV;
-    region_cfg.attr_sh = MPU_ARMV8M_SH_NONE;
-    region_cfg.attr_exec = MPU_ARMV8M_XN_EXEC_NEVER;
-    if (mpu_armv8m_region_enable(&dev_mpu_s, &region_cfg) != MPU_ARMV8M_OK) {
-        return TFM_HAL_ERROR_GENERIC;
-    }
-
     /* NSPM PSP */
     region_cfg.region_nr = MPU_REGION_NS_STACK;
     region_cfg.region_base =
diff --git a/platform/ext/target/musca_s1/tfm_hal_isolation.c b/platform/ext/target/musca_s1/tfm_hal_isolation.c
index 779b582..ebc278a 100644
--- a/platform/ext/target/musca_s1/tfm_hal_isolation.c
+++ b/platform/ext/target/musca_s1/tfm_hal_isolation.c
@@ -16,16 +16,13 @@
 
 #define MPU_REGION_VENEERS           0
 #define MPU_REGION_TFM_UNPRIV_CODE   1
-#define MPU_REGION_TFM_UNPRIV_DATA   2
-#define MPU_REGION_NS_STACK          3
-#define PARTITION_REGION_RO          4
-#define PARTITION_REGION_RW_STACK    5
-#define PARTITION_REGION_PERIPH      6
+#define MPU_REGION_NS_STACK          2
+#define PARTITION_REGION_RO          3
+#define PARTITION_REGION_RW_STACK    4
+#define PARTITION_REGION_PERIPH      5
 
 REGION_DECLARE(Image$$, TFM_UNPRIV_CODE, $$RO$$Base);
 REGION_DECLARE(Image$$, TFM_UNPRIV_CODE, $$RO$$Limit);
-REGION_DECLARE(Image$$, TFM_UNPRIV_DATA, $$RW$$Base);
-REGION_DECLARE(Image$$, TFM_UNPRIV_DATA, $$ZI$$Limit);
 REGION_DECLARE(Image$$, TFM_APP_CODE_START, $$Base);
 REGION_DECLARE(Image$$, TFM_APP_CODE_END, $$Base);
 REGION_DECLARE(Image$$, TFM_APP_RW_STACK_START, $$Base);
@@ -82,20 +79,6 @@
         return TFM_HAL_ERROR_GENERIC;
     }
 
-    /* TFM Core unprivileged data region */
-    region_cfg.region_nr = MPU_REGION_TFM_UNPRIV_DATA;
-    region_cfg.region_base =
-        (uint32_t)&REGION_NAME(Image$$, TFM_UNPRIV_DATA, $$RW$$Base);
-    region_cfg.region_limit =
-        (uint32_t)&REGION_NAME(Image$$, TFM_UNPRIV_DATA, $$ZI$$Limit);
-    region_cfg.region_attridx = MPU_ARMV8M_MAIR_ATTR_DATA_IDX;
-    region_cfg.attr_access = MPU_ARMV8M_AP_RW_PRIV_UNPRIV;
-    region_cfg.attr_sh = MPU_ARMV8M_SH_NONE;
-    region_cfg.attr_exec = MPU_ARMV8M_XN_EXEC_NEVER;
-    if (mpu_armv8m_region_enable(&dev_mpu_s, &region_cfg) != MPU_ARMV8M_OK) {
-        return TFM_HAL_ERROR_GENERIC;
-    }
-
     /* NSPM PSP */
     region_cfg.region_nr = MPU_REGION_NS_STACK;
     region_cfg.region_base =
diff --git a/platform/ext/target/nordic_nrf/common/core/gcc/nordic_nrf_s.ld.template b/platform/ext/target/nordic_nrf/common/core/gcc/nordic_nrf_s.ld.template
index 838d742..2cdcf8d 100644
--- a/platform/ext/target/nordic_nrf/common/core/gcc/nordic_nrf_s.ld.template
+++ b/platform/ext/target/nordic_nrf/common/core/gcc/nordic_nrf_s.ld.template
@@ -93,11 +93,6 @@
         LONG (LOADADDR(.TFM_DATA))
         LONG (ADDR(.TFM_DATA))
         LONG (SIZEOF(.TFM_DATA))
-#if defined(TFM_PSA_API)
-        LONG (LOADADDR(.TFM_UNPRIV_DATA))
-        LONG (ADDR(.TFM_UNPRIV_DATA))
-        LONG (SIZEOF(.TFM_UNPRIV_DATA))
-#endif /* defined(TFM_PSA_API) */
 {% for manifest in manifests %}
     {% if manifest.attr.conditional %}
 #ifdef {{manifest.attr.conditional}}
@@ -148,10 +143,6 @@
     {
         *libc_nano*:*(.text*)
         *libc_nano*:*(.rodata*)
-        *platform_retarget_dev.*(.text*)
-        *platform_retarget_dev.*(.rodata*)
-        *device_definition.*(.text*)
-        *device_definition.*(.rodata*)
         *(SFN)
         *libgcc*:*(.text*)
         *libgcc*:*(.rodata*)
@@ -395,20 +386,6 @@
     } > RAM
 #endif /* TFM_LVL == 1 */
 
-#if defined(TFM_PSA_API)
-    .TFM_UNPRIV_DATA : ALIGN(32)
-    {
-    } > RAM AT> FLASH
-    Image$$TFM_UNPRIV_DATA$$RW$$Base = ADDR(.TFM_UNPRIV_DATA);
-    Image$$TFM_UNPRIV_DATA$$RW$$Limit = ADDR(.TFM_UNPRIV_DATA) + SIZEOF(.TFM_UNPRIV_DATA);
-
-    .TFM_UNPRIV_BSS : ALIGN(32)
-    {
-    } > RAM AT> RAM
-    Image$$TFM_UNPRIV_DATA$$ZI$$Base = ADDR(.TFM_UNPRIV_BSS);
-    Image$$TFM_UNPRIV_DATA$$ZI$$Limit = ADDR(.TFM_UNPRIV_BSS) + SIZEOF(.TFM_UNPRIV_BSS);
-#endif /* defined(TFM_PSA_API) */
-
     /**** APPLICATION RoT DATA start here */
     Image$$TFM_APP_RW_STACK_START$$Base = .;
 
diff --git a/platform/ext/target/nordic_nrf/common/core/spm_hal.c b/platform/ext/target/nordic_nrf/common/core/spm_hal.c
index 4c49821..c7cb606 100644
--- a/platform/ext/target/nordic_nrf/common/core/spm_hal.c
+++ b/platform/ext/target/nordic_nrf/common/core/spm_hal.c
@@ -22,8 +22,8 @@
 #if defined(CONFIG_TFM_ENABLE_MEMORY_PROTECT)
 static struct mpu_armv8m_dev_t dev_mpu_s = { MPU_BASE };
 
-#define PARTITION_REGION_PERIPH_START   6
-#define PARTITION_REGION_PERIPH_MAX_NUM 2
+#define PARTITION_REGION_PERIPH_START   5
+#define PARTITION_REGION_PERIPH_MAX_NUM 3
 
 static uint32_t periph_num_count = 0;
 #endif /* CONFIG_TFM_ENABLE_MEMORY_PROTECT */
diff --git a/platform/ext/target/nordic_nrf/common/core/tfm_hal_isolation.c b/platform/ext/target/nordic_nrf/common/core/tfm_hal_isolation.c
index 23937a0..5cf875b 100644
--- a/platform/ext/target/nordic_nrf/common/core/tfm_hal_isolation.c
+++ b/platform/ext/target/nordic_nrf/common/core/tfm_hal_isolation.c
@@ -16,15 +16,12 @@
 #ifdef CONFIG_TFM_ENABLE_MEMORY_PROTECT
 #define MPU_REGION_VENEERS              0
 #define MPU_REGION_TFM_UNPRIV_CODE      1
-#define MPU_REGION_TFM_UNPRIV_DATA      2
-#define MPU_REGION_NS_STACK             3
-#define PARTITION_REGION_RO             4
-#define PARTITION_REGION_RW_STACK       5
+#define MPU_REGION_NS_STACK             2
+#define PARTITION_REGION_RO             3
+#define PARTITION_REGION_RW_STACK       4
 
 REGION_DECLARE(Image$$, TFM_UNPRIV_CODE, $$RO$$Base);
 REGION_DECLARE(Image$$, TFM_UNPRIV_CODE, $$RO$$Limit);
-REGION_DECLARE(Image$$, TFM_UNPRIV_DATA, $$RW$$Base);
-REGION_DECLARE(Image$$, TFM_UNPRIV_DATA, $$ZI$$Limit);
 REGION_DECLARE(Image$$, TFM_APP_CODE_START, $$Base);
 REGION_DECLARE(Image$$, TFM_APP_CODE_END, $$Base);
 REGION_DECLARE(Image$$, TFM_APP_RW_STACK_START, $$Base);
@@ -82,20 +79,6 @@
         return TFM_HAL_ERROR_GENERIC;
     }
 
-    /* TFM Core unprivileged data region */
-    region_cfg.region_nr = MPU_REGION_TFM_UNPRIV_DATA;
-    region_cfg.region_base =
-        (uint32_t)&REGION_NAME(Image$$, TFM_UNPRIV_DATA, $$RW$$Base);
-    region_cfg.region_limit =
-        (uint32_t)&REGION_NAME(Image$$, TFM_UNPRIV_DATA, $$ZI$$Limit);
-    region_cfg.region_attridx = MPU_ARMV8M_MAIR_ATTR_DATA_IDX;
-    region_cfg.attr_access = MPU_ARMV8M_AP_RW_PRIV_UNPRIV;
-    region_cfg.attr_sh = MPU_ARMV8M_SH_NONE;
-    region_cfg.attr_exec = MPU_ARMV8M_XN_EXEC_NEVER;
-    if (mpu_armv8m_region_enable(&dev_mpu_s, &region_cfg) != MPU_ARMV8M_OK) {
-        return TFM_HAL_ERROR_GENERIC;
-    }
-
     /* NSPM PSP */
     region_cfg.region_nr = MPU_REGION_NS_STACK;
     region_cfg.region_base =
diff --git a/platform/ext/target/nuvoton/m2351/device/source/armclang/m2351_s.sct b/platform/ext/target/nuvoton/m2351/device/source/armclang/m2351_s.sct
index c133b2a..8c4b0b0 100644
--- a/platform/ext/target/nuvoton/m2351/device/source/armclang/m2351_s.sct
+++ b/platform/ext/target/nuvoton/m2351/device/source/armclang/m2351_s.sct
@@ -28,8 +28,6 @@
 
     /**** Unprivileged Secure code start here */
     TFM_UNPRIV_CODE +0 ALIGN 32 {
-        platform_retarget_dev.o (+RO)
-        device_definition.o (+RO)
         *(SFN)
         *armlib*
         *libtfm_sprt.a (+RO)
@@ -232,9 +230,6 @@
     }
 #endif /* !defined(TFM_PSA_API) */
 
-    TFM_UNPRIV_DATA +0 ALIGN 32 {
-    }
-
     /**** APP RoT DATA start here */
     /*
      * This empty, zero long execution region is here to mark the start address
diff --git a/platform/ext/target/nuvoton/m2351/tfm_hal_isolation.c b/platform/ext/target/nuvoton/m2351/tfm_hal_isolation.c
index 247a92a..ced8262 100644
--- a/platform/ext/target/nuvoton/m2351/tfm_hal_isolation.c
+++ b/platform/ext/target/nuvoton/m2351/tfm_hal_isolation.c
@@ -18,17 +18,14 @@
 
 #define MPU_REGION_VENEERS              0
 #define MPU_REGION_TFM_UNPRIV_CODE      1
-#define MPU_REGION_TFM_UNPRIV_DATA      2
-#define MPU_REGION_NS_STACK             3
-#define PARTITION_REGION_RO             4
-#define PARTITION_REGION_RW_STACK       5
+#define MPU_REGION_NS_STACK             2
+#define PARTITION_REGION_RO             3
+#define PARTITION_REGION_RW_STACK       4
 
 REGION_DECLARE(Load$$LR$$, LR_VENEER, $$Base);
 REGION_DECLARE(Load$$LR$$, LR_VENEER, $$Limit);
 REGION_DECLARE(Image$$, TFM_UNPRIV_CODE, $$RO$$Base);
 REGION_DECLARE(Image$$, TFM_UNPRIV_CODE, $$RO$$Limit);
-REGION_DECLARE(Image$$, TFM_UNPRIV_DATA, $$RW$$Base);
-REGION_DECLARE(Image$$, TFM_UNPRIV_DATA, $$ZI$$Limit);
 REGION_DECLARE(Image$$, TFM_APP_CODE_START, $$Base);
 REGION_DECLARE(Image$$, TFM_APP_CODE_END, $$Base);
 REGION_DECLARE(Image$$, TFM_APP_RW_STACK_START, $$Base);
@@ -57,16 +54,6 @@
         MPU_ARMV8M_AP_RO_PRIV_UNPRIV,
         MPU_ARMV8M_SH_NONE
     },
-    /* TFM Core unprivileged data region */
-    {
-        MPU_REGION_TFM_UNPRIV_DATA,
-        (uint32_t)&REGION_NAME(Image$$, TFM_UNPRIV_DATA, $$RW$$Base),
-        (uint32_t)&REGION_NAME(Image$$, TFM_UNPRIV_DATA, $$ZI$$Limit),
-        MPU_ARMV8M_MAIR_ATTR_DATA_IDX,
-        MPU_ARMV8M_XN_EXEC_NEVER,
-        MPU_ARMV8M_AP_RW_PRIV_UNPRIV,
-        MPU_ARMV8M_SH_NONE
-    },
     /* NSPM PSP */
     {
         MPU_REGION_NS_STACK,
diff --git a/platform/ext/target/nxp/lpcxpresso55s69/spm_hal.c b/platform/ext/target/nxp/lpcxpresso55s69/spm_hal.c
index 726bc1f..4c92639 100755
--- a/platform/ext/target/nxp/lpcxpresso55s69/spm_hal.c
+++ b/platform/ext/target/nxp/lpcxpresso55s69/spm_hal.c
@@ -22,8 +22,8 @@
 struct mpu_armv8m_dev_t dev_mpu_s = { MPU_BASE };

 

 #ifdef CONFIG_TFM_ENABLE_MEMORY_PROTECT

-#define PARTITION_REGION_PERIPH_START   6

-#define PARTITION_REGION_PERIPH_MAX_NUM 2

+#define PARTITION_REGION_PERIPH_START   5

+#define PARTITION_REGION_PERIPH_MAX_NUM 3

 

 uint32_t periph_num_count = 0;

 #endif /* CONFIG_TFM_ENABLE_MEMORY_PROTECT */

diff --git a/platform/ext/target/nxp/lpcxpresso55s69/tfm_hal_isolation.c b/platform/ext/target/nxp/lpcxpresso55s69/tfm_hal_isolation.c
index 8b2282d..7fd1d10 100644
--- a/platform/ext/target/nxp/lpcxpresso55s69/tfm_hal_isolation.c
+++ b/platform/ext/target/nxp/lpcxpresso55s69/tfm_hal_isolation.c
@@ -15,15 +15,12 @@
 #ifdef CONFIG_TFM_ENABLE_MEMORY_PROTECT
 #define MPU_REGION_VENEERS              0
 #define MPU_REGION_TFM_UNPRIV_CODE      1
-#define MPU_REGION_TFM_UNPRIV_DATA      2
-#define MPU_REGION_NS_STACK             3
-#define PARTITION_REGION_RO             4
-#define PARTITION_REGION_RW_STACK       5
+#define MPU_REGION_NS_STACK             2
+#define PARTITION_REGION_RO             3
+#define PARTITION_REGION_RW_STACK       4
 
 REGION_DECLARE(Image$$, TFM_UNPRIV_CODE, $$RO$$Base);
 REGION_DECLARE(Image$$, TFM_UNPRIV_CODE, $$RO$$Limit);
-REGION_DECLARE(Image$$, TFM_UNPRIV_DATA, $$RW$$Base);
-REGION_DECLARE(Image$$, TFM_UNPRIV_DATA, $$ZI$$Limit);
 REGION_DECLARE(Image$$, TFM_APP_CODE_START, $$Base);
 REGION_DECLARE(Image$$, TFM_APP_CODE_END, $$Base);
 REGION_DECLARE(Image$$, TFM_APP_RW_STACK_START, $$Base);
@@ -85,20 +82,6 @@
         return TFM_HAL_ERROR_GENERIC;
     }
 
-    /* TFM Core unprivileged data region */
-    region_cfg.region_nr = MPU_REGION_TFM_UNPRIV_DATA;
-    region_cfg.region_base =
-        (uint32_t)&REGION_NAME(Image$$, TFM_UNPRIV_DATA, $$RW$$Base);
-    region_cfg.region_limit =
-        (uint32_t)&REGION_NAME(Image$$, TFM_UNPRIV_DATA, $$ZI$$Limit);
-    region_cfg.region_attridx = MPU_ARMV8M_MAIR_ATTR_DATA_IDX;
-    region_cfg.attr_access = MPU_ARMV8M_AP_RW_PRIV_UNPRIV;
-    region_cfg.attr_sh = MPU_ARMV8M_SH_NONE;
-    region_cfg.attr_exec = MPU_ARMV8M_XN_EXEC_NEVER;
-    if (mpu_armv8m_region_enable(&dev_mpu_s, &region_cfg) != MPU_ARMV8M_OK) {
-        return TFM_HAL_ERROR_GENERIC;
-    }
-
     /* NSPM PSP */
     region_cfg.region_nr = MPU_REGION_NS_STACK;
     region_cfg.region_base =
diff --git a/platform/ext/target/stm/common/stm32l5xx/secure/tfm_hal_isolation.c b/platform/ext/target/stm/common/stm32l5xx/secure/tfm_hal_isolation.c
index d22959e..9ccc9ca 100644
--- a/platform/ext/target/stm/common/stm32l5xx/secure/tfm_hal_isolation.c
+++ b/platform/ext/target/stm/common/stm32l5xx/secure/tfm_hal_isolation.c
@@ -16,22 +16,19 @@
 #ifdef CONFIG_TFM_ENABLE_MEMORY_PROTECT
 #define MPU_REGION_VENEERS           0
 #define MPU_REGION_TFM_UNPRIV_CODE   1
-#define MPU_REGION_TFM_UNPRIV_DATA   2
-#define PARTITION_REGION_RO          4
-#define PARTITION_REGION_RW_STACK    5
-#define PARTITION_REGION_PERIPH      6
-#define PARTITION_REGION_SHARE       7
+#define PARTITION_REGION_RO          3
+#define PARTITION_REGION_RW_STACK    4
+#define PARTITION_REGION_PERIPH      5
+#define PARTITION_REGION_SHARE       6
 
 #if TFM_LVL == 2
-#define MPU_REGION_NS_STACK          3
+#define MPU_REGION_NS_STACK          2
 #elif TFM_LVL == 3
-#define MPU_REGION_NS_DATA           3
+#define MPU_REGION_NS_DATA           2
 #endif
 
 REGION_DECLARE(Image$$, TFM_UNPRIV_CODE, $$RO$$Base);
 REGION_DECLARE(Image$$, TFM_UNPRIV_CODE, $$RO$$Limit);
-REGION_DECLARE(Image$$, TFM_UNPRIV_DATA, $$RW$$Base);
-REGION_DECLARE(Image$$, TFM_UNPRIV_DATA, $$ZI$$Limit);
 #ifndef TFM_PSA_API
 REGION_DECLARE(Image$$, TFM_UNPRIV_SCRATCH, $$ZI$$Base);
 REGION_DECLARE(Image$$, TFM_UNPRIV_SCRATCH, $$ZI$$Limit);
@@ -145,20 +142,6 @@
         return TFM_HAL_ERROR_GENERIC;
     }
 
-    /* TFM Core unprivileged data region */
-    region_cfg.region_nr = MPU_REGION_TFM_UNPRIV_DATA;
-    region_cfg.region_base =
-        (uint32_t)&REGION_NAME(Image$$, TFM_UNPRIV_DATA, $$RW$$Base);
-    region_cfg.region_limit =
-        (uint32_t)&REGION_NAME(Image$$, TFM_UNPRIV_DATA, $$ZI$$Limit);
-    region_cfg.region_attridx = MPU_ARMV8M_MAIR_ATTR_DATA_IDX;
-    region_cfg.attr_access = MPU_ARMV8M_AP_RW_PRIV_UNPRIV;
-    region_cfg.attr_sh = MPU_ARMV8M_SH_NONE;
-    region_cfg.attr_exec = MPU_ARMV8M_XN_EXEC_NEVER;
-    if (mpu_armv8m_region_enable(&dev_mpu_s, &region_cfg) != MPU_ARMV8M_OK) {
-        return TFM_HAL_ERROR_GENERIC;
-    }
-
 #if TFM_LVL == 3
     /* TFM Core unprivileged non-secure data region */
     region_cfg.region_nr = MPU_REGION_NS_DATA;
diff --git a/secure_fw/spm/cmsis_psa/tfm_multi_core_mem_check.c b/secure_fw/spm/cmsis_psa/tfm_multi_core_mem_check.c
index 4de3629..0d8158e 100644
--- a/secure_fw/spm/cmsis_psa/tfm_multi_core_mem_check.c
+++ b/secure_fw/spm/cmsis_psa/tfm_multi_core_mem_check.c
@@ -97,8 +97,6 @@
 #if TFM_LVL == 2
 REGION_DECLARE(Image$$, TFM_UNPRIV_CODE, $$RO$$Base);
 REGION_DECLARE(Image$$, TFM_UNPRIV_CODE, $$RO$$Limit);
-REGION_DECLARE(Image$$, TFM_UNPRIV_DATA, $$RW$$Base);
-REGION_DECLARE(Image$$, TFM_UNPRIV_DATA, $$ZI$$Limit);
 REGION_DECLARE(Image$$, TFM_APP_CODE_START, $$Base);
 REGION_DECLARE(Image$$, TFM_APP_CODE_END, $$Base);
 REGION_DECLARE(Image$$, TFM_APP_RW_STACK_START, $$Base);
@@ -149,18 +147,6 @@
         return;
     }
 
-    /* TFM Core unprivileged data region */
-    base = (uintptr_t)&REGION_NAME(Image$$, TFM_UNPRIV_DATA, $$RW$$Base);
-    limit = (uintptr_t)&REGION_NAME(Image$$, TFM_UNPRIV_DATA, $$ZI$$Limit) - 1;
-    if (check_address_range(p, s, base, limit) == TFM_SUCCESS) {
-        p_attr->is_priv_rd_allow = true;
-        p_attr->is_priv_wr_allow = true;
-        p_attr->is_unpriv_rd_allow = true;
-        p_attr->is_unpriv_wr_allow = true;
-        p_attr->is_xn = true;
-        return;
-    }
-
     /* APP RoT partition RO region */
     base = (uintptr_t)&REGION_NAME(Image$$, TFM_APP_CODE_START, $$Base);
     limit = (uintptr_t)&REGION_NAME(Image$$, TFM_APP_CODE_END, $$Base) - 1;