OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [rc203soc/] [sw/] [uClinux/] [arch/] [alpha/] [kernel/] [head.S] - Blame information for rev 1777

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1622 jcastillo
/*
2
 * alpha/boot/head.S
3
 *
4
 * initial boot stuff.. At this point, the bootloader has already
5
 * switched into OSF/1 PAL-code, and loaded us at the correct address
6
 * (START_ADDR).  So there isn't much left for us to do: just set up
7
 * the kernel global pointer and jump to the kernel entry-point.
8
 */
9
 
10
#define __ASSEMBLY__
11
#include 
12
 
13
#define halt call_pal PAL_halt
14
 
15
.globl swapper_pg_dir
16
.globl _stext
17
swapper_pg_dir=SWAPPER_PGD
18
 
19
        .set noreorder
20
        .globl  __start
21
        .ent    __start
22
_stext:
23
__start:
24
        br      $27,1f
25
1:      ldgp    $29,0($27)
26
        lda     $27,start_kernel
27
        jsr     $26,($27),start_kernel
28
        halt
29
        .end __start
30
 
31
        .align 3
32
        .globl  wrent
33
        .ent    wrent
34
wrent:
35
        call_pal PAL_wrent
36
        ret     ($26)
37
        .end wrent
38
 
39
        .align 3
40
        .globl  wrkgp
41
        .ent    wrkgp
42
wrkgp:
43
        call_pal PAL_wrkgp
44
        ret     ($26)
45
        .end wrkgp
46
 
47
        .align 3
48
        .globl  wrusp
49
        .ent    wrusp
50
wrusp:
51
        call_pal PAL_wrusp
52
        ret     ($26)
53
        .end wrusp
54
 
55
        .align 3
56
        .globl  rdusp
57
        .ent    rdusp
58
rdusp:
59
        call_pal PAL_rdusp
60
        ret     ($26)
61
        .end rdusp
62
 
63
        .align 3
64
        .globl  tbi
65
        .ent    tbi
66
tbi:
67
        call_pal PAL_tbi
68
        ret     ($26)
69
        .end tbi
70
 
71
        .align 3
72
        .globl  imb
73
        .ent    imb
74
imb:
75
        call_pal PAL_imb
76
        ret     ($26)
77
        .end imb
78
 
79
        .align 3
80
        .globl  rdmces
81
        .ent    rdmces
82
rdmces:
83
        call_pal PAL_rdmces
84
        ret     ($26)
85
        .end rdmces
86
 
87
        .align 3
88
        .globl  wrmces
89
        .ent    wrmces
90
wrmces:
91
        call_pal PAL_wrmces
92
        ret     ($26)
93
        .end wrmces
94
 
95
        .align 3
96
        .globl  whami
97
        .ent    whami
98
whami:
99
        call_pal PAL_whami
100
        ret     ($26)
101
        .end whami
102
 
103
        .align 3
104
        .globl  wripir
105
        .ent    wripir
106
wripir:
107
        call_pal PAL_wripir
108
        ret     ($26)
109
        .end wripir
110
 
111
        .align 3
112
        .globl  cserve_ena
113
        .ent    cserve_ena
114
cserve_ena:
115
        lda     $30,-0x08($30)
116
        stq     $17,0($30)
117
        bis     $16,$16,$17
118
        lda     $16,52($31)
119
        call_pal PAL_cserve
120
        ldq     $17,0($30)
121
        lda     $30,0x08($30)
122
        ret     ($26)
123
        .end    cserve_ena
124
 
125
        .align 3
126
        .globl  cserve_dis
127
        .ent    cserve_dis
128
cserve_dis:
129
        lda     $30,-0x08($30)
130
        stq     $17,0($30)
131
        bis     $16,$16,$17
132
        lda     $16,53($31)
133
        call_pal PAL_cserve
134
        ldq     $17,0($30)
135
        lda     $30,0x08($30)
136
        ret     ($26)
137
        .end    cserve_dis
138
 
139
        #
140
        # The following two functions don't need trapb/excb instructions
141
        # around the mf_fpcr/mt_fpcr instructions because (a) the kernel
142
        # never generates arithmetic faults and (b) call_pal instructions
143
        # are implied trap barriers.
144
        #
145
        .align 3
146
        .globl  rdfpcr
147
        .ent    rdfpcr
148
rdfpcr:
149
        lda     $30,-0x10($30)
150
        stt     $f0,0($30)
151
        mf_fpcr $f0
152
        stt     $f0,8($30)
153
        ldt     $f0,0($30)
154
        ldq     $0,8($30)
155
        lda     $30,0x10($30)
156
        ret     ($26)
157
        .end    rdfpcr
158
 
159
        .align 3
160
        .globl  wrfpcr
161
        .ent    wrfpcr
162
wrfpcr:
163
        lda     $30,-0x10($30)
164
        stt     $f0,0($30)
165
        stq     $16,8($30)
166
        ldt     $f0,8($30)
167
        mt_fpcr $f0
168
        ldt     $f0,0($30)
169
        lda     $30,0x10($30)
170
        ret     ($26)
171
        .end    wrfpcr

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.