Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/holtmann/bluet...
[linux-2.6] / include / asm-mips / mach-malta / kernel-entry-init.h
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 (chris@mips.com)
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
38         __INITDATA
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 */