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) 2005 Embedded Alley Solutions, Inc 7 * Copyright (C) 2005 Ralf Baechle (ralf@linux-mips.org) 8 * Copyright (C) 2009 Jiajie Chen (chenjiajie@cse.buaa.edu.cn) 9 * Copyright (C) 2012 Huacai Chen (chenhc@lemote.com) 10 */ 11 #ifndef __ASM_MACH_LOONGSON64_KERNEL_ENTRY_H 12 #define __ASM_MACH_LOONGSON64_KERNEL_ENTRY_H 13 14 /* 15 * Override macros used in arch/mips/kernel/head.S. 16 */ 17 .macro kernel_entry_setup 18 #ifdef CONFIG_CPU_LOONGSON3 19 .set push 20 .set mips64 21 /* Set LPA on LOONGSON3 config3 */ 22 mfc0 t0, $16, 3 23 or t0, (0x1 << 7) 24 mtc0 t0, $16, 3 25 /* Set ELPA on LOONGSON3 pagegrain */ 26 li t0, (0x1 << 29) 27 mtc0 t0, $5, 1 28 _ehb 29 .set pop 30 #endif 31 .endm 32 33 /* 34 * Do SMP slave processor setup. 35 */ 36 .macro smp_slave_setup 37 #ifdef CONFIG_CPU_LOONGSON3 38 .set push 39 .set mips64 40 /* Set LPA on LOONGSON3 config3 */ 41 mfc0 t0, $16, 3 42 or t0, (0x1 << 7) 43 mtc0 t0, $16, 3 44 /* Set ELPA on LOONGSON3 pagegrain */ 45 li t0, (0x1 << 29) 46 mtc0 t0, $5, 1 47 _ehb 48 .set pop 49 #endif 50 .endm 51 52 #endif /* __ASM_MACH_LOONGSON64_KERNEL_ENTRY_H */ 53