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 */
53