Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
arch
mips
include
asm
mach-ip27
kernel-entry-init.h
Go to the documentation of this file.
1
/*
2
* This file is subject to the terms and conditions of the GNU General Public
3
* License. See the file "COPYING" in the main directory of this archive
4
* for more details.
5
*
6
* Copyright (C) 2000 Silicon Graphics, Inc.
7
* Copyright (C) 2005 Ralf Baechle <
[email protected]
>
8
*/
9
#ifndef __ASM_MACH_IP27_KERNEL_ENTRY_H
10
#define __ASM_MACH_IP27_KERNEL_ENTRY_H
11
12
#include <asm/sn/addrs.h>
13
#include <
asm/sn/sn0/hubni.h
>
14
#include <
asm/sn/klkernvars.h
>
15
16
/*
17
* Returns the local nasid into res.
18
*/
19
.macro GET_NASID_ASM
res
20
dli \res
,
LOCAL_HUB_ADDR
(
NI_STATUS_REV_ID
)
21
ld
\
res
, (\res)
22
and
\res,
NSRI_NODEID_MASK
23
dsrl \res,
NSRI_NODEID_SHFT
24
.endm
25
26
/*
27
* Intentionally empty macro, used in head.S. Override in
28
* arch/mips/mach-xxx/kernel-entry-init.h when necessary.
29
*/
30
.macro kernel_entry_setup
31
GET_NASID_ASM
t1
32
move
t2
,
t1
# text and data are here
33
MAPPED_KERNEL_SETUP_TLB
34
.endm
35
36
/*
37
* Do SMP slave processor setup necessary before we can savely execute C code.
38
*/
39
.macro smp_slave_setup
40
GET_NASID_ASM
t1
41
dli
t0
,
KLDIR_OFFSET
+ (
KLI_KERN_VARS
*
KLDIR_ENT_SIZE
) + \
42
KLDIR_OFF_POINTER +
CAC_BASE
43
dsll
t1
,
NASID_SHFT
44
or
t0, t0, t1
45
ld
t0, 0(t0) # t0 points to kern_vars
struct
46
lh
t1
,
KV_RO_NASID_OFFSET
(t0)
47
lh t2,
KV_RW_NASID_OFFSET
(t0)
48
MAPPED_KERNEL_SETUP_TLB
49
50
/*
51
* We might not get launched at the address the kernel is linked to,
52
* so we jump there.
53
*/
54
PTR_LA t0, 0
f
55
jr t0
56
0:
57
.endm
58
59
#endif
/* __ASM_MACH_IP27_KERNEL_ENTRY_H */
Generated on Thu Jan 10 2013 13:09:42 for Linux Kernel by
1.8.2