summaryrefslogtreecommitdiffstats
path: root/bsps/sh
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/sh
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/sh')
-rw-r--r--bsps/sh/gensh1/start/linkcmds4
-rw-r--r--bsps/sh/gensh2/start/linkcmds4
-rw-r--r--bsps/sh/gensh2/start/linkcmds.ram5
-rw-r--r--bsps/sh/gensh2/start/linkcmds.rom4
-rw-r--r--bsps/sh/gensh4/start/linkcmds10
-rw-r--r--bsps/sh/gensh4/start/linkcmds.rom5
-rw-r--r--bsps/sh/gensh4/start/linkcmds.rom2ram5
-rw-r--r--bsps/sh/shsim/start/linkcmds4
8 files changed, 34 insertions, 7 deletions
diff --git a/bsps/sh/gensh1/start/linkcmds b/bsps/sh/gensh1/start/linkcmds
index d268d4cfc7..bb190f8c5a 100644
--- a/bsps/sh/gensh1/start/linkcmds
+++ b/bsps/sh/gensh1/start/linkcmds
@@ -188,6 +188,10 @@ SECTIONS
_WorkAreaBase = . ;
+ .rtemsstack (NOLOAD) : {
+ *(SORT(.rtemsstack.*))
+ } > onchip_ram
+
_CPU_Interrupt_stack_low = 0x0f000000 ;
_CPU_Interrupt_stack_high = _CPU_Interrupt_stack_low + 4096 ;
diff --git a/bsps/sh/gensh2/start/linkcmds b/bsps/sh/gensh2/start/linkcmds
index 2c4d44a941..e6db97e0c3 100644
--- a/bsps/sh/gensh2/start/linkcmds
+++ b/bsps/sh/gensh2/start/linkcmds
@@ -199,6 +199,10 @@ SECTIONS
_WorkAreaBase = . ;
+ .rtemsstack (NOLOAD) : {
+ *(SORT(.rtemsstack.*))
+ } > onchip_ram
+
_CPU_Interrupt_stack_low = 0xFFFFF000;
_CPU_Interrupt_stack_high = 0xFFFFFFFF;
diff --git a/bsps/sh/gensh2/start/linkcmds.ram b/bsps/sh/gensh2/start/linkcmds.ram
index c5349398ff..8b53cd4f39 100644
--- a/bsps/sh/gensh2/start/linkcmds.ram
+++ b/bsps/sh/gensh2/start/linkcmds.ram
@@ -200,7 +200,10 @@ SECTIONS
PROVIDE (end = .);
_WorkAreaBase = . ;
- . = 0x00480000 ;
+
+ .rtemsstack (NOLOAD) : {
+ *(SORT(.rtemsstack.*))
+ } > onchip_ram
_CPU_Interrupt_stack_low = 0xFFFFF000;
_CPU_Interrupt_stack_high = 0xFFFFFFFF;
diff --git a/bsps/sh/gensh2/start/linkcmds.rom b/bsps/sh/gensh2/start/linkcmds.rom
index 4934c10269..9f50cd7e64 100644
--- a/bsps/sh/gensh2/start/linkcmds.rom
+++ b/bsps/sh/gensh2/start/linkcmds.rom
@@ -206,6 +206,10 @@ SECTIONS
_WorkAreaBase = . ;
+ .rtemsstack (NOLOAD) : {
+ *(SORT(.rtemsstack.*))
+ } > onchip_ram
+
_CPU_Interrupt_stack_low = 0xFFFFF000;
_CPU_Interrupt_stack_high = 0xFFFFFFFF;
diff --git a/bsps/sh/gensh4/start/linkcmds b/bsps/sh/gensh4/start/linkcmds
index de6bb05693..21e0fdc5c9 100644
--- a/bsps/sh/gensh4/start/linkcmds
+++ b/bsps/sh/gensh4/start/linkcmds
@@ -144,11 +144,14 @@ SECTIONS
__bss_end = .;
} > ram
- .stack . : {
+ .stack : {
. = . + 4096;
- }
+ } > ram
+
+ .rtemsstack (NOLOAD) : {
+ *(SORT(.rtemsstack.*))
+ } > ram
- . = ALIGN(16);
_WorkAreaBase = . ;
. = ALIGN(16);
@@ -188,6 +191,5 @@ SECTIONS
.debug_funcnames 0 : { *(.debug_funcnames) }
.debug_typenames 0 : { *(.debug_typenames) }
.debug_varnames 0 : { *(.debug_varnames) }
- .stack : { _stack = .; *(.stack) }
/* These must appear regardless of . */
}
diff --git a/bsps/sh/gensh4/start/linkcmds.rom b/bsps/sh/gensh4/start/linkcmds.rom
index 13c6096af1..5e37f06941 100644
--- a/bsps/sh/gensh4/start/linkcmds.rom
+++ b/bsps/sh/gensh4/start/linkcmds.rom
@@ -187,7 +187,10 @@ SECTIONS
__bss_end = .;
} > ram
- . = ALIGN(16);
+ .rtemsstack (NOLOAD) : {
+ *(SORT(.rtemsstack.*))
+ } > ram
+
_WorkAreaBase = . ;
. = ALIGN(16);
diff --git a/bsps/sh/gensh4/start/linkcmds.rom2ram b/bsps/sh/gensh4/start/linkcmds.rom2ram
index cc14d4e98d..2fff0d1f98 100644
--- a/bsps/sh/gensh4/start/linkcmds.rom2ram
+++ b/bsps/sh/gensh4/start/linkcmds.rom2ram
@@ -190,7 +190,10 @@ SECTIONS
*(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*)
*(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
} >ram
- . = ALIGN(16);
+
+ .rtemsstack (NOLOAD) : {
+ *(SORT(.rtemsstack.*))
+ } > ram
_WorkAreaBase = . ;
diff --git a/bsps/sh/shsim/start/linkcmds b/bsps/sh/shsim/start/linkcmds
index 41c7245da0..932d94161f 100644
--- a/bsps/sh/shsim/start/linkcmds
+++ b/bsps/sh/shsim/start/linkcmds
@@ -209,6 +209,10 @@ SECTIONS
} > ram
_stack = .;
+ .rtemsstack (NOLOAD) : {
+ *(SORT(.rtemsstack.*))
+ } > ram
+
_WorkAreaBase = . ;
_CPU_Interrupt_stack_low = 0x00080000 ;