Skip to content

Commit 011fa28

Browse files
author
Michael Schwarcz
committed
TF-M patch: Fix tfm_memory_check issue (TF-M issue #224)
- Link to bug tracking: https://developer.trustedfirmware.org/T224
1 parent fc78640 commit 011fa28

File tree

1 file changed

+14
-0
lines changed
  • components/TARGET_PSA/TARGET_TFM/COMPONENT_SPE/secure_fw/core/ipc

1 file changed

+14
-0
lines changed

components/TARGET_PSA/TARGET_TFM/COMPONENT_SPE/secure_fw/core/ipc/tfm_spm.c

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -466,6 +466,8 @@ static uint32_t tfm_spm_partition_get_priority_ext(uint32_t partition_idx)
466466
/* Macros to pick linker symbols and allow references to sections in all level*/
467467
#define REGION_DECLARE_EXT(a, b, c) extern uint32_t REGION_NAME(a, b, c)
468468

469+
REGION_DECLARE_EXT(Image$$, ARM_LIB_HEAP, $$ZI$$Base);
470+
REGION_DECLARE_EXT(Image$$, ARM_LIB_HEAP, $$ZI$$Limit);
469471
REGION_DECLARE_EXT(Image$$, ER_TFM_DATA, $$Base);
470472
REGION_DECLARE_EXT(Image$$, ER_TFM_DATA, $$Limit);
471473
REGION_DECLARE_EXT(Image$$, TFM_SECURE_STACK, $$ZI$$Base);
@@ -519,7 +521,19 @@ int32_t tfm_memory_check(void *buffer, size_t len, int32_t ns_caller)
519521
if (memory_check_range(buffer, len, base, limit) == IPC_SUCCESS) {
520522
return IPC_SUCCESS;
521523
}
524+
525+
base = (uintptr_t)NS_CODE_START;
526+
limit = (uintptr_t)(NS_CODE_START + NS_CODE_SIZE);
527+
if (memory_check_range(buffer, len, base, limit) == IPC_SUCCESS) {
528+
return IPC_SUCCESS;
529+
}
522530
} else {
531+
base = (uintptr_t)&REGION_NAME(Image$$, ARM_LIB_HEAP, $$ZI$$Base);
532+
limit = (uintptr_t)&REGION_NAME(Image$$, ARM_LIB_HEAP, $$ZI$$Limit);
533+
if (memory_check_range(buffer, len, base, limit) == IPC_SUCCESS) {
534+
return IPC_SUCCESS;
535+
}
536+
523537
base = (uintptr_t)&REGION_NAME(Image$$, ER_TFM_DATA, $$Base);
524538
limit = (uintptr_t)&REGION_NAME(Image$$, ER_TFM_DATA, $$Limit);
525539
if (memory_check_range(buffer, len, base, limit) == IPC_SUCCESS) {

0 commit comments

Comments
 (0)