summaryrefslogtreecommitdiffstats
path: root/qemu/roms/SLOF/clients/net-snk/kernel/entry.S
diff options
context:
space:
mode:
Diffstat (limited to 'qemu/roms/SLOF/clients/net-snk/kernel/entry.S')
-rw-r--r--qemu/roms/SLOF/clients/net-snk/kernel/entry.S127
1 files changed, 0 insertions, 127 deletions
diff --git a/qemu/roms/SLOF/clients/net-snk/kernel/entry.S b/qemu/roms/SLOF/clients/net-snk/kernel/entry.S
deleted file mode 100644
index bf10542bd..000000000
--- a/qemu/roms/SLOF/clients/net-snk/kernel/entry.S
+++ /dev/null
@@ -1,127 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation
- * All rights reserved.
- * This program and the accompanying materials
- * are made available under the terms of the BSD License
- * which accompanies this distribution, and is available at
- * http://www.opensource.org/licenses/bsd-license.php
- *
- * Contributors:
- * IBM Corporation - initial implementation
- *****************************************************************************/
-
-#define STACKSIZE 0x100000
-#include <macros.h>
-
-
- .section ".toc","aw" # TOC entries are needed for relocation
-.exception_stack_frame_toc:
- .tc exception_stack_frame[TC],exception_stack_frame
-.exit_sp_toc:
- .tc _exit_sp[TC],_exit_sp
-.prom_entry_toc:
- .tc _prom_entry[TC],_prom_entry
-
- .previous
-
-
-/*
-Function:
- Input:
- r3:
- r4:
- r5: prom entry
- Output:
-
-Decription: Main entry point, called from OF
-
-*/
-C_ENTRY(_entry)
- mr r3, r6 # parm 0 passed in r6
- mr r4, r7 # parm 1 passed in r7
- mr r6, r1 # save stack pointer
- mflr r7 # save link register
- bcl 20,31,over # branch after pointer table
-base:
- .align 3
-.LCgot: .quad _got-base
-.LCstack: .quad _stack+STACKSIZE-0x80-base
-over:
- mflr r8 # gpr 8 is the base
- ld r1,.LCstack-base(r8) # load new stack pointer
- add r1, r1, r8 # add base
- std r2, 64(r1) # save got
- std r7, 56(r1) # save link register
- ld r2, .LCgot-base(r8) # load got pointer
- add r2, r2, r8 # add base
- std r6, 0(r1) # save stack pointer
-
- ld r6, .prom_entry_toc@toc(r2)
- std r5, 0(r6) # Save prom handle
-
- ld r10, .exit_sp_toc@toc(r2) # save stack pointer for exit call
- std r1, 0(r10)
-
- bl ._start_kernel # call kernel init code
-
-the_end:
- ld r4, 56(r1) # Restore link register
- mtlr r4
- ld r2, 64(r1) # restore got
- ld r1, 0(r1)
-
- blr
-
-/*
- * Function: _callback_entry
- * Input: r6 start address of parameter string
- * r7 length of parameter string.
- *
- * Description: If a client application wants to register a callback function,
- * this function is registered w/ SLOF, not the application's function. SLOF
- * passes the parameter string in Forth representation in R6 and R7. This
- * function moves R6 to R3 and R7 to R4 and then calls callback_entry().
- *
- */
-C_ENTRY(_callback_entry)
- # Save the LR
- mflr r0
- std r0, 16(r1)
-
- # Reserve stack space
- stdu r1, -32(r1)
-
- # SLOF passes the parameters in Registers R6 and R7 but the target
- # wants them in registers R3 and R4
- mr r3, r6
- mr r4, r7
-
- # Branch to the callback_entry function
- bl .callback_entry
-
- # Destroy stack frame
- ld r1, 0(r1)
-
- # Restore LR
- ld r0, 16(r1)
- mtlr r0
-
- # Return to caller
- blr
-
- .section ".bss"
-
-_exit_sp: .quad 0
-
-.global _prom_entry
-_prom_entry: .quad 0
-
- .section ".text"
-
-C_ENTRY(_exit)
- ld r1, .exit_sp_toc@toc(r2)
- ld r1, 0(r1)
- b the_end
-
-
- .lcomm _stack,STACKSIZE,16