summaryrefslogtreecommitdiffstats
path: root/bsps/powerpc
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2018-06-19 15:10:36 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2018-06-27 08:58:16 +0200
commit715d6167e07a46f5bc37f42993c209450484bbe8 (patch)
treea2b7b713ecfe5d6bbe80db74f79dfeba62e64a8b /bsps/powerpc
parentscore: Add CPU_INTERRUPT_STACK_ALIGNMENT (diff)
downloadrtems-715d6167e07a46f5bc37f42993c209450484bbe8.tar.bz2
bsps: Support .rtemsstack.* linker input sections
Use a dedicated memory region or place it between the BSS and workspace. Update #3459.
Diffstat (limited to 'bsps/powerpc')
-rw-r--r--bsps/powerpc/gen5200/start/linkcmds.gen5200_base6
-rw-r--r--bsps/powerpc/gen83xx/start/linkcmds.mpc83xx2
-rw-r--r--bsps/powerpc/haleakala/start/linkcmds7
-rw-r--r--bsps/powerpc/include/bsp/linker-symbols.h6
-rw-r--r--bsps/powerpc/mpc55xxevb/start/linkcmds.gwlcfm2
-rw-r--r--bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5566evb2
-rw-r--r--bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5643l_evb2
-rw-r--r--bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5668g2
-rw-r--r--bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5674f_ecu5082
-rw-r--r--bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5674f_rsm6_base2
-rw-r--r--bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5674fevb2
-rw-r--r--bsps/powerpc/mpc55xxevb/start/linkcmds.phycore_mpc55542
-rw-r--r--bsps/powerpc/mpc8260ads/start/linkcmds4
-rw-r--r--bsps/powerpc/psim/start/linkcmds2
-rw-r--r--bsps/powerpc/qemuppc/start/linkcmds2
-rw-r--r--bsps/powerpc/qoriq/start/linkcmds.qoriq_core_02
-rw-r--r--bsps/powerpc/qoriq/start/linkcmds.qoriq_core_12
-rw-r--r--bsps/powerpc/qoriq/start/linkcmds.qoriq_e5002
-rw-r--r--bsps/powerpc/qoriq/start/linkcmds.qoriq_e6500_322
-rw-r--r--bsps/powerpc/qoriq/start/mmu-config.c2
-rw-r--r--bsps/powerpc/shared/start/linkcmds.base11
-rw-r--r--bsps/powerpc/shared/start/linkcmds.share4
-rw-r--r--bsps/powerpc/ss555/start/linkcmds4
-rw-r--r--bsps/powerpc/t32mppc/start/linkcmds.t32mppc2
-rw-r--r--bsps/powerpc/tqm8xx/start/linkcmds2
-rw-r--r--bsps/powerpc/virtex/start/linkcmds.in2
-rw-r--r--bsps/powerpc/virtex4/start/linkcmds7
-rw-r--r--bsps/powerpc/virtex5/start/linkcmds7
28 files changed, 60 insertions, 34 deletions
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 */