Skip to content

Commit cb8d793

Browse files
author
Wayne Ren
committed
library: secureshield: fix the bugs caused by new toolchain options
* secure ram should be linked like background container * container sections (.text, .data, .bss) should also be extended Signed-off-by: Wayne Ren <[email protected]>
1 parent fe0d67e commit cb8d793

File tree

2 files changed

+22
-18
lines changed

2 files changed

+22
-18
lines changed

library/secureshield/export/inc/container_config.h

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -245,13 +245,13 @@ extern "C" {
245245
#define GEN_CONTAINER_ROM_SECTION(container_name, size, ...) \
246246
.container_name.rom ALIGN(CONTAINER_SIZE_ALIGNMENT(size)) : { \
247247
_f_text_##container_name = .; \
248-
*(.container_name.text) \
248+
*(.container_name.text .container_name.text.*) \
249249
IF_ELSE(HAS_ARGS(__VA_ARGS__))( \
250250
OBJS_TEXT(__VA_ARGS__) \
251251
)() \
252252
_e_text_##container_name = .; \
253253
_f_rodata_##container_name = .; \
254-
*(.container_name.rodata) \
254+
*(.container_name.rodata .container_name.rodata.*) \
255255
IF_ELSE(HAS_ARGS(__VA_ARGS__))( \
256256
OBJS_RODATA(__VA_ARGS__) \
257257
)() \
@@ -261,15 +261,15 @@ extern "C" {
261261
#define GEN_CONTAINER_RAM_SECTION(container_name, size, ...) \
262262
.container_name.ram.data ALIGN(CONTAINER_SIZE_ALIGNMENT(size)) : { \
263263
_f_data_##container_name = .; \
264-
*(.container_name.data) \
264+
*(.container_name.data .container_name.data.*) \
265265
IF_ELSE(HAS_ARGS(__VA_ARGS__))( \
266266
OBJS_DATA(__VA_ARGS__) \
267267
)() \
268268
_e_data_##container_name = .; \
269269
} > NORMAL_RAM AT > NORMAL_ROM \
270270
.container_name.ram.bss : { \
271271
_f_bss_##container_name = .; \
272-
*(.container_name.bss) \
272+
*(.container_name.bss .container_name.bss.*) \
273273
IF_ELSE(HAS_ARGS(__VA_ARGS__))( \
274274
OBJS_BSS(__VA_ARGS__) \
275275
)() \
@@ -280,13 +280,13 @@ extern "C" {
280280
#define GEN_SECURE_CONTAINER_ROM_SECTION(container_name, size, ...) \
281281
.container_name.rom ALIGN(CONTAINER_SIZE_ALIGNMENT(size)) : { \
282282
_f_text_##container_name = .; \
283-
*(.container_name.text) \
283+
*(.container_name.text .container_name.text.*) \
284284
IF_ELSE(HAS_ARGS(__VA_ARGS__))( \
285285
OBJS_TEXT(__VA_ARGS__) \
286286
)() \
287287
_e_text_##container_name = .; \
288288
_f_rodata_##container_name = .; \
289-
*(.container_name.rodata) \
289+
*(.container_name.rodata .container_name.rodata.*) \
290290
IF_ELSE(HAS_ARGS(__VA_ARGS__))( \
291291
OBJS_RODATA(__VA_ARGS__) \
292292
)() \
@@ -296,15 +296,15 @@ extern "C" {
296296
#define GEN_SECURE_CONTAINER_RAM_SECTION(container_name, size, ...) \
297297
.container_name.ram.data ALIGN(CONTAINER_SIZE_ALIGNMENT(size)) : { \
298298
_f_data_##container_name = .; \
299-
*(.container_name.data) \
299+
*(.container_name.data .container_name.data.*) \
300300
IF_ELSE(HAS_ARGS(__VA_ARGS__))( \
301301
OBJS_DATA(__VA_ARGS__) \
302302
)() \
303303
_e_data_##container_name = .; \
304304
} > SECURE_RAM AT > SECURE_ROM \
305305
.container_name.ram.bss : { \
306306
_f_bss_##container_name = .; \
307-
*(.container_name.bss) \
307+
*(.container_name.bss .container_name.bss.*) \
308308
IF_ELSE(HAS_ARGS(__VA_ARGS__))( \
309309
OBJS_BSS(__VA_ARGS__) \
310310
)() \
@@ -317,14 +317,14 @@ extern "C" {
317317
#define GEN_CONTAINER_ROM_SECTION(container_name, size, ...) \
318318
.container_name.rom ALIGN(CONTAINER_ADDRESS_ALIGNMENT) : { \
319319
_f_text_##container_name = .; \
320-
*(.container_name.text) \
320+
*(.container_name.text .container_name.text.*) \
321321
IF_ELSE(HAS_ARGS(__VA_ARGS__))( \
322322
OBJS_TEXT(__VA_ARGS__) \
323323
)() \
324324
. = ALIGN(CONTAINER_ADDRESS_ALIGNMENT); \
325325
_e_text_##container_name = .; \
326326
_f_rodata_##container_name = .; \
327-
*(.container_name.rodata) \
327+
*(.container_name.rodata .container_name.rodata.*) \
328328
IF_ELSE(HAS_ARGS(__VA_ARGS__))( \
329329
OBJS_RODATA(__VA_ARGS__) \
330330
)() \
@@ -334,15 +334,15 @@ extern "C" {
334334
#define GEN_CONTAINER_RAM_SECTION(container_name, size, ...) \
335335
.container_name.ram.data ALIGN(CONTAINER_ADDRESS_ALIGNMENT) : { \
336336
_f_data_##container_name = .; \
337-
*(.container_name.data) \
337+
*(.container_name.data .container_name.data.*) \
338338
IF_ELSE(HAS_ARGS(__VA_ARGS__))( \
339339
OBJS_DATA(__VA_ARGS__) \
340340
)() \
341341
_e_data_##container_name = .; \
342342
} > NORMAL_RAM AT > NORMAL_ROM \
343343
.container_name.ram.bss : { \
344344
_f_bss_##container_name = .; \
345-
*(.container_name.bss) \
345+
*(.container_name.bss .container_name.bss.*) \
346346
IF_ELSE(HAS_ARGS(__VA_ARGS__))( \
347347
OBJS_BSS(__VA_ARGS__) \
348348
)() \
@@ -353,14 +353,14 @@ extern "C" {
353353
#define GEN_SECURE_CONTAINER_ROM_SECTION(container_name, size, ...) \
354354
.container_name.rom ALIGN(CONTAINER_ADDRESS_ALIGNMENT) : { \
355355
_f_text_##container_name = .; \
356-
*(.container_name.text) \
356+
*(.container_name.text .container_name.text.*) \
357357
IF_ELSE(HAS_ARGS(__VA_ARGS__))( \
358358
OBJS_TEXT(__VA_ARGS__) \
359359
)() \
360360
. = ALIGN(CONTAINER_ADDRESS_ALIGNMENT); \
361361
_e_text_##container_name = .; \
362362
_f_rodata_##container_name = .; \
363-
*(.container_name.rodata) \
363+
*(.container_name.rodata .container_name.rodata.*) \
364364
IF_ELSE(HAS_ARGS(__VA_ARGS__))( \
365365
OBJS_RODATA(__VA_ARGS__) \
366366
)() \
@@ -370,15 +370,15 @@ extern "C" {
370370
#define GEN_SECURE_CONTAINER_RAM_SECTION(container_name, size, ...) \
371371
.container_name.ram.data ALIGN(CONTAINER_ADDRESS_ALIGNMENT) : { \
372372
_f_data_##container_name = .; \
373-
*(.container_name.data) \
373+
*(.container_name.data .container_name.data.*) \
374374
IF_ELSE(HAS_ARGS(__VA_ARGS__))( \
375375
OBJS_DATA(__VA_ARGS__) \
376376
)() \
377377
_e_data_##container_name = .; \
378378
} > SECURE_RAM AT > SECURE_ROM \
379379
.container_name.ram.bss : { \
380380
_f_bss_##container_name = .; \
381-
*(.container_name.bss) \
381+
*(.container_name.bss .container_name.bss.*) \
382382
IF_ELSE(HAS_ARGS(__VA_ARGS__))( \
383383
OBJS_BSS(__VA_ARGS__) \
384384
)() \

library/secureshield/export/src/wrapper.s

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,12 @@ secureshield_config:
6767
/* start and end address of list of pointers to containers configuration tables */
6868
.long __secureshield_cfgtbl_ptr_start
6969
.long __secureshield_cfgtbl_ptr_end
70-
/* the following code is used to gurantee background_container_xxx will be linked */
70+
/* the following code is used to gurantee sections with KEPP will be linked
71+
* For MWDT, KEEP is introduced since 2019.03
72+
*/
7173
.long background_container_ptr
74+
.long secureshield_secure_ram_start
7275

7376
.section .ram.secureshield.secure, "aw", @nobits
74-
.space SECURESHIELD_SECURE_RAM_USAGE
77+
secureshield_secure_ram_start:
78+
.space SECURESHIELD_SECURE_RAM_USAGE

0 commit comments

Comments
 (0)