Skip to content

Commit d582a36

Browse files
authored
Merge pull request #340 from tlauda/topic/cache_fixes
memory: cavs: cache fixes
2 parents 2696596 + 4d1c566 commit d582a36

8 files changed

Lines changed: 20 additions & 9 deletions

File tree

src/arch/xtensa/smp/include/arch/alloc.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,9 @@ static inline void alloc_core_context(int core)
7272
core_ctx_ptr[core] = core_ctx;
7373
dcache_writeback_invalidate_region(core_ctx_ptr,
7474
sizeof(core_ctx_ptr));
75+
76+
/* writeback bss region to share static pointers */
77+
dcache_writeback_region((void *)SOF_BSS_DATA_START, SOF_BSS_DATA_SIZE);
7578
}
7679

7780
/**

src/drivers/intel/cavs/clk.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -252,4 +252,6 @@ void init_platform_clocks(void)
252252
ssp_freq[SSP_DEFAULT_IDX].ticks_per_usec;
253253
clk_pdata->clk[CLK_SSP].ticks_per_msec =
254254
ssp_freq[SSP_DEFAULT_IDX].ticks_per_msec;
255+
256+
dcache_writeback_region(clk_pdata, sizeof(*clk_pdata));
255257
}

src/platform/apollolake/apollolake.x.in

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,10 +81,10 @@ MEMORY
8181
org = SOF_TEXT_BASE,
8282
len = SOF_TEXT_SIZE,
8383
sof_data :
84-
org = SOF_TEXT_BASE + SOF_TEXT_SIZE,
84+
org = SOF_DATA_START,
8585
len = SOF_DATA_SIZE
8686
sof_bss_data :
87-
org = SOF_TEXT_BASE + SOF_TEXT_SIZE + SOF_DATA_SIZE,
87+
org = SOF_BSS_DATA_START,
8888
len = SOF_BSS_DATA_SIZE
8989
system_heap :
9090
org = HEAP_SYSTEM_BASE,

src/platform/apollolake/include/platform/memory.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@
143143
#define HEAP_SYSTEM_BASE \
144144
(SOF_TEXT_BASE + SOF_TEXT_SIZE +\
145145
SOF_DATA_SIZE + SOF_BSS_DATA_SIZE)
146-
#define HEAP_SYSTEM_SIZE 0x8000
146+
#define HEAP_SYSTEM_SIZE 0x9000
147147

148148
#define HEAP_RUNTIME_BASE (HEAP_SYSTEM_BASE + HEAP_SYSTEM_SIZE)
149149
#define HEAP_RUNTIME_SIZE \
@@ -243,13 +243,15 @@
243243
#define SOF_TEXT_SIZE (0x19000 - 0x400)
244244

245245
/* initialized data */
246+
#define SOF_DATA_START (SOF_TEXT_BASE + SOF_TEXT_SIZE)
246247
#if defined CONFIG_DMIC
247248
#define SOF_DATA_SIZE 0x1b000
248249
#else
249250
#define SOF_DATA_SIZE 0x19000
250251
#endif
251252

252253
/* bss data */
254+
#define SOF_BSS_DATA_START (SOF_TEXT_BASE + SOF_TEXT_SIZE + SOF_DATA_SIZE)
253255
#define SOF_BSS_DATA_SIZE 0x8700
254256

255257
/* Stack configuration */

src/platform/cannonlake/cannonlake.x.in

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,10 +81,10 @@ MEMORY
8181
org = SOF_TEXT_BASE,
8282
len = SOF_TEXT_SIZE,
8383
sof_data :
84-
org = SOF_TEXT_BASE + SOF_TEXT_SIZE,
84+
org = SOF_DATA_START,
8585
len = SOF_DATA_SIZE
8686
sof_bss_data :
87-
org = SOF_TEXT_BASE + SOF_TEXT_SIZE + SOF_DATA_SIZE,
87+
org = SOF_BSS_DATA_START,
8888
len = SOF_BSS_DATA_SIZE
8989
system_heap :
9090
org = HEAP_SYSTEM_BASE,

src/platform/cannonlake/include/platform/memory.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,14 +230,16 @@
230230
#define SOF_TEXT_SIZE (0x18000 - 0x400)
231231

232232
/* initialized data */
233+
#define SOF_DATA_START (SOF_TEXT_BASE + SOF_TEXT_SIZE)
233234
#if defined CONFIG_DMIC
234235
#define SOF_DATA_SIZE 0x1b000
235236
#else
236237
#define SOF_DATA_SIZE 0x19000
237238
#endif
238239

239240
/* bss data */
240-
#define SOF_BSS_DATA_SIZE 0x10900
241+
#define SOF_BSS_DATA_START (SOF_TEXT_BASE + SOF_TEXT_SIZE + SOF_DATA_SIZE)
242+
#define SOF_BSS_DATA_SIZE 0x10900
241243

242244
/* Heap configuration */
243245
#define HEAP_SYSTEM_BASE (SOF_TEXT_BASE + SOF_TEXT_SIZE + \

src/platform/icelake/icelake.x.in

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,10 +81,10 @@ MEMORY
8181
org = SOF_TEXT_BASE,
8282
len = SOF_TEXT_SIZE,
8383
sof_data :
84-
org = SOF_TEXT_BASE + SOF_TEXT_SIZE,
84+
org = SOF_DATA_START,
8585
len = SOF_DATA_SIZE
8686
sof_bss_data :
87-
org = SOF_TEXT_BASE + SOF_TEXT_SIZE + SOF_DATA_SIZE,
87+
org = SOF_BSS_DATA_START,
8888
len = SOF_BSS_DATA_SIZE
8989
system_heap :
9090
org = HEAP_SYSTEM_BASE,

src/platform/icelake/include/platform/memory.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,14 +230,16 @@
230230
#define SOF_TEXT_SIZE (0x18000 - 0x400)
231231

232232
/* initialized data */
233+
#define SOF_DATA_START (SOF_TEXT_BASE + SOF_TEXT_SIZE)
233234
#if defined CONFIG_DMIC
234235
#define SOF_DATA_SIZE 0x1b000
235236
#else
236237
#define SOF_DATA_SIZE 0x19000
237238
#endif
238239

239240
/* bss data */
240-
#define SOF_BSS_DATA_SIZE 0x10900
241+
#define SOF_BSS_DATA_START (SOF_TEXT_BASE + SOF_TEXT_SIZE + SOF_DATA_SIZE)
242+
#define SOF_BSS_DATA_SIZE 0x10900
241243

242244
/* Heap configuration */
243245
#define HEAP_SYSTEM_BASE (SOF_TEXT_BASE + SOF_TEXT_SIZE + \

0 commit comments

Comments
 (0)