From 715d6167e07a46f5bc37f42993c209450484bbe8 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Tue, 19 Jun 2018 15:10:36 +0200 Subject: bsps: Support .rtemsstack.* linker input sections Use a dedicated memory region or place it between the BSS and workspace. Update #3459. --- bsps/powerpc/gen5200/start/linkcmds.gen5200_base | 6 +++++- bsps/powerpc/gen83xx/start/linkcmds.mpc83xx | 2 +- bsps/powerpc/haleakala/start/linkcmds | 7 +++++-- bsps/powerpc/include/bsp/linker-symbols.h | 6 +++--- bsps/powerpc/mpc55xxevb/start/linkcmds.gwlcfm | 2 +- bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5566evb | 2 +- bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5643l_evb | 2 +- bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5668g | 2 +- bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5674f_ecu508 | 2 +- bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5674f_rsm6_base | 2 +- bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5674fevb | 2 +- bsps/powerpc/mpc55xxevb/start/linkcmds.phycore_mpc5554 | 2 +- bsps/powerpc/mpc8260ads/start/linkcmds | 4 ++++ bsps/powerpc/psim/start/linkcmds | 2 +- bsps/powerpc/qemuppc/start/linkcmds | 2 +- bsps/powerpc/qoriq/start/linkcmds.qoriq_core_0 | 2 +- bsps/powerpc/qoriq/start/linkcmds.qoriq_core_1 | 2 +- bsps/powerpc/qoriq/start/linkcmds.qoriq_e500 | 2 +- bsps/powerpc/qoriq/start/linkcmds.qoriq_e6500_32 | 2 +- bsps/powerpc/qoriq/start/mmu-config.c | 2 +- bsps/powerpc/shared/start/linkcmds.base | 11 ++++++----- bsps/powerpc/shared/start/linkcmds.share | 4 ++++ bsps/powerpc/ss555/start/linkcmds | 4 ++++ bsps/powerpc/t32mppc/start/linkcmds.t32mppc | 2 +- bsps/powerpc/tqm8xx/start/linkcmds | 2 +- bsps/powerpc/virtex/start/linkcmds.in | 2 +- bsps/powerpc/virtex4/start/linkcmds | 7 +++++-- bsps/powerpc/virtex5/start/linkcmds | 7 +++++-- 28 files changed, 60 insertions(+), 34 deletions(-) (limited to 'bsps/powerpc') diff --git a/bsps/powerpc/gen5200/start/linkcmds.gen5200_base b/bsps/powerpc/gen5200/start/linkcmds.gen5200_base index 1a92c7c9dd..a8841d2586 100644 --- a/bsps/powerpc/gen5200/start/linkcmds.gen5200_base +++ b/bsps/powerpc/gen5200/start/linkcmds.gen5200_base @@ -295,10 +295,14 @@ SECTIONS { bsp_interrupt_stack_end = bsp_interrupt_stack_start + 32k; bsp_interrupt_stack_size = bsp_interrupt_stack_end - bsp_interrupt_stack_start; + .rtemsstack (NOLOAD) : { + *(SORT(.rtemsstack.*)) + } > RAM + /* * BSP: Work area start */ - bsp_work_area_start = bsp_interrupt_stack_end; + bsp_work_area_start = .; WorkAreaBase = bsp_work_area_start; /* Stabs debugging sections. */ diff --git a/bsps/powerpc/gen83xx/start/linkcmds.mpc83xx b/bsps/powerpc/gen83xx/start/linkcmds.mpc83xx index 4ddbcd6f76..424e20ef33 100644 --- a/bsps/powerpc/gen83xx/start/linkcmds.mpc83xx +++ b/bsps/powerpc/gen83xx/start/linkcmds.mpc83xx @@ -37,7 +37,7 @@ REGION_ALIAS ("REGION_FAST_DATA_LOAD", WORK); REGION_ALIAS ("REGION_DATA", WORK); REGION_ALIAS ("REGION_DATA_LOAD", WORK); REGION_ALIAS ("REGION_BSS", WORK); -REGION_ALIAS ("REGION_RWEXTRA", WORK); +REGION_ALIAS ("REGION_RTEMSSTACK", WORK); REGION_ALIAS ("REGION_WORK", WORK); REGION_ALIAS ("REGION_STACK", WORK); REGION_ALIAS ("REGION_NOCACHE", EMPTY); diff --git a/bsps/powerpc/haleakala/start/linkcmds b/bsps/powerpc/haleakala/start/linkcmds index 8c06a5103b..98fea7f990 100644 --- a/bsps/powerpc/haleakala/start/linkcmds +++ b/bsps/powerpc/haleakala/start/linkcmds @@ -260,8 +260,11 @@ SECTIONS . += kMainStackSize; stack.end = .; - /* RTEMS workspace: size specified by application */ - WorkAreaBase = ALIGN(0x20); + .rtemsstack (NOLOAD) : { + *(SORT(.rtemsstack.*)) + } >RAM + + WorkAreaBase = .; /* Debugging information */ .line 0 : { *(.line) } diff --git a/bsps/powerpc/include/bsp/linker-symbols.h b/bsps/powerpc/include/bsp/linker-symbols.h index de7a6c483d..61e0da4158 100644 --- a/bsps/powerpc/include/bsp/linker-symbols.h +++ b/bsps/powerpc/include/bsp/linker-symbols.h @@ -81,9 +81,9 @@ LINKER_SYMBOL(bsp_section_sbss_begin) LINKER_SYMBOL(bsp_section_sbss_end) LINKER_SYMBOL(bsp_section_sbss_size) -LINKER_SYMBOL(bsp_section_rwextra_begin) -LINKER_SYMBOL(bsp_section_rwextra_end) -LINKER_SYMBOL(bsp_section_rwextra_size) +LINKER_SYMBOL(bsp_section_rtemsstack_begin) +LINKER_SYMBOL(bsp_section_rtemsstack_end) +LINKER_SYMBOL(bsp_section_rtemsstack_size) LINKER_SYMBOL(bsp_section_work_begin) LINKER_SYMBOL(bsp_section_work_end) diff --git a/bsps/powerpc/mpc55xxevb/start/linkcmds.gwlcfm b/bsps/powerpc/mpc55xxevb/start/linkcmds.gwlcfm index cabaac2201..0981a7906e 100644 --- a/bsps/powerpc/mpc55xxevb/start/linkcmds.gwlcfm +++ b/bsps/powerpc/mpc55xxevb/start/linkcmds.gwlcfm @@ -17,7 +17,7 @@ REGION_ALIAS ("REGION_FAST_DATA_LOAD", ROM); REGION_ALIAS ("REGION_DATA", RAM); REGION_ALIAS ("REGION_DATA_LOAD", ROM); REGION_ALIAS ("REGION_BSS", RAM_EXT); -REGION_ALIAS ("REGION_RWEXTRA", RAM_EXT); +REGION_ALIAS ("REGION_RTEMSSTACK", RAM_EXT); REGION_ALIAS ("REGION_WORK", RAM_EXT); REGION_ALIAS ("REGION_STACK", RAM); REGION_ALIAS ("REGION_NOCACHE", NOCACHE); diff --git a/bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5566evb b/bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5566evb index 4f63fb0e0a..114d944f03 100644 --- a/bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5566evb +++ b/bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5566evb @@ -17,7 +17,7 @@ REGION_ALIAS ("REGION_FAST_DATA_LOAD", ROM); REGION_ALIAS ("REGION_DATA", RAM); REGION_ALIAS ("REGION_DATA_LOAD", ROM); REGION_ALIAS ("REGION_BSS", RAM_EXT); -REGION_ALIAS ("REGION_RWEXTRA", RAM_EXT); +REGION_ALIAS ("REGION_RTEMSSTACK", RAM_EXT); REGION_ALIAS ("REGION_WORK", RAM); REGION_ALIAS ("REGION_STACK", RAM); REGION_ALIAS ("REGION_NOCACHE", NOCACHE); diff --git a/bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5643l_evb b/bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5643l_evb index 1977c92d59..82d2d4cb93 100644 --- a/bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5643l_evb +++ b/bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5643l_evb @@ -23,7 +23,7 @@ REGION_ALIAS ("REGION_FAST_DATA_LOAD", ROM); REGION_ALIAS ("REGION_DATA", RAM); REGION_ALIAS ("REGION_DATA_LOAD", ROM); REGION_ALIAS ("REGION_BSS", RAM); -REGION_ALIAS ("REGION_RWEXTRA", RAM); +REGION_ALIAS ("REGION_RTEMSSTACK", RAM); REGION_ALIAS ("REGION_WORK", RAM_1); REGION_ALIAS ("REGION_STACK", RAM_1); REGION_ALIAS ("REGION_NOCACHE", NOCACHE); diff --git a/bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5668g b/bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5668g index 6c8e5a64f1..bbe39b806e 100644 --- a/bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5668g +++ b/bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5668g @@ -19,7 +19,7 @@ REGION_ALIAS ("REGION_FAST_DATA_LOAD", ROM); REGION_ALIAS ("REGION_DATA", RAM); REGION_ALIAS ("REGION_DATA_LOAD", ROM); REGION_ALIAS ("REGION_BSS", RAM); -REGION_ALIAS ("REGION_RWEXTRA", RAM); +REGION_ALIAS ("REGION_RTEMSSTACK", RAM); REGION_ALIAS ("REGION_WORK", RAM); REGION_ALIAS ("REGION_STACK", RAM); REGION_ALIAS ("REGION_NOCACHE", NOCACHE); diff --git a/bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5674f_ecu508 b/bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5674f_ecu508 index 1e52a3c6c3..9b24b8f58e 100644 --- a/bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5674f_ecu508 +++ b/bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5674f_ecu508 @@ -21,7 +21,7 @@ REGION_ALIAS ("REGION_FAST_DATA_LOAD", ROM); REGION_ALIAS ("REGION_DATA", RAM); REGION_ALIAS ("REGION_DATA_LOAD", ROM); REGION_ALIAS ("REGION_BSS", RAM); -REGION_ALIAS ("REGION_RWEXTRA", RAM_EXT); +REGION_ALIAS ("REGION_RTEMSSTACK", RAM_EXT); REGION_ALIAS ("REGION_WORK", RAM); REGION_ALIAS ("REGION_STACK", RAM); REGION_ALIAS ("REGION_NOCACHE", NOCACHE); diff --git a/bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5674f_rsm6_base b/bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5674f_rsm6_base index 8f6a403ca8..8f12295bd0 100644 --- a/bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5674f_rsm6_base +++ b/bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5674f_rsm6_base @@ -18,7 +18,7 @@ REGION_ALIAS ("REGION_FAST_DATA_LOAD", ROM); REGION_ALIAS ("REGION_DATA", RAM); REGION_ALIAS ("REGION_DATA_LOAD", ROM); REGION_ALIAS ("REGION_BSS", RAM); -REGION_ALIAS ("REGION_RWEXTRA", RAM); +REGION_ALIAS ("REGION_RTEMSSTACK", RAM); REGION_ALIAS ("REGION_WORK", RAM); REGION_ALIAS ("REGION_STACK", RAM); REGION_ALIAS ("REGION_NOCACHE", NOCACHE); diff --git a/bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5674fevb b/bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5674fevb index 3113fb20b7..a226f4b3f9 100644 --- a/bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5674fevb +++ b/bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5674fevb @@ -18,7 +18,7 @@ REGION_ALIAS ("REGION_FAST_DATA_LOAD", ROM); REGION_ALIAS ("REGION_DATA", RAM); REGION_ALIAS ("REGION_DATA_LOAD", ROM); REGION_ALIAS ("REGION_BSS", RAM); -REGION_ALIAS ("REGION_RWEXTRA", RAM_EXT); +REGION_ALIAS ("REGION_RTEMSSTACK", RAM_EXT); REGION_ALIAS ("REGION_WORK", RAM); REGION_ALIAS ("REGION_STACK", RAM); REGION_ALIAS ("REGION_NOCACHE", NOCACHE); diff --git a/bsps/powerpc/mpc55xxevb/start/linkcmds.phycore_mpc5554 b/bsps/powerpc/mpc55xxevb/start/linkcmds.phycore_mpc5554 index 77b8abc5e0..a854908f1f 100644 --- a/bsps/powerpc/mpc55xxevb/start/linkcmds.phycore_mpc5554 +++ b/bsps/powerpc/mpc55xxevb/start/linkcmds.phycore_mpc5554 @@ -26,7 +26,7 @@ REGION_ALIAS ("REGION_FAST_DATA_LOAD", ROM); REGION_ALIAS ("REGION_DATA", RAM); REGION_ALIAS ("REGION_DATA_LOAD", ROM); REGION_ALIAS ("REGION_BSS", RAM_EXT); -REGION_ALIAS ("REGION_RWEXTRA", RAM_EXT); +REGION_ALIAS ("REGION_RTEMSSTACK", RAM_EXT); REGION_ALIAS ("REGION_WORK", RAM_EXT); REGION_ALIAS ("REGION_STACK", RAM); REGION_ALIAS ("REGION_NOCACHE", NOCACHE); diff --git a/bsps/powerpc/mpc8260ads/start/linkcmds b/bsps/powerpc/mpc8260ads/start/linkcmds index f3092b862d..34fb69149b 100644 --- a/bsps/powerpc/mpc8260ads/start/linkcmds +++ b/bsps/powerpc/mpc8260ads/start/linkcmds @@ -301,6 +301,10 @@ SECTIONS clear_end = .; + .rtemsstack (NOLOAD) : { + *(SORT(.rtemsstack.*)) + } >ram + WorkAreaBase = .; /* Sections for compressed .text and .data */ diff --git a/bsps/powerpc/psim/start/linkcmds b/bsps/powerpc/psim/start/linkcmds index ba9319c91d..7ac828443d 100644 --- a/bsps/powerpc/psim/start/linkcmds +++ b/bsps/powerpc/psim/start/linkcmds @@ -26,7 +26,7 @@ REGION_ALIAS ("REGION_FAST_DATA_LOAD", RAM); REGION_ALIAS ("REGION_DATA", RAM); REGION_ALIAS ("REGION_DATA_LOAD", RAM); REGION_ALIAS ("REGION_BSS", RAM); -REGION_ALIAS ("REGION_RWEXTRA", RAM); +REGION_ALIAS ("REGION_RTEMSSTACK", RAM); REGION_ALIAS ("REGION_WORK", RAM); REGION_ALIAS ("REGION_STACK", RAM); REGION_ALIAS ("REGION_NOCACHE", EMPTY); diff --git a/bsps/powerpc/qemuppc/start/linkcmds b/bsps/powerpc/qemuppc/start/linkcmds index 3169ad2741..e3642c47a3 100644 --- a/bsps/powerpc/qemuppc/start/linkcmds +++ b/bsps/powerpc/qemuppc/start/linkcmds @@ -21,7 +21,7 @@ REGION_ALIAS ("REGION_FAST_DATA_LOAD", ROM); REGION_ALIAS ("REGION_DATA", RAM); REGION_ALIAS ("REGION_DATA_LOAD", ROM); REGION_ALIAS ("REGION_BSS", RAM); -REGION_ALIAS ("REGION_RWEXTRA", RAM); +REGION_ALIAS ("REGION_RTEMSSTACK", RAM); REGION_ALIAS ("REGION_WORK", RAM); REGION_ALIAS ("REGION_STACK", RAM); REGION_ALIAS ("REGION_NOCACHE", EMPTY); diff --git a/bsps/powerpc/qoriq/start/linkcmds.qoriq_core_0 b/bsps/powerpc/qoriq/start/linkcmds.qoriq_core_0 index 80ae3937bf..db31092faf 100644 --- a/bsps/powerpc/qoriq/start/linkcmds.qoriq_core_0 +++ b/bsps/powerpc/qoriq/start/linkcmds.qoriq_core_0 @@ -24,7 +24,7 @@ REGION_ALIAS ("REGION_FAST_DATA_LOAD", LOW); REGION_ALIAS ("REGION_DATA", HIGH); REGION_ALIAS ("REGION_DATA_LOAD", LOW); REGION_ALIAS ("REGION_BSS", HIGH); -REGION_ALIAS ("REGION_RWEXTRA", HIGH); +REGION_ALIAS ("REGION_RTEMSSTACK", HIGH); REGION_ALIAS ("REGION_WORK", HIGH); REGION_ALIAS ("REGION_STACK", HIGH); REGION_ALIAS ("REGION_NOCACHE", EMPTY); diff --git a/bsps/powerpc/qoriq/start/linkcmds.qoriq_core_1 b/bsps/powerpc/qoriq/start/linkcmds.qoriq_core_1 index ecb601b9ef..28ec68fe3d 100644 --- a/bsps/powerpc/qoriq/start/linkcmds.qoriq_core_1 +++ b/bsps/powerpc/qoriq/start/linkcmds.qoriq_core_1 @@ -23,7 +23,7 @@ REGION_ALIAS ("REGION_FAST_TEXT_LOAD", RAM); REGION_ALIAS ("REGION_FAST_DATA", RAM); REGION_ALIAS ("REGION_FAST_DATA_LOAD", RAM); REGION_ALIAS ("REGION_BSS", RAM); -REGION_ALIAS ("REGION_RWEXTRA", RAM); +REGION_ALIAS ("REGION_RTEMSSTACK", RAM); REGION_ALIAS ("REGION_WORK", RAM); REGION_ALIAS ("REGION_STACK", RAM); REGION_ALIAS ("REGION_NOCACHE", EMPTY); diff --git a/bsps/powerpc/qoriq/start/linkcmds.qoriq_e500 b/bsps/powerpc/qoriq/start/linkcmds.qoriq_e500 index b727aefaa8..5328e73c5b 100644 --- a/bsps/powerpc/qoriq/start/linkcmds.qoriq_e500 +++ b/bsps/powerpc/qoriq/start/linkcmds.qoriq_e500 @@ -24,7 +24,7 @@ REGION_ALIAS ("REGION_FAST_DATA_LOAD", LOW); REGION_ALIAS ("REGION_DATA", HIGH); REGION_ALIAS ("REGION_DATA_LOAD", LOW); REGION_ALIAS ("REGION_BSS", HIGH); -REGION_ALIAS ("REGION_RWEXTRA", HIGH); +REGION_ALIAS ("REGION_RTEMSSTACK", HIGH); REGION_ALIAS ("REGION_WORK", HIGH); REGION_ALIAS ("REGION_STACK", HIGH); REGION_ALIAS ("REGION_NOCACHE", EMPTY); diff --git a/bsps/powerpc/qoriq/start/linkcmds.qoriq_e6500_32 b/bsps/powerpc/qoriq/start/linkcmds.qoriq_e6500_32 index 900147c163..4f8bbdfdbc 100644 --- a/bsps/powerpc/qoriq/start/linkcmds.qoriq_e6500_32 +++ b/bsps/powerpc/qoriq/start/linkcmds.qoriq_e6500_32 @@ -25,7 +25,7 @@ REGION_ALIAS ("REGION_FAST_DATA_LOAD", LOW); REGION_ALIAS ("REGION_DATA", HIGH); REGION_ALIAS ("REGION_DATA_LOAD", LOW); REGION_ALIAS ("REGION_BSS", HIGH); -REGION_ALIAS ("REGION_RWEXTRA", HIGH); +REGION_ALIAS ("REGION_RTEMSSTACK", HIGH); REGION_ALIAS ("REGION_WORK", HIGH); REGION_ALIAS ("REGION_STACK", HIGH); REGION_ALIAS ("REGION_NOCACHE", NOCACHE); diff --git a/bsps/powerpc/qoriq/start/mmu-config.c b/bsps/powerpc/qoriq/start/mmu-config.c index b59d9c7114..3c5a8538c8 100644 --- a/bsps/powerpc/qoriq/start/mmu-config.c +++ b/bsps/powerpc/qoriq/start/mmu-config.c @@ -131,7 +131,7 @@ static entry DATA config[] = { ENTRY_RW(bsp_section_data_begin, bsp_section_data_size), ENTRY_RW(bsp_section_sbss_begin, bsp_section_sbss_size), ENTRY_RW(bsp_section_bss_begin, bsp_section_bss_size), - ENTRY_RW(bsp_section_rwextra_begin, bsp_section_rwextra_size), + ENTRY_RW(bsp_section_rtemsstack_begin, bsp_section_rtemsstack_size), ENTRY_RW(bsp_section_stack_begin, bsp_section_stack_size), ENTRY_IO(bsp_section_nocache_begin, bsp_section_nocache_size), ENTRY_IO(bsp_section_nocachenoload_begin, bsp_section_nocachenoload_size), diff --git a/bsps/powerpc/shared/start/linkcmds.base b/bsps/powerpc/shared/start/linkcmds.base index 25a6414855..fa49edf7dd 100644 --- a/bsps/powerpc/shared/start/linkcmds.base +++ b/bsps/powerpc/shared/start/linkcmds.base @@ -319,12 +319,13 @@ SECTIONS { } > REGION_BSS AT > REGION_BSS bsp_section_bss_size = bsp_section_bss_end - bsp_section_bss_begin; - .rwextra : ALIGN_WITH_INPUT { - bsp_section_rwextra_begin = .; + .rtemsstack (NOLOAD) : ALIGN_WITH_INPUT { + bsp_section_rtemsstack_begin = .; *(.bsp_rwextra) - bsp_section_rwextra_end = .; - } > REGION_RWEXTRA AT > REGION_RWEXTRA - bsp_section_rwextra_size = bsp_section_rwextra_end - bsp_section_rwextra_begin; + *(SORT(.rtemsstack.*)) + bsp_section_rtemsstack_end = .; + } > REGION_RTEMSSTACK AT > REGION_RTEMSSTACK + bsp_section_rtemsstack_size = bsp_section_rtemsstack_end - bsp_section_rtemsstack_begin; .work : ALIGN_WITH_INPUT { /* diff --git a/bsps/powerpc/shared/start/linkcmds.share b/bsps/powerpc/shared/start/linkcmds.share index 59f538e3a2..e2a3a16fbe 100644 --- a/bsps/powerpc/shared/start/linkcmds.share +++ b/bsps/powerpc/shared/start/linkcmds.share @@ -98,6 +98,10 @@ SECTIONS _TLS_Size = _TLS_BSS_end - _TLS_Data_begin; _TLS_Alignment = MAX (ALIGNOF (.tdata), ALIGNOF (.tbss)); + .rtemsstack (NOLOAD) : { + *(SORT(.rtemsstack.*)) + } >CODE + /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = ALIGN(0x10000) + (. & (0x10000 - 1)); diff --git a/bsps/powerpc/ss555/start/linkcmds b/bsps/powerpc/ss555/start/linkcmds index 8282d6c605..079dc84924 100644 --- a/bsps/powerpc/ss555/start/linkcmds +++ b/bsps/powerpc/ss555/start/linkcmds @@ -248,6 +248,10 @@ SECTIONS intrStack = .; PROVIDE(intrStackPtr = intrStack); + .rtemsstack (NOLOAD) : { + *(SORT(.rtemsstack.*)) + } + /* * Work Area * diff --git a/bsps/powerpc/t32mppc/start/linkcmds.t32mppc b/bsps/powerpc/t32mppc/start/linkcmds.t32mppc index 02367f57d0..81e1c3d817 100644 --- a/bsps/powerpc/t32mppc/start/linkcmds.t32mppc +++ b/bsps/powerpc/t32mppc/start/linkcmds.t32mppc @@ -17,7 +17,7 @@ REGION_ALIAS ("REGION_FAST_DATA_LOAD", RAM); REGION_ALIAS ("REGION_DATA", RAM); REGION_ALIAS ("REGION_DATA_LOAD", RAM); REGION_ALIAS ("REGION_BSS", RAM); -REGION_ALIAS ("REGION_RWEXTRA", RAM); +REGION_ALIAS ("REGION_RTEMSSTACK", RAM); REGION_ALIAS ("REGION_WORK", RAM); REGION_ALIAS ("REGION_STACK", RAM); REGION_ALIAS ("REGION_NOCACHE", RAM); diff --git a/bsps/powerpc/tqm8xx/start/linkcmds b/bsps/powerpc/tqm8xx/start/linkcmds index 7171d0230a..2d9e1e37e8 100644 --- a/bsps/powerpc/tqm8xx/start/linkcmds +++ b/bsps/powerpc/tqm8xx/start/linkcmds @@ -25,7 +25,7 @@ REGION_ALIAS ("REGION_FAST_DATA_LOAD", RAM); REGION_ALIAS ("REGION_DATA", RAM); REGION_ALIAS ("REGION_DATA_LOAD", RAM); REGION_ALIAS ("REGION_BSS", RAM); -REGION_ALIAS ("REGION_RWEXTRA", RAM); +REGION_ALIAS ("REGION_RTEMSSTACK", RAM); REGION_ALIAS ("REGION_WORK", RAM); REGION_ALIAS ("REGION_STACK", RAM); REGION_ALIAS ("REGION_NOCACHE", EMPTY); diff --git a/bsps/powerpc/virtex/start/linkcmds.in b/bsps/powerpc/virtex/start/linkcmds.in index 13f9217e9d..41fac076d7 100644 --- a/bsps/powerpc/virtex/start/linkcmds.in +++ b/bsps/powerpc/virtex/start/linkcmds.in @@ -19,7 +19,7 @@ REGION_ALIAS ("REGION_FAST_DATA_LOAD", RAM); REGION_ALIAS ("REGION_DATA", RAM); REGION_ALIAS ("REGION_DATA_LOAD", RAM); REGION_ALIAS ("REGION_BSS", RAM); -REGION_ALIAS ("REGION_RWEXTRA", RAM); +REGION_ALIAS ("REGION_RTEMSSTACK", RAM); REGION_ALIAS ("REGION_WORK", RAM); REGION_ALIAS ("REGION_STACK", RAM); REGION_ALIAS ("REGION_NOCACHE", EMPTY); diff --git a/bsps/powerpc/virtex4/start/linkcmds b/bsps/powerpc/virtex4/start/linkcmds index 50d3a3f13c..472c797fd2 100644 --- a/bsps/powerpc/virtex4/start/linkcmds +++ b/bsps/powerpc/virtex4/start/linkcmds @@ -260,8 +260,11 @@ SECTIONS . += StackSize; __stack_base = .; /* Initial stack builds downwards */ - /* RTEMS workspace: size specified by application */ - WorkAreaBase = ALIGN(0x10); /* Align to a cache-line boundary */ + .rtemsstack (NOLOAD) : { + *(SORT(.rtemsstack.*)) + } >RAM + + WorkAreaBase = .; /* The heap comes after the work space */ diff --git a/bsps/powerpc/virtex5/start/linkcmds b/bsps/powerpc/virtex5/start/linkcmds index 9bd7c2e67f..4fd5243f3f 100644 --- a/bsps/powerpc/virtex5/start/linkcmds +++ b/bsps/powerpc/virtex5/start/linkcmds @@ -260,8 +260,11 @@ SECTIONS . += StackSize; __stack_base = .; /* Initial stack builds downwards */ - /* RTEMS workspace: size specified by application */ - WorkAreaBase = ALIGN(0x20); /* Align to a cache-line boundary */ + .rtemsstack (NOLOAD) : { + *(SORT(.rtemsstack.*)) + } >RAM + + WorkAreaBase = .; /* The heap comes after the work space */ -- cgit v1.2.3