diff options
author | Ralf Baechle <ralf@linux-mips.org> | 1999-08-21 22:19:10 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 1999-08-21 22:19:10 +0000 |
commit | b5710aa33141544bf7cb9c3e509d587ff457a094 (patch) | |
tree | 40214b7ea9f82c8a48a9eaeb428c25c0565aee32 /arch/mips64/kernel/head.S | |
parent | 892bf98f0c04e9297979936d973c85e62a3f0b96 (diff) |
Look ma - a tank has hit the MIPS sources ...
Diffstat (limited to 'arch/mips64/kernel/head.S')
-rw-r--r-- | arch/mips64/kernel/head.S | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/arch/mips64/kernel/head.S b/arch/mips64/kernel/head.S new file mode 100644 index 000000000..c5cf9d987 --- /dev/null +++ b/arch/mips64/kernel/head.S @@ -0,0 +1,55 @@ +/* $Id$ + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file "COPYING" in the main directory of this archive + * for more details. + * + * Head.S contains the MIPS exception handler and startup code. + * + * Copyright (C) 1994, 1995 Waldorf Electronics + * Written by Ralf Baechle and Andreas Busse + * Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999 Ralf Baechle + * Copyright (C) 1999 Silicon Graphics, Inc. + */ +#include <asm/asm.h> +#include <asm/regdef.h> +#include <asm/processor.h> +#include <asm/mipsregs.h> +#include <asm/stackframe.h> + + .text + +EXPORT(stext) # used for profiling +EXPORT(_stext) + +NESTED(kernel_entry, 16, sp) # kernel entry point + CLI # disable interrupts + + la $28, init_task_union # init current pointer + daddiu t0, $28, KERNEL_STACK_SIZE-32 + sd t0, kernelsp + dsubu sp, t0, 4*SZREG # init stack pointer + + jal start_kernel +1: b 1b # just in case ... + END(kernel_entry) + + .comm kernelsp, 8, 8 # current stackpointer + +#define PAGE_SIZE 0x1000 + + .macro page name + .globl \name + .org . + PAGE_SIZE +\name: .size \name, PAGE_SIZE + .type \name, @object + .endm + + .data + + page swapper_pg_dir + page empty_bad_page + page empty_bad_page_table + page invalid_pte_table + + .align 13 |