From 0fe396cb11e2514a564fca4a4d16f28b5964f42e Mon Sep 17 00:00:00 2001 From: Adrian Warecki Date: Tue, 22 Jul 2025 20:08:24 +0200 Subject: [PATCH] ace: mmu: Add shared heap section Add a new shared_heap section. Update the xtensa_soc_mmu_ranges structure to include a new memory range for the shared heap. Signed-off-by: Adrian Warecki --- soc/intel/intel_adsp/ace/ace-link.ld | 3 +++ soc/intel/intel_adsp/ace/mmu_ace30.c | 8 ++++++++ 2 files changed, 11 insertions(+) diff --git a/soc/intel/intel_adsp/ace/ace-link.ld b/soc/intel/intel_adsp/ace/ace-link.ld index 9296988d428..456791eb15e 100644 --- a/soc/intel/intel_adsp/ace/ace-link.ld +++ b/soc/intel/intel_adsp/ace/ace-link.ld @@ -499,6 +499,9 @@ SECTIONS { /* Heap start and end markers. Used to reserve system heap memory. */ .heap_mem SEGSTART_UNCACHED (NOLOAD) : { + _shared_heap_start = .; + *(.shared_heap_mem) + _shared_heap_end = .; _heap_start = .; *(.heap_mem) } >ucram diff --git a/soc/intel/intel_adsp/ace/mmu_ace30.c b/soc/intel/intel_adsp/ace/mmu_ace30.c index 29a8818cafb..6774612f211 100644 --- a/soc/intel/intel_adsp/ace/mmu_ace30.c +++ b/soc/intel/intel_adsp/ace/mmu_ace30.c @@ -24,6 +24,8 @@ extern char __cold_end[]; extern char __imr_data_start[]; extern char __imr_data_end[]; extern char __coldrodata_start[]; +extern char _shared_heap_start[]; +extern char _shared_heap_end[]; const struct xtensa_mmu_range xtensa_soc_mmu_ranges[] = { @@ -153,6 +155,12 @@ const struct xtensa_mmu_range xtensa_soc_mmu_ranges[] = { .attrs = XTENSA_MMU_PERM_W | XTENSA_MMU_CACHED_WB, .name = "lpsram", }, + { + .start = (uint32_t)_shared_heap_start, + .end = (uint32_t)_shared_heap_end, + .attrs = XTENSA_MMU_PERM_W | XTENSA_MMU_CACHED_WB | XTENSA_MMU_MAP_SHARED, + .name = "shared heap", + }, { .start = (uint32_t)(ADSP_L1CC_ADDR), .end = (uint32_t)(ADSP_L1CC_ADDR + CONFIG_MMU_PAGE_SIZE),