| /* | |
| * 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. | |
| * | |
| * Copyright (C) 2005 Embedded Alley Solutions, Inc | |
| * Copyright (C) 2005 Ralf Baechle (ralf@linux-mips.org) | |
| * Copyright (C) 2009 Jiajie Chen (chenjiajie@cse.buaa.edu.cn) | |
| * Copyright (C) 2012 Huacai Chen (chenhc@lemote.com) | |
| */ | |
| #ifndef __ASM_MACH_LOONGSON64_KERNEL_ENTRY_H | |
| #define __ASM_MACH_LOONGSON64_KERNEL_ENTRY_H | |
| /* | |
| * Override macros used in arch/mips/kernel/head.S. | |
| */ | |
| .macro kernel_entry_setup | |
| #ifdef CONFIG_CPU_LOONGSON3 | |
| .set push | |
| .set mips64 | |
| /* Set LPA on LOONGSON3 config3 */ | |
| mfc0 t0, $16, 3 | |
| or t0, (0x1 << 7) | |
| mtc0 t0, $16, 3 | |
| /* Set ELPA on LOONGSON3 pagegrain */ | |
| mfc0 t0, $5, 1 | |
| or t0, (0x1 << 29) | |
| mtc0 t0, $5, 1 | |
| #ifdef CONFIG_LOONGSON3_ENHANCEMENT | |
| /* Enable STFill Buffer */ | |
| mfc0 t0, $16, 6 | |
| or t0, 0x100 | |
| mtc0 t0, $16, 6 | |
| #endif | |
| _ehb | |
| .set pop | |
| #endif | |
| .endm | |
| /* | |
| * Do SMP slave processor setup. | |
| */ | |
| .macro smp_slave_setup | |
| #ifdef CONFIG_CPU_LOONGSON3 | |
| .set push | |
| .set mips64 | |
| /* Set LPA on LOONGSON3 config3 */ | |
| mfc0 t0, $16, 3 | |
| or t0, (0x1 << 7) | |
| mtc0 t0, $16, 3 | |
| /* Set ELPA on LOONGSON3 pagegrain */ | |
| mfc0 t0, $5, 1 | |
| or t0, (0x1 << 29) | |
| mtc0 t0, $5, 1 | |
| #ifdef CONFIG_LOONGSON3_ENHANCEMENT | |
| /* Enable STFill Buffer */ | |
| mfc0 t0, $16, 6 | |
| or t0, 0x100 | |
| mtc0 t0, $16, 6 | |
| #endif | |
| _ehb | |
| .set pop | |
| #endif | |
| .endm | |
| #endif /* __ASM_MACH_LOONGSON64_KERNEL_ENTRY_H */ |