summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/powerpc/qemuppc
diff options
context:
space:
mode:
authorTill Straumann <strauman@slac.stanford.edu>2011-07-28 19:50:28 +0000
committerTill Straumann <strauman@slac.stanford.edu>2011-07-28 19:50:28 +0000
commit1a1a151c481c072f9b880ffc73339cd425382e25 (patch)
tree7905ef07e8022b756e57e10c3a6404a226a0b490 /c/src/lib/libbsp/powerpc/qemuppc
parent2011-27-28 Till Straumann <strauman@slac.stanford.edu> (diff)
downloadrtems-1a1a151c481c072f9b880ffc73339cd425382e25.tar.bz2
2011-27-28 Till Straumann <strauman@slac.stanford.edu>
* start/start.S: Align stack and tag TOS with a NULL pointer (help terminate when walking the stack).
Diffstat (limited to 'c/src/lib/libbsp/powerpc/qemuppc')
-rw-r--r--c/src/lib/libbsp/powerpc/qemuppc/ChangeLog5
-rw-r--r--c/src/lib/libbsp/powerpc/qemuppc/start/start.S20
2 files changed, 21 insertions, 4 deletions
diff --git a/c/src/lib/libbsp/powerpc/qemuppc/ChangeLog b/c/src/lib/libbsp/powerpc/qemuppc/ChangeLog
index 9c0da4ebae..0d015e48fb 100644
--- a/c/src/lib/libbsp/powerpc/qemuppc/ChangeLog
+++ b/c/src/lib/libbsp/powerpc/qemuppc/ChangeLog
@@ -1,3 +1,8 @@
+2011-27-28 Till Straumann <strauman@slac.stanford.edu>
+
+ * start/start.S: Align stack and tag TOS with a NULL
+ pointer (help terminate when walking the stack).
+
2011-06-18 Ralf Corsépius <ralf.corsepius@rtems.org>
* Makefile.am: Remove references to non-existing files.
diff --git a/c/src/lib/libbsp/powerpc/qemuppc/start/start.S b/c/src/lib/libbsp/powerpc/qemuppc/start/start.S
index 5fe24b82b9..55f4076b14 100644
--- a/c/src/lib/libbsp/powerpc/qemuppc/start/start.S
+++ b/c/src/lib/libbsp/powerpc/qemuppc/start/start.S
@@ -1,12 +1,24 @@
+#include <rtems/score/cpu.h>
+#include <rtems/powerpc/powerpc.h>
+
+#include <bspopts.h>
+
#.section ".text"
.section .entry_point_section,"awx",@progbits
.global _start
_start:
- lis %r1,_stack@h
- ori %r1,%r1,_stack@l
- li %r3,8192
- mtmsr %r3
+ lis %r1,_stack@h
+ ori %r1,%r1,_stack@l
+ /* Make sure stack is properly aligned */
+ li %r3, CPU_STACK_ALIGNMENT - 1
+ andc %r1, %r1, %r3
+ /* NULL ptr to back chain */
+ li %r3, 0
+ stw %r3, 0(%r1)
+
+ li %r3,8192
+ mtmsr %r3
/* Read-only small data */
lis %r2, _SDA2_BASE_@h