Subversion Repositories HelenOS-historic

Rev

Rev 1 | Rev 125 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1 Rev 50
1
#
1
#
2
# Copyright (C) 2001-2004 Jakub Jermar
2
# Copyright (C) 2001-2004 Jakub Jermar
3
# All rights reserved.
3
# All rights reserved.
4
#
4
#
5
# Redistribution and use in source and binary forms, with or without
5
# Redistribution and use in source and binary forms, with or without
6
# modification, are permitted provided that the following conditions
6
# modification, are permitted provided that the following conditions
7
# are met:
7
# are met:
8
#
8
#
9
# - Redistributions of source code must retain the above copyright
9
# - Redistributions of source code must retain the above copyright
10
#   notice, this list of conditions and the following disclaimer.
10
#   notice, this list of conditions and the following disclaimer.
11
# - Redistributions in binary form must reproduce the above copyright
11
# - Redistributions in binary form must reproduce the above copyright
12
#   notice, this list of conditions and the following disclaimer in the
12
#   notice, this list of conditions and the following disclaimer in the
13
#   documentation and/or other materials provided with the distribution.
13
#   documentation and/or other materials provided with the distribution.
14
# - The name of the author may not be used to endorse or promote products
14
# - The name of the author may not be used to endorse or promote products
15
#   derived from this software without specific prior written permission.
15
#   derived from this software without specific prior written permission.
16
#
16
#
17
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
17
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
18
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20
# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
20
# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22
# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22
# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
#
27
#
28
 
28
 
29
#include <arch/asm/macro.h>
29
#include <arch/asm/macro.h>
30
 
30
 
31
#define STACK_SPACE	128
31
#define STACK_SPACE	128
32
 
32
 
33
.text
33
.text
34
 
34
 
35
.set noat
35
.set noat
36
.set noreorder
36
.set noreorder
37
.set nomacro
37
.set nomacro
38
 
38
 
39
.global kernel_image_start
39
.global kernel_image_start
40
.global tlb_refill_entry
40
.global tlb_refill_entry
41
.global cache_error_entry
41
.global cache_error_entry
42
.global exception_entry
42
.global exception_entry
43
 
43
 
44
.org 0x0
44
.org 0x0
45
kernel_image_start:
45
kernel_image_start:
46
tlb_refill_entry:
46
tlb_refill_entry:
47
    j tlb_refill_handler
47
	j tlb_refill_handler
48
    nop
48
	nop
49
 
49
 
50
.org 0x100
50
.org 0x100
51
cache_error_entry:
51
cache_error_entry:
52
    j cache_error_handler
52
	j cache_error_handler
53
    nop
53
	nop
54
    
54
    
55
.org 0x180
55
.org 0x180
56
exception_entry:
56
exception_entry:
57
exception_handler:
57
exception_handler:
58
    sub $29, STACK_SPACE
58
	sub $29, STACK_SPACE
59
    REGISTERS_STORE $29
59
	REGISTERS_STORE $29
60
    
60
    
61
    jal exception
61
	jal exception
62
    nop
62
	nop
63
    
63
    
64
    REGISTERS_LOAD $29
64
	REGISTERS_LOAD $29
65
    add $29, STACK_SPACE
65
	add $29, STACK_SPACE
66
 
66
 
67
    eret
67
	eret
68
 
68
 
69
tlb_refill_handler:
69
tlb_refill_handler:
70
    sub $29, STACK_SPACE
70
	sub $29, STACK_SPACE
71
    REGISTERS_STORE $29
71
	REGISTERS_STORE $29
72
    
72
    
73
    jal tlb_refill
73
	jal tlb_refill
74
    nop
74
	nop
75
    
75
    
76
    REGISTERS_LOAD $29
76
	REGISTERS_LOAD $29
77
    add $29, STACK_SPACE
77
	add $29, STACK_SPACE
78
    
78
    
79
    eret
79
	eret
80
 
80
 
81
cache_error_handler:
81
cache_error_handler:
82
    sub $29, STACK_SPACE
82
	sub $29, STACK_SPACE
83
    REGISTERS_STORE $29
83
	REGISTERS_STORE $29
84
 
84
 
85
    jal cache_error
85
	jal cache_error
86
    nop
86
	nop
87
    
87
    
88
    REGISTERS_LOAD $29
88
	REGISTERS_LOAD $29
89
    add $29, STACK_SPACE
89
	add $29, STACK_SPACE
90
 
90
 
91
    eret
91
	eret
92
 
92