Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
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  * Chris Dearman ([email protected])
7  * Copyright (C) 2007 Mips Technologies, Inc.
8  */
9 #ifndef __ASM_MACH_MIPS_KERNEL_ENTRY_INIT_H
10 #define __ASM_MACH_MIPS_KERNEL_ENTRY_INIT_H
11 
12  .macro kernel_entry_setup
13 #ifdef CONFIG_MIPS_MT_SMTC
14  mfc0 t0, CP0_CONFIG
15  bgez t0, 9f
16  mfc0 t0, CP0_CONFIG, 1
17  bgez t0, 9f
18  mfc0 t0, CP0_CONFIG, 2
19  bgez t0, 9f
20  mfc0 t0, CP0_CONFIG, 3
21  and t0, 1<<2
22  bnez t0, 0f
23 9:
24  /* Assume we came from YAMON... */
25  PTR_LA v0, 0x9fc00534 /* YAMON print */
26  lw v0, (v0)
27  move a0, zero
28  PTR_LA a1, nonmt_processor
29  jal v0
30 
31  PTR_LA v0, 0x9fc00520 /* YAMON exit */
32  lw v0, (v0)
33  li a0, 1
34  jal v0
35 
36 1: b 1b
37 
39 nonmt_processor:
40  .asciz "SMTC kernel requires the MT ASE to run\n"
41  __FINIT
42 0:
43 #endif
44  .endm
45 
46 /*
47  * Do SMP slave processor setup necessary before we can safely execute C code.
48  */
49  .macro smp_slave_setup
50  .endm
51 
52 #endif /* __ASM_MACH_MIPS_KERNEL_ENTRY_INIT_H */