53 строки
1.0 KiB
C
53 строки
1.0 KiB
C
/*
|
|
* This file is subject to the terms and conditions of the GNU General Public
|
|
* License. See the file "COPYING" in the main directory of this archive
|
|
* for more details.
|
|
*
|
|
* Chris Dearman (chris@mips.com)
|
|
* Copyright (C) 2007 Mips Technologies, Inc.
|
|
*/
|
|
#ifndef __ASM_MACH_MIPS_KERNEL_ENTRY_INIT_H
|
|
#define __ASM_MACH_MIPS_KERNEL_ENTRY_INIT_H
|
|
|
|
.macro kernel_entry_setup
|
|
#ifdef CONFIG_MIPS_MT_SMTC
|
|
mfc0 t0, CP0_CONFIG
|
|
bgez t0, 9f
|
|
mfc0 t0, CP0_CONFIG, 1
|
|
bgez t0, 9f
|
|
mfc0 t0, CP0_CONFIG, 2
|
|
bgez t0, 9f
|
|
mfc0 t0, CP0_CONFIG, 3
|
|
and t0, 1<<2
|
|
bnez t0, 0f
|
|
9:
|
|
/* Assume we came from YAMON... */
|
|
PTR_LA v0, 0x9fc00534 /* YAMON print */
|
|
lw v0, (v0)
|
|
move a0, zero
|
|
PTR_LA a1, nonmt_processor
|
|
jal v0
|
|
|
|
PTR_LA v0, 0x9fc00520 /* YAMON exit */
|
|
lw v0, (v0)
|
|
li a0, 1
|
|
jal v0
|
|
|
|
1: b 1b
|
|
|
|
__INITDATA
|
|
nonmt_processor:
|
|
.asciz "SMTC kernel requires the MT ASE to run\n"
|
|
__FINIT
|
|
0:
|
|
#endif
|
|
.endm
|
|
|
|
/*
|
|
* Do SMP slave processor setup necessary before we can safely execute C code.
|
|
*/
|
|
.macro smp_slave_setup
|
|
.endm
|
|
|
|
#endif /* __ASM_MACH_MIPS_KERNEL_ENTRY_INIT_H */
|