Skip to content

Commit 79ef8a1

Browse files
authored
Merge pull request #197 from tlauda/topic/cavs_memmap
cavs: memory: fix cAVS platforms memory map
2 parents 50c3171 + 6cc4946 commit 79ef8a1

3 files changed

Lines changed: 13 additions & 30 deletions

File tree

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

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -132,14 +132,12 @@
132132
#define L2_SRAM_SIZE 0x00056000
133133

134134
/* Heap section sizes for module pool */
135-
#define HEAP_RT_COUNT8 0
136135
#define HEAP_RT_COUNT16 256
137136
#define HEAP_RT_COUNT32 128
138137
#define HEAP_RT_COUNT64 64
139138
#define HEAP_RT_COUNT128 32
140139
#define HEAP_RT_COUNT256 64
141140
#define HEAP_RT_COUNT512 32
142-
#define HEAP_RT_COUNT1024 0
143141

144142
#define L2_VECTOR_SIZE 0x1000
145143

@@ -151,17 +149,13 @@
151149

152150
#define HEAP_RUNTIME_BASE (HEAP_SYSTEM_BASE + HEAP_SYSTEM_SIZE)
153151
#define HEAP_RUNTIME_SIZE \
154-
(HEAP_RT_COUNT8 * 8 + HEAP_RT_COUNT16 * 16 + \
155-
HEAP_RT_COUNT32 * 32 + HEAP_RT_COUNT64 * 64 + \
156-
HEAP_RT_COUNT128 * 128 + HEAP_RT_COUNT256 * 256 + \
157-
HEAP_RT_COUNT512 * 512 + HEAP_RT_COUNT1024 * 1024)
152+
(HEAP_RT_COUNT16 * 16 + HEAP_RT_COUNT32 * 32 + \
153+
HEAP_RT_COUNT64 * 64 + HEAP_RT_COUNT128 * 128 + \
154+
HEAP_RT_COUNT256 * 256 + HEAP_RT_COUNT512 * 512)
158155

159-
#define HEAP_BUFFER_BASE (HEAP_RUNTIME_BASE + HEAP_RUNTIME_SIZE)
160-
#define HEAP_BUFFER_SIZE \
161-
(L2_SRAM_SIZE - L2_VECTOR_SIZE - SOF_TEXT_SIZE - SOF_DATA_SIZE - \
162-
SOF_BSS_DATA_SIZE - HEAP_RUNTIME_SIZE - SOF_STACK_SIZE - HEAP_SYSTEM_SIZE)
163-
164-
#define HEAP_BUFFER_BLOCK_SIZE 0x180
156+
#define HEAP_BUFFER_BASE (HEAP_RUNTIME_BASE + HEAP_RUNTIME_SIZE)
157+
#define HEAP_BUFFER_SIZE (SOF_STACK_END - HEAP_BUFFER_BASE)
158+
#define HEAP_BUFFER_BLOCK_SIZE 0x180
165159
#define HEAP_BUFFER_COUNT (HEAP_BUFFER_SIZE / HEAP_BUFFER_BLOCK_SIZE)
166160

167161

@@ -259,7 +253,7 @@
259253
#endif
260254

261255
/* bss data */
262-
#define SOF_BSS_DATA_SIZE 0x8300
256+
#define SOF_BSS_DATA_SIZE 0x8700
263257

264258
/* Stack configuration */
265259
#define SOF_STACK_SIZE 0x1000

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

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -169,14 +169,12 @@
169169
#define HP_SRAM_VECBASE_RESET (HP_SRAM_BASE + 0x40000)
170170

171171
/* Heap section sizes for module pool */
172-
#define HEAP_RT_COUNT8 0
173172
#define HEAP_RT_COUNT16 256
174173
#define HEAP_RT_COUNT32 128
175174
#define HEAP_RT_COUNT64 64
176175
#define HEAP_RT_COUNT128 32
177176
#define HEAP_RT_COUNT256 64
178177
#define HEAP_RT_COUNT512 32
179-
#define HEAP_RT_COUNT1024 0
180178

181179
#define L2_VECTOR_SIZE 0x1000
182180

@@ -251,10 +249,9 @@
251249

252250
#define HEAP_RUNTIME_BASE (HEAP_SYSTEM_BASE + HEAP_SYSTEM_SIZE)
253251
#define HEAP_RUNTIME_SIZE \
254-
(HEAP_RT_COUNT8 * 8 + HEAP_RT_COUNT16 * 16 + \
255-
HEAP_RT_COUNT32 * 32 + HEAP_RT_COUNT64 * 64 + \
256-
HEAP_RT_COUNT128 * 128 + HEAP_RT_COUNT256 * 256 + \
257-
HEAP_RT_COUNT512 * 512 + HEAP_RT_COUNT1024 * 1024)
252+
(HEAP_RT_COUNT16 * 16 + HEAP_RT_COUNT32 * 32 + \
253+
HEAP_RT_COUNT64 * 64 + HEAP_RT_COUNT128 * 128 + \
254+
HEAP_RT_COUNT256 * 256 + HEAP_RT_COUNT512 * 512)
258255

259256
/* Stack configuration */
260257
#define SOF_STACK_SIZE 0x2000

src/platform/intel/cavs/memory.c

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -31,22 +31,13 @@
3131

3232
#include <sof/alloc.h>
3333

34-
#if defined(CONFIG_APOLLOLAKE)
35-
#define TOTAL_HEAP_SIZE (HEAP_SYSTEM_SIZE + HEAP_RUNTIME_SIZE + \
36-
HEAP_HP_BUFFER_SIZE + HEAP_LP_BUFFER_SIZE)
37-
#elif defined(CONFIG_CANNONLAKE)
38-
#define TOTAL_HEAP_SIZE (HEAP_SYSTEM_SIZE + HEAP_RUNTIME_SIZE + \
39-
HEAP_BUFFER_SIZE)
40-
#endif
41-
4234
/* Heap blocks for modules */
4335
static struct block_hdr mod_block16[HEAP_RT_COUNT16];
4436
static struct block_hdr mod_block32[HEAP_RT_COUNT32];
4537
static struct block_hdr mod_block64[HEAP_RT_COUNT64];
4638
static struct block_hdr mod_block128[HEAP_RT_COUNT128];
4739
static struct block_hdr mod_block256[HEAP_RT_COUNT256];
4840
static struct block_hdr mod_block512[HEAP_RT_COUNT512];
49-
static struct block_hdr mod_block1024[HEAP_RT_COUNT1024];
5041

5142
/* Heap memory map for modules */
5243
static struct block_map rt_heap_map[] = {
@@ -56,7 +47,6 @@ static struct block_map rt_heap_map[] = {
5647
BLOCK_DEF(128, HEAP_RT_COUNT128, mod_block128),
5748
BLOCK_DEF(256, HEAP_RT_COUNT256, mod_block256),
5849
BLOCK_DEF(512, HEAP_RT_COUNT512, mod_block512),
59-
BLOCK_DEF(1024, HEAP_RT_COUNT1024, mod_block1024),
6050
};
6151

6252
/* Heap blocks for buffers */
@@ -123,5 +113,7 @@ struct mm memmap = {
123113
.caps = SOF_MEM_CAPS_RAM | SOF_MEM_CAPS_LP |
124114
SOF_MEM_CAPS_CACHE | SOF_MEM_CAPS_DMA,
125115
},
126-
.total = {.free = TOTAL_HEAP_SIZE,},
116+
.total = {.free = HEAP_SYSTEM_SIZE + HEAP_RUNTIME_SIZE +
117+
HEAP_BUFFER_SIZE + HEAP_HP_BUFFER_SIZE +
118+
HEAP_LP_BUFFER_SIZE,},
127119
};

0 commit comments

Comments
 (0)