]> git.ipfire.org Git - thirdparty/u-boot.git/blobdiff - arch/sparc/cpu/leon3/start.S
Add GPL-2.0+ SPDX-License-Identifier to source files
[thirdparty/u-boot.git] / arch / sparc / cpu / leon3 / start.S
index 1e393a56e6ae51e335e654f717eedadef3916a2f..70aee78054a3e5a09ea5532fad197f28753c2d14 100644 (file)
@@ -1,54 +1,31 @@
-/* This is where the SPARC/LEON3 starts
- * Copyright (C) 2007,
- * Daniel Hellstrom, daniel@gaisler.com
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
+TRAP ta 0; nop; nop; nop;
+
+/* Software trap. Treat as BAD_TRAP for the time being... */
+#define SOFT_TRAP TRAP(_hwerr)
+
+#define PSR_INIT   0x1FC0      /* Disable traps, set s and ps */
+#define WIM_INIT   2
+
+/* All traps low-level code here must end with this macro. */
+#define RESTORE_ALL b ret_trap_entry; clr %l6;
+
+#define WRITE_PAUSE nop;nop;nop
+
+WINDOWSIZE = (16 * 4)
+ARGPUSHSIZE = (6 * 4)
+ARGPUSH = (WINDOWSIZE + 4)
+MINFRAME = (WINDOWSIZE + ARGPUSHSIZE + 4)
 
-#include <asm-offsets.h>
-#include <config.h>
-#include <asm/asmmacro.h>
-#include <asm/winmacro.h>
-#include <asm/psr.h>
-#include <asm/stack.h>
-#include <asm/leon.h>
-#include <version.h>
-
-/* Entry for traps which jump to a programmer-specified trap handler.  */
-#define TRAPR(H)  \
-       wr      %g0, 0xfe0, %psr; \
-       mov     %g0, %tbr; \
-       ba      (H); \
-       mov     %g0, %wim;
-
-#define TRAP(H) \
-       mov     %psr, %l0; \
-       ba      (H); \
-       nop; nop;
-
-#define TRAPI(ilevel) \
-       mov     ilevel, %l7; \
-       mov     %psr, %l0; \
-       b       _irq_entry; \
-       mov     %wim, %l3
-
-/* Unexcpected trap will halt the processor by forcing it to error state */
+/* Number of register windows */
+#ifndef CONFIG_SYS_SPARC_NWINDOWS
+#error Must define number of SPARC register windows, default is 8
+#endif
+
+#define STACK_ALIGN    8
+#define SA(X)  (((X)+(STACK_ALIGN-1)) & ~(STACK_ALIGN-1))
+
+       .section ".start", "ax"
+       .globl  _starttate */
 #undef BAD_TRAP
 #define BAD_TRAP ta 0; nop; nop; nop;