summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/sparc64/usiii/start/bspinit.S
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2010-06-17 16:20:39 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2010-06-17 16:20:39 +0000
commitdf970844195f6814e35f12ad5e585f4645c2f152 (patch)
tree8bf1c5169e6db37568123585ddb9892a2e9bfead /c/src/lib/libbsp/sparc64/usiii/start/bspinit.S
parent2010-06-17 Joel Sherrill <joel.sherrill@oarcorp.com> (diff)
downloadrtems-df970844195f6814e35f12ad5e585f4645c2f152.tar.bz2
2010-06-17 Joel Sherrill <joel.sherrill@oarcorp.com>
* ChangeLog, Makefile.am, README, bsp_specs, configure.ac, preinstall.am, include/bsp.h, include/tm27.h, make/custom/usiii.cfg, start/bspinit.S: New files.
Diffstat (limited to 'c/src/lib/libbsp/sparc64/usiii/start/bspinit.S')
-rw-r--r--c/src/lib/libbsp/sparc64/usiii/start/bspinit.S51
1 files changed, 51 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/sparc64/usiii/start/bspinit.S b/c/src/lib/libbsp/sparc64/usiii/start/bspinit.S
new file mode 100644
index 0000000000..2646c8230b
--- /dev/null
+++ b/c/src/lib/libbsp/sparc64/usiii/start/bspinit.S
@@ -0,0 +1,51 @@
+/*
+* bspinit.S
+*
+* BSP specific initialization for Sparc64 RTEMS -- sun4u BSP
+*
+* COPYRIGHT (c) 2010 Gedare Bloom.
+*
+* The license and distribution terms for this file may be
+* found in the file LICENSE in this distribution or at
+* http://www.rtems.com/license/LICENSE.
+*
+* This code defines start code specific to the sun4u BSP
+*
+* $Id$
+*
+*/
+
+#include <rtems/asm.h>
+#include <rtems/score/cpu.h>
+
+#include <traptable.h>
+
+#define LSU_CR_IM_MASK (0x0004) /* bit 2 */
+#define LSU_CR_DM_MASK (0x0008) /* bit 3 */
+
+#define STACK_WINDOW_SAVE_AREA_SIZE (16*8)
+
+.register %g2, #scratch
+.register %g3, #scratch
+
+.section .text
+
+PUBLIC(_BSP_init)
+.global _BSP_init
+ SYM(_BSP_init):
+ save %sp, -STACK_WINDOW_SAVE_AREA_SIZE, %sp
+
+ /* copy firmware trap table so that RTEMS can install ISR handlers */
+ setx SYM(trap_table), %l0, %o0
+ rdpr %tba, %o1
+ set TABLE_SIZE, %o2
+ call memcpy
+ nop
+
+ mov %g0, %o0
+ call _take_mmu
+ nop
+
+ ret
+ restore
+