@@ -477,13 +477,34 @@ SECTIONS
477
477
. = ALIGN (4 );
478
478
479
479
} > RAM AT> FLASH
480
+
481
+ .TFM_TDATA : ALIGN_WITH_INPUT {
482
+ *(.tdata .tdata .* .gnu .linkonce .td .*)
483
+ PROVIDE (__data_end = .);
484
+ PROVIDE (__tdata_end = .);
485
+ } > RAM AT> FLASH
486
+
480
487
Image$$ER_TFM_DATA$$RW$$Base = ADDR (.TFM_DATA );
481
- Image$$ER_TFM_DATA$$RW$$Limit = ADDR (.TFM_DATA ) + SIZEOF (.TFM_DATA );
488
+ Image$$ER_TFM_DATA$$RW$$Limit = ADDR (.TFM_TDATA ) + SIZEOF (.TFM_TDATA );
482
489
483
- .TFM_BSS ALIGN (4 ) (NOLOAD) :
484
- {
490
+ .TFM_TBSS (NOLOAD) : {
485
491
__bss_start__ = .;
486
492
493
+ *(.tbss .tbss .* .gnu .linkonce .tb .*)
494
+ *(.tcommon )
495
+ PROVIDE ( __tls_end = . );
496
+ PROVIDE ( __tbss_end = . );
497
+ } > RAM AT> RAM
498
+ PROVIDE ( __tls_align = MAX (ALIGNOF (.TFM_TDATA ), ALIGNOF (.TFM_TBSS )) );
499
+ PROVIDE ( __arm32_tls_tcb_offset = MAX (8 , __tls_align) );
500
+
501
+ .TFM_TBSS_SPACE (NOLOAD) : {
502
+ . = ADDR (.TFM_TBSS );
503
+ . = . + SIZEOF (.TFM_TBSS );
504
+ } > RAM AT> RAM
505
+
506
+ .TFM_BSS ALIGN (4 ) (NOLOAD) :
507
+ {
487
508
/* The runtime partition placed order is same as load partition */
488
509
__partition_runtime_start__ = .;
489
510
KEEP (*(.bss .part_runtime_priority_00 ))
@@ -504,16 +525,26 @@ SECTIONS
504
525
*(COMMON)
505
526
. = ALIGN (4 );
506
527
__bss_end__ = .;
528
+ __bss_end = .;
507
529
} > RAM AT> RAM
508
- Image$$ER_TFM_DATA$$ZI$$Base = ADDR (.TFM_BSS );
530
+ Image$$ER_TFM_DATA$$ZI$$Base = ADDR (.TFM_TBSS );
509
531
Image$$ER_TFM_DATA$$ZI$$Limit = ADDR (.TFM_BSS ) + SIZEOF (.TFM_BSS );
510
532
Image$$ER_PART_RT_POOL$$ZI$$Base = __partition_runtime_start__;
511
533
Image$$ER_PART_RT_POOL$$ZI$$Limit = __partition_runtime_end__;
512
534
Image$$ER_SERV_RT_POOL$$ZI$$Base = __service_runtime_start__;
513
535
Image$$ER_SERV_RT_POOL$$ZI$$Limit = __service_runtime_end__;
514
536
515
537
Image$$ER_TFM_DATA$$Base = ADDR (.TFM_DATA );
516
- Image$$ER_TFM_DATA$$Limit = ADDR (.TFM_DATA ) + SIZEOF (.TFM_DATA ) + SIZEOF (.TFM_BSS );
538
+ Image$$ER_TFM_DATA$$Limit = ADDR (.TFM_BSS ) + SIZEOF (.TFM_BSS );
539
+
540
+ PROVIDE (__data_start = ADDR (.TFM_DATA ));
541
+ PROVIDE (__data_source = LOADADDR (.TFM_DATA ));
542
+ PROVIDE (__data_size = __data_end - __data_start );
543
+ PROVIDE ( __bss_start = ADDR (.TFM_TBSS ));
544
+ PROVIDE ( __bss_size = __bss_end - __bss_start );
545
+ PROVIDE ( __tls_base = SIZEOF (.TFM_TDATA ) ? ADDR (.TFM_TDATA ) : ADDR (.TFM_TBSS ) );
546
+ PROVIDE ( __tls_align = MAX (ALIGNOF (.TFM_TDATA ), ALIGNOF (.TFM_TBSS )) );
547
+ PROVIDE (__arm32_tls_tcb_offset = MAX (8 , __tls_align) );
517
548
518
549
#if defined(CONFIG_TFM_USE_TRUSTZONE)
519
550
Image$$ER_VENEER$$Base = ADDR (.gnu .sgstubs );
0 commit comments