From 4de0c9abc0e42a09f1aef316583b46aee063aab7 Mon Sep 17 00:00:00 2001 From: Guennadi Liakhovetski Date: Mon, 26 May 2025 15:34:42 +0200 Subject: [PATCH] SoC: Intel: ADSP: ACE30: add .imrdata to MMU definitions On ACE30 platforms adding a section to the linker script isn't enough, it should also be added to the xtensa_soc_mmu_ranges[] array. Signed-off-by: Guennadi Liakhovetski --- soc/intel/intel_adsp/ace/ace-link.ld | 2 ++ soc/intel/intel_adsp/ace/mmu_ace30.c | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/soc/intel/intel_adsp/ace/ace-link.ld b/soc/intel/intel_adsp/ace/ace-link.ld index aa92a212ea0..55090118042 100644 --- a/soc/intel/intel_adsp/ace/ace-link.ld +++ b/soc/intel/intel_adsp/ace/ace-link.ld @@ -170,7 +170,9 @@ SECTIONS { * .text. */ .imrdata : ALIGN(4096) { + __imr_data_start = .; *(.imrdata .imrdata.*) + __imr_data_end = .; } >imr /* Cold code in IMR memory */ diff --git a/soc/intel/intel_adsp/ace/mmu_ace30.c b/soc/intel/intel_adsp/ace/mmu_ace30.c index ed233ddf862..29a8818cafb 100644 --- a/soc/intel/intel_adsp/ace/mmu_ace30.c +++ b/soc/intel/intel_adsp/ace/mmu_ace30.c @@ -21,6 +21,8 @@ extern char __common_ram_region_start[]; extern char __common_ram_region_end[]; extern char __cold_start[]; extern char __cold_end[]; +extern char __imr_data_start[]; +extern char __imr_data_end[]; extern char __coldrodata_start[]; @@ -133,6 +135,12 @@ const struct xtensa_mmu_range xtensa_soc_mmu_ranges[] = { .end = (uint32_t)_imr_end, .name = "imr coldrodata", }, + { + .start = (uint32_t)__imr_data_start, + .end = (uint32_t)__imr_data_end, + .attrs = XTENSA_MMU_PERM_W | XTENSA_MMU_CACHED_WB, + .name = "imr data", + }, { .start = (uint32_t)IMR_L3_HEAP_BASE, .end = (uint32_t)(IMR_L3_HEAP_BASE + IMR_L3_HEAP_SIZE),